An NES emulator codded intirely on C using device drivers developed in for LCOM@FEUP
Welcome to the NES Emulator! This project aims to provide a emulator for the Nintendo Entertainment System (NES) written from the ground up to be portable and easily connected to any device drivers, be it Linux, Windows or even Minix, allowing users to play classic NES games on modern hardware.
- Accurate emulation of NES CPU, PPU, cartidge loading, mapping and contoller connection.
- Support for the popular NES file formats (.nes) with iNES headers.
- Serial connection to real controller through a ESP8266 being used as a bridge.
- Various resolutions and scalling.
- Very fast loading and unloading of games.
At this time this repo only runs on the Minix image developed for the LCOM subject at FEUP, you can download said image Here.
From releases: Download the latest release follow the instructions in the release page.
From source:
(move to shared folder with minix)
git clone git@github.com:itsnova204/LCOM.git
(move the roms that roms/roms.txt says into the roms/ folder)
if you wish to use serial port pipe the usb into virtualbox.
IN MINIX:
cd labs/src/
make
lcom_run proj
To run use lcom_run proj
You can also use these flags:
Syntax
Description
--no-uart
Disables serial connection
--player-1-serial
Swaps controller 1 from keyboard to Serial
--vmode 0x115
Enables VBE_MODE_DC_24 video mode while emulator running
(Don`t forget to wrap the flags in " ")
IN MENU:
Use mouse to select game.
Use Right and Left keyboard arrows to change game page.
Big Thanks to:
Professor Nuno Cardoso: for never giving up on us and incentivising us to be do learn more.
OneLoneCoder, Javidx9: for his series on NES emulator development and his community for helping me understand how the NES works under the hood.