The SNES 65C816 is the 16-bit successor to the 6502; the S-PPU is a tile-and-sprite engine on a different scale; the S-DSP runs the audio. This week you compare the SNES architecture against the NES (Module 3) and Game Boy (Module 5) and write the cousin-mapping document.
Reading
- Copetti, Architecture of Consoles: Super Nintendo. Free; the canonical breadth resource.
- snes.nesdev.org wiki, the canonical web reference for the SNES.
- Hugg, Designing Video Game Hardware in Verilog, the chapter on the 16-bit transition. The pedagogical narrative is exactly the CON-101 cousin-mapping arc.
Lecture
Roughly three hours across two sessions. Key arc:
- 65C816 register set and addressing modes. The 6502 family in 16-bit form.
- S-PPU. Modes 0 through 7. Mode 7 in particular, the famous bitmap-rotation mode.
- S-DSP. Sample-based audio versus the NES APU channel-based audio.
- Cartridge mappers, FastROM versus SlowROM, the SNES bank-switching idioms.
- Why the SNES outsold the Genesis and what the architecture had to do with it.
Lab pack
Lab Pack 6 walks the SNES versus NES Compare and Contrast and produces the cousin-mapping document. See Lab Pack 6: SNES vs NES Compare and Contrast.
Classroom tools
- bsnes-plus, the SNES emulator with debugger; pre-FPGA verification.
- PVSneslib for the Module 7 homebrew prep work.
- The community SNES core source mirrored in the student repo under
cores/snes/.
Architecture comparison sidebar
The SNES Mode-7 is hardware-rotation of a single bitmap layer; the NES had no equivalent. The SNES S-DSP is sample-based; the NES APU was channel-based. The SNES 65C816 is a 16-bit superset of the 6502; the LR35902 is a 8-bit Z80 cousin. Three architectures, three different design dialects, one family of choices. The cousin-mapping discipline you write up this week is the explicit version of the recognition you have been building all module.
Reflection prompts
- Mode 7 was a single layer with rotation. Why did Nintendo not ship Mode 8 with two rotated layers?
- If you were designing a sample-based audio system for a 1990 console with a small RAM budget, what would you copy from the SNES S-DSP and what would you change?
- Compare the SNES's WRAM versus the NES's WRAM. Why did Nintendo add the larger work-RAM space?
What is next
Module 7 is the most fun. You write or port an original homebrew NES ROM and flash it onto your DE10-Nano (or run it in the browser jsnes for the no-hardware path).