konsumer / dkart

An open-hardware and software Gameboy flash-cart and hardware peripheral framework
MIT License
28 stars 2 forks source link

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:

Firmware

The firmware runs on the device to emulate ROM/RAM reading/writing data to a microSD card formatted FAT16/FAT32/ExFat. The firmware is meant to be compiled in Arduino IDE. If you open serial-monitor when it's running, you'll see some debugging output. On Arch Linux, I had to use arduino-PR-beta1.9-BUILD-117 for serial-monitor to work, due to some java error.

Files should all be in the root of the SDCard. The fRAM-size is 128K so you may hit limits if you have a ton of ROM files on the SD (limit should be around 8,737.) The file-list uses ROM-header-title, so if you have a bunch of the same ROM file-named differently, it will work, but in the ROM-list they will all have the same name. You can use this trick to have different copies of the same ROM with separate RAM files (like 1-per-song for nanoloop, for example.)

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.

You can read more about it in software.

TODO

License

Thanks