I have an ASM trick to get around that 32,768 byte limit (which is WLA DX deleting "unused banks"). Just have the first character in the name of the sections above the 32K limit be an exclamation point, and that problem should go away.
Thus, this is your new result...
Code: Select all
;
.include "hdr.asm"
.bank 4
.section "SOUNDBANK" ; need dedicated bank(s)
SONGBANK1:
.incbin "soundbank.bnk" read $8000
.ends
.bank 5
.section "!SOUNDBANK1" ; need dedicated bank(s)
SONGBANK2:
.incbin "soundbank.bnk" skip $8000
.ends
Either that, or call the spcSetBank routine for each ROM bank (this is what alekmaul does with multi-LoROM-bank soundbanks), ending with the actual starting point of the soundbank.
I suspect misconceptions about the limit applying to the SPC700 partially comes from this problem.
The actual length limit for samples is more along the lines of a little more than 100,000 (that's prior to conversion, and it does not matter whether it is 8 bits or 16 bits... they both have the exact same filesize)... but that's if you
really want to fill up the entire SPC700 memory with just a single sample (and not much pattern data).