The part of the Sega Genesis memory map allocated to the cartridge is a linear sequence of bytes from $000000 to $3FFFFF. The part of the Super NES memory map allocated to the cartridge is not. See my diagram of Super NES address space.
The 65816 divides its 16 MiB address space into 256 banks, each 64 KiB in size. In order to make certain addressing modes more efficient to use, the Super NES divides up cartridge ROM address space as follows:
- Bank $00-$3F: Second half (32 KiB, $8000-$FFFF)
- Bank $40-$7D: Whole bank (64 KiB, $0000-$FFFF)
- Bank $80-$BF: Second half (32 KiB, $8000-$FFFF)
- Bank $C0-$FF: Whole bank (64 KiB, $0000-$FFFF)
The "HiROM" mapping (mode $21 or $31) is a linear sequence of bytes from $C00000 on up. Because of incomplete decoding of the address bus, the second half of each 64 KiB bank is usually mirrored into $808000-$80FFFF, $818000-$81FFFF, $828000-$82FFFF, ..., $BF8000-$BFFFFF. In addition, banks $80-$FD are mirrored into banks $00-$7D, so that the 65816 CPU can find the reset vectors at $00FFE0-$00FFFF (which is mirrored from $80FFE0-$80FFFF). Usually, battery save memory is at $306000-$307FFF, $316000-$317FFF, ..., $3F6000-$3F7FFF.
You might notice that everything in the above skips banks $7E and $7F. That's where the Super NES puts its 128 KiB of RAM, with the first 8 KiB mirrored into banks $00-$3F and $80-$BF. It also mirrors the memory-mapped I/O ports associated with the CPU's memory controller and the Picture Processing Unit (PPU) into banks $00-$3F and $80-$BF. They are made accessible through all these banks so that the same value of the Data Bank Register (DBR), analogous to the Data Segment (DS) register on 8086, can see RAM and ROM at the same time.
The "ExHiROM" mapping (mode $25 or $35) has two linear sequences of bytes: from $C00000 to $DFFFFF and then from $400000 to $5FFFFF, which get mirrored down into the second half of $80-$BF and $00-$1F respectively. Only the largest games, mostly exclusive to Japan such as Tales of Phantasia, use ExHiROM.
The "LoROM" mapping (mode $20 or $30), more common on early games, does not connect A15 out of the system to the ROM. This means it uses only the second half of each bank: $808000-$80FFFF, $818000-$81FFFF, $828000-$82FFFF, ..., $FF8000-$FFFFFF. Banks $C0 through $FF mirror the 32K of data in that bank into both halves of the bank, and banks $00-$6F are a mirror of banks $80-$EF. Usually, battery save memory is somewhere in $700000-$77FFFF.
Cartridges use either slow or fast mask ROM. Modes $20, $21, and $25 are "slow ROM", where the CPU slows down slightly in order to allow use of cheaper 200 ns ROM. Modes $30 and $31 are "fast ROM", which needs 120 ns ROM that was more expensive in the early 1990s. Mode $35 has fast ROM for the $C00000-$FFFFFF region but slow ROM for the $400000-$5FFFFF region.
Slight differences in address decoding in each cartridge lead to differences in which address ranges actually contain mirrored ROM (as opposed to open bus) and which address ranges contain battery-backed RAM. Furthermore, some coprocessors included in cartridges can change this mapping at runtime.