Peanut-GB, a Playdate port of an open-source Gameboy emulator

I just released my port of Peanut-GB, which is an open source C Gameboy emulator made by deltabeard. I have tried to optimize it as much as I can, but performance is still only around 20-30 fps. This unfortunately means most games will be playing in slow-mo. I don't have any experience developing emulators, so I am limited with how much optimization I can do to the actual emulation code. So if anyone else wants to take a crack at improving performance, that would be great.

The emulator has audio support, save support, and a rom picker. It technically only supports original Gameboy games, so your mileage may vary when trying out roms.


I sideloaded this on my playdate and was able to run the 5 or so gameboy games I tested. Although they weren't playable, (getting under 5fps majority of the time), it was still pretty impressive and cool to see it handling it. Awesome work!

Games tested:
Super Mario Land 2 (somewhat playable)
Intial D (rough)
Galaga 1 + 2 (rough)
Pokemon Blue (locks up at start screen but got to pokemon selection)
Pocket Love (ran ok)
Tomagatchi (rough)

I released a new version which should be much less buggy. Some of the changes I made to the original emulator code seems to have messed a lot of things up, so I reverted everything back to the original Peanut-GB code.

I tried the 1.1 version you uploaded and it does seem to be more accurate and consistent. The framerates and slowdowns aren't ideal atm but those were expected. I was not getting the same graphical glitch anymore in pokemon blue and it booted smoother with about 5+ more fps. Can't wait to see where this goes, gb games look great on the playdate screen

great work
I tested a bunch of GBstudio games on this and all run fine but slow. Also tried From below pocket whitch ran fine if u turned the sounds down.

I am really exited to see this evolve. I would love to use it to pack gbstudio games in a wrapper and see some of those games relesed on the playdate. Gb studio seems both easyer to use and more fluid in gameplay.

What do you think is causing the slowdown? Could it be related to audio processing? Do you get significantly higher frame rates with audio disabled?

It's been a long time since I messed with this project, but I think most of the slowdown was from emulating the Gameboy CPU. There isn't really much I can do to improve that as I have no knowledge of how the Gameboy CPU works or in what ways it could be emulated faster. Disabling the audio does improve the performance slightly, but not really enough to be worth it.