-
Notifications
You must be signed in to change notification settings - Fork 0
Audio Sounds Music
Navigation: Home - Audio - Audio Sounds Music
flowchart TD
step["Party step / UI pump"] --> beep{"Walk Beep<br/>flag -$79AF?"}
beep -- on --> thunk["JSR -$7FD4(A4)<br/>sound dispatch"]
beep -- off --> silent["(no click)"]
snd{"Sounds master<br/>flag -$79B0?"} --> thunk
thunk --> dev["audio.device<br/>9 named channels"]
ctrl["Controls menu keys 1-4"] -.toggles.-> snd
ctrl -.toggles.-> beep
MM2 on Amiga routes playback through the standard audio.device driver. There is
no separate music.dat in the shipped file set — samples and music live inside the
executable / overlay segments and are triggered through engine thunks bound at startup.
[TOC]
The in-game Controls menu (title string Controls in the code hunk) exposes four
toggles keyed 1–4 (0x31–0x34). Handler cluster around 0x13DEC in
mm2.capstone.asm:
| Key | Option | Runtime byte (A4) | Behaviour |
|---|---|---|---|
1 |
Sounds |
-$79B0 ($8650) |
Toggles bit 0 (bchg @ 0x13F6C) — master SFX on/off |
2 |
Walk Beep |
-$79AF ($8651) |
Toggles bit 0 (bchg @ 0x13F78) — footstep click on map move |
3 |
Disposition |
-$79AE ($8652) |
Cycles 0…3 (addq @ 0x13F84, wraps at 3) — AI mood label from table A4-$6D70
|
4 |
Delay |
-$79AD ($8653) |
Cycles 0…9 (addq @ 0x13F9A, wraps at 9) — text/animation pacing |
Menu copy (code hunk ~0x14026):
Controls
1) Sounds /
2) Walk Beep /
3) Disposition:
4) Delay
Press 1-4 to toggle
ON / OFF
-$83F8 prints the current ON/OFF or disposition line; -$839E prints delay as a
decimal digit ('0'..'9' + 0x30).
Embedded labels (code hunk ~0x6F88):
-
Audio zero…Audio eight(nine named channels) - Plus
Audio one…Audio eightas alternate spellings in the same block
These names are diagnostic / table labels for the sound dispatcher, not DOS filenames.
The driver string audio.device sits nearby (~0x72B6).
| Site | Thunk | Likely use |
|---|---|---|
0x6F48 |
JSR -$7FD4(A4) |
After overland/dungeon party step when map coords change — gated by walk-beep flag |
0x1250, 0x52A2, 0x573E, … |
same thunk | Session refresh, UI mode changes, other pumps |
| Combat block | (TBD) | Flavour text references sword clashes; exact SFX index not fully mapped |
The thunk at -$7FD4 is not the same as the one-shot engine init at -$802C
(0x052CA / 0x01278 region — binds the whole A4 callback table including audio).
str.dat (decoded) includes scene prose, not driver calls, e.g.:
- "Children's laughter, merry music and growls of vicious animals emulate from …"
- "The sound of clashing swords"
No ProTracker .mod path string appears in the main binary scan; music is likely
embedded PCM / custom bank playback through the same audio layer as SFX.
| A4 offset | Data offset | Role |
|---|---|---|
-$79B0 |
$8650 |
Sounds enabled (bit 0) |
-$79AF |
$8651 |
Walk beep enabled (bit 0) |
-$79AE |
$8652 |
Disposition index 0–3 |
-$79AD |
$8653 |
Delay index 0–9 |
-$79AC |
$8654 |
Screen/mode id mirror (saved with controls UI) |
- Map each Audio N channel index to sample data offsets in the hunk / disk layout.
- Confirm combat hit / spell / victory SFX entry points (likely
-$7FD4with channel arg). - Determine whether “music” is one long channel or streamed chunks on area entry.
-
Startup and Init —
802Cengine bind - Party and Session — display/audio setup mention
- Full Analysis §6.2 engine thunks
- Open Questions
| Page | Why |
|---|---|
| Main Loop and Map | World simulation |
| RE Tools | Audio export scripts |
- 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