The goal of this project is to build a hardware game console, develop the firmware to emulate the NES processor on an STM32 processor to enable the console to run NES games.

My partner Jeff and I designed and built this project for UCSB ECE153B class. The idea is from Jeff because he is a big fan of NES games, and he always wanted to work on a project like this. For me, even though I am not interested in NES as much as him, the engineering process this project may involve did attract me.

This project is challenging in the following aspects:

  • We need to finish the hardware design in only one week, including system design, components selection, schematic design, and PCB layout design.
  • We must make sure the system doesn’t have any hardware-level mistakes in the version.
  • 24bits Parallel LCD screen is used in this system, which puts another layer of difficulty in ports planning, PCB layout work, and firmware development work.
  • External SDRAM is used, which makes it harder to plan the ports and draw the PCB routes.
  • Developing the firmware to emulate NES CPU and PPU is tedious.

The whole project can be divided into the following phrases:

  • planing the functionalities
  • designing the hardware systems
  • choosing the components
  • designing, manufacturing and assembling the PCBs
  • developing the firmware


Currently, we finished the PCB board design and assembly work. The driver-level firmware has been completed and tested. CPU and PPU are almost finished but still need to solve bugs and proceed more tests. (Updated 07/28/2019)