Thunder Force II Music Hacking Tutorial
2/27/2016
I started this since yesterday while I was learning how to hack NES music and somehow, I learned how to do it in Sega Genesis games as well. Thanks with a little help from Exodus and BizHawk, I was able to test something out in Hex while the game is running. I believe that it's possible to hack music in Thunder Force 2,3 & 4.
The only thing to complete this is the main header and the Effect List: I might not understand how music works but some of you might understand it.
--------------------------------------------------------------------
Main Header?
00: ?
01: Music Volume
02: Main tempo modifier
03: Main pitch modifier
04: ?
05: ? same as 04?
06: ?
07: ?
08: ?
09: ?
0A: ?
0B: ?
0C: ?
0D: ?
0E: ?
0F: ?
--------------------------------------------------------------------
Volume Controll for each channel:
10: Volume for channel 1
11: Volume for channel 2
12: Volume for channel 3
13: Volume for channel 4
14: Volume for channel 5
15: Volume for channel 6
16: Volume for PSG 1
17: Volume for PSG 2
18: Volume for PSG 3
---------------------------------------------------------------------
Channel Pointer:
19: Pointer to channel 1
1B: Pointer to channel 2
1D: Pointer to channel 3
1F: Pointer to channel 4
21: Pointer to channel 5
23: Pointer to channel 6
25: Pointer to PSG 1
27: Pointer to PSG 2
---------------------------------------------------------------------
Value Definitions
$80-$DF Notes
$E0-$FF Coordination flags
---------------------------------------------------------------------
Note Value Equivalents: Notes is based off of OpenMPT and the values
is based off the game.
Notes Value
C-1: 80
C#1: 81
D-1: 82
D#1: 83
E-1: 84
F-1: 85
F#1: 86
G-1: 87
G#1: 88
A-1: 89
A#1: 8A
B-1: 8B
C-2: 8C
C#2: 8D
D-2: 8E
D#2: 8F
E-2: 90
F-2: 91
F#2: 92
G-2: 93
G#2: 94
A-2: 95
A#2: 96
B-2: 97
C-3: 98
C#3: 99
D-3: 9A
D#3: 9B
E-3: 9C
F-3: 9D
F#3: 9E
G-3: 9F
G#3: A0
A-3: A1
A#3: A2
B-3: A3
C-4: A4
C#4: A5
D-4: A6
D#4: A7
E-4: A8
F-4: A9
F#4: AA
G-4: AB
G#4: AC
A-4: AD
A#4: AE
B-4: AF
C-5: B0
C#5: B1
D-5: B2
D#5: B3
E-5: B4
F-5: B5
F#5: B6
G-5: B7
G#5: B8
A-5: B9
A#5: BA
B-5: BB
C-6: BC
C#6: BD
D-6: BE
D#6: BF
E-6: C0
F-6: C1
F#6: C2
G-6: C3
G#6: C4
A-6: C5
A#6: C6
B-6: C7
C-7: C8
C#7: C9
D-7: CA
D#7: CB
E-7: CC
F-7: CD
F#7: CE
G-7: CF
G#7: D0
A-7: D1
A#7: D2
B-7: D3
C-8: D4
C#8: D5
D-8: D6
D#8: D7
E-8: D8
F-8: D9
F#8: DA
G-8: DB
G#8: DC
A-8: DD
A#8: DE
B-8: DF
---------------------------------------------------------------------
Effect List:
E0: Instrument number
Parameters: E0 xx
E8: Pitch ?
Parameters: E8 xx
E9: ?
Parameters: E9 xx
EC: Loop; EC 00 is infinity loop.
Parameters: EC xx
ED: Fade in
Parameters: ED xx
The music list is here in this topic: http://forums.sonicr...95
2/27/2016
I started this since yesterday while I was learning how to hack NES music and somehow, I learned how to do it in Sega Genesis games as well. Thanks with a little help from Exodus and BizHawk, I was able to test something out in Hex while the game is running. I believe that it's possible to hack music in Thunder Force 2,3 & 4.
The only thing to complete this is the main header and the Effect List: I might not understand how music works but some of you might understand it.
--------------------------------------------------------------------
Main Header?
00: ?
01: Music Volume
02: Main tempo modifier
03: Main pitch modifier
04: ?
05: ? same as 04?
06: ?
07: ?
08: ?
09: ?
0A: ?
0B: ?
0C: ?
0D: ?
0E: ?
0F: ?
--------------------------------------------------------------------
Volume Controll for each channel:
10: Volume for channel 1
11: Volume for channel 2
12: Volume for channel 3
13: Volume for channel 4
14: Volume for channel 5
15: Volume for channel 6
16: Volume for PSG 1
17: Volume for PSG 2
18: Volume for PSG 3
---------------------------------------------------------------------
Channel Pointer:
19: Pointer to channel 1
1B: Pointer to channel 2
1D: Pointer to channel 3
1F: Pointer to channel 4
21: Pointer to channel 5
23: Pointer to channel 6
25: Pointer to PSG 1
27: Pointer to PSG 2
---------------------------------------------------------------------
Value Definitions
$80-$DF Notes
$E0-$FF Coordination flags
---------------------------------------------------------------------
Note Value Equivalents: Notes is based off of OpenMPT and the values
is based off the game.
Notes Value
C-1: 80
C#1: 81
D-1: 82
D#1: 83
E-1: 84
F-1: 85
F#1: 86
G-1: 87
G#1: 88
A-1: 89
A#1: 8A
B-1: 8B
C-2: 8C
C#2: 8D
D-2: 8E
D#2: 8F
E-2: 90
F-2: 91
F#2: 92
G-2: 93
G#2: 94
A-2: 95
A#2: 96
B-2: 97
C-3: 98
C#3: 99
D-3: 9A
D#3: 9B
E-3: 9C
F-3: 9D
F#3: 9E
G-3: 9F
G#3: A0
A-3: A1
A#3: A2
B-3: A3
C-4: A4
C#4: A5
D-4: A6
D#4: A7
E-4: A8
F-4: A9
F#4: AA
G-4: AB
G#4: AC
A-4: AD
A#4: AE
B-4: AF
C-5: B0
C#5: B1
D-5: B2
D#5: B3
E-5: B4
F-5: B5
F#5: B6
G-5: B7
G#5: B8
A-5: B9
A#5: BA
B-5: BB
C-6: BC
C#6: BD
D-6: BE
D#6: BF
E-6: C0
F-6: C1
F#6: C2
G-6: C3
G#6: C4
A-6: C5
A#6: C6
B-6: C7
C-7: C8
C#7: C9
D-7: CA
D#7: CB
E-7: CC
F-7: CD
F#7: CE
G-7: CF
G#7: D0
A-7: D1
A#7: D2
B-7: D3
C-8: D4
C#8: D5
D-8: D6
D#8: D7
E-8: D8
F-8: D9
F#8: DA
G-8: DB
G#8: DC
A-8: DD
A#8: DE
B-8: DF
---------------------------------------------------------------------
Effect List:
E0: Instrument number
Parameters: E0 xx
E8: Pitch ?
Parameters: E8 xx
E9: ?
Parameters: E9 xx
EC: Loop; EC 00 is infinity loop.
Parameters: EC xx
ED: Fade in
Parameters: ED xx
The music list is here in this topic: http://forums.sonicr...95
This post has been edited by Dracula: 28 February 2016 - 07:08 PM