If you are still using the old URL (datacrystal.romhacking.net), please update your bookmarks! The old URL may stop working soon.
The current URL is datacrystal.tcrf.net.
The current URL is datacrystal.tcrf.net.
THUNDER FORCE2/Tutorials: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 1: | Line 1: | ||
==Music Hacking== | ==Music Hacking== | ||
=== | ===BGM Header format=== | ||
<pre> | <pre> | ||
00: | 00: b Number of channels (always must be 09h = 6 FM + 3 PSG) | ||
01: | 01: b Volume (99 = max, 0 = min) | ||
02: | 02: b Tempo modifier | ||
03: | 03: b Pitch modifier | ||
04: | 04: w Volume table pointer | ||
06: w Channel tracks table pointer | |||
08: w Patterns table pointer | |||
0A: w FM Voices bank pointer | |||
0C: w PSG Voices bank pointer | |||
0E: w End of file offset | |||
Channel tracks table stores offset for all 9 sound channels used by driver in the following order: | |||
FM1, FM2, FM3, FM4, FM5, FM6, PSG1, PSG2, PSG3 | |||
Channel tracks cannot be skipped -- if the channel is unused, corresponding track should start with byte 0FFh (end of track marker). | |||
Each FM/PSG track refers to patterns from patterns table by table entry number. Both tracks and patterns can execute coordinate flags. | |||
</pre> | </pre> | ||
Revision as of 18:37, 16 June 2017
Music Hacking
BGM Header format
00: b Number of channels (always must be 09h = 6 FM + 3 PSG) 01: b Volume (99 = max, 0 = min) 02: b Tempo modifier 03: b Pitch modifier 04: w Volume table pointer 06: w Channel tracks table pointer 08: w Patterns table pointer 0A: w FM Voices bank pointer 0C: w PSG Voices bank pointer 0E: w End of file offset Channel tracks table stores offset for all 9 sound channels used by driver in the following order: FM1, FM2, FM3, FM4, FM5, FM6, PSG1, PSG2, PSG3 Channel tracks cannot be skipped -- if the channel is unused, corresponding track should start with byte 0FFh (end of track marker). Each FM/PSG track refers to patterns from patterns table by table entry number. Both tracks and patterns can execute coordinate flags.
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
Music 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
Coordination flags
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