User:Lidnariq/MMC3 Variants: Difference between revisions
(→Legend for bank style: add description for "outer banks" in legend §) |
(use "8" everywhere instead of 1x8 for CHR banking; explicitly call out inner/outer banks among discrete logic mappers) |
||
Line 12: | Line 12: | ||
* 8 - Banks 8 KiB at a time | * 8 - Banks 8 KiB at a time | ||
* 2×4 - Two independent 4 KiB banks | * 2×4 - Two independent 4 KiB banks | ||
* 4+4F - Bottom 4 KiB are bankable, top 4 KiB are fixed | |||
* 4×2 - Four independent 2 KiB banks | * 4×2 - Four independent 2 KiB banks | ||
* 8×1 - Eight independent 1 KiB banks | * 8×1 - Eight independent 1 KiB banks | ||
* N108 - | * N108 - Set the trend for CHR banking style also. Equivalent to 2×2+4×1 = two independent 2 KiB banks followed by four independent 1 KiB banks | ||
* MMC3 - allows the user to swap which pattern table gets the "large" and "small" banks | * MMC3 - allows the user to swap which pattern table gets the "large" and "small" banks | ||
Line 35: | Line 36: | ||
|[[iNES Mapper 004|4]] || [[MMC3]], [[MMC6]] || N108; 8F+8+8+8F || 512 || N108; 4×1+2×2 || 256 || H/V, ext WRAM, Scanline IRQ, MMC6 has 1024b int WRAM | |[[iNES Mapper 004|4]] || [[MMC3]], [[MMC6]] || N108; 8F+8+8+8F || 512 || N108; 4×1+2×2 || 256 || H/V, ext WRAM, Scanline IRQ, MMC6 has 1024b int WRAM | ||
|- | |- | ||
|(none) || [[Family Computer Disk System|Famicom Disk System]] || | |(none) || [[Family Computer Disk System|Famicom Disk System]] || 32RAM+8F || arbitrary || 8KiB RAM only || 0 || [[FDS audio|Expansion audio]], H/V, Cycle IRQ | ||
|- | |- | ||
|[[iNES Mapper 001|1]]/[[iNES Mapper 155|155]] || [[MMC1]] || 16+16F; 16F+16; 32 || 256 (512) || | |[[iNES Mapper 001|1]]/[[iNES Mapper 155|155]] || [[MMC1]] || 16+16F; 16F+16; 32 || 256 (512) || 8; 2×4 || 128 || 1/H/V, [[SxROM|sometimes bankable]] ext WRAM | ||
|- | |- | ||
|[[iNES Mapper 005|5]] || [[MMC5]] || 32; 2×16; 16+8+8; 4×8 || 1024 || | |[[iNES Mapper 005|5]] || [[MMC5]] || 32; 2×16; 16+8+8; 4×8 || 1024 || 8; 2×4; 4×2; 8×1 || 1024 || [[MMC5 audio|Expansion audio]], bankable ext WRAM, 1024b int WRAM, arbitrary mirroring, vertical split, Scanline IRQ, hardware multiplier | ||
|- | |- | ||
|[[iNES Mapper 009|9]] || [[MMC2]] || 8+24F || 128 || 2×4 || 128 || H/V, tile triggered CHR banking | |[[iNES Mapper 009|9]] || [[MMC2]] || 8+24F || 128 || 2×4 || 128 || H/V, tile triggered CHR banking | ||
Line 59: | Line 60: | ||
|[[iNES Mapper 027|27]] || "Pirate" VRC4 || 3×8+8F || ?256? || 8×1 || 512 || 1/H/V, ?? IRQ, ? | |[[iNES Mapper 027|27]] || "Pirate" VRC4 || 3×8+8F || ?256? || 8×1 || 512 || 1/H/V, ?? IRQ, ? | ||
|- | |- | ||
|[[iNES Mapper 028|28]] || [[User:Tepples/Multi-discrete mapper|Tepples's]] || 16+16F; 16F+16; 32 || 32…256 inner / 8192 outer || | |[[iNES Mapper 028|28]] || [[User:Tepples/Multi-discrete mapper|Tepples's]] || 16+16F; 16F+16; 32 || 32…256 inner / 8192 outer || 8 || 32RAM || 1/H/V | ||
|- | |- | ||
|[[iNES Mapper 032|32]] || Irem G101 || MMC3 || 256 || 8×1 || 256 || H/V | |[[iNES Mapper 032|32]] || Irem G101 || MMC3 || 256 || 8×1 || 256 || H/V | ||
Line 89: | Line 90: | ||
|[[iNES Mapper 085|85]] || [[VRC7]] || 3×8+8F || 512 || 8×1 || 256 || [[VRC7 audio|Expansion audio]], 1/H/V, Scanline IRQ | |[[iNES Mapper 085|85]] || [[VRC7]] || 3×8+8F || 512 || 8×1 || 256 || [[VRC7 audio|Expansion audio]], 1/H/V, Scanline IRQ | ||
|- | |- | ||
|[[iNES Mapper 090|90]]/[[iNES Mapper 209|209]]/[[iNES Mapper 211|211]] || for: Tekken 2 HKO || 8+32F; 8+16+16F; 4×8+8F; 8+32; 8+2×16; 4×8 || 1024 || | |[[iNES Mapper 090|90]]/[[iNES Mapper 209|209]]/[[iNES Mapper 211|211]] || for: Tekken 2 HKO || 8+32F; 8+16+16F; 4×8+8F; 8+32; 8+2×16; 4×8 || 1024 || 8; 2×4; 4×2; 8×1 || 256 || ROM nametables(209,211), 1/H/V(90) or arbitrary Mirroring(209,211), Scanline/Cycle/Pixel IRQ, hardware multiplier | ||
|- | |- | ||
|[[iNES Mapper 091|91]] || for: Street Fighter 3 HKO || N108 || 128 || 4×2 || 512 || IRQ, ? | |[[iNES Mapper 091|91]] || for: Street Fighter 3 HKO || N108 || 128 || 4×2 || 512 || IRQ, ? | ||
Line 189: | Line 190: | ||
| [[iNES Mapper 038|38]] || 2 || 128 || 32 || 32 || 8 || V/H hardwired || Impossible || No | | [[iNES Mapper 038|38]] || 2 || 128 || 32 || 32 || 8 || V/H hardwired || Impossible || No | ||
|- | |- | ||
| [[iNES Mapper 041|41]] || 7 || 256 || 32 || 128 || 8 / 32 || V/H switchable || Impossible || Partly | | [[iNES Mapper 041|41]] || 7 || 256 || 32 || 128 || 8 inner / 32 outer || V/H switchable || Impossible || Partly | ||
|- | |- | ||
| [[iNES Mapper 070|70]] || 3 || 256 || 16+16F || 128 || 8 || V/H hardwired || No || Likely | | [[iNES Mapper 070|70]] || 3 || 256 || 16+16F || 128 || 8 || V/H hardwired || No || Likely | ||
Line 195: | Line 196: | ||
| [[iNES Mapper 072|72]] || 4+speech || 256 || 16+16F || 128 || 8 || V/H hardwired || No || Yes | | [[iNES Mapper 072|72]] || 4+speech || 256 || 16+16F || 128 || 8 || V/H hardwired || No || Yes | ||
|- | |- | ||
| [[iNES Mapper 077|77]] || 4 || 512 || 32 || 32+6RAM || 2 || 4 || No || Likely | | [[iNES Mapper 077|77]] || 4 || 512 || 32 || 32+6RAM || 2+6RAM || 4 || No || Likely | ||
|- | |- | ||
| [[iNES Mapper 078|78.1]] || 3 || 128 || 16+16F || 128 || 8 || 1 || No || Likely | | [[iNES Mapper 078|78.1]] || 3 || 128 || 16+16F || 128 || 8 || 1 || No || Likely | ||
Line 215: | Line 216: | ||
| [[iNES Mapper 094|94]] || 2 || 128 || 16+16F || 8 || || V/H hardwired || No || Yes | | [[iNES Mapper 094|94]] || 2 || 128 || 16+16F || 8 || || V/H hardwired || No || Yes | ||
|- | |- | ||
| [[iNES Mapper 096|96]] || 3 || 128 || 32 || 32RAM || 4+4F / 16 || V/H hardwired || No || Likely | | [[iNES Mapper 096|96]] || 3 || 128 || 32 || 32RAM || 4+4F inner / 16 outer || V/H hardwired || No || Likely | ||
|- | |- | ||
| [[iNES Mapper 099|99]] || 0* || 40 || 8+24F || 16 || 8 || 4 || No || No | | [[iNES Mapper 099|99]] || 0* || 40 || 8+24F || 16 || 8 || 4 || No || No |
Revision as of 22:38, 3 July 2014
Legend for bank style
PRG
- 32 - Banks 32 KiB at a time
- 16+16F - Bottom 16 KiB are bankable, top 16 KiB are fixed
- 16F+16 - Bottom 16 KiB are fixed, top 16 KiB are bankable
- 8+24F - Bottom 8 KiB are fixed, top 24 KiB are fixed
- 3×8+8F - Three independent 8 KiB banks at bottom, topmost 8 KiB are fixed
- N108 - The Namco 108 set the theme that many other bank styles derive from ( a.k.a. 8+8+16F = two independent 8 KiB banks at bottom, topmost 16 KiB are fixed)
- MMC3 - The MMC3 extended the banking style of the Namco 108 ( user switches between N108 and 8F+8+8+8F = bottommost and topmost 8 KiB are fixed, middle two 8 KiB banks are independently bankable)
CHR
- 8 - Banks 8 KiB at a time
- 2×4 - Two independent 4 KiB banks
- 4+4F - Bottom 4 KiB are bankable, top 4 KiB are fixed
- 4×2 - Four independent 2 KiB banks
- 8×1 - Eight independent 1 KiB banks
- N108 - Set the trend for CHR banking style also. Equivalent to 2×2+4×1 = two independent 2 KiB banks followed by four independent 1 KiB banks
- MMC3 - allows the user to swap which pattern table gets the "large" and "small" banks
Outer banks
"Outer banks" are things you find in the multicart mappers, where individual games write to the registers of the "regular" mapper and the menu writes to a separate set of registers that chooses which game will be played. For example, Nintendo World Cup appeared on two boards that extend the MMC3 in this way: one with SMB1 and Tetris and one with Super Spike V'Ball.
This same structure occasionally shows up in ordinary single-game mappers: Bandai's Oeka Kids games, Namco's Devil Man, several other Namco games, and a few HKOs that would like better corroboration.
ASIC mappers with simple banking
Also see Comparison of Nintendo mappers
PRG | CHR | |||||
---|---|---|---|---|---|---|
iNES Mapper | Short name | bank style | max (KiB) | bank style | max (KiB) | Comments |
206 | N108 | 8+8+16F | 128 | 2×2+4×1 | 64 | none |
4 | MMC3, MMC6 | N108; 8F+8+8+8F | 512 | N108; 4×1+2×2 | 256 | H/V, ext WRAM, Scanline IRQ, MMC6 has 1024b int WRAM |
(none) | Famicom Disk System | 32RAM+8F | arbitrary | 8KiB RAM only | 0 | Expansion audio, H/V, Cycle IRQ |
1/155 | MMC1 | 16+16F; 16F+16; 32 | 256 (512) | 8; 2×4 | 128 | 1/H/V, sometimes bankable ext WRAM |
5 | MMC5 | 32; 2×16; 16+8+8; 4×8 | 1024 | 8; 2×4; 4×2; 8×1 | 1024 | Expansion audio, bankable ext WRAM, 1024b int WRAM, arbitrary mirroring, vertical split, Scanline IRQ, hardware multiplier |
9 | MMC2 | 8+24F | 128 | 2×4 | 128 | H/V, tile triggered CHR banking |
10 | MMC4 | 16+16F | 256 | 2×4 | 128 | H/V, ext WRAM, tile triggered CHR banking |
16/159 | LZ93D50 (I²C) | 16+16F | 256 | 8×1 | 256 | 1/H/V, serial EEPROM, Cycle IRQ |
18 | Jaleco SS88006 | 3×8+8F | 256? | 8×1 | 256 | 1/H/V, Cycle IRQ, ADPCM playback |
19 | Namco 163 | 3×8+8F | 512 | 12×1 | 256 | Expansion audio, ROM nametables, arbitrary mirroring, Cycle IRQ, ext WRAM |
21/23/25 | VRC4 | MMC3 | 256 | 8×1 | 512 | 1/H/V, ext WRAM, Scanline IRQ |
22/23/25 | VRC2 | N108 | 256 | 8×1 | 256 | 1/H/V, serial EEPROM |
24/26 | VRC6 | 16+8+8F | 256 | 6×1+2×3; 4×2+4×1; 4×1+4×2 | 256 (512) | Expansion audio, ROM nametables, arbitrary mirroring, Scanline IRQ, ext WRAM |
27 | "Pirate" VRC4 | 3×8+8F | ?256? | 8×1 | 512 | 1/H/V, ?? IRQ, ? |
28 | Tepples's | 16+16F; 16F+16; 32 | 32…256 inner / 8192 outer | 8 | 32RAM | 1/H/V |
32 | Irem G101 | MMC3 | 256 | 8×1 | 256 | H/V |
33/48 | TC0190 | N108 | 512 | N108 | 512 | H/V, ext WRAM, 48 has Scanline IRQ |
64 | RAMBO-1 | 3×8+8F | 256 | MMC3; 8×1 | 256 | H/V, Scanline/Cycle IRQ |
65 | Irem H3001 | 3×8+8F | 256 (512?) | 8×1 | 256 | H/V, Cycle IRQ, ? |
67 | Sunsoft 3 | 16+16F | 128? | 4×2 | 128? | 1/H/V, Cycle IRQ, ?WRAM? |
68 | Sunsoft 4 | 16+16F | 256 | 4×2 | 256 | ROM nametables, 1/H/V, WRAM |
69 | Sunsoft FME-7 | 4×8+8F | 256 | 8×1 | 256 | Expansion audio, 1/H/V, Cycle IRQ, ext WRAM |
73 | VRC3 | 16+16F | 128 | 8KiB RAM only | 0 | Cycle IRQ, ext WRAM |
74/194 | TQROM-like (2kiB) | MMC3 | 1024 | MMC3 | 254 | ?like TQROM? |
75 | VRC1 | 3×8+8F | 128 | 2×4 | 128 | H/V |
76 | N108 (inflated CHR) | N108 | 128 | 4×2 | 128 | none |
80 | X1-005 | 3×8+8F | 256 | N108 | 256 | H/V, 128b int WRAM |
82 | X1-017 | 3×8+8F | 512? | MMC3 | 256 | H/V, 5120b int WRAM, ?IRQ? |
85 | VRC7 | 3×8+8F | 512 | 8×1 | 256 | Expansion audio, 1/H/V, Scanline IRQ |
90/209/211 | for: Tekken 2 HKO | 8+32F; 8+16+16F; 4×8+8F; 8+32; 8+2×16; 4×8 | 1024 | 8; 2×4; 4×2; 8×1 | 256 | ROM nametables(209,211), 1/H/V(90) or arbitrary Mirroring(209,211), Scanline/Cycle/Pixel IRQ, hardware multiplier |
91 | for: Street Fighter 3 HKO | N108 | 128 | 4×2 | 512 | IRQ, ? |
95 | N108 (nametable) | N108 | 128 | N108 | 32 | 1/H |
97 | Irem TAM-S1 | 16F+16 | 256 | 8KiB RAM only | 0 | 1/H/V |
105 | NES-EVENT | 16+16F; 16F+16; 32 | 256 | 8KiB RAM only | 0 | 1/H/V, ext WRAM, IRQ |
112 | "chinese" N108 | N108 | 256 | N108 | 256 | H/V |
118 | TLSROM, TKSROM | MMC3 | 512 | MMC3 | 128 | Arbitrary mirroring, ext WRAM, Scanline IRQ |
119 | TQROM (8kiB) | MMC3 | 512 | MMC3 | 64 | H/V, ext WRAM, Scanline IRQ, CHR RAM and ROM |
153 | LZ93D50 (RAM) | 16+16F | 512 | 8KiB RAM only | 0 | 1/H/V, Cycle IRQ, ext WRAM |
157 | Bandai Datach | 16+16F | 256 | 8KiB RAM only | 0 | 1/H/V, Cycle IRQ, serial EEPROMs, barcode reader |
158 | RAMBO-1 (nametable) | 3×8+8F | 256 | MMC3; 8×1 | 128 | Arbitrary mirroring, Scanline/Cycle IRQ |
165 | MMC2 × MMC3 | MMC3 | 512 | 2×4 | 128 | tile triggered CHR banking, CHR RAM and ROM, ? |
182 | for: Pocahontas | MMC3 | 256 (512?) | MMC3 | 256 | H/V, Scanline IRQ, ? |
189 | MMC3 × BNROM | 32 | 512 | MMC3 | 256 | ? |
191 | TQROM-like (2kiB) | MMC3 | 256 (512?) | MMC3 | 128 | ?like TQROM? |
192/195 | TQROM-like (4kiB) | MMC3 | 512? | MMC3 | 252 | ?like TQROM? |
193 | NTDEC TC-112 | 8+24F | 256 | 4+2+2 | 256 | none |
207 | X1-005 (nametable) | 3×8+8F | 256 | N108 | 128 | 1/H, 128b int WRAM |
210 | Namco 175 and 340 | 3×8+8F | 512 | 8×1 | 256 | 1/H/V(N340), ext WRAM(N175) |
246 | for: Fong Shen Bang - Zhu Lu Zhi Zhan | 4×8 | 512? | 4×2 | 512? | none? |
252 | for: San Guo Zhi | N108 | 256? | 8×1 | 128? | Scanline IRQ, ? |
Mappers with outer banks
PRG | CHR | |||||||
---|---|---|---|---|---|---|---|---|
iNES Mapper | Short name | inner | outer | max (KiB) | inner | outer | max (KiB) | Comments |
12 | for: dbz5 | MMC3 | — | 512 | MMC3 | 2×256 | 512 | ?like MMC3? |
14 | for: Samurai Spirits | MMC3 | — | 512 | MMC3; 8×1 | 3×256 | 512 | H/V, ext WRAM, Scanline IRQ, ?like MMC3? |
37 | MMC3+'00+'161 | MMC3 | 64; 128 | 256 | MMC3 | 128 | 256 | H/V, Scanline IRQ |
44 | for: Super Big 7-in-1 | MMC3 | 128; 256 | 1024 | MMC3 | 128; 256 | 1024 | ?like MMC3? |
45 | for: Super 4-in-1 | MMC3 | 8…512 | 1024 (2048?) | MMC3 | 1…256 | 1024 (4096?) | ?like MMC3? |
47 | MMC3+'161 | MMC3 | 128 | 256 | MMC3 | 128 | 256 | H/V, Scanline IRQ |
49 | for: Super HIK 4-in-1 | MMC3; 32 | 128 | 512 | MMC3 | 128 | 512 | ?like MMC3? |
52 | for: Mario 7-in-1 | MMC3 | 128; 256 | 1024 | MMC3 | 128; 256 | 1024 | ?like MMC3? |
88/154 | N108 (pattern split) | N108 | — | 128 | 2×2/64 + 4×1/64 | 2×64 | 128 | none |
115 | for: Thunderbolt 2 (ch) | MMC3; 16+16F; 16+8+8F | — | 128 (256?) | MMC3 | 256 | 512 | ?like MMC3? |
116 | MMC1 × MMC3 × VRC2 | MMC3; 16+16F; 16F+16; 32 | — | 256 | MMC3; 2×4; 8×1 | 256 | 512 | 1/H/V, ?like MMC3? |
205 | for: 3-in-1 | MMC3 | 128; 256 | 512 | MMC3 | 128; 256 | 512 | ?like MMC3? |
245 | MMC3 × SUROM | MMC3 | 512 | 1024 | 8kiB RAM only | — | 0 | ?like MMC3? |
Discrete logic mappers
Only the ones not made by Nintendo.
This table describes the mappers as they existed, as opposed to any obvious oversize extensions.
See also Comparison of Nintendo mappers and User:Lidnariq/Discrete Logic Table.
You probably don't actually want to use these.
iNES | Chips | Max PRG (KiB) | PRG bank style | Max CHR (KiB) | CHR bank style | Mirroring | PRG RAM? | Bus conflicts? |
---|---|---|---|---|---|---|---|---|
Color Dreams (11, 144) | 1 | 128 | 32 | 128 | 8 | V/H hardwired | No | Yes |
29 (RET-CUFROM) | 3 | 128 | 16+16F | 32 | 8 | V hardwired | Yes | No |
RET-UNROM 512 (30) | 3 or 4 | 512 | 16+16F | 32RAM | 8 | 1 or V/H hardwired | No | Optional (extra IC) |
NINA-001 (34) | 6 | 64 | 32 | 64 | 4+4 | V hardwired | Yes | No |
36 | ? | 128 | 32 | 128 | 8 | V hardwired | Unlikely | Likely |
38 | 2 | 128 | 32 | 32 | 8 | V/H hardwired | Impossible | No |
41 | 7 | 256 | 32 | 128 | 8 inner / 32 outer | V/H switchable | Impossible | Partly |
70 | 3 | 256 | 16+16F | 128 | 8 | V/H hardwired | No | Likely |
72 | 4+speech | 256 | 16+16F | 128 | 8 | V/H hardwired | No | Yes |
77 | 4 | 512 | 32 | 32+6RAM | 2+6RAM | 4 | No | Likely |
78.1 | 3 | 128 | 16+16F | 128 | 8 | 1 | No | Likely |
78.3 | 5 | 128 | 16+16F | 128 | 8 | V/H switchable | No | Yes |
79 (146) | 2 | 64 | 32 | 64 | 8 | V/H hardwired | No | No |
86 | 3+speech | 128 | 32 | 64 | 8 | V/H hardwired | Impossible | No |
87 (101) | 2 | 32 | 32 | 8 | V/H hardwired | Impossible | No | |
89 | (2)† | 128 | 16+16F | 128 | 8 | 1 | No | Yes |
92 | 5+speech | 256 | 16F+16 | 128 | 8 | V/H hardwired | No | Yes |
93 | (2)† | 128 | 16+16F | 8‡ | V/H hardwired | No | Yes | |
94 | 2 | 128 | 16+16F | 8 | V/H hardwired | No | Yes | |
96 | 3 | 128 | 32 | 32RAM | 4+4F inner / 16 outer | V/H hardwired | No | Likely |
99 | 0* | 40 | 8+24F | 16 | 8 | 4 | No | No |
107 | 1? | 128 | 32 | 64 | 8 | V hardwired | No | Likely |
133 | 2? | 64 | 32 | 32 | 8 | V/H hardwired | No | No |
140 | 3 | 128 | 32 | 128 | 8 | V/H hardwired | Impossible | No |
143 | 2? | 32 | 8 | V/H hardwired | No | No | ||
145 | 2? | 32 | 16 | 8 | V/H hardwired | No | No | |
147 | 2? | 128 | 32 | 128 | 8 | V/H hardwired | No | No |
148 | 1? | 64 | 32 | 64 | 8 | V/H hardwired | No | Yes |
149 | 1? | 32 | 16 | 8 | V/H hardwired | No | Yes | |
152 | 3 | 128 | 16+16F | 128 | 8 | 1 | No | Likely |
168 | 7 | 64 | 16+16F | 64RAM | 4F+4 | V hardwired | No | No |
174 | 3 | 128 | 16 or 32 | 64 | 8 | V/H switchable | No | No |
184 | (3)† | 32 | 32 | 4+4 | V/H hardwired | Impossible | No | |
185 | 1 | 32 | 8 | V/H hardwired | No | Yes | ||
218 | -1§ | 32 | 1RAM | 1 hardwired | No | No |
† Mappers 89, 93, and 184 exist as a single IC, however their functions are trivially described using a small number of 7400-series ICs, and likely contain multiple silicon dice that were wire bonded together in the same package.
‡ Mapper 93 is technically the same 89 other than mirroring, but it only commercially existed using 8kB of CHR-RAM
* the Vs System distributed its original games as five or six 8 KiB ROMs, and decoding on its mainboard allowed banking of CHR like CNROM. It is a little disingenuous to claim that 0 ICs were necessary for banking since the same functionality is not possible on a Famicom, however, banking was incrementally free.
§ Doesn't have CHRROM, hence "-1" ICs