First Rate Music Hall file format
Ext.name: *.PCK (User file!) Length: 16kRam Type: Data Contains: Music settings, instruments, 2/3/4 songs > Case: Memory offsets Offset Length Description -----------+-------+------------------------------------------------ $0000 $0E00 Song 1 ($0200 bytes per channel, 7 channels) $0E00 $0E00 Song 2 $1C00 $0E00 Song 3 $2A00 $0E00 Song 4 $3800 $0400 Instr (OPLL name(8) + OPLL data(8), 64 instr.) $3C00 $000F Song 1 name $3C10 $000F Song 2 name $3C20 $000F Song 3 name $3C30 $000F Song 4 name $3C40 $0030 Drum data (OPLL (6), 8 patterns) $3C70 -- Work Area (Frequency tables etc.) > Case: Music channel codes bit description ---+--------------------------------------------------------------- 0-2 Note (0=A, 1=B, 2=C etc., 7=OFF) 3 halfnote (C# etc., 1=Yes) 4 Note length (point) (1=length x 1.5) 5 Offnote ID (0= note cut, 1= note not cut) 6 Note folowed by length (1=Yes) 7 Special event (1=yes) $80 Volume (LSB is volume) $90 Instrument change (LSB=0, then next byte is Original- instrument else LSB is FM instrument) $A0 Octave (LSB is octave 0-7, 8= 1up, 9= 1down) $B0 Loop START (LSB is total loops-1) $C0 Note Length (next byte is length) $D0 Continue loop START $E0 Loop NEXT (see $B0) $F0 LSB=0 Continue loop NEXT LSB=1 Volume 1 up LSB=2 Volume 2 down LSB=3 Sustain ON LSB=4 Sustain OFF LSB=5 Music END LSB=6 Tempo (next byte is value) LSB=7 Wait ON (W) LSB=8 Wait OFF (w) LSB=15 Empty (space) > Case: Rhythm channel codes bit description ---+--------------------------------------------------------------- 0 HiHat (1=ON) 1 Cymbal (1=ON) 2 Tom (1=ON) 3 Snare (1=ON) 4 Bass (1=ON) 0-4 OFF (if b0-b4= 0 !) 5 <not used> 6 Drum followed by length (1=Yes, next byte is value) 7 Special event (1=yes) $80 Volume (LSB is volume) $90 Instrument change (LSB= pattern nr) $B0 Loop START (LSB is total loops-1) $C0 Note Length (next byte is length) $D0 Continue loop START $E0 Loop NEXT (see $B0) $F0 LSB=0 Continue loop NEXT LSB=1 Volume 1 up LSB=2 Volume 2 down LSB=5 Music END LSB=6 Tempo (next byte is value) LSB=7 Wait ON (W) LSB=8 Wait OFF (w) LSB=15 Empty (space)