WIFI Game Boy Cartridge

ESP32 emulating to be a cartridge

Similar projects worth following
Using the Game Boy as a remote control is a childhood dream of mine. Having it connected to the web was later on on the top of the list of things I wanted to have for this sweet machine. So that's what I'am aiming at: control stuff over the web with a Game Boy.

Or may be war driving with a Game Boy, controlling MQTT stuff and browsing - depending how far I get.

The current design Iteration requires one ESP32 and 3 74LVC8T245 lvl converters, slapped on a sweet purple board that I will order, once I've breadboarded a working prototype.

Where do I place licenses? Do I need to copy all of them together?

plain - 1.03 kB - 04/26/2017 at 18:25


View file

  • 1 × ESP32 module
  • 3 × 74LVC8T245 Logic ICs / Receivers, Transceivers

  • what a week - no end in sight

    davedarko04/22/2017 at 19:37 3 comments

    The whole week was filled with work - taking support calls, fixing bugs, meetings and more support calls. In between all that we tried to develop the important stuff. Yesterday, after work, I prepared my room for some dry wall construction ,to close the window between my room and the kitchen. Today I was mainly helping my father to build up the dry wall. The next few days I will be painting, letting it dry, glue on wallpaper, letting it dry, putting paint on the wallpaper and letting it dry as well. To make the Wohngemeinschaft great again. My bed is right next to the wall, before the wall I was awake when my roommate was. I need to fix up the light switch as well - I see a Wemos D1 mini soon hanging there too :)

    Anyways. Back to the project - I received all the parts to get prototyping started and I'm excited to begin, as soon as I can possibly do, but not today - I'm tired. Funding looks great, e-begging works :D

  • getting closer to a layout

    davedarko04/19/2017 at 20:54 0 comments

    I was able to drop a 74LVC8T245 level converter and connect the address pins. A15 on the Game Boy is basically the "chip select" for the ROM / cartridge, when pulled down, since the address space of the 32kb is 0x0000 to 0x7FFF. SO I use that for the output enable pin on the lvl converter.

    The Game Boy write pin will define the direction of the data pins lvl converter. The address lines will be pulled low, meaning the direction is always B->A. I use the pin that was previously the A15 pin to tell the ESP the direction of the communication.

    A0-A3 are connected to input only pins of the ESP. Not unlike the ESP12F there are some pins that are connected to the SPI flash on the module and shall not be connected otherwise.

    So far I only have the RX and TX pin free, but I consider to have the RST line on a transistor - maybe I need to hold the game boy in a reset state for a while, for the ESP32 to boot up and set all pins.

    Not on the picture is the current power supply. I'm a bit worried about the two AAA / LR03 batteries in my Game Boy pocket, they're not that powerful in general and with the LED backlight it's not better. Drawing from the 5V switch mode to convert to up to 250mA will be a challenge. I might need to add a LiPo and/or some tantalum capacitors to make it work.

  • stuff ordered

    davedarko04/19/2017 at 07:44 0 comments

    so before I make a PCB and order it for a lot of money (that's almost true, I have a coupon), I thought I buy parts for a lot of money, but hey - there's more money to collect now [].

    Some almost breadboard friendly 74LVC8T245 were ordered, although they have their pinheaders upside down. []

    I have an ESP32 basic adapter board (dual row headers, no power converting), but I'll wait on the breadboard adapter I've ordered, with all the bells and whistles. (full disclosure, I wrote balls the first time)

    With that the 20bugs on that project are almost spend :) but it's good to have it. There are also two #Hornbill in the making, but they arrive much later.

  • esp32 acting as cartridge

    davedarko04/18/2017 at 14:46 2 comments

    i would need 4 SN74LVC245

    - 2 for the 16bit address port

    - 1 for the controls

    - 1 for data, where the direction could be controlled by the read/write pins

  • PINs and timings

    davedarko04/13/2017 at 12:39 2 comments

    there are still some issues left to solve on my #Game Boy Cartridge plus Programmer project, that I want to solve this weekend [proud moment]. After that I will pin down the hardware. maybe an atmega32 would be an option as well for the "SRAM" part, but a faster atsamd21 seems more reasonable.

    this tells me I should be safe with an ESP12 as an MBC1 controller. I need 8 pins for the cartridge and 3 for SPI to control the AVR. I don't need the data pins to be connected, I can use the AVR for that.

    The next thing would be the SRAM. This will be handled by an ATSAMD21 / adafruit feather M0 (logger) board. It has 20 pins available, so I won't be able to fake an 8k SRAM. That would take 13 pins for address, 8 data and 3 control pins. Since I also need to connect SPI, I have 17 pins left. I need 11 pins for data and control, that makes 64 bytes fake SRAM.

    Maybe I can use the ESP to make the AVR read the data pins and switch banks via SPI later.

  • looking for parts etc.

    davedarko04/02/2017 at 21:02 0 comments

    Starting from my #Game Boy Cartridge plus Programmer designs, I tried to add some parts and lay them out, to get a feeling for it. I still need power conversion and am thinking about adding a separate power source for the ESP side.

    To Recap the Idea:

    - the ESP12 will behave like a Memory Bank Controller (MBC) that handles the bus traffic, meaning who is asked for and who will talk (I still hope I have enough pins left)

    - the AVR (AT90USB1287) will be connected via SPI to the ESP12 if it is to slow, I could just ask it twice or three times for the value to make sure I have the right data

    - the ESP would know that the AVR has to be enabled, instead of the EEPROM, so it needs to be able to enable or disable them

    - I need some level-shifting on the board from 3.3V to 5V and the ESP is quite power hungry, so maybe I'll add lots of caps or another battery

View all 6 project logs

Enjoy this project?



zakqwy wrote 6 days ago point

Gameboy war driving sounds really awesome. Great project! I haven't played around with the esp32 nearly as much as many others on this site, but I agree with your assessment that power consumption may be a concern. Definitely a good application for a lipo retrofit, maybe there's an existing design out there for the GBP so you can focus on the cartridge?

  Are you sure? yes | no

davedarko wrote 6 days ago point

thank you for reading the logs and the kind words :) for now I will probably breadboard something together and work from USB power or an external power supply. Maybe a ton of caps can help, I've seen some designs that actually work with a coin cell, given some 1000uF tantals. But yes, the focus is full on the cartridge.

  Are you sure? yes | no

coletonn wrote 7 days ago point

Oh crap this is really cool. Ever thought of making a cloud rom storage? So connecting the cartridge to a site, then remotely transferring it to the cartridge. Connecting it the cloud and then pushing a button would save the state and upload it. 

  Are you sure? yes | no

davedarko wrote 7 days ago point

I'm still at the "oh crap, I have no idea what I'm doing" stage :)

Right now I'm thinking war driving with a Game Boy, controlling MQTT stuff and browsing  - that kind of stuff. But I will probably start with faking to be the hackaday cartridge I've build in #Game Boy Cartridge plus Programmer project.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates