
|
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
|