oh my god. MMC1 (the NES mapper used in games like Metroid, Kid Icarus, and Zelda 1/2) uses a serial bank-switching interface.
To bankswitch, you write a byte with value with bit 7 set to any address in 8000-FFFF, then write 5 times with bit 7 not set, but varying bit 0. After 5 writes, it bankswitches for you.
For the last write, bits 13 and 14 of the address select which register you're pointing at.
To bankswitch, you write a byte with value with bit 7 set to any address in 8000-FFFF, then write 5 times with bit 7 not set, but varying bit 0. After 5 writes, it bankswitches for you.
For the last write, bits 13 and 14 of the address select which register you're pointing at.
