Game Boy Programming Manual
4.5 Programming Cautions
4.5.1 When Migrating from MBC1 to MBC5
! Use of Register 1
If an MBC1 program uses register 1 (ROM bank control register) addresses 3000h-
3FFFh, the bank intended for selection by ROMB1 in MBC5 will not be selected.
Addresses 2000h-2FFFh of register 1 should be used by programs that use MBC1.
! Use of Register 2
Note that in MBC1, programs that use 8 Mbits or more use register 2 (ROM or RAM bank
control register) for the high ROM bank. Consequently, in MBC5 the RAM bank is different
while the ROM bank is unchanged.
! ROM Banks 20h, 40h, and 60h
ROM banks 20h, 40h, and 60h cannot be used in MBC1, but they can be used in MBC5.
! MBC1 Register 3 (ROM/RAM change)
Because the addresses of ROM and RAM are independent of each other in MBC5,
ROM/RAM switching is unnecessary.
Any write instructions to register3 left in a program that uses MBC1 are ignored by MBC5
and have no effect.
4.5.2 General Notes
! Memory Image
If a memory device is used that uses less than the maximum amount of memory available
(ROM: 64 Mbits; RAM: 1 Mbit) , a memory image is generated for the empty bank area.
Therefore, please do not develop software that uses an image, because it may cause
failures.
! RAM Data Protection
To protect RAM data, it is recommended that RAM access be disabled when RAM is not
being accessed (RAMG ← 00h) .
! Specifying External Sound Input (VIN)
Always use the sound control register (NR50) with bits 7 and 3 (VIN function OFF) set to
0. Because the VIN terminal is used in development flash ROM cartridges, using the
register with VIN set to ON will produce sound abnormalities.
226