XST XM3SMPS SAVE STATE FILE DEFINITIONS V1.0 2009/07/04 04:09AM: I saved the day by spotting and correcting a missing byte here lol (C) 2009 OERG866 SOFTWARE BYTE Descr. Values (ASCII) 0 Does the song loop? 0=No 1=yes 1 E4? (Only if no loop) " 2 Is there a DAC? " 3&4 Tempo byte 1 Any value that's OK for (xm3)SMPS (01 - 09) 5&6 Tempo byte 2 Any value that's OK for (xm3)SMPS (01 - 09) 7 Is there a NOISE PSG? 0=no 1=yes 1 byte Amount of FM channels 1-6 3 bytes XM Channel for FM1 001 - 256 (000 if unused) 3 bytes XM Channel for FM2 001 - 256 (000 if unused) 3 bytes XM Channel for FM3 001 - 256 (000 if unused) 3 bytes XM Channel for FM4 001 - 256 (000 if unused) 3 bytes XM Channel for FM5 001 - 256 (000 if unused) 3 bytes XM Channel for FM6 001 - 256 (000 if unused) 1 byte How PSG channels? 0-3 (melodical ones, NOISE is not included in this amount!!!) 3 bytes XM Channel for PSG1 001 - 256 (000 if unused) 3 bytes XM Channel for PSG2 001 - 256 (000 if unused) 3 bytes XM Channel for PSG3 001 - 256 (000 if unused) 3 bytes XM Channel for NOISE 001 - 256 (000 if unused) 3 bytes XM Channel for DAC 001 - 256 (000 if unused) 2 bytes FM1 Volume 00-63 (00 if unused) 4 bytes FM1 Pitch -128 - +127 (0 = +000) (000 if unused) 1 byte FM1 Panning D = Default (read from XM) (0 if unused) C = Center L = Left R = Right Z = Random 2 bytes FM2 Volume 00-63 (00 if unused) 4 bytes FM2 Pitch -128 - +127 (0 = +000) (000 if unused) 1 byte FM2 Panning D = Default (read from XM) (0 if unused) C = Center L = Left R = Right Z = Random 2 bytes FM3 Volume 00-63 (00 if unused) 4 bytes FM3 Pitch -128 - +127 (0 = +000) (000 if unused) 1 byte FM3 Panning D = Default (read from XM) (0 if unused) C = Center L = Left R = Right Z = Random 2 bytes FM4 Volume 00-63 (00 if unused) 4 bytes FM4 Pitch -128 - +127 (0 = +000) (000 if unused) 1 byte FM4 Panning D = Default (read from XM) (0 if unused) C = Center L = Left R = Right Z = Random 2 bytes FM5 Volume 00-63 (00 if unused) 4 bytes FM5 Pitch -128 - +127 (0 = +000) (000 if unused) 1 byte FM5 Panning D = Default (read from XM) (0 if unused) C = Center L = Left R = Right Z = Random 2 bytes FM6 Volume 00-63 (00 if unused) 4 bytes FM6 Pitch -128 - +127 (0 = +000) (000 if unused) 1 byte FM6 Panning D = Default (read from XM) (0 if unused) C = Center L = Left R = Right Z = Random 1 byte "X"(filler) "X" 2 bytes PSG1 Volume 00-63 (00 if unused) 4 bytes PSG1 Pitch -128 - +127 (0 = +000) (000 if unused) 2 bytes PSG2 Volume 00-63 (00 if unused) 4 bytes PSG2 Pitch -128 - +127 (0 = +000) (000 if unused) 2 bytes PSG3 Volume 00-63 (00 if unused) 4 bytes PSG3 Pitch -128 - +127 (0 = +000) (000 if unused) 2 bytes NOISE PSG Volume 00-63 (00 if unused) 1 byte DAC Panning D = Default (read from XM) (0 if unused) C = Center L = Left R = Right Z = Random 1 byte (DAC) Remove rests? 0=no 1=yes 1 byte DAC Notes/Instruments? 0=notes 1=instruments 256 bytes DAC Assignments in HEX $81 - $DF byte 1 - DAC sample of instrument 1 byte 2 - DAC sample of instrument 2 and so on 1 byte PSG notes/instruments? 0=notes 1=instruments 256 bytes Hi-Hat assignments in HEX $01 = Open Hihat $02 = closed Hihat 1 byte Optimize output? in ASCII again: 1=yes 0=no 256 bytes PSG voice assignments in HEX $00-$7F byte 1 - psg voice of instrument 1 byte 2 - psg voice of instrument 2 etc 256 bytes PSG voice assignments in HEX $00-$FF byte 1 - psg voice of instrument 1 byte 2 - psg voice of instrument 2 etc 3 bytes How many voices? 001 - 128 The following section repeats for as many voices as there are 3 bytes description length 001 - 255 n bytes description anything 25 bytes voice data Sonic 1 SMPS voice