|
| 1 | + 0 2 BPM |
| 2 | + 2 4 Length of signature |
| 3 | + 6 4 Length of module info (MI) |
| 4 | + A 4 Length of track number lists (TNL) |
| 5 | + E 4 Length of note transpose lists (NTL) |
| 6 | + 12 4 Length of instrument transpose lists (ITL) |
| 7 | + 16 4 Length of instrument info (II) |
| 8 | + 1A 4 Length of sample number lists (SNL) |
| 9 | + 1E 4 Length of arpeggio lists (AL) |
| 10 | + 22 4 Length of frequency list (FL) |
| 11 | + 26 4 Length of ? (not used in player) (?1L) |
| 12 | + 2A 4 Length of ? (not used in player) (?2L) |
| 13 | + 2E 4 Length of subsong info (SSI) |
| 14 | + 32 4 Length of ? (not used in player) (?3L) |
| 15 | + 36 4 Length of sample info (SIL) |
| 16 | + 3A 4 Length of track offset table (TOL) |
| 17 | + 3E 1C Signature (ACTIONAMICS SOUND TOOL V0.1/) |
| 18 | + 5A MI Module information |
| 19 | + |
| 20 | +--- These 3 lists is a position list combined, but the information are stored in each list --- |
| 21 | + TNL Track number list for voice 1 (TNL/4 in length) |
| 22 | + Track number list for voice 2 |
| 23 | + Track number list for voice 3 |
| 24 | + Track number list for voice 4 |
| 25 | + NTL Note transpose value list for voice 1 (NTL/4 in length) |
| 26 | + Note transpose value list for voice 2 |
| 27 | + Note transpose value list for voice 3 |
| 28 | + Note transpose value list for voice 4 |
| 29 | + ITL Instrument transpose value list for voice 1 (ITL/4 in length) |
| 30 | + Instrument transpose value list for voice 2 |
| 31 | + Instrument transpose value list for voice 3 |
| 32 | + Instrument transpose value list for voice 4 |
| 33 | +--- |
| 34 | + II Instrument information |
| 35 | + SNL Sample number lists (16 bytes each) |
| 36 | + AL Arpeggio lists (16 bytes each) |
| 37 | + FL Frequency lists (16 bytes each) |
| 38 | + ?1L ? |
| 39 | + ?2L ? |
| 40 | + SSI Subsong information |
| 41 | + ?3L ? |
| 42 | + SIL Sample information |
| 43 | + TOL 2 bytes per track holding the offset to the track data |
| 44 | + Track data |
| 45 | + Sample data (offset can be calculated by counting the sample lengths stored in sample information and subtract it from the value stored in module information) |
| 46 | + |
| 47 | + |
| 48 | +Module information: |
| 49 | + 0 4 Total length of module |
| 50 | + |
| 51 | + |
| 52 | +Subsong information (4 bytes each): |
| 53 | + |
| 54 | + 0 1 Start position |
| 55 | + 1 1 End position |
| 56 | + 2 1 Loop position |
| 57 | + 3 1 Speed |
| 58 | + |
| 59 | + |
| 60 | +Instrument information (20 bytes each): |
| 61 | + |
| 62 | + 0 1 Sample list number |
| 63 | + 1 1 Number of values in sample number list |
| 64 | + 2 1 Sample number list start counter delta value |
| 65 | + 3 1 Sample number list counter end value |
| 66 | + 4 1 Arpeggio list number |
| 67 | + 5 1 Number of values in arpeggio list |
| 68 | + 6 1 Arpeggio list start counter delta value |
| 69 | + 7 1 Arpeggio list counter end value |
| 70 | + 8 1 Freqency list number |
| 71 | + 9 1 Number of values in frequency list |
| 72 | + A 1 Frequency list start counter delta value |
| 73 | + B 1 Frequency list counter end value |
| 74 | + C 1 Portamento increment value |
| 75 | + D 1 Portamento delay |
| 76 | + E 1 Note transpose |
| 77 | + F 1 Unknown |
| 78 | +10 1 Attack end volume |
| 79 | +11 1 Attack speed |
| 80 | +12 1 Decay end volume |
| 81 | +13 1 Decay speed |
| 82 | +14 1 Sustain delay |
| 83 | +15 1 Release end volume |
| 84 | +16 1 Release speed |
| 85 | +17 9 Unknown |
| 86 | + |
| 87 | + |
| 88 | +Sample information (40 bytes each): |
| 89 | + |
| 90 | + 0 4 Pointer to sample data (initialized by the player) |
| 91 | + 4 2 Length of sample in words |
| 92 | + 6 2 Loop start in words |
| 93 | + 8 2 Loop length in words (1 if no loop) |
| 94 | + A 2 Effect start position in words |
| 95 | + C 1 Arpeggio list number |
| 96 | + C 2 Effect length in words (seems this overlap arpeggio list number. Bug in player?) |
| 97 | + E 2 Effect speed |
| 98 | +10 2 Effect mode (0 = Do nothing, 1 = Forward, 2 = Backwards, 3 = Ping-pong) |
| 99 | +12 2 Effect increment value |
| 100 | +14 4 Effect position |
| 101 | +18 2 Effect speed counter |
| 102 | +1A 2 Already taken flag |
| 103 | +1C |
| 104 | +20 20 Sample name |
| 105 | + |
| 106 | + |
| 107 | +Track data: |
| 108 | + |
| 109 | +For each row, read until a negative number or effect is reached. |
| 110 | + |
| 111 | +00-6F Note. Next byte is instrument number if positive, else rows to wait |
| 112 | +70-7F Effect. Next byte is the argument |
| 113 | +80-FF Number of rows to wait |
| 114 | + |
| 115 | + |
| 116 | +Effects: |
| 117 | + |
| 118 | +70 - Arpeggio |
| 119 | +71 - Slide up |
| 120 | +72 - Slide down |
| 121 | +73 - Volume slide |
| 122 | +74 - Vibrato |
| 123 | +75 - Set track rows |
| 124 | +76 - Set sample offset |
| 125 | +77 - Retrig |
| 126 | +78 - Mute |
| 127 | +79 - Restart sample |
| 128 | +7A - Tremolo |
| 129 | +7B - Track break |
| 130 | +7C - Set volume |
| 131 | +7D - Volume slide with retrig |
| 132 | +7E - Volume slide + vibrato |
| 133 | +7F - Set speed |
| 134 | + |
| 135 | + |
| 136 | +Internal player structures: |
| 137 | + |
| 138 | + |
| 139 | +0310 1 Song has looped |
| 140 | +0311 1 Stop on loop |
| 141 | +0312 1 Disable playing |
| 142 | + |
| 143 | +0466 4 Pointer to signature in module |
| 144 | +046A 4 Pointer to length of module |
| 145 | +046E 4 Pointer to track number lists |
| 146 | +0472 4 Pointer to note transpose lists |
| 147 | +0476 4 Pointer to instrument transpose lists |
| 148 | +047A 4 Pointer to instrument info |
| 149 | +047E 4 Pointer to sample number list |
| 150 | +0482 4 Pointer to arpeggio list |
| 151 | +0486 4 Pointer to frequency list |
| 152 | +048A 4 Pointer to ??? |
| 153 | +048E 4 Pointer to ??? |
| 154 | +0492 4 Pointer to subsong info |
| 155 | +0496 4 Pointer to ??? |
| 156 | +049A 4 Pointer to sample info |
| 157 | +049E 4 Pointer to track offsets |
| 158 | +04A2 4 Pointer to track data |
| 159 | + |
| 160 | +1036 4 Cache for note and sample number |
| 161 | + |
| 162 | +1080 62 Voice 1 structure |
| 163 | +10E2 62 Voice 2 structure |
| 164 | +1144 62 Voice 3 structure |
| 165 | +11A6 62 Voice 4 structure |
| 166 | + |
| 167 | +1208 4 Start of module |
| 168 | +120C |
| 169 | + |
| 170 | +120E 1 End position |
| 171 | +120F 1 Current speed |
| 172 | +1210 1 Current position |
| 173 | +1211 1 Current row position |
| 174 | +1212 1 Speed counter |
| 175 | +1213 1 Number of rows per track |
| 176 | +1214 1 Measure counter |
| 177 | +1215 1 Loop position |
| 178 | +1216 2 BPM |
| 179 | +1218 1 Current subsong |
| 180 | + |
| 181 | +12AC 4 Pointer to current sample information for voice 1 |
| 182 | +12B0 4 Pointer to current sample information for voice 2 |
| 183 | +12B4 4 Pointer to current sample information for voice 3 |
| 184 | +12B8 4 Pointer to current sample information for voice 4 |
| 185 | + |
| 186 | + |
| 187 | +Voice structure: |
| 188 | + |
| 189 | + 0 4 Offset to position lists |
| 190 | + 4 4 Pointer to sample data |
| 191 | + 8 2 Sample length in words |
| 192 | + A 2 Final period |
| 193 | + C 2 Final volume (0-FF) |
| 194 | + E 2 DMA bit |
| 195 | +10 2 Hardware start offset (A0, B0, C0, D0) |
| 196 | +12 2 Envelope state |
| 197 | +14 2 Sustain counter |
| 198 | +16 4 Pointer to instrument information |
| 199 | +1A 4 Pointer to loop point in sample data |
| 200 | +1E 2 Sample loop length in words |
| 201 | +20 2 Final note |
| 202 | +22 |
| 203 | +23 1 Sample number list speed counter |
| 204 | +24 2 Sample number list position |
| 205 | +26 |
| 206 | +27 1 Arpeggio list speed counter |
| 207 | +28 2 Arpeggio list position |
| 208 | +2A |
| 209 | +2B 1 Frequency list speed counter |
| 210 | +2C 2 Frequency list position |
| 211 | +2E 2 Note |
| 212 | +30 2 Instrument number |
| 213 | +32 2 Effect |
| 214 | +34 2 Effect argument |
| 215 | +36 |
| 216 | +37 1 Portamento delay counter |
| 217 | +38 |
| 218 | +39 1 Instrument transpose |
| 219 | +3A 2 Portamento value |
| 220 | +3C 2 Tone portamento end period |
| 221 | +3E 2 Tone portamento increment value |
| 222 | +40 4 Pointer to track data |
| 223 | +44 |
| 224 | +45 1 Delay counter |
| 225 | +46 |
| 226 | +47 1 Note transpose |
| 227 | +48 2 Sample number |
| 228 | +4A 1 Vibrato effect argument |
| 229 | +4B 1 Vibrato table index. Bit 7 indicate direction |
| 230 | +4C 2 Note period |
| 231 | +4E 2 Use cache |
| 232 | +50 1 Tremolo effect argument |
| 233 | +51 1 Tremolo table index. Bit 7 indicate direction |
| 234 | +52 2 Tremolo volume (not set in player, always 0) |
| 235 | +54 2 Sample offset effect argument |
| 236 | +56 2 Note delay counter |
| 237 | +58 2 Restart delay counter |
| 238 | +5A 4 Restart sample data |
| 239 | +5E 2 Restart sample length |
| 240 | +60 2 Global voice volume (4041) |
0 commit comments