In terms of capabilities, graphically it's something like MMC5 (8x8 attributes and a bunch of tile memory) while sound wise it's almost exactly VRC6. The real nifty feature though is ipcm: it can make the audio available for reading at $4011
It turns out the APU inside the NES listens to writes to $4011 to set the DPCM level, which many games use to play samples. By having the cartridge drive it for reading, I can very efficiently stream one sample of audio with the following code:
inc $4011
So I just make sure to run that regularly and hey presto, working expansion audio on the model that doesn't normally support it. It aliases a little bit, but if I'm clever about how I compose the music I can easily work around that.
It's an FPGA mapper made by Broke Studio, detailed here if you're curious:
https://github.com/BrokeStudio/rainbow-net/blob/master/NES/m...
In terms of capabilities, graphically it's something like MMC5 (8x8 attributes and a bunch of tile memory) while sound wise it's almost exactly VRC6. The real nifty feature though is ipcm: it can make the audio available for reading at $4011
It turns out the APU inside the NES listens to writes to $4011 to set the DPCM level, which many games use to play samples. By having the cartridge drive it for reading, I can very efficiently stream one sample of audio with the following code:
So I just make sure to run that regularly and hey presto, working expansion audio on the model that doesn't normally support it. It aliases a little bit, but if I'm clever about how I compose the music I can easily work around that.