DMC Sample Addressing

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
DMC Sample Addressing
by on (#83833)
Is it possible to place a sample somewhere between $8000-$BFFF? Everything I'm reading seems to suggest that when you write to $4012, it only starts at $C000 and you increment by 64bytes for each hex value you add (ex. $00=$C000, $01=$C040, $02=$C080, etc.) Is there some method for writing to $4012 where it will load a sample from somewhere in the lower 16K of PRG instead of the higher 16K?
Re: DMC Sample Addressing
by on (#83837)
bigjt_2 wrote:
Is it possible to place a sample somewhere between $8000-$BFFF?

It's possible to place it there but not play it back, hehe. ;) But yeah, you're right, $C000-FFFF only.

Technically the APU does wrap around to $8000 when it reaches $FFFF, but that hardly helps as you'd have to play through the interrupt vectors (highest starting address is $FFC0) and even then you could only access the first 4K or so at $8000.

by on (#83838)
Yikes, I was afraid of that. Was just playing around with a test and got a sample to play stored at $E000. Learned something for the future if nothing else. Thanks for the answer, thefox.

by on (#83855)
What mapper were you planning to use for your project? UNROM (Crazy Climber version) can switch $C000-$FFFF, MMC1 has a mode to switch $C000-$FFFF, and MMC3 can switch $C000-$DFFF and $A000-$BFFF independently.

by on (#83913)
MMC5 can use a sample placed at $8000-$BFFF.It operates in the same way as regular, except that all 8 bits are used (Instead of 7).