Infuse

From Emulation General Wiki
Jump to navigation Jump to search
Infuse
Developer(s) Tuxality
Latest version N/A (proof-of-concept)
Active Yes
Platform(s) Windows Mobile
Emulates BREW
Website Emulator footage

Infuse is an in-development BREW (including Zeebo) compatibility layer on ARM devices (such as Windows Mobile), and high-level emulator elsewhere.

History

On July 19, 2019, an old private video was released, showing the compatibility layer/emulator could run on Windows Mobile ARM-based devices, using a SHARP EM-ONE S01SH. It would load and execute MOD files using a subsystem of BREW with OpenGL ES support. Tuxality did a simple try to get Kingdom Hearts V-Cast running on non-BREW devices, to no avail. It was also noted the icon for the game was self-made due to the MIF being encrypted.

On October 14, 2020, it was revealed the emulator was being rewritten from scratch to support other platforms, such as x86_64 platforms.

The emulator, which is in early development, is planned to be made open source when the code quality improves enough.

Compatibility

Only a small part of the BREW interface was implemented before the rewrite, with the rest of the APIs being stubs used to allow BREW modules to run. The emulator could only run a hello world demo and the examples from the OpenGL SDK, with Kingdom Hearts V-Cast throwing up the following error:

This application has failed and will now close (Error 1)

Press any key to continue

Since the rewrite, the emulator can produce debug messages in an interface that doubles as a frontend, and, since, January 11th, 2021, fully load helloworld.mod, which prints 'Hello World' using the IDisplay::DrawText API. An OpenGL backend is being written for rendering purposes. It is unsupported due to no interfaces being exposed to it. However, some functions of the exposed AEEHelperFuncs, IShell and IDisplay interfaces are implemented, and the other functions are stubs to get modules to boot.

On January 11th, 2021, it was announced helloworld.mod fully loads. However, it is unable to render text, making it only appear in debug logs. Tuxality gave two further milestones: to render 'Hello World' in helloworld.mod and possibly bring Infuse back to the standards of before the rewrite, including working BREW multithreading, timers and key input and properly loading dependencies and exported classes available to BREW modules via the IShell::CreateInstance API.

As of February 5th, Devil May Cry (BREW + iMicro3D), Crash Bandicoot Nitro Kart 3D (Zeebo) almost run in game, while Asphalt Urban GT 2 3D (BREW), Kingdom Hearts V-Cast (BREW + SWERVE 3D) and Quake (Zeebo) are at a much later stage than the PoC. Despite the progress, Tuxality was thinking about whether to switch to a different ARM emulator or write one due to issues caused by compiling with Thumb interworking enabled; it would otherwise boot. Support for ARM would also be fixed, but it is not considered important right now.