This project was built as a collaborative work by Marco Cutecchia and Edoardo Marangoni for the course "Progettazione di Sistemi Operativi" at UNIMI.
A project that aims to recreate a GameBoy by running an emulator on a STM32 board.
This is a port of an emulator to the STM32F411CEU6 microcontroller with the output sent to an ILI9341 display and taking inputs from a GameBoy Zero input PCB. Game ROMs are read from a microSD card on the side of the console. The whole console is powered by 3 AA batteries with a simple SPDT switch on the top.
The performances depend on the game: some simple ones such as Tetris easily manage over 55fps, while other games like Super Mario Land 2 are closer to 20fps. If you're interested in building something similar I would suggest you use a more powerful microcontroller.
A more detailed report(in Italian only) on the challenges of building this project can be found in Docs/Report/report.pdf.
Full wiring connections can be inferred from the following header file: Core/Inc/config.h.
The emulator we have ported to the board is peanutGB.
The FAT32 implementation comes from FATFS.
The microSD card driver comes from cubeide-sd-card.