Arduino Gameboy Cartridge?


(Cody) #1

So I while back some mad lad was hacking up a way to play Arduboy games on a nes and I thought “wow”… But I also thought “Hey! Couldn’t you do that for Gameboy?”. So yeah… Can we?


(Pharap) #2

Theoretically yes, it should be possible.

The screen resolution is suitable (160x144), and the average Gameboy cartridge has more memory than the Arduboy has progmem.

The only possible issue is the Gameboy’s CPU speed.


(Cody) #3

Why? Is it because it slower/faster?


(Pharap) #4

The Gameboy’s CPU is roughly 4 times slower,
and it uses a different instruction set and has fewer registers.


#5

The Gameboy doesn’t need to emulate the Arduboy. It just needs to read out a dual port display ram and display it like the NES version.
There’s one big disadvantage though and thats that the Gameboy LCD is very slow. Maybe run it on a Super Gameboy ?


(Scott R) #6

You could probably make a Arduino in a GBA cart that’s powered from the cart port and handle the buttons and screen over multiboot.

Or alternatively just do it in software and port the games


(Pharap) #7

I was thinking of recompiling the Arduboy code so it runs on a Gameboy,
but if you’re happy to stuff a 32u4 into the cartridge then yeah,
it only has to be fast enough to update the screen.


(Shawn) #8

It’ll probably be much easier like you suggest to write a dynamic recompiler to port arduboy games to a gameboy rom that can be played on any flashcart over trying to shoehorn an atmega32u4 inside a card to “emulate” a gb cart (of which lack of I/O without a serial port expander and limited ram will likely be an issue).


(Kevin) #9

The closest we have seen is @uxe drove the DMG LCD screen directly:

@uxe also developed a cart for the NES, which actually runs on the full hardware.

If someone designed up a GBA cart that could run Arduboy games on the DMG I would do my best to get some produced.


#10

I am that mad lad :crazy_face:

I did put a lot of thought into solving the problem of doing the same thing for the GameBoy - and counter-intuitively, it is actually more straight-forward to turn the Arduboy screen buffer into NES tiles and display them on screen, than it would be to turn the Arduboy screen buffer into GameBoy tiles to do the same.

Somebody did actually get Wolfenstein 3D running on a Cortex-M0+ microcontroller-on-a-cartridge, outputting the display buffer to a GameBoy Color:

http://www.happydaze.se/wolf/

GBA would actually be much easier to do, because there is a bitmap mode (so no need to worry about constructing tiles):

http://problemkaputt.de/gbatek.htm#lcdvrambitmapbgmodes

Careful, I may hold you to that! :wink: Seriously, if there is real interest and possibility of it going somewhere, all it would take is a small FPGA + a 32u4 on a GBA cart, and some time to develop the firmware…


(Cody) #11

Would a Gameboy Color/Colour work?


(Kevin) #12

Are there any flash carts out there that would otherwise let you program C++ on the board natively with a usb port?

I think with an external flash memory chip, and if you also had the ability to use a mode where you could address the entire screen and bit depth… potentially also access the GBA sound hardware?


#13

…there’s NESmaker, but the idea there is “No coding required”:


(Kevin) #14

We could do a scratch plugin too. This is interesting. How cheap are fpga?


(Cody) #15

Would a GBA work? It has a better processor.


#16

~$4 USD

…to clarify / expand on what I said above - NES Character RAM is on the cartridge, which makes it easy to substitute dual-port RAM in its place and ‘insert’ the screen buffer from the outside! GameBoy’s Character RAM is not on the cartridge… which adds an extra layer of complexity :frowning_face:


(Cody) #17

Could you make a custom cartridge?


(Kevin) #18

If there isn’t anything like this on the market, where you can plug a USB cable into a gameboy cartridge, I would say that it’s probably better to just focus on creating that to be the best product it can be, and just making arduboy compatibility high on the list of features.


#19

Yes, we can. Yes, I will. Stay tuned… :wink:


(Scott R) #20

If you’re intending to include an FPGA you could integrate the functionality of a Charmed Labs Xport to appeal to the robotics market also.

Fun fact: the fist time I ever used a soldering Iron in my life was to make the GBA keyboard from an Ericsson chat pad.