CrankBoy offers stable, full-speed Game Boy emulation on the Playdate

crank boy.png

CrankBoy is a Game Boy emulator for Playdate based on based on the Peanut-GB emulator by deltabeard. It was recently released as a stable v1.0, and has since received a couple of updates. Its current features and limitations are as follows:

Features
  • Stable, full-speed Game Boy emulation (on both Rev A and Rev B devices)
  • You can download cover art for your library from within CrankBoy.
  • Cartridge data saves automatically.
  • 44.1 kHz audio
  • Multiple save state slots per game.
  • Settings to fine-tune performance, visual appearance, and crank controls
  • Support for softpatching .bps, .ips & .ups patch files. Instead of making a bunch of copies of a ROM for all the different ROM hacks you'd like to apply to it, you can use a single clean ROM and several patch files, each of which you can toggle from the settings. Instructions below.
  • Conveniently browse and download ROM hacks directly from within CrankBoy.
  • ROMs can access Playdate features via IO registers and are also scriptable with Lua or with C -- you can add native crank controls to a game if you have the technical know-how.
  • Can be installed in "bundle" mode, containing just a single ROM. This lets you have your ROM(s) visible directly from the Playdate menu, instead of having to open the emulator. You can also release your own Game Boy ROM as a Playdate game this way. See "Bundle Mode," below.
Limitations
  • Currently, Game Boy Color games are not supported in general. However, many Game Boy Color games are able to run on the DMG (original Game Boy) -- CrankBoy should be able to play those games fine.
  • Some DMG games don't work correctly. Please report any broken games.
  • Audio is not accurate to sub-frame precision, so audio clips (like in Pokémon Yellow or The Chessmaster) will be unrecognizable or silent.
  • Link Cable is not supported.
  • The Playdate's screen cannot fully refresh at a consistent 60 frames per second. CrankBoy has a variety of options to work around this. By default, the display will only update at 30 Hz (though the game will still run at full speed). It's quite hard to notice the difference on the Playdate screen. Games which don't have scrolling backgrounds should be able to run at 60 fps just fine, though you'll need to enable that in the options. 60 fps interlaced is also possible.
  • Although CrankBoy will notify you if an update is available, updates are not currently downloaded automatically. CrankBoy checks if one is available at most once per day, and this behaviour can be disabled by revoking network privileges from the Playdate's native settings menu.
  • CrankBoy is not 100% stable. It's recommended that you make back-ups of your save files now and then.

On Bluesky, @deeb.bsky.social has shared a video of the emulator in action. You can find more about CrankBoy via its official GitHub repo linked below.

:arrow: CrankBoy GitHub repo
 
Too bad the price of the Playdate is way too expensive for what it offers.

Yeah that's a problem with a lot of so called "Retro" stuff even if this not really retro.

Good thing I got my Vita before the pandemic.

A 2DS or a DS is still not that expensive around here, A PS2 Fat is getting pricey due to the HD and better speed to load games from an external device, the problem with a Wii nowadays is mostly finding one that's not broken.

But a Gameboy? Gameboy Color? Way too expensive for what they offer.

Even a smartphone from a decade ago can run Gameboy and GBC games with no problems.

Gameboy and Gameboy Color flashcards are ridiculous expensive.

I tend to run Gameboy and GBC games on my old 2DS nowadays.

Sure is not the same, but is almost like running the games on a GBA, only you have a backlight, can see things bigger (something you do need for any text heavy game) and you have save states. And you can even pick if you want all green, grayscale, coloring and even pick between GBC and Super Gameboy colors.
 
I'm not sold on a PlayDate at $230 USD, but it looks like it handles Game Boy games pretty well. I liked the added feature of moving UI elements in certain games to the side.

Kudos to the dev.
 
  • Like
Reactions: Tipi
But does it use the crank?
no but it's possible to mod games to support it :)

ROMs can access Playdate features via IO registers and are also scriptable with Lua or with C -- you can add native crank controls to a game if you have the technical know-how.
so, we could crank it up to restore the hp of your pokemon or something :D
 
Ok this is neat. Not that im getting one though anytime soon.

Yeah the only crank game I had was a stupid portable fishing game that costs 20 bucks. Granted it was 90s twenty bucks so like 50 in todays money but it was still way cheaper than the Playdate.
 
Last edited by raxadian,
  • Like
Reactions: handy333
Ok this is neat. Not that im getting one though anytime soon.
I do think the crank functionality is a unique idea. It helps differentiate the PlayDate from similar Game Boy-shaped handhelds, but the feedback has been underwhelming. People are saying the included games are closer to tech demos than fully fleshed out products. Because of its size, I don't think I'd consider one, but I'd like to hear from PlayDate owners to know what it's like.

With all these niche handhelds (MANGMI AIR X, Retroid, AYN, etc.), it makes me wonder if the handheld market may be coming back. Of course, I think the smartphone mobile market will always have the lion's share.
 
Yeah that's a problem with a lot of so called "Retro" stuff even if this not really retro.

Good thing I got my Vita before the pandemic.

A 2DS or a DS is still not that expensive around here, A PS2 Fat is getting pricey due to the HD and better speed to load games from an external device, the problem with a Wii nowadays is mostly finding one that's not broken.

But a Gameboy? Gameboy Color? Way too expensive for what they offer.

Even a smartphone from a decade ago can run Gameboy and GBC games with no problems.

Gameboy and Gameboy Color flashcards are ridiculous expensive.

I tend to run Gameboy and GBC games on my old 2DS nowadays.

Sure is not the same, but is almost like running the games on a GBA, only you have a backlight, can see things bigger (something you do need for any text heavy game) and you have save states. And you can even pick if you want all green, grayscale, coloring and even pick between GBC and Super Gameboy colors.

For Gameboy up and including GBA you can get a cheap R36S clone (got mine for 20 euros) from aliexpress. The screen its great for the price and it feels like a Gameboy, thanks to the form factor and weight.
 
Making a Gameboy emulator is not that hard, Modern Vintage Gamer kind of explains how to make one in one of his videos.

Having made my own Game Boy (+ Color, if enabled) emulator that runs on variety of systems (originally for Playdate, but ported to RP2040 as well), I can tell you, that the Playdate is really crippled by the lack of APIs for updating the screen.

Basically, you have no threads*, the display update function runs synchronusly for absolutely no good reason, the devs don't want to change that, so you're stuck with moderately powerful hardware that spends (from what I remember) 1/5ths time (sounds a bit too low to be right, it is definitely much worse) at OS level, drawing the screen, hence you can't run at 60FPS**.

* Funnily enough, the audio callback seems to be fully asynchronous, but the system really hates when you block the callback for too long, so don't try to abuse it as a thread :P

** It does actually run even higher than 60FPS, but the SPI speed is limited to full refresh at 50Hz (and even THAT is well over the max spec of the screen!), and the OS issues limit your max FPS. I should not go into much detail, but 30FPS full redraw is your best bet. Sadly 60FPS interlaced (at the time someone tried my emulator for me a few years ago, as I don't own a Playdate due to its exorbitant AND RISING prices) is barely faster than trying to smash 60FPS un-interlaced, due to how jank the display driver is at the OS-level :/

Especially with upscaling! The vertical upscale ratio is not only nasty 15/9, but filling up the screen kills your framerate budget!
Now I hope that starts to put into picture how non-trivial this port is :)

Edit: the on-device profiler says, that the OS spends 98% of CPU time budget, which would actually make sense in hindsight, because I get *lots* of frames when not sending the image to the screen (but still rendering it! just not calling the API to send the framebuffer to the physical screen), although I definitely don't remember it being this extreme...
 
Last edited by Sono,
Too bad the price of the Playdate is way too expensive for what it offers.
I would even be willing to pay it because it's a unique experience and I like that.
Plus the community and exclusive games are nothing short of amazing.

However what's pulling be back for years at this point is the lack of a backlit screen.
Everything I bought within the last 5 years (including too many handhelds) offers a lit screen.
I modded my DMG and GBC for this very reason: To give them a lit screen.
Why would I buy a device that I have to play in front of a light like a kid in the 90's when this is the only thing that sucked about handhelds in the 90's?

And if they do a hardware revision to introduce a backlit screen anyway, they should also increase the internal memory. 4 GB may sound like plenty for such small games but they quickly add up. And honestly who even produces such small eMMCs these days? Complete waste of ressources imho.

Backlit screen + 64 (at least 32) gb storage and I'm more than willing to pay anything up to 250 $.

Making a Gameboy emulator is not that hard, Modern Vintage Gamer kind of explains how to make one in one of his videos.
It is if the hardware you're doing it on is limited (on purpose). There are two other GB emulators and they suck. This is the first one that achieved full speed.
 
  • Like
Reactions: raxadian

Site & Scene News

Popular threads in this forum