Nintendo 64

Revision as of 00:16, 16 December 2020 by Nim (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

See this page on Wikipedia

A Nintendo 64 console with a gray controller attached.

The Nintendo 64 or N64 is a Nintendo console released in 1996. It was one of the first game consoles to feature a joystick and 3D capabilities. Super Mario 64 was the system's primary launch title.

Hardware

The N64 contains the following main components:
- A VR4300 (R4300i) MIPS III CPU clocked at 93.75 MHz by default
- The Reality Coprocessor (RCP), which handles graphics and audio and is made up of the Reality Display Processor (RDP) and Reality Signal Processor (RSP), the latter of which is an R4000-based vector processor
- 4.5 MB of RDRAM (9 MB with Expansion Pak); the RAM is on a 9-bit bus but the 9th bit is only available to the RCP, making it only 4 MB (8 MB with Expansion Pak) for the CPU
- The Peripheral Interface chip (PIF), which verifies cartridges and interfaces the CPU with peripherals such as controllers, cartridge EEPROMs, and the reset button

Boot Process

On boot, the PIF verifies the cartridge and then hands control over to the CPU which runs the PIF ROM mapped at 0x1FC00000 in memory. The PIF ROM (I think?) loads the first megabyte of the cartridge ROM data (not including the header) into RAM at the entry point.

Resetting

When the reset button is pressed, the PIF sends a "pre-NMI" interrupt to the CPU, and 0.5s later sends the NMI that resets the console. Letting the CPU know about the reset in advance allows games to add handlers for resets, such as SM64's reset animation.

When the NMI occurs, RAM is not cleared. In SM64, the bss of the main segment is cleared to 0 on boot, but not the bss of other segments (I think?).