-
Notifications
You must be signed in to change notification settings - Fork 0
Known Songs Catalog
Vairn edited this page Jun 3, 2026
·
1 revision
Navigation: Home - Audio - Known Songs Catalog
This is a factual catalog of what is currently identified from:
EXTRACTED/docs/25-mm2-music-format.mdEXTRACTED/docs/26-audio-callpaths-title-death-shared.mdEXTRACTED/mm2_mod_audio_intermediate.json
Confidence labels:
- proven: direct instruction-level evidence with aligned target behavior.
- likely: strong evidence, but naming/target semantics still partly unresolved.
- uncertain: tracked placeholder where behavior is known but identity/semantics are not yet confirmed.
-
Identifier/name: song id
0x12D(main title score; formal title unknown). -
Where called (addresses/callsites):
- Start/blocking call:
0x001028(jsr -$7B9C(A4)), params pushed from0x001010..0x001026. - Step loop call:
0x002004(jsr -$7BA8(A4)), loop control at0x00200E/0x002014. - Also referenced in title loop setup at
0x001FF6.
- Start/blocking call:
-
Thunk/backend path summary:
-
-$7B9C(A4) -> 0x22EAA(song start path). -
-$7BA8(A4) -> 0x22D68(per-step sequencer path). - Uses song-bank/runtime audio tables initialized by
audio_init.
-
-
Known parameters:
- Start call uses channel
0x47, song0x12D, arg20x08, level/tempo-like0xE0, gate0x01, and zeroed args. - Step loop uses song
0x12D, tempo0xE8, step index from-$24(A5), loop bound0x48(72 iterations).
- Start call uses channel
-
Confidence:
proven. -
Unresolved questions:
- Canonical in-game name for
0x12D. - Exact semantic naming for all start-call args (
arg2,arg4,arg6).
- Canonical in-game name for
- Identifier/name: unknown scripted score id set (placeholder family).
-
Where called (addresses/callsites):
- Scripted score helper at
0x64F8(uses pointer tableA4-$73C4). - Referenced by scripted flow (example call path noted near
0x78E6in existing docs).
- Scripted score helper at
-
Thunk/backend path summary:
- Script helper routes to the same backend song machinery as title score paths.
- Table-driven indirection indicates score ids are not a simple direct map to 60 song-bank rows.
-
Known parameters:
- Uses table-driven pointer/id values from runtime state (
A4-$73C4family). - No concrete additional numeric song ids are proven in current extraction output.
- Uses table-driven pointer/id values from runtime state (
-
Confidence:
uncertain. -
Unresolved questions:
- Enumerate actual scripted score ids beyond
0x12D. - Determine stable mapping from scripted ids to song-bank patterns.
- Enumerate actual scripted score ids beyond
- Identifier/name: song-bank family (60 rows x 16 steps, no per-row song names yet).
-
Where called (addresses/callsites):
- Bank loaded during
audio_init(0x823C) from master blob offset0x780. - Step playback logic in
0x2188region consumes indexed step words.
- Bank loaded during
-
Thunk/backend path summary:
- Runtime step-play path uses indexed song-step words and downstream tone dispatch.
- Title stepping (
-$7BA8) is proven to consume this sequencer infrastructure.
-
Known parameters:
- Layout: 60 songs x 16 steps x 2 bytes (
1920bytes total). - Step addressing follows
song_index * 0x20 + step * 2.
- Layout: 60 songs x 16 steps x 2 bytes (
-
Confidence:
proven(structure),uncertain(human song-name mapping). -
Unresolved questions:
- Which rows correspond to named gameplay songs (if any beyond title family).
- How scripted ids map onto this bank in all contexts.
-
Identifier/name: walk-beep candidate family (
play_notewith immediate0x2D). -
Where called (addresses/callsites):
- 7 deterministic callsites:
0x00053A,0x000A78,0x00A87A,0x01BA20,0x01BDA8,0x01DA0C,0x01DB60.
- 7 deterministic callsites:
-
Thunk/backend path summary:
-
-$7C62(A4) -> 0x218EA(play_notehelper).
-
-
Known parameters:
- Note index immediate
0x2D(45) at each listed callsite. - Family is part of broader
-$7C62(A4)inventory (232short-note callsites total).
- Note index immediate
-
Confidence:
likely. -
Unresolved questions:
- Final filtering from "candidate beep" to canonical walk-only contexts.
-
Identifier/name: death-tone dispatch family (
types 0x31/0x32/0x33). -
Where called (addresses/callsites):
- Entry calls:
0x009F22(party wipe),0x011660(combat defeat), bothjsr -$7E96(A4). - Dispatch core:
0x007E2A(type picker), per-type tones at0x007ECC,0x007F0E,0x007F54.
- Entry calls:
-
Thunk/backend path summary:
-
-$7E96(A4)entry routes to observed death backend (0x007DCC) but static map disagrees (0x063EE). -
-$7F68(A4) -> 0x042AAtype selection. -
-$7BDE(A4) -> 0x22480proven in type0x32/0x33branches. -
-$7BD8(A4) -> 0x2249Clikely related tone path for type0x31.
-
-
Known parameters:
- Type picker min/max:
0x31..0x33. - Type
0x31path uses long source$66(A0)with channel/mode0x20and gate0x01. - Type
0x32path uses word source$5C(A0)with channel/mode0x20and gate0x01. - Type
0x33path uses byte source$25(A0)(viaD0) with channel/mode0x20and gate0x01.
- Type picker min/max:
-
Confidence:
likelyfor family entry mapping; branch-level tones mostlyproven. -
Unresolved questions:
- Normalize contradictory static vs observed target identity for
-$7E96(A4). - Fully classify
-$7BD8(A4)semantics relative to-$7BDE(A4).
- Normalize contradictory static vs observed target identity for
- Identifier/name: combat-victory jingle loop (short-note repetition).
-
Where called (addresses/callsites):
- Victory handler rooted at
0x12430; repeated note path around0x12508..0x12544.
- Victory handler rooted at
-
Thunk/backend path summary:
- Uses
-$7C62(A4)short-note path in repeated loops.
- Uses
-
Known parameters:
- Note index
0x05repeated in two loop blocks of0x17iterations each (existing trace docs).
- Note index
-
Confidence:
proven. -
Unresolved questions:
- Confirm final timing/spacing constants as tracker-row equivalents.
- Identifier/name: combat-enter cue family.
-
Where called (addresses/callsites):
- Encounter setup range
0x12C6E..0x12E58, including note call near0x12E42.
- Encounter setup range
-
Thunk/backend path summary:
-
-$7C62(A4)for the note cue. - Optional
play_tonepath when monster count exceeds threshold.
-
-
Known parameters:
- Immediate note
0x2B(43) for entry cue. - Conditional duration-like argument derived from
monster_count - 10. - Music channel allocation path includes channel
0x16.
- Immediate note
-
Confidence:
likely(core call proven, some parameter semantics still inferred). -
Unresolved questions:
- Final function/argument labeling for the optional tone branch.
- Identifier/name: title-interface chirp.
-
Where called (addresses/callsites):
- Title path callsite
0x001052.
- Title path callsite
-
Thunk/backend path summary:
-
-$7C62(A4) -> 0x218EAshort-note helper.
-
-
Known parameters:
- Observed note value path includes note
0x11in title setup flow.
- Observed note value path includes note
-
Confidence:
proven(callsite),likely(exact UI state coverage). -
Unresolved questions:
- Full set of title states that trigger this chirp versus other
-$7C62uses.
- Full set of title states that trigger this chirp versus other
-
Proven families/entries: title
0x12D, song-bank structure, combat victory loop core, several death-branch subcalls. - Likely families/entries: walk beep family, combat-enter cue family, death-family thunk identity at entry.
-
Uncertain families/entries: scripted score-id family (ids beyond
0x12Dnot yet cataloged).
EXTRACTED/docs/25-mm2-music-format.mdEXTRACTED/docs/26-audio-callpaths-title-death-shared.mdEXTRACTED/mm2_mod_audio_intermediate.json
- Docs Wiki Hub ← full doc index
- Getting Started ← read this first
- Overview
- Workspace Notes
- Open Questions
- Full Analysis
- Game Remake
- Startup and Init
- Runtime Memory Map
- Main Loop and Map
- Exploration Input and Options
- Party and Session
- Game State Struct
- Data Hunk mm2 data 00
- Time Era Calendar
- GFX Loading
- ANM TV Format
- PC DOS graphics
- SNES graphics
- 3D View and Game Screen
- Amiga 3D Render Process
- Scripted Scene Graphics
- Event Graphics Opcodes
- Title Screen Assets
- Title Screen Animation
- Format inventory
- items.dat
- monsters.dat
- roster.dat
- attrib.dat
- map.dat
- spells & item use
- event.dat
- Events by location ← 71 maps
- Events hub (numbered)
- Event Script Opcodes
-
Event Script DSL ←
.mm2evtauthoring - Event Text Rendering
- Event Graphics Opcodes
- Combat Overview
- Combat System
- Encounter Tables
- Spell Cast ASM
- monsters.dat abilities
- Spells and item use
- Town Services
- Spell Sources
- Character Mechanics
- Skills and Hirelings
- Commerce Formulas
- Commerce World Services
- Mount Farview Class Quest
- Class Quest HP Bug
- Event Runtime
- Event to String Path
- Embedded Exe Strings
- Copy Protection
- Time Era Calendar
- Game State Struct
- MM1 Overview ← hub + decode status
- MM1 MAZEDATA format
- MM1 to MM2 outdoor
- MM1 WALLPIX by sector
- MM1 art & graphics
- MM1 items / monsters (status)
- MM1 map walker ↗
- MM1 2D maps gallery
- MM1 WALLPIX gallery