Skip to content

Commit

Permalink
add Tales of Phantasia SPC -> MIDI converter
Browse files Browse the repository at this point in the history
  • Loading branch information
ValleyBell committed Oct 20, 2012
1 parent 81c879a commit 6862cdb
Show file tree
Hide file tree
Showing 2 changed files with 823 additions and 0 deletions.
58 changes: 58 additions & 0 deletions ToP_Seq.txt
@@ -0,0 +1,58 @@
ToP Sequence Format
-------------------
Reverse-engineered by Valley Bell, October 2012


Channel Data:
RAM 200-3FF (20h bytes per channel, channel ptrs at 03/04)


Sequence Header:
2 bytes - Sequence Size
1 byte - Tempo (seems to be in BPM)
0F*3 bytes - Track Headers

Track Header:
1 byte - Track Flags (00 - not playing, 80 - playing (default))
2 bytes - Track Pointer




Note format:
1 byte - Note Height
1 byte - Tick Count til next note (chords are possible, so this can be 0)
1 byte - Tick Count til Note Stop
-> if larger than NextNoteTick, when the note is held
1 byte - Volume (00 min .. FF max)


Commands:
00-8F - Note
90 xx - Delay of xx Ticks
92 - Loop Start
93 tt - Loop End (tt - times to loop, 00 - infinite)
94 dd pp - Pitch Bend pp + Delay dd (12 semitones)
95 dd tt - Set Tempo tt + Delay dd (relative to initial tempo, 40h is 100%, 20h is 50% etc.)
96 ii - Set Instrument ii
97 dd xx - Set (another?) Volume vv + Delay dd
98 dd vv - Set Volume vv + Delay dd
99 dd pp - Set Pan pp + Delay dd
9B xx
9C xx xx xx
A2 xx
A3 xx
AA xx xx - Reverb
AD xx
AE xx
AF xx xx
B2 xx
C8
F0
FD - Return/Pattern End
FE
FF - Track End


Note: All pointers are relative to the base offset, which is 4000 in Tales Of Phantasia and 3800 in Star Ocean.
The offset is located at 0854.

0 comments on commit 6862cdb

Please sign in to comment.