Projects
Infuse - Zeebo multiplatform emulator / Qualcomm BREW reimplementation
Created on 2018-11-18 by Tuxality, last modified on 2024-10-03
PLEASE NOTE:
Infuse is a project that is attempting to reimplement by one person at least partially BREW subsystem, which is a more than 10 years codebase of the giant Qualcomm Inc. based on a clean room reverse engineering approach. It will take a lot of time to reimplement such and a lot will change regarding the quality of the emulation as well as the compatibitlity depending on the progress. Please do not ask for the deadline / release / support for your favourite game X / whatever. However, comments with ideas regarding the feature set are very much welcome!
Infuse is a Qualcomm BREW subsystem reimplementation and Zeebo high-level emulator written from scratch, 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.
HID interface currently allows up to two gamepad controllers connected in Zeebo games with both digital and analog input processed supporting cooperative mode in games such as Double Dragon as well as two player competition in Zeebo Family Pack with no input lag observed.
Infuse audio backend supports basic MIDI, PCM/ADPCM and MP3 playback and multiple streams mixing with resampling functionality independent of host sampling rate and channel count. Currently waveOut API for Windows, Core Audio for macOS, Media Kit for Haiku OS as well as PulseAudio for GNU/Linux sound backends are implemented. Additionally, ALSA audio backend for GNU/Linux is written however not working properly.
As of time of writing, Infuse fully supports macOS, Windows, GNU/Linux and Haiku OS operating systems as well as can be ported and built as a fully native application on 32-bit ARM based devices such as RG353v without ARM core emulation. Additionally separate target variants are supported such as Steam Deck. It achieves more than full-speed Zeebo emulation on Macbook Pro 2020 M1 based notebook with non-optimized debug build. The x86_64 based Windows and GNU/Linux build is playable in current state even on old CPUs such as Intel Haswell era CPUs as well as even low-end mobile Intel Pentium N4200 CPU is able to get quite decent framerates. Please keep in mind that most, if not all, Zeebo games have locked up framerate varying from 20 FPS to 30-35FPS in general.
Release video:
Post on Twitter / X:
▼ Current Version & Downloads ▼
Current version of Infuse can be found below.
For more detailed information regarding configuration please check the README.md file first in your favourite Markdown viewer.
Please check LICENSE file inside archive before usage as well as read license conditions available below.
If you do not agree with the license conditions, please do not use this software nor redistribute it in any way.
License:
If you agree with above terms, please proceed further to enjoy Infuse.
Abusing or not complying with above license terms will harm further Infuse development and Zeebo emulation progress.
There is no support available in case of any issues nor any responsibility taken by the developer when software is misused by the end user so please use this software at your own risk.
Thank you for understanding.
Version:
A1 (development preview) released on 18th May 2024
Download:
🔽 macOS (arm64)
🔽 Windows (x86_64)
🔽 GNU/Linux (x86_64)
🔽 Steam Deck (x86_64)
🔽 Haiku OS (x86_64)
Information for macOS users
If you download Infuse through web browser an com.apple.quarantine attribute will be added to the unsigned Infuse.app bundle, this will end up with following "Infuse.app" is damaged and can't be opened message as shown below:
In order to fix this issue please execute following commands from the terminal after navigating to the directory with Infuse.app bundle:
xattr -cr Infuse.app
xattr -rd com.apple.quarantine Infuse.app
If you get Operation not permitted, try running above commands with sudo added before xattr.
Alternatively, download Infuse by using wget from the terminal instead of using web browser.
There is also a possibility that the Infuse.app bundle will need to be manually allowed for execution from Privacy & Security inside your System Settings, you need to click that Open anyway button by yourself.
Now Infuse development preview should work for you, sorry for the inconvenience!
Information for GNU/Linux users
Please note that GNU/Linux and Steam Deck builds differ despite both targeting generic GNU/Linux distribution, so in case of trying to run Infuse on Steam Deck please use one that is built specifically for such.
Information for all users
For all people who have trouble with "BREW applets not found", I strongly suggest to read the README.md file carefully first. You need to put your games into brew directory that is created in following paths during first run depending on the selected port:
Windows:
%LOCALAPPDATA%\Tuxality\Infuse
macOS:
~/Library/Application Support/Tuxality/Infuse
GNU/Linux:
~/.Tuxality/Infuse
Steam Deck:
~/.Tuxality/Infuse
Haiku OS:
~/.Tuxality/Infuse
After running emulator for the first time Infuse will create its own directory structure in path mentioned above and you will find there brew subdirectory with empty mod/mif directories in which you need to put your Zeebo stuff i.e. MODs, SIGs and MIFs respectively.
Do not put your Zeebo stuff into brew directory that comes within emulator package, it is wrong and it will not work in such way.
Download (native version):
🔽 RG353v stock (armv7) - not available yet
🔽 R35s / R36s ArkOS (armv7) - not available yet
🔽 Raspberry PI (armv7) - not available yet
Please note that the native version is in very early experimental stage and is not on par with emulated version in terms of performance nor considered stable in any way. Please refer to the README file for more information regarding limitations and current state of such ports.
▼ Screenshots ▼
▼ Current release compatibility list ▼
Zeebo
Software not mentioned in above list is considered not working in current Infuse public release.
▼ Current development compatibility list ▼
Zeebo
BREW
Compatibility list will be expanded depending on the progress of the emulator development so please do not request / query regarding (insert your favorite game here) compatibility, thank you in advance.
▼ I would like to thank following people ▼
▼ Development Diary ▼
Media with previous versions of Infuse are posted below just for reference.
➤ Version: Milestone 4 (outdated)
Fourth milestone achieved on 17th September 2023 by implementing preliminary sound support as well as fixing remaining graphics issues.
Videos
Infuse - Zeebo multiplatform emulator / Qualcomm BREW reimplementation development quick update #1
➤ Version: Milestone 3 (outdated)
Third milestone achieved on 18th August 2023 by implementing Zeebo HID interface allowing gamepad input as well as booting Double Dragon and fixing Crash Nitro Kart 3D graphical issues.
Videos
Infuse - Zeebo multiplatform emulator / Qualcomm BREW reimplementation development #3
Screenshots
Double Dragon for Zeebo
Crash Nitro Kart 3D for Zeebo
Zeebo Family Pack
OpenGL ES BREW demos
➤ Version: Milestone 2 (outdated)
Second milestone achieved on 2nd August 2023 by booting Zeebo games in a fully rewritten Infuse proof-of-concept after getting around some issues. It is still not yet final design.
Videos
Infuse - Zeebo multiplatform emulator / Qualcomm BREW reimplementation development #2
Screenshots
Crash Nitro Kart 3D for Zeebo
Zeebo Family Pack
➤ Version: Milestone 1 (outdated)
First milestone achieved on 3rd November 2021 after resurrecting project and completely rewriting Infuse proof-of-concept with ARM emulation built-in. However such approach needed another full rewrite due to the technical issues and limitations as shown above... ;)
Screenshots
Various screenshots from the Infuse proof-of-concept running on Arch Linux with wxWidgets GUI
➤ Version: PoC (outdated)
First proof-of-concept from November 2018 that was kept private only for some time due to the private concerns. I have posted in July 2019 a video that shows compatibility layer that allows to execute native Qualcomm BREW applications (including Zeebo stuff) on Windows Mobile ARM-based devices. Worked somewhat similarly to WINE, loaded MODs and executed them with use of my BREW subsystem implementation including OpenGL ES 1.x support. Had "fancy" 90s GUI too. It was just a very simple try to get Kingdom Hearts V-Cast running at least on something, spoiler it didn't worked and Kingdom Hearts icons were self-made due to the MIF being encrypted, others were original. Project was put on hold during pandemic as well as private issues.
Videos
Qualcomm BREW subsystem compatibility layer / Zeebo emulator for WM #1
Running on my beloved SHARP EM-ONE S01SH handheld that is Windows Mobile powered.