Infuse (Zeebo / BREW multiplatform emulator) development #5 - A1 development preview release

“A1 development preview“ is here, you can find it on my website. Please read LICENSE and file first as well as please do not forget, there is no asking for Zeebo game dumps - that is your responsibility! ;) Infuse is a Qualcomm BREW subsystem reimplementation and Zeebo high-level emulator written from scratch by one person only (Tuxality), based purely on clean reverse engineering attempts. Currently it is using dynarmic ARM JIT core and runs three Zeebo commercial games in fully playable state which is Double Dragon, Crash Nitro Kart 3D and Zeebo Family Pack as well as some of the BREW samples. First idea of emulating Zeebo was born in 2015 when I was gathering information about Zeebo / BREW inner-workings, however not much work was done in that time due to the IRL. Project really started as a BREW compatibility layer proof-of-concept in 2018 with a goal of getting Kingdom Hearts V Cast to run natively on Windows Mobile ARM based device, while such goal was not fully achieved and only some BREW samples worked it allowed me to gain some knowledge and move onto the next milestone that was achieved on 3rd November 2021. In such milestone after resurrecting project and completely rewriting Infuse proof-of-concept with ARM emulation built-in, I was able to run BREW samples in emulated environment which made Infuse fully-fledged high-level emulator rather than compatibility layer. Besides ARM emulation, I've also implemented pretty complex debugging tool that allowed to monitor execution and behavior of executed BREW applets. Sadly project was put on hold until the next milestone which was achieved on 2nd August 2023. Infuse was once again rewritten from scratch which allowed to get not only better multiplatform support, but also allowed to successfully boot two Zeebo games Crash Nitro Kart 3D and Zeebo Family Pack with glitches and no gamepad input. Infuse on 19th August 2023 got HID interface fixed which means that Zeebo gamepad input started to work properly and most importantly, new highly anticipated game Double Dragon was considered playable to some extent. Sadly there were many issues that needed to be resolved and no audio output was implemented yet until the next milestone that was achieved on 17th September 2023. Most notably I've implemented support for PCM / ADPCM, MIDI and MP3 media playback with resampling support, however it wasn't quite of quality yet as sound was kinda distorted and crunchy as well as there was no sound in Crash Nitro Kart 3D. Multiple functionalities were implemented such as BAR / MIF loader, fixes provided for some effects not being rendered in Crash Nitro Kart 3D as well as I've resurrected native port of Infuse which works the same way as in first proof-of-concept yet on newer ARM based devices such as Anbernic handhelds. Internally, on 19th November 2023 concept of the Infuse user interface was created which was used as a base for the new user interface in final Infuse version after refactoring. Since then a lot and I really mean a lot of work was done behind the scene to make the first release of Infuse that you can see today. Support for multiple platforms was improved too which ended up in having macOS (arm64), Windows (x86_64), GNU/Linux (x86_64), Steam Deck (x86_64) and Haiku OS (x86_64) ports. Many issues were fixed and not every one of them was an easy fix i.e. memory leaks, corruptions, fragmentation, leaking file descriptors, unknown crashes on some ports due to the undefined behavior and so on. Similarly, big improvement was made on the audio side which is now of acceptable quality with better resampling performance especially on low-end platforms. This and a lot more makes the current “A1 development preview“ that should work for most people to enjoy hidden gem of Double Dragon for the Zeebo console. I hope you will have a lot of fun playing these games as Zeebo was a quite unique experience for me when it got released back in the day. As mentioned above, you can find Infuse on my website: Last but not least, I would like to thank my girlfriend KogarashiDS for all the testing, ideas, general support and understanding during Infuse development, thank you! - Tuxality