Difference between revisions of "User talk:Dimitri"

From Game Developer Research Institute
Jump to: navigation, search
Line 1: Line 1:
<pre>Games that use Z80 should have something like this starting at $2070 in the savestate.
+
Games that use Z80 should have something like this starting at $2070 in the savestate.
  
 +
<pre>DJ Boy:
 
0000 0000 0780 0080 B200 C940 0080 0000  
 
0000 0000 0780 0080 B200 C940 0080 0000  
 
0000 0000 0000 0F00 0000 000D 0000 0000  
 
0000 0000 0000 0F00 0000 000D 0000 0000  
Line 11: Line 12:
 
32C5 0BF8 0000 0000 0000 002D 0000 0038  
 
32C5 0BF8 0000 0000 0000 002D 0000 0038  
 
0E97 232D 0000 0000 0000 0000 0000 0000  
 
0E97 232D 0000 0000 0000 0000 0000 0000  
...
+
...</pre>
  
 
The trigger byte is at $207D, which is usually defaulted at 0x80 (as in this example), though you may also see 0x00 or 0xFF.
 
The trigger byte is at $207D, which is usually defaulted at 0x80 (as in this example), though you may also see 0x00 or 0xFF.
Line 19: Line 20:
 
Games with the 68k version can place the workspace anywhere in 68k RAM, though it's usually near the end of the address space. The alignment will be different, and look something like this.
 
Games with the 68k version can place the workspace anywhere in 68k RAM, though it's usually near the end of the address space. The alignment will be different, and look something like this.
  
 +
<pre>Golden Axe III:
 
0000 0000 0000 0000 0000 0304 0000 0000  
 
0000 0000 0000 0000 0000 0304 0000 0000  
 
0080 0000 0000 0000 0000 0000 0000 0000  
 
0080 0000 0000 0000 0000 0000 0000 0000  
Line 30: Line 32:
 
0401 0203 0000 0000 0000 0000 003D 00C0  
 
0401 0203 0000 0000 0000 0000 003D 00C0  
 
0000 0000 000F 18A4 8001 0100 000F 193B  
 
0000 0000 000F 18A4 8001 0100 000F 193B  
...
+
...</pre>
  
 
In this case, the trigger is at $E481. The location within 68k RAM may be different, but the alignment will always match this.
 
In this case, the trigger is at $E481. The location within 68k RAM may be different, but the alignment will always match this.
Line 38: Line 40:
 
Other games (Aa Harimanada, Dyna Brothers 2) use multiple sound banks which are changed with a specific command. These can be found when not every track is in the game seems to be there -- play a track that isn't, then start playing with the trigger again and more of the tracks will be there. Changing the bank manually is a pain and not recommended.
 
Other games (Aa Harimanada, Dyna Brothers 2) use multiple sound banks which are changed with a specific command. These can be found when not every track is in the game seems to be there -- play a track that isn't, then start playing with the trigger again and more of the tracks will be there. Changing the bank manually is a pain and not recommended.
  
And of course, document what triggers play what tracks. :)</pre>
+
And of course, document what triggers play what tracks. :)

Revision as of 03:08, 18 September 2007

Games that use Z80 should have something like this starting at $2070 in the savestate.

DJ Boy:
0000 0000 0780 0080 B200 C940 0080 0000 
0000 0000 0000 0F00 0000 000D 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 00F1 8EA1 05F9 9600 0000 
0000 0000 8002 018B 9600 0000 0030 C00A 
0A82 0000 0000 0000 0000 0000 0000 0038 
D20A 0000 0000 0000 0000 0000 0000 0000 
0000 0000 8000 0110 8F00 0100 002E C028 
32C5 0BF8 0000 0000 0000 002D 0000 0038 
0E97 232D 0000 0000 0000 0000 0000 0000 
...

The trigger byte is at $207D, which is usually defaulted at 0x80 (as in this example), though you may also see 0x00 or 0xFF.

Values 0x81 and up are the commands, normally (but not always) music tracks followed by SFX, then playback commands near the 0xF0 values.

Games with the 68k version can place the workspace anywhere in 68k RAM, though it's usually near the end of the address space. The alignment will be different, and look something like this.

Golden Axe III:
0000 0000 0000 0000 0000 0304 0000 0000 
0080 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 000F 1D23 0000 0000 
0000 0000 4000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 8006 0100 000F 1CC7 
0000 0000 0030 0306 8900 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 00C0 
0F00 0000 0000 0000 8000 0100 000F 18EE 
EB1A 8006 002C 4B54 235C 0000 000F 189F 
0401 0203 0000 0000 0000 0000 003D 00C0 
0000 0000 000F 18A4 8001 0100 000F 193B 
...

In this case, the trigger is at $E481. The location within 68k RAM may be different, but the alignment will always match this.

Some games (Atomic Robo-Kid, Sorcerian) use special loading routines that change the song data outside of the music system. These will generally play the same track (possibly at different tempos) with every sound code you try.

Other games (Aa Harimanada, Dyna Brothers 2) use multiple sound banks which are changed with a specific command. These can be found when not every track is in the game seems to be there -- play a track that isn't, then start playing with the trigger again and more of the tracks will be there. Changing the bank manually is a pain and not recommended.

And of course, document what triggers play what tracks. :)