Bank switching is necessary because the 6502 chip in the NES has a 16-bit address space, with the bottom 0x4019 (~16K) bytes being reserved for system use (RAM, PPU/APU features, and controller I/O). Cartridges therefore only had access to a ~48 KiB range of address space (although in practice I believe only the top 32K was typically used for ROM), so bank switching was needed to be able to fully access anything larger.
Comment on Are there typically limits to the size that ROMs can be when it comes to emulators?
DebatableRaccoon@lemmy.ca 11 months agoI thought the reason for switching was the storage limitations of a cartridge, not the console’s RAM
YaBoyMax@programming.dev 11 months ago
KpntAutismus@lemmy.world 11 months ago
AFAIK, the contents of the cartridge was entirely loaded into RAM, so one bank of ROM chips needed to be a specific size. the cartridge of course gets much more expensive if you double the storage, so it wasn’t done very often.
youtu.be/ZWQ0591PAxM they mention switching storage at 1:10.
DebatableRaccoon@lemmy.ca 11 months ago
Thanks for the correction and further detail. I was thinking of it in moder terms where the machine takes the info it needs as-and-when rather than storing everything on the cartridge.