Projects

Infuse - Zeebo multiplatform emulator / Qualcomm BREW reimplementation


Created on 2018-11-18 by Tuxality, last modified on 2024-06-04

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:


      

Patreon:




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:



Copyright (C) 2018, 2023-2024 Tuxality This software is provided 'as-is', without any express or implied warranty. In no event will the author be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for individual purpose and is subject to the following restrictions: 1. The origin of this software must not be misrepresented, you must not claim that you wrote the original software nor suggest that you were part of such. 2. Altered versions of source code must be plainly marked as such, must not be misrepresented as being the original software. 3. Altered versions of binary distribution and redistributing of such is not allowed in any way. 4. This notice cannot be removed or altered in any way from any source as well as binary distribution. 5. This software cannot be redistributed in form of unofficial bundle or package as well as it cannot be publicly hosted by the third parties, its origin must not be misrepresented. 6. This software is intended to be used by the end-user, it cannot be sold nor be part of any commercial product. 7. Above restrictions are subject to change in the future by the original project owner only, which is Tuxality.
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:
macOS app damaged screenshot
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.appxattr -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 ▼



Screenshot  Screenshot  Screenshot  Screenshot

Screenshot  Screenshot  Screenshot  Screenshot

Screenshot  Screenshot  Screenshot  Screenshot

Screenshot  Screenshot  Screenshot  Screenshot

Screenshot  Screenshot  Screenshot  Screenshot

▼ Current release compatibility list ▼



Zeebo

Name
Status
Notes
Double Dragon
Playable
Fully working including sound, background music, font rendering, two players cooperative mode as well as progress and configuration saving.
Crash Bandicoot Nitro Kart 3D
Playable
Fully working including sound, background music, progress and configuration saving.
Zeebo Family Pack
Playable
Fully working including sound, background music, two players competetive mode in built-in games.

Software not mentioned in above list is considered not working in current Infuse public release.

▼ Current development compatibility list ▼



Zeebo

Name
Status
Notes
Double Dragon
Playable
Fully working including sound, background music, font rendering, two players cooperative mode as well as progress and configuration saving.
Crash Bandicoot Nitro Kart 3D
Playable
Fully working including sound, background music, progress and configuration saving.
Zeebo Family Pack
Playable
Fully working including sound, background music, two players competetive mode in built-in games.
Reckless Racing
In game
Almost working in debug build as it goes into gameplay with some textures corrupted, no sound. Sadly there is a memory leak which slowdowns game after a while then crash due to the emulated platform being out of memory.
Raging Thunder II
In game
Same as above, almost working in debug build as it goes into gameplay with some textures corrupted, no sound. Sadly there is a memory leak which slowdowns game after a while then crash due to the emulated platform being out of memory.
Armageddon Squadron
In game
Almost working, menu works correctly, goes into gameplay however part of the scene is not rendered correctly, HUD seems to be ok. There is no sound due to the same issue as in above games.
Un Juego de Huevos (Um Jogo de Ovos)
Menu / Cutscenes
Almost working, goes into menu and displays cutscenes, crashes at the beginning of the gameplay. Sound and cutscene voice acting is working, background music doesn't seem to work.
Quake
Nope
Not working yet, almost boots in debug build, crash during splash screen.
Quake II
Nope
Not working yet, almost boots in debug build.
Rally Master Pro
Nope
Not working yet, almost boots in debug build.
Zuma's Revenge
Nope
Game crash very early due to unknown reason.
Action Hero 3D: Wild Dog
Nope
Not working yet, external dependencies are not currently supported.
Ultimate Chess 3D
Untested
Game not tested yet.
FIFA 09
Untested
Game not tested yet.
Brain Challenge (Treino Cerebral)
Untested
Game not tested yet.
Need for Speed Carbon: Own the City
Untested
Game not tested yet.
Alpine Racer
Untested
Game not tested yet.
Ridge Racer 3D
Untested
Game not tested yet.
Prey Evil
Untested
Game not tested yet.
Pac-Mania
Untested
Game not tested yet.
Resident Evil 4: Zeebo Edition
Untested
Game not tested yet.
Tekken 2
Untested
Game not tested yet.
Zeebo Extreme: Rolimã (Ruleman)
Untested
Game not tested yet.
Bejeweled Twist
Untested
Game not tested yet.
Zeebo Extreme: Corrida Aérea (Air Race)
Untested
Game not tested yet.
Galaxy on Fire
Untested
Game not tested yet.
Zenonia
Untested
Game not tested yet.
Zeebo Sports Tênis (Zeebo Tennis)
Untested
Game not tested yet.
Zeebo Extreme: Baja
Untested
Game not tested yet.
Heavy Weapon
Untested
Game not tested yet.
Zeebo Sports Vôlei (Zeebo Volley)
Untested
Game not tested yet.
Zeebo Extreme: Jetboard
Untested
Game not tested yet.
Zeebo Extreme: Bóia Cross (Acqua Ride)
Untested
Game not tested yet.
Street Slam (Street Hoop)
Untested
Game not tested yet.
Peggle
Untested
Game not tested yet.
Toy Raid
Untested
Game not tested yet.
Caveman Ninja (Joe & Mac)
Untested
Game not tested yet.
Spinmaster
Untested
Game not tested yet.
Super Burger Time
Untested
Game not tested yet.
Karnov's Revenge (Fighter's History)
Untested
Game not tested yet.
Wizard Fire (Dark Seal II)
Untested
Game not tested yet.
Magical Drop III
Untested
Game not tested yet.
Dark Seal (Gate of Doom)
Untested
Game not tested yet.
Alien Breaker Deluxe
Untested
Game not tested yet.
Zeebo F.C. Foot Camp
Untested
Game not tested yet.
Zeebo F.C. Super League
Untested
Game not tested yet.
Bad Dudes (Bad Dudes Vs. DragonNinja)
Untested
Game not tested yet.
Heavy Barrel
Untested
Game not tested yet.
Disney's All Star Cards
Untested
Game not tested yet.
Iron Sight
Untested
Game not tested yet.
Zeebo Sports Peteca (Zeebo Sports Badminton)
Untested
Game not tested yet.
Zeebo Sports Queimada (Zeebo Sports Quemado)
Untested
Game not tested yet.
Alice in Wonderland: An Adventure Beyond the Mirror (Alice no País das Maravilhas)
Untested
Game not tested yet.
Tork and Kral
Untested
Game not tested yet.
Turma da Mônica em Vamos Brincar nº 1
Untested
Game not tested yet.
Zeeboids
Untested
Game not tested yet.
Z-Wheel
Nope
Not working yet, too many dependencies and effort to get this running for not that much of a gain. Will try to support it later, maybe.

BREW

Name
Status
Notes
Devil May Cry: Dante X Vergil
Nope
Not working yet, almost boots.
Kingdom Hearts V-Cast
Nope
Not working yet, almost boots.

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 ▼



  • KogarashiDS for all the testing, ideas, general support and all understanding as a girlfriend during Infuse development!

  • merryhime for the awesome dynarmic ARM JIT which was a real pleasure to integrate and work with, Infuse would not exist in current form or at least would take much longer to develop without this!


  • ▼ 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
    Screenshot  Screenshot  Screenshot  Screenshot
    Crash Nitro Kart 3D for Zeebo
    Screenshot  Screenshot  Screenshot  Screenshot  Screenshot  Screenshot
    Zeebo Family Pack
    Screenshot  Screenshot  Screenshot  Screenshot
    OpenGL ES BREW demos
    Screenshot  Screenshot  Screenshot  Screenshot

    ➤ 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
    Screenshot  Screenshot  Screenshot

    Zeebo Family Pack
    Screenshot  Screenshot  Screenshot

    ➤ 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
    Screenshot  Screenshot  Screenshot

    Screenshot  Screenshot  Screenshot

    ➤ 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.

    Click to list all projects...