In this blog, I will take a closer look at the NES, one of the most iconic gaming consoles to ever release and explore how its hardware worked. This blog is inspired by NesHacker and the video NES Architecture Explained. Please consider supporting their youtube channel since they’re providing some really useful information about the NES.

Introduction

The NES is hands down one of the most iconic gaming consoles of all time. First released in Japan as the Famicom on July 15, 1983, the console would make its way to the US, being redesigned and named the NES, which stands for Nintendo Entertainment System, in 1986. Several games released on the NES, including [Super Mario Bros.](https://en.wikipedia.org/wiki/Super_Mario_Bros.) (1985), The Legend of Zelda (1986), Metroid (1986), Mega Man (1987), and EarthBound Beginnings (1989), went on to become worldwide favorites, strengthening the NES's position in console gaming. For this blog, I’ll take you through the NES’s architecture and explain how each component would communicate with each other to form a fully functioning game.

Overview

The NES’s major components can be broken down into three major groups: CPU-related, PPU-related, and cartridge-related components. The CPU and PPU components exist directly on the NES motherboard, while the cartridge components exist on each game cartridge and interface to the motherboard via the cartridge connector.

Picture by: NesHacker

Picture by: NesHacker

The Main Components

The first main components is the Central Processing Unit, which is a custom processor based on the MOS 6502.

Picture by: NesHacker

Picture by: NesHacker

The CPU plays the role of being the main coordinator of the system and is largely responsible for telling basically every other component what to do. It’s the only part of the system that you have direct control over. So, when you write 6502 codes and assemble your games, this is what executes all the resulting machine codes.

Picture by: NesHacker

Picture by: NesHacker

The chip, which is RP2A03H for the NTSC system and RP2A07 for PAL, contains 2 processors: a modified 6502 lacking the decimal mode circuitry (more specifically, binary-coded decimal mode) and a custom audio processing unit, or APU for short. (fun fact: the chip was also used as a sound chip and secondary CPU by Nintendo's arcade games Punch-Out!! and Donkey Kong 3).

For now, you might already have 2 questions in your mind. “Why do Nintendo use that specific modified 6502 processor?” and “Why do they even use two different chips in the first place?”. What? You don’t have any questions about that at all? Well, I’m just going to answer them anyway.

Why Use That Specific modified 6502 processor? Nintendo chose the 6502 as their base processor for several practical reasons. First, it was significantly cheaper than competitors like the Intel 8086 or Motorola 68000, which was crucial for keeping console costs low. The 6502 was also simpler and more power-efficient, important factors for a home console that needed to be reliable and affordable. By the early 1980s, the 6502 had proven itself in successful computers like the Apple II and Commodore 64, so developers were already familiar with programming it. Nintendo's modification removed the decimal mode (BCD) circuitry that wasn't needed for gaming applications, freeing up chip space and reducing costs. They also integrated their custom Audio Processing Unit (APU) directly onto the same chip, creating an efficient single-package solution. This approach gave Nintendo a cost-effective, proven processor that could handle gaming tasks while keeping the overall system simple and affordable to manufacture.

Why Use Two Different Chips? The reason Nintendo used different CPU chips for different regions comes down to incompatible television broadcasting standards. NTSC (used in North America and Japan) operates at 29.97 frames per second with 525 scan lines, while PAL (used in Europe and Australia) runs at 25 frames per second with 625 scan lines. These aren't just simple display differences but the entire system timing had to match each television standard. The RP2A03 runs at approximately 1.79 MHz to sync with 60Hz NTSC displays, while the RP2A07 operates at 1.66 MHz for 50Hz PAL displays. This timing difference affects everything from game speed to audio pitch, which is why many PAL games run about 17% slower and have deeper-sounding music compared to their NTSC counterparts. Nintendo couldn't simply use the same chip for both regions because the CPU, PPU, and APU all needed coordinated timing to work properly with their respective television standards.

Picture by: Electrelic

Picture by: Electrelic

Oh, there’s also this fun additional information that I found online. You do rememeber earlier when I said that this processor lack the decimal mode circuitry right? Well, this chip was actually manufactured by a company called Ricoh (that why they’re usually called the Ricoh 2A03), and it contains an unlicensed derivative of the MOS Technology 6502 core. This Ricoh 2A03 is actually modified to disable the binary-coded decimal mode, which is possibly to avoid a MOS Technology patent.

CPU System Memory

The next major component is the CPU system memory, which is represented by a single 2-kilobyte SRAM chip on the NES motherboard. This chip stores all the mutable data for a game. Things like animation timers, player health, score counters, and other variables that change during gameplay. This represents the primary memory that programmers work with when writing a game's algorithms and logic.

Picture by: NesHacker

Picture by: NesHacker