I am still mad about the poor analog audio quality recording out of my AmigaOne X1000 and X5000, because there is still no audio through HDMI driver after all these years! Recording with AHI to audio file is a solution, but it can lead to desynced video. I've tried 3.5 mm, XLR, HDMI embedders and always have this hum. Only not tested method yet is capturing of optical audio signal, but need to buy separate sound card for this.
@All Another one, again from ctrl+atl+del French group. Called H-Immersion:
For the AOS4 port, I had to do some heavy lifting: initial generation of textures was taking some time on the CPU, so I first used them as external files, but it was about 30 MB of data: no way! So, at first I converted all textures to WebP while keeping 1:1 quality, but it was still 22 MB. Then the small ones were embedded in the binary as WebP, while the large ones were moved to be generated directly on the GPU, where I calculate many pixels in parallel and keep the results ready for rendering, without the need for slow CPU generation and extra memory copies.
Music also comes as an external Opus file, as the original SSE-based synthesizer is quite heavy when ported to 20 years old PPC CPUs. Opus was chosen over MP3 just to save a bit more space as well.
The binary itself also had some work done: getting rid of C++ baggage in file I/O by replacing it with C equivalents, and shrinking SDL2, which I use together with Mesa.
So all this brings the package down to a reasonable size, while keeping loading/generation time reasonable (~35s on X1000, ~30s on X5000, but still ~90s on Sam460), and ,thanks to Mesa, all the visuals, shaders and co. remain 1:1 the same.
This time it some mind blowing demo from wellknown demo group "Andromeda Software Development". Demo called LifeForce and were released at Assembly 2007, where it took a well deserved first place. It were shown on Pianeta Amiga 2026 as well, so it's about to time to release:
For the AmigaOS4 port, I reconstructed the demo from the original Windows binary and the supplied Cg shader files. Since the rest of the source code was missing, with Ghidra's help,i produced a byte-identical reconstruction of the original executable,then translated the recovered routines into C++ and got the demo running on x86 under WSL2.From there,a native PPC version with the necessary endian fixes were build.
To make it work fast on our old machines, the original CPU-heavy rendering was changed to offload much of the work to the GPU. For example, static meshes stay in GPU memory, while shaders and compute handle geometry expansion, fluid simulation, cloth, curves and tubes: this removes CPU calculations and repeated geometry uploads. To avoid hiccups and micro-stalls in the process,the demo compiles and loads all the shaders at once, right at the start, before the demo actually starts. As a result, it takes about 60-65 seconds to load up on an X1000 at 2 GHz, but in turn you get around 300-500 FPS over the whole demo, with no hiccups.
The whole demo originally used external textures, music and meshes,and the packed size of the original demo was 27 MB. I didn't try to lower it much; I just reduced the binary size a bit by getting rid of unnecessary C++ baggage and unused SDL2 functions, as well as getting rid of the CgEffects directory, as all the shaders are now internal. And while the original shaders are no longer used,the final visual result is 1:1 identical to the original demo.