Most importantly, they also come with special hardware, refered to as mappers, that dynamically maps ROM/RAM into CPU and PPU memory space, bypassing the limitation of 16-bit address space. They come with game data as ROMsm, sometimes their own battery-backed RAM, or some cases, their own audio processing unit.
It has 3 general purpose register A/X/Y, and 3 special register P (status) /SP (stack pointer) /PC (program counter, or instruction pointer), all of them being 8-bit except PC which is 16-bit. NES Hardware Capabilitiesīeing a 8-bit system in 80s, it has hilariously limited spec comparing to today’s standard:Ĩ-bit 6502 CPU running at 1.79 MHZ. More detailed technical writeup of emulating different components would come later as separate posts.
This post is intended as a high-level overview of what it would take to write a NES emulator so that if you are interested to write your own you’d be prepared to know what is involved, or simply just to understand some of the interesting problems involved in writing one. Those 8-bit style games are also making a come back in indie games such as Shovel Knight and Stardew Valley. Many people growing up in the 80s probably have fond memory of playing 8-bit NES games - those games are surprisingly fun (and many of them challenging).
I had a lot of fun building this emulator and is planning to write a series of post documenting my experience and maybe help anyone who also want to write one. I’ve recently wrote a NES Emulator NesChan.
How to write your own NES emulator - overview