Info over MoonBlaster songs Onbekend, 00-00-00 Hier is eindelijk wat meer informatie over de MoonBlaster songs. Het is vast nog lang niet compleet, maar het is erg veel werk om alles precies te gaan opschrijven. Veel weet je waarschijnlijk toch al of is makkelijk terug te vinden in de playroutine. Zoniet, dan vraag je het maar via de BBS of een brief. Gerichte vragen zijn makkelijker te be- antwoorden dan 'geef eens een omschrijving van het formaat'. Ik heb 2 sources meegegeven. Een van de cruncher en een van de decruncher. Ik heb de sources niet uitgetest, maar ze komen bijna letterlijk uit MB, dus ze zouden wel moeten werken. Bekijk deze goed en het commentaar erbij. De ongecrunchte opslag is nl iets anders dan alleen het decrunchen van het gecrunchte formaat. Er worden wat instellingen op een ander adres gezet en bij het gecrunchte formaat wordt van ieder pattern het start-geheugenadres neergezet. Dit is gedaan om de muziek relocatable te houden. Onderstaande tabel is zoals de instellingen staan volgens het ongecrunchte formaat, dus zoals in MB zelf. xpos equ 08000h ;->in song maar 200 lang! xleng equ xpos+200 ;->last position xuser1 equ xleng+1 ;->usercode #1 xmmvoc equ xuser1+2 ;->module instrumenten xmmsti equ xmmvoc+16*9 ;->instrumenten module xpasti equ xmmsti+16 ;->instrumenten/volumes pac xstpr equ xpasti+32 ;->stereo-instellingen xtempo equ xstpr+10 ;->begintempo xsust equ xtempo+1 ;->modulation depth xnaam equ xsust+1 ;->songnaam xchip equ xnaam+40 ;->voorkeurchip xbegvm equ xchip+1 ;->begininstrumenten module xbegvp equ xbegvm+9 ;->begininstrumenten pac xorgp1 equ xbegvp+9 ;->data van softwarevoices pac xorgnr equ xorgp1+6*8 ;->nummers van software voices xsmpkt equ xorgnr+6 ;->samplekitnaam xdrblk equ xsmpkt+8 ;->drumblokken pac xdrvol equ xdrblk+15 ;->volumes drum pac xdrfrq equ xdrvol+3 ;->frequenties drum pac xuser2 equ xdrfrq+3*6 ;->usercode#2 (=1 op met andere codering) xrever equ xuser2+2 ;->reverb instellingen xloop equ xrever+9 ;->loop position Toelichting: xpos : gewoon pattern nummers xmmvoc : per selected voice 9 bytes xmmsti : nummers van selected voices in de voicelijst xpasti : per selected voice 2 bytes, 1e voor instrument 2e voor volume: bij softwareinst. 1e byte 15 + nr softw. ins. xstpr : 0 = audio, 1 = music, 2 - stereo xtempo : begintempo xsust : bit 0-1 modulation depth, bit 5 6/9 kanaals music xbegvm : nummers startinstrumenten module xbegvp : nummers startinstrumenten pac xorgp1 : per software instrument 8 bytes xorgnr : nummer softwarevoices in voicelijst xdrblk : per byte bit 0-4 combinatie FM-drumnummers bit 5-7 vormen getal 0-7 voor nummer PSG-drum xloop : gewoon positionnummer waarnaar geloopt moet worden, 255 is loop OFF Met behulp van bovenstaande kun je zelf wel uitvinden hoe deze in de gecrunchte song zijn opgeslagen. Dan de songdata opslag: Step = 13 bytes Byte 1-9 = voor kanaal 1-9 Byte 10: freq. samples Byte 11: volume samples Byte 12: linkernibble samplenr. rechternibble FM-drumnummer byte 13: command kanaal Kanalen: 0 : Empty event 1 t/m 96 : Note event 97 : Off event 98 t/m 113 : Instrumentwissel 114 t/m 176 : Volumewissel 177 t/m 179 : Stereo instelling wissel 180 t/m 198 : Linken van noten Waarde : 180 is |L-9| en 188 is |L-1| 189 is |L+0| 190 is |L+1| en 198 is |L+8| 199 t/m 217 : Pitch bending Waarde : 199 is |P-9| en 206 is |P-1| 207 is |P+0| 208 is |P+1| en 217 is |P+9| 218 t/m 223 : Brightness wissel (omlaag) Waarde : 218 is |X-6| en 223 is |X-1| 231 is |X+1| en 236 is |X+6| 224 t/m 230 : Detune wissel 231 t/m 236 : Brightness wissel (omhoog) 237 : Sustain event 238 : Modulation Command ------- 1 - 23 : tempo 24 : end of pattern 25 - 27 ; status bytes |