Skip to main content
  1. Selected work/

NES Emulator

This is a functional NES emulator developed entirely in C for the Minix 3 OS as part of a computer laboratory course. It was required building custom device drivers from the ground up, which serve as the foundation for the emulator’s hardware interactions.

Architecture
#

The emulator includes essential device drivers for:

  • Timer and real-time clock management
  • Keyboard and mouse input handling
  • Graphics rendering pipeline
  • Serial port communication

Features
#

  • Full CPU and PPU emulation with accurate instruction execution
  • Automatic cartridge detection and ROM mapping
  • Support for standard NES file formats (.nes with iNES headers)
  • Real controller support via wireless connection through an ESP8266 bridge
  • Flexible display options with multiple resolutions and scaling
  • Optimized ROM loading and unloading performance

Technical Notes
#

This project was developed in a course context using a specific Minix configuration. The complete environment setup and source code are available in the repository for those interested in learning how low-level OS components interact with application software.

This project is for educational purposes only. We do not support or encourage software piracy.

To see more details and code, visit the repository on GitHub.