Controller Pak

From N64brew Wiki
Jump to navigation Jump to search

The Controller Pak is a memory card accessory, similar to memory cards used by the PlayStation consoles. Certain games allow saving of game files to the Controller Pak. Just like the Rumble and Transfer Paks, it plugs into the bottom of the Nintendo 64 controller. Some games are unable to save game files without the pak, however the games are still playable. The Controller Pak is also useful for carrying game saves between consoles and exchanging saves between multiple paks using a game's save manager.

Hardware

Components

The primary component that makes up the Controller Pak is a 28pin, 32,768-byte SRAM chip, backed by a 3.3V battery located on the opposite side of the PCB. The battery supplies a low current to the SRAM when either not plugged into a controller or when the console is turned off, preventing the SRAM from losing data. While the controller's accessory port supports a 16 bit address, the Controller Pak leaves the 16th bit disconnected, as the SRAM only uses 15 bits for addressing. At least some, if not all, of the official Controller Paks used the LH52256CVN SRAM chip manufactured by Sharp.

Alternative SRAM chips do exist. Any chip that follows the same pinout and runs on 3.3V should be compatible. One example is the AS6C62256-55PCN made by Alliance Memory. While not produced anymore, Toshiba's TC55257DFL-85V and Chiplus' CS18LV02563 are also compatible.

Operation

The pins of the SRAM chip are mapped 1 to 1 with the accessory port's pinout, except for pin A15 (the 16th address bit) being left disconnected. The Chip Enable pin is inverted on the PCB using a transistor, meaning that the pin must be pulled HIGH to enable the chip. Write Enable and Output Enable should be pulled LOW to enable their respective function. Refer to the SRAM's datasheet for how to read/write data.

Pinout of the accessory port connector with respect to the pak's orientation

File System

Save data management on the Controller Pak is facilitated through a simple proprietary filesystem. In all official and unofficial Controller Paks, there are 32,768 bytes of SRAM available, which is split into 256-byte sectors referred to as "pages". This allows for a maximum capacity of 128 pages, 5 of which are reserved for the filesystem data, and the remaining 123 for user software.