Gameboy Emulator Test - Dr. Mario
I've decided to leave this up until I finish a working version. Instructions on ROM importing below.
Z => B
X => A
Space => Start
C => Select
Arrows => Directional Pad
The frameskip counter gives you a kind of idea how fast the game is running. (whenever it changes, that's one frame. A frame is drawn every time it's at 0)
You can convert your roms here:
Choose your rom with the file selector input and copy the output into a text file, save it and follow the instructions in the project. I'm working to make this easier.
Dr. Mario has a problem where the game ceases functioning when the game starts (fails to generate level), so only the menus and demo work. Wait a little while for the demo to start to see the game functioning. (sprites and bg tiles perfectly emulated)
Q: Does it run Pokemon yet?
Q: Why only today?
A: No games currently work correctly and this is just proof of concept. I'll release it forever when I get games working, emulate the WINDOW layer on the LCD and emulate MBCs.
Q: Why is it so slow?
A: Graphics emulation is incredibly optimised and pretty fast, but CPU emulation takes a lot of time, especially when interrupts are not used. This can be pinned down to excessive processing per cycle in the timing emulation (vblank, interrupt polling and timer).
Q: Why does the game freeze upon starting the game?
A: There's a CPU bug that I haven't tracked down yet that breaks this and Adjustris.
Q: How do I run other games?
A: Make a program to convert your rom binary into a sequence of numbers that can be read by scratch as a list, and import it.
Q: What types of games run?
A: Only games that are 32kb in size work currently. No MBCs (memory bank controllers) are emulated at this time, so games with battery saves, multiple ROM banks and external RAM (eg pokemon) will not run.
Q: Sound emulation, is it possible?
A: Yes, entirely. It might be painful to listen to though.