Skip to content
/ dkart Public

An open-hardware and software Gameboy flash-cart and hardware peripheral framework

License

Notifications You must be signed in to change notification settings

konsumer/dkart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dkart

An open-hardware and software Gameboy flash-cart and hardware peripheral framework that uses off-the-shelf hardware. The goal is to be ultra-cheap and simple.

logo

quickstart

If you just want to get started, go to releases and grab dkart.gb, and put it on a FAT32-formatted SDCard. Solder together the hardware, plug it in, and startup your gameboy.

Hardware

It's meant to be very cheap & easy to put together. I made a PCB, and you can just solder in a cheap ESP32 board and the SDCard shield, and it should work.

Originally, I designed this as a custom circuit with really low-resource chips, but realized it was much easier and cheaper to just use more modern ready-made stuff.

Eventually I'd like to add an i2c bus that can be triggered/read from gameboy, so users can easily mess with hardware peripherals.

I am still working on the PCB & schematic. You can open hardware/Dkart.json at easyeda.

under consideration

Here are some other ideas I am looking at:

  • STM32F401
  • This board has a SDCard and OLED screen (and wifi/bluetooth)
  • cheap atmega2560 board, works with arduino & has more IO/RAM/CPU, but still not big enough to hold every ROM
  • fast flash mem - I could load the rom & ram into flash temporarily on a lower-end microcontroller, then feed the data to the GB.
  • something like this has a lot of storage (32GB) but might not be fast enough
  • ready-made cart PCB - with a little simple soldering and a big flash chip, I could probly get it all to fit inside a cartridge
  • something like this could be hooked up directly to GB pins, with maybe a little simple mode-management from a micro
  • sdfat can do 3965.11 KB/Sec transfer in dedicated SPI with a slow cad, which should be fast enough
  • better SDCards can go much faster, so make sure to check SD speed (SDFst has a bench sketch)
  • 3d print longer cart to hold more electronics if needed. here are some nice variations. Here is a nice modular design (opnscad - chnage logo, etc)
  • I have a ATxmega128A1 breakout laying around, but it's discontinued at sparkfun. It has 78 IO and 32 MIPS! It only has 128kB of flash memory & 8 kB SRAM, but could be used easily with other things, possibly SD alone is fast enough.
  • look at this ESP32 cart. They have a lot of the same ideas.

Firmware

The firmware runs on the device to emulate ROM/RAM reading/writing data to a microSD card formatted FAT32.

You can also compile it with the included Makefile

Software

A menu runs on the Gameboy to choose the current ROM/RAM. When a ROM is chosen, the gameboy reboots using that ROM/RAM.

To compile, run

make

in the software directory.

dependencies

Make sure you have GBDK, and edit Makefile to have the correct path to GBDK.

Arch Linux

yay -S gbdk rgbds

Ubuntu Linux

First you'll need these:

sudo apt-get -y install make gcc g++ bison flex

Now, run "Make" steps, below.

Other OS

I'm sure you can install them on MacOS, Windows, etc, but I didn't have time to test. If you figure it out, send a PR!

Make

wget https://github.com/gheja/gbdk/archive/master.zip -O gbdk.zip
unzip gbdk.zip
cd gbdk-master
make
sudo make install

cd ..

wget https://github.com/rednex/rgbds/archive/master.zip -O rgbds.zip
unzip rgbds.zip
cd rgbds-master
make
sudo make install

TODO

  • Actually Implement MBC1
  • Get SD-loading working (on boot load into RAM from SD while playing logo)
  • Get menu working (get list of ROMs from firmware, on menu selection, set mem, load on reboot & clear mem)
  • Implement MBC5
  • Replace Nintendo logo with mine
  • add extra IO-functionality, reading/writing to a specific memory location to turn on "I/O mode" and be able to interface with other peripherals
  • Add support for sub-directories

License

  • Hardware is licensed CC-BY-SA
  • Firmware & Software is licensed GPLv3

Thanks

About

An open-hardware and software Gameboy flash-cart and hardware peripheral framework

Resources

License

Stars

Watchers

Forks

Packages

No packages published