Page 1 of 1
Ecco I Disassembly: Random Bits and Bobs
Posted: 30 Jul 2026, 13:05
by Moduvator
Similar to the adjacent topic this one is going to be used to collect random pieces discovered during the disassembly of Ecco I.
Eventually this post is going to be upgraded with an index and the like.
Re: Ecco I Disassembly: Random Bits and Bobs
Posted: 30 Jul 2026, 13:12
by Moduvator
Ecco 1 Revision 1 sound driver is interesting and in ways more mature than one used in Tides of Time.
For one it actually supports Music Tempo as well as has the ability to dynamically change BGM volume. The latter is leveraged during the pause screen where music fades out gently and back in when unpaused.
The general layout is the same, CPU pokes several variables in Z80 memory to control it:
0x00a01ff8 - Command Code
- 0 - stop;
- 1 - play BGM;
- 2 - set music volume;
- 3 - set music tempo;
- 4 - play SFX
0x00a01ff9 - BGM ID
0x00a01ffa - BGM Volume (0 .. 127)
0x00a01ffb - BGM Tempo (-120 .. 120)
0x00a01ffc - SFX ID
Function to play BGM calls the subroutine to set music volume to 127 before sending a command to start music playback.
Curiously, Tides of Time does not seem to have support for this and there is no variable declared in Z80 memory for this, nor a subroutine to do that.