Skip to content

NES Emulator written in C using our own device drivers for UART, GPU, Keyboard, Mouse, RTC and timer

Notifications You must be signed in to change notification settings

itsnova204/NES_Emulator-LCOM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MINIX-NES Emulator

An NES emulator codded intirely on C using device drivers developed in for LCOM@FEUP

Static Badge

Table of Contents

  1. Introduction
  2. Features
  3. System Requirements
  4. Installation
  5. Usage
  6. Akacknowledgements

Introduction

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.

Features

  • 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.

System Requirements

At this time this repo only runs on the Minix image developed for the LCOM subject at FEUP, you can download said image Here.

Installation

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

Usage

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 " ")

Controls

IN MENU: Use mouse to select game. Use Right and Left keyboard arrows to change game page.

IN GAME: NES KB CTRL

Acknowledgements

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.

About

NES Emulator written in C using our own device drivers for UART, GPU, Keyboard, Mouse, RTC and timer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published