Saturday, January 10, 2015

Writing an NES Emulator: Work has Started

dotnetNES


I have officially broke ground on my new project. You can check the progress out here. You won't see much progress yet thought. This is the layout of the project. Just three simple projects.

  • Client - WPF Client
  • Engine - Class Library
    • Main
    • PPU
    • APU
    • Utilities
  • Tests - Class Library
I will be using folders and namespaces to segregate my code in the engine project. I plan to use WPF on the client along with MVVM. for MVVM I will be using the MVVM.Light Project, as its something I am familiar with. I am a big proponent of unit tests, and I include them in nearly every personal project I undertake. I'm relying on Nunit for unit testing, for the same reason as before, its something I am familiar with, and it does everything I need it to do.


The first task I have knocked out, is writing a cartridge loader. As a first task to get the project moving along, it seemed like something that would be pretty easy to implement. I used Jon Skeet's post on Loading Binary Files to handle loading the raw binary.  These two documents

where used as a reference guide when implementing the loader. I skipped some of the functionality, mainly the Players Choice Stuff, as I do not plan to implement any of that logic. I know that I planned to start testing the CPU first, however, most of the test programs are NES roms!

My next step will be to get the 6502 working with the loader, and get some tests added to run the NES tests.

No comments :

Post a Comment