And have you made sure that the banking addresses like FFFF are readable (with the byte value ANDed according to the size of the cart)? Many V-int routines read the values of FFFE and FFFF, then do their routine and then restore the values afterwards. And the FFFE and FFFF values may be read at DFFE and DFFF (R-Type is one that does it (I think)). (Super Tennis won't access these anyway). -- If the cart size is 256K then the page numbers would be $00-$0F, but some games ... Fantasy Zone I think, like to write $F0-$FF instead. Now, when poking to FFFF/FFFE (not DFFF/E) the value written is ANDed by the cart size, so it would be $F0 & $0F = $00. The only exception to this is 3 megabit (384K) carts (Battleship.GG) which you just AND with $1F (512K). If you've been allowing games to page in ROM block $F0, then I can understand why you'd have problems... -- Read: $DFFE - returns last byte written to $DFFE. $DFFF - returns last byte written to $DFFF. $FFFE - returns last byte written to $DFFE. $FFFF - returns last byte written to $DFFF. Write: $DFFE - write byte to $DFFE. $DFFF - write byte to $DFFF. $FFFE - write (byte & cart size) to $DFFE, then page in rom at 16384. $FFFF - write (byte & cart size) to $DFFF, then page in rom at 32768. -- When I load in a cartridge I always set up the rom as paged: 00000 : ROM 0. 16384 : ROM 1. 32768 : ROM 0. Just as a precaution, I don't think that it's had an effect, but you never know. --