RAMBO-1
From NESdev Wiki
Jump to navigationJump to search
The Tengen RAMBO-1 is an ASIC mapper, assigned to iNES mapper 64. This mapper is basically Tengen's version of the MMC3, but with some extra features.
Overview
- PRG ROM size: Up to 2 MB (??)
- PRG ROM bank size: 8 KB
- PRG RAM: Unknown
- CHR capacity: Up to 256 KB ROM
- CHR bank size: All 1 KB, or 2 2KB and 4 1KB
- Nametable mirroring: Controlled by mapper
- Subject to bus conflicts: No
Banks
- CPU $8000-$9FFF: 8 KB switchable PRG ROM bank
- CPU $A000-$BFFF: 8 KB switchable PRG ROM bank
- CPU $C000-$DFFF: 8 KB switchable PRG ROM bank
- CPU $E000-$FFFF: 8 KB PRG ROM bank, fixed to the last bank
- PPU -- Three selectable configurations:
- 1 KB switchable CHR banks at $0000, $0400, $0800, $0C00, $1000, $1400, $1800, $1C00
- 2 KB switchable CHR banks at $0000, $0800; 1 KB switchable CHR banks at $1000, $1400, $1800, $1C00
- 2 KB switchable CHR banks at $1000, $1800; 1 KB switchable CHR banks at $0000, $0400, $0800, $0C00
Registers
The RAMBO-1 has 4 pairs of registers at $8000-$9FFF, $A000-$BFFF, $C000-$DFFF, and $E000-$FFFF - even addresses ($8000, $8002, etc.) select the low register and odd addresses ($8001, $8003, etc.) select the high register in each pair.
Bank select ($8000-$9FFE, even)
7 bit 0 ---- ---- CPKx xRRR ||| ||| ||| +++- Specify which bank register to update on next write to Bank Data register ||| 0: Select 2 (K=0) or 1 (K=1) KB CHR bank at PPU $0000 (or $1000); ||| 1: Select 2 (K=0) or 1 (K=1) KB CHR bank at PPU $0800 (or $1800); ||| 2: Select 1 KB CHR bank at PPU $1000-$13FF (or $0000-$03FF); ||| 3: Select 1 KB CHR bank at PPU $1400-$17FF (or $0400-$07FF); ||| 4: Select 1 KB CHR bank at PPU $1800-$1BFF (or $0800-$0BFF); ||| 5: Select 1 KB CHR bank at PPU $1C00-$1FFF (or $0C00-$0FFF); ||| 6: Select 8 KB PRG bank at $8000-$9FFF (or $A000-$BFFF); ||| 7: Select 8 KB PRG bank at $A000-$BFFF (or $C000-$DFFF); ||| 8: If K=1, Select 1 KB CHR bank at PPU $0400 (or $1400); ||| 9: If K=1, Select 1 KB CHR bank at PPU $0C00 (or $1C00); ||| F: Select 8 KB PRG bank at $C000-$DFFF (or $8000-$9FFF); ||+------- Full 1KB CHR ROM bank mode (0: two 2KB banks at $0000-$0FFF (or $1000-$1FFF), || 1: four 1KB banks at $0000-$0FFF (or $1000-$1FFF)) |+-------- PRG ROM bank configuration (0: $8000-$9FFF uses bank selected with R:6, | $A000-$BFFF uses bank selected with R:7, | $C000-$DFFF uses bank selected with R:F; | 1: $8000-$9FFF uses bank selected with R:F, | $A000-$BFFF uses bank selected with R:6, | $C000-$DFFF uses bank selected with R:7) +--------- CHR ROM bank configuration (0: two 2 KB banks (or four 1 KB banks) at $0000-$0FFF, four 1 KB banks at $1000-$1FFF; 1: two 2 KB banks (or four 1 KB banks) at $1000-$1FFF, four 1 KB banks at $0000-$0FFF)