Studio's interface sounds are shipped in a Nitro sound archive, Sound/DSMemoPad.sdat. These resources are separate from ADPCM tracks inside a user's PPM. The three studied V2 ROMs contain byte-identical 86,272-byte SDAT files; Japanese V1 has a distinct 44,704-byte archive. [1][2]
Archive structure
SDAT starts with a 0x40-byte header and names SYMB, INFO, FAT and FILE blocks. Its internal FAT points to sound subfiles. The studied archives include sequence archives, instrument banks and wave archives; V2 also has a standalone sequence file. The original analysis rendered selected finite cues from these resources, not the complete Nintendo mixer. [1]
UI sound routing
A widget name maps to a sound class, and each class supplies sequence IDs for press, release, enter and leave. A context override can change the class before the global table is used; an ID of −1 requests no cue. This means an image of a button does not identify its sound. The event edge and current context must also be known. [1]
For the default class, the four requested sequence IDs are 37, 28, 38 and 39 in V2, but 38, 30, 39 and 40 in Japanese V1. The same widget can therefore route differently across releases even when its art looks alike. The mapped global lookup contains 140 widget names and 37 classes in Japanese V1; each V2 build has 297 names and 49 classes. Those are routing-table counts, not a count of independently audible sounds. [1]
Finding the sound played by a control
- Find the widget name used by the current UI component.
- Check whether the current scene has installed a sound-class override.
- Select the requested event column: press, release, enter or leave.
- Resolve its signed sequence ID. A value of −1 produces no sequence request.
- Only then examine the corresponding sequence, bank and wave resources in SDAT. [1]
The original routing comparison exercised names, classes, event columns, overrides and actual notification wrappers, recording 8,118 ordered requests across the four studied builds. It establishes which IDs were requested for those cases; it does not establish speaker output or how simultaneous voices compete for hardware resources. [1]
Shutter sample
V2 has a parsed mono 16-bit WAVE shutter sample at 32,730 Hz, shared across regions. Japanese V1 uses a headerless raw file. Its filename suggests an intended role, but exact playback parameters were not proved from its bytes alone. [2]
What remains open
The full voice mixer, simultaneous cue priority and physical speaker waveform have not been reconstructed from these observations. Do not use a rendered reference sequence's duration as proof of original hardware timing. [1]
