Non-power-of-two ROM size became common in the 16-bit era. Super NES and Genesis games of size 6, 10, 12, 20, 24, and 48 Mbit (0.75, 1.25, 1.5, 2.5, 3, and 6 MiB) exist. Though the exact mapping of ROM to address space depends on the board, most boards behave roughly this way. The larger ROM appears in address space at a lower address, and the smaller ROM is mirrored to appear as large as the larger ROM. A 12 Mbit ROM usually shows up as one copy of the first 8 Mbit and two copies of the last 4 Mbit (ABCC). A 20 Mbit ROM is one copy of the first 16 Mbit and four copies of the last 4 Mbit (ABCDEEEE). This interpretation matches the checksum values in Super NES ROMs' internal header.
The following doubling algorithm should produce reasonable results for most ROMs with non-power-of-two sizes:
While ROM size is not a power of two:
Find the place value of the least significant 1 bit in ROM size
Double up that many bytes at the end
For example, 10 Mbit is 1310720 ($140000) bytes. Doubling the last $40000 bytes produces 12 Mbit, or 1572864 ($180000) bytes. Further doubling the last $80000 bytes of this produces 16 Mbit, or 2097152 ($200000) bytes.