Skip to content

CodeSourcerer/Emulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

C# NES Emulator

This is my NES emulator written in C#. A great deal of this is based on an emulator that can be found here.

Building

I use Visual Studio 2019 Community Edition while developing this project, so if you have it available you can simply open the solution file - otherwise you will have to add in the appropriate project files into your own solution.

For now, you will need to also include csPixelGameEngine in your solution.

Windows

Use the EmulatorApp for the main/default project.

Mac

Use the NESEmulatorApp for the main/detault project.

Note: This project adds another nuget package for OpenAL that is ported to work with .NET core. It appears to be a forked project that is not supported by the people who support OpenAL.

Running

Windows

You must go to OpenAL.org and download the OpenAL SDK, if you do not already have it installed.

Mac

MacOS ships with OpenAL installed by default.

Controls

Emulator

Space - Start/Stop emulator R - Reset F - Run a single frame of emulation C - Step one CPU instruction

Controller (Player 1)

A - Start S - Select Z - B X - A Arrows control D-pad

Player 2 controls not yet supported.

Current Supported Features

  • 6502 CPU - Complete (undocumented opcodes not supported)
  • 2C02 PPU - Complete
  • 2A03 APU - In Progress
    • Pulse channels 1 & 2 - Complete
    • Triangle channel - Complete
    • Noise channel - Complete
    • DMC channel - In Progress, still buggy
  • Mappers - In Progress
    • Battery saves - Not yet implemented
    • Mapper 000 - Complete
    • Mapper 001 - Complete
    • Mapper 002 - Complete
    • Mapper 003 - Complete
    • Mapper 004 - In progress (need to test IRQ handling)

About

A NES Emulator written in C#

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages