[Tool]Gameboy Emulator

There is indeed.
You can set the time on the loader screen (pressing C when a program starts up).

I would expect there is one, but I’d have no clue how to use it.

I have not written it in PokittoLib yet, but there are sleep and deepsleep modes for the MCU. Audio amp can be disabled and LCD shut down. RTC clock runs even in deep sleep. Of the top of my head I would estimate that Pokitto probably could sleep for a year and then automatically wake up.


I know a lot of people would love to see a tamagotchi clone on a decent hardware like pokitto. As i am in a collectors group in germany for many years now, i know fans do a lot of crazy things to even get their hands on every japanese version. If we had a tamagotchi game with some interesting mechanics such as some character development stages and a few different backgrounds, maybe some die hard fans would buy a pokitto only for this😉



If we can have a “sleep until timestamp is attained” feature that’d do it perfectly. The beast software would then have to calculate some timestamps around where it expects the beast itself to have some needs taken care of. After which it’ll could enable the audio amp, emit some cute sound or anything.

RTC would be great for day/night cycle, + seasons too if needed.


I just made an update to the Gameboy emulator: it now has experimental support for savestates.
I got tired of starting over every time in some of the longer games.

When you drop a ROM into the converter you’ll get a zip with a bin and a blank save file.
Extract both of them to your SD card.
When you want to save, press and hold A then C.
To load, press and hold B then C.
Careful not to mix them up, there’s only one save “slot” per game.

@jonne: I think I found a bug… looks like fileWriteBytes is broken, and it’s not just because of the & that isn’t supposed to be there. I kept getting gibberish until I started writing just one byte at a time.


Is that the same as the if (m_Status & STA_PROTECT) issue?

No, this is in PokittoDisk.cpp:

void fileWriteBytes(uint8_t * b, uint16_t n) {
    PFFS::WORD bw;
    PFFS::pf_write((const void*)&b, n, &bw);
    PFFS::pf_write(0, 0, &bw);

Instead of passing a pointer to the data it has to write, it passes a pointer to pointer.
When the &b is changed to b, it correctly writes the first byte in the buffer and the remaining bytes are gibberish.

If there’s only 1 save per game wouldn’t it be simpler to have a auto-load state if a state is found instead of having a button combo to load?

But then how would you chose to not auto-load?
Have a button combo to reset without loading?

You wouldn’t have a way to give up and start over.
Also, every time you decide you want to go back to the last save, you’d have to reset the Pokitto.

1 Like

If you wanted to start over I would say just have a button combo to delete the state and reset. That way you are sure to not accidently save a state when you wanted to load. So the user would know that doing a combo will just delete the state.

Just less confusing to me. Maybe it’s just me.

Quick question, does the emulator support real saves or the only way is to save thru savestates?

Any plans to make it support more mappers?

Either way, doing the wrong combo kills your save and leaves you somewhere you don’t want to be (either the beginning of the game or a “game over” screen).
I think the best way to do this is to load by using just one thumb to press B+C. One thumb loads, two thumbs to save.

The only way is savestates. Most of the supported games don’t support real saves, so it wouldn’t be of much use.

Only if there are games for other mappers that would actually fit in the Pokitto’s flash. The maximum supported ROM size is 128kb. The next GB cart size is 256kb, which doesn’t fit as it leaves no room for the emulator itself.


Ok… That must be why even though BombJack did converted with your converter… All I get when running it is gfx garbage? Or that could be something else? It’s 225k …

No, that’s a bug. BombJack was working in a much earlier build. Still haven’t had a chance to figure out what happened to it.

1 Like

I’ve just realised, the Gameboy had 8 buttons and the Pokitto has 7.

How are start and select being handled?

C is start.
The flash button in the back, below reset, is select.
I keep meaning to send a PR with that as button D.

I just pushed another update. This should fix the PD games @jonne asked about earlier, Motocross Maniacs, Bomb Jack… and probably a bunch of other ROMs that crashed with a white screen.
I’d also expect a slight speedup in a few games.

Bomb Jack has an unrelated bug: for some reason he doesn’t jump as high, making one of the levels impossible to beat.

Edit: I just checked, there’s about 20-30 games with mapper 3 that would fit in flash, but most are Japanese.


Really? I thought I was able to jump to the top of the screen from the ground level…

Anyway thanks for the fixes!

1 Like

He’s supposed to jump that high, for some reason he doesn’t. No idea why. :thinking:

There’s no bug at all. you can jump to the top of the screen, you just need to hold UP when you jump :wink:

Damn i love this game… an unofficial port of that game would be great. Too bad sound isn’t emulated this one has some nice tracks as well.

1 Like