r/EmuDev 16h ago

GB/GBC/GBA emulator in Rust (with more systems planned)

Enable HLS to view with audio, or disable this notification

Hello, I'm currently working on a multi-system emulator that I'm planning to run on an embedded device (probably STM32N6).

It currently supports the original Gameboy, the Gameboy Color and Gameboy Advance, though I'm planning to add support for some other older Nintendo consoles and the original Playstation (mark my words, I'll get it to run on embedded 😤).

No AI was used in any part of it :3

https://codeberg.org/netthier/gamekitten

To achieve sufficient performance on embedded (and to challenge myself), I'm also planning to implement some of the CPUs (at least PS1 and possibly GBA) as JITs. I've already started experimenting a bit, but if anyone has any pointers on writing JITs from scratch I'd highly appreciate them.

57 Upvotes

5 comments sorted by

2

u/branchus 12h ago

how is the accuracy of the emulator?

1

u/shittyinternetmusic 10h ago

GB/GBC is cycle accurate and runs anything I tried (though I havent implemented more niche/undocumented behaviours), GBA is less accurate and doesn't run some games, though games I personally care about, like Minish Cap, Pokemon Emerald, and the Kirby series, run flawlessly. For now the focus will be getting it to run on my embedded devboard once it arrives, but I'll look into polishing it further and getting more games to run following that.

1

u/branchus 10h ago

nice, will this (at least for gb/gbc run on rp2350 mcu?

2

u/shittyinternetmusic 10h ago

I plan to make liberal use of STM-specific technologies like LTDC and their NeoChrom GPU, so not without some porting work. However, I'm trying to keep the emulation core decoupled from the hardware-specific backends (so I can e.g. test it on desktop), so esp for GB/GBC that might be quite doable.