3 ms·
If you browse a bit on the second link, it will give you a list of common cartridge models. See e.g. https://gbdev.io/pandocs/MBC5.html https://gbdev.io/pandoc
by hyperman1 4y ago
If you browse a bit on the second link, it will give you a list of common cartridge models.
See e.g. https://gbdev.io/pandocs/MBC5.html https://gbdev.io/pandocs/MBC5.html which gives you 8MB as peak ROM size, but it is all paged via the 2nd half of the cartridges address space, in blocks of 16K. Code used by the whole program preferably resides in the first (unbanked) 16K.
This pushes program designs to prefer to either use banking mainly for data (maps/graphics/...), or split the program in independent 16K sized sub-programs that don't communicate too much. If code in bank A uses data from bank B, you'll have to switch back and forth a lot, mediated by unbanked code. You can go all the way, of course, but it is an annoying way to program.