Playboy - A Nintendo Gameboy emulator for Playdate

Hello!

I thought this might be the place to put out my Nintendo Gameboy emulator for Playdate - it lets you play titles like Tetris, Super Mario Land, and The Legend of Zelda on the go!

It's playable right now, and supports on-Playdate save files, so you can continue your game any time you like. It plays .gb files straight off the Playdate's storage, so you can run any game you like (provided it's compatible of course :sweat_smile:)

It's available here

Please let me know if you check it out! I'm particularly interested in real hardware now that Group 1 is shipping. Since I'm in Group 2 I'm not sure how well it performs on a real device.

tetris

22 Likes

Why did I feel like this was gonna be inevitable? Very cool nonetheless.

1 Like

Haha yep, it had to be.
I mean, another portable game console designed to play black and white games? :smile:

2 Likes

Well going from 3 or 4 shades of grey to literally just black and white couldn't have been that easy. So, kudos!

1 Like

Sound is available?.

Sound is something I am working on right now - it's not available at the moment.

The emulator supports it, but I haven't hooked it up to Playdate's speakers/sound output API

3 Likes

An open GB-style sound driver would be awesome.

1 Like

Heyyy that's not a bad idea!

All the code is there for running the 4 sound/wave channels on the Gameboy.

Maybe I'll see about exposing it to Lua as another project... :thinking:

I was hoping for something like portable C code.

Playboy is an usual Playdate project in that it’s written in Rust. Though I might be able to do something like expose methods to C via FFI

1 Like

@dustin has made an original GB emulator written in C.

1 Like

Really excited to try this out! I am going through the whole forum downloading what people have released and hoping to provide feedback for all now that I have my PlayDate!

2 Likes

Hey folks!

I've been working on this project quite a bit today. I'm now able to provide you with a .pdx file you can just double-click and run in Playdate Simulator!

The emulator now loads games off your Playdate's storage - and doesn't come with any bundled in it - so there are no legal issues with me handing it out.

I've also added new art + home screen graphics :smile:

There are steps for how to set up/run everything, which are hopefully decently clear, though of course I can try to help if it doesn't work for you.

Cool, I hadn't considered using Rust!

Few issues I'm seeing at the moment:

  1. I'm not able to load the latest build in the simulator on my M1 Mac. I suspect the pdx is built for Intel? Or perhaps for a different system completely?

  2. On device I find I'm getting <1fps. Do you have a device to test on? The Simulator does not simulate device CPU.

Very cool though!

Hey dustin!

I loved your Gamekid thread on Twitter :slight_smile:

  • I suspect you’re right. I have an Intel Mac and don’t have any Apple Silicon around to test at the moment. If you are willing to fiddle around with compiling from source I imagine you could get it going. There are some docs here (the part about roms is out of date but the overall steps are still fine)

  • I don’t have hardware, so I’ve just been getting things ‘working’ and done some quick and dirty code wrt rendering and the like. I’m sure there are some easy quick wins in there that I might look into this weekend

Thanks for trying it out!

Out of interest, how did you get your rom onto a physical Playdate?

Through the Simulator you can boot the device to the Data folder and it shows up as an external drive.

1 Like

Um. Nintendo will sue you. Just a warning!

I've uploaded a new release to GitHub which replaces my very sloppy drawing code with directly mutating the frame buffer, which I'm hoping will be a lot faster.

That said, without profiling a real device I'm not sure whether the emulation itself is fast enough yet. It should be at least a bit better though :smile:

2 Likes

I've got the newest version on hardware and am having trouble getting it to recognize an on-device .rom. I don't have a me.overflo.playboy folder, it's user.3388.playboy, but it's the folder that contains the "Game ROM goes here" file.

Ah yeah, I've noticed with other folks who've tried it that the Sideloading tool for real devices seems to rename the folder for some reason.

It should still work as long as you put it in there alongside Game ROM goes here, and you make sure the file is called rom.gb exactly.

1 Like