Context
The goal of this project was to build a hardware game console and develop firmware on an STM32 processor to emulate the NES processor so the console could run NES games.
Jeff originated the idea because he is a big fan of NES games and had always wanted to work on a project like this. Although I am not as interested in NES games as he is, the engineering process involved attracted me.
Engineering Challenges
This project is challenging in the following aspects:
- We needed to finish the hardware design in only one week, including system design, component selection, schematic design, and PCB layout design.
- We had to make sure the system did not have hardware-level mistakes in the first version.
- A 24-bit parallel LCD screen is used in this system, which adds difficulty to port planning, PCB layout work, and firmware development.
- External SDRAM is used, which makes it harder to plan the ports and route the PCB.
- Developing firmware to emulate the NES CPU and PPU is tedious.
Development
The whole project can be divided into the following phases:
- Planning the functionality
- Designing the hardware systems
- Choosing the components
- Designing, manufacturing, and assembling the PCBs
- Developing the firmware




Current Status
Currently, we have finished the PCB board design and assembly work. The driver-level firmware has been completed and tested. The CPU and PPU are almost finished but still need bug fixes and further testing. (Updated 07/28/2019)