|MegaWiFi cartridge, plugged into a MegaWiFi programmer|
To achieve the WiFi connectivity, I have added an ESP8266 wireless module, and a small UART chip, used as a bridge between the ESP8266 and the parallel port of the 68000 CPU inside the Genesis/Megadrive.
Although adding an ESP8266 to almost everything is usual a trivial task, I took a lot of effort trying to make using this cart as easy as possible. This required:
- Creating the cartridge with the UART and WiFi chip, as described above.
- Creating an USB programmer, capable of both flashing ROMs and uploading firmare blobs to the WiFi chip.
- Writing the bootloader and the firmware for the programmer (both based in the awesome LUFA library).
- Writing a specially crafted firmware for the ESP8266 module, based on esp-open-rtos.
- Writing an API for the Genesis/Megadrive helping to write software on the console using the cart.
- Documenting the thing.
Although not still finished, with this cart you can currently use your Genesis/Megadrive to scan for access points and join them, create TCP sockets, send and receive data through them, generate random numbers, write and read to/from the internal 32 Mbit flash memory of the WiFi module (ideal for DLC contents ;-), synchronize the date/time to NTP servers, etc.
Echo test between a MegaDrive and a PC
I'm also currently writing a WiFi bootloader, to try easing game testing (allowing to upload and flash game ROM through WiFi). I hope this makes the platform attractive enough for developers. So if you like developing for old systems, and are brave enough, give it a try!
And remember: Genesis does what Nintendon't