A complete Game Boy (DMG) and Game Boy Color emulator core, packaged as an Objo plugin by @madru. One small portable assembly contains the CPU, memory banking (including the MBC3 real-time clock), graphics, timer and sound hardware, with no native binaries to install: the same package runs identically on macOS, Windows and Linux, in desktop, command line, web and worker projects.
Highlights
- The whole console, one class. Everything is exposed through
Madru.GameBoy.GameBoyCore: load a ROM, run a frame, read the screen as aPicture, stream the frame's sound, save and load states, and read or write emulated memory live. - Game Boy Color support. Colour games run in full colour; original cartridges can be colourised with the Game Boy Color's twelve built-in palettes, chosen automatically by title or by hand.
- Sound on every platform.
TakeSamples()returns each frame's audio in the exact format of Objo's AudioOutput API, so a few lines of code give you sound on macOS, Windows and Linux. On macOS the core can also play directly through the system. - Tools welcome. Game Genie style ROM patches, GameShark style RAM writes, a full 64 KB memory snapshot you can search, and battery-backed cartridge RAM for in-game saves.
- Sharp scaling built in.
SetPixelScale()renders each Game Boy pixel as a crisp NxN block with no smoothing filter, so the screen stays pixel-perfect at any window size.
Using it in code
Var core As New Madru.GameBoy.GameBoyCore()
core.LoadRom(romData)
core.RunFrame()
Var screen As Picture = core.FramePicture()
For a complete reference implementation, see the Game Boy app in this showcase: its entire front end is ordinary Objo source talking to this plugin.
Requirements
- Objo Studio 26.10.1 or newer, which covers both plugin support and the
AudioOutputsound API. - The plugin is MIT licensed; the licence file ships inside the package.
Getting started
Download the .objopackage below, import it into Studio's Plugin Library, then select it in a project and call the API from ordinary Objo code. The Using Plugins guide covers installation, side-by-side versions and updating projects.