User:Lidnariq/Discrete Logic Table: Difference between revisions
From NESdev Wiki
Jump to navigationJump to search
(add list of exceptions; point vs system to m99 description) |
(GTROM should be on the list) |
||
(20 intermediate revisions by the same user not shown) | |||
Line 8: | Line 8: | ||
|- | |- | ||
! colspan="1" rowspan="9"|32kB PRG bank bits !! 0 | ! colspan="1" rowspan="9"|32kB PRG bank bits !! 0 | ||
| [[NROM]] || [[iNES Mapper 099|Vs. System]] || [[CNROM]], [[iNES Mapper 087|87]] | | [[NROM]], [[iNES Mapper 143|143]], [[iNES Mapper 185|185]] || [[iNES Mapper 099|Vs. System]], [[iNES Mapper 145|145]], [[iNES Mapper 149|149]] || [[CNROM]], [[iNES Mapper 087|87]]=[[iNES Mapper 101|101]], [[CPROM]]†, [[iNES Mapper 173|173]] || || || || || || style="border-right:1px solid black; border-bottom:1px solid black;"| oversize [[CNROM]] | ||
|- | |- | ||
!1 | !1 | ||
| [[AxROM|AN1ROM]]¹ || || [[GxROM|MHROM]] || [[NINA-003-006|NINA-03/06]] || || || || | | [[AxROM|AN1ROM]]¹ || || [[GxROM|MHROM]], [[iNES Mapper 132|132]], [[iNES Mapper 133|133]], [[iNES Mapper 203|203]] || [[NINA-003-006|NINA-03/06]]=[[iNES Mapper 146|146]], [[iNES Mapper 148|148]] || || || || style="border-right:1px solid black; border-bottom:1px solid black;"| || | ||
|- | |- | ||
!2 | !2 | ||
| [[AxROM|ANROM]]¹, [[BNROM]] || || [[GxROM|GNROM]], [[iNES Mapper 038|38]] || [[iNES Mapper 086|86]], [[iNES Mapper 096|96]]† || [[iNES Mapper | | [[AxROM|ANROM]]¹, [[BNROM]] || || [[GxROM|GNROM]], [[iNES Mapper 038|38]], [[NES 2.0 Mapper 299|299]]ʰ, [[NES 2.0 Mapper 379|379]] || [[iNES Mapper 058|58]]ʰ=[[iNES Mapper 213|213]], [[iNES Mapper 059|59]]ʰ, [[iNES Mapper 086|86]], [[iNES Mapper 096|96]]†, [[iNES Mapper 174|174]]ʰ, [[NES 2.0 Mapper 288|288]] || [[Color Dreams]], [[iNES Mapper 036|36]], [[iNES Mapper 057|57]]ʰ, [[iNES Mapper 140|140]], [[iNES Mapper 147|147]], [[NES 2.0 Mapper 319|319]]ʰ, [[NES 2.0 Mapper 332|332]]ʰ || || style="border-right:1px solid black; border-bottom:1px solid black;"| oversize [[iNES Mapper 038|38]] || || | ||
|- | |- | ||
!3 | !3 | ||
| [[AxROM|AOROM]]¹ || || || || [[iNES Mapper 113|113]] || | | [[AxROM|AOROM]]¹, [[NES 2.0 Mapper 283|283]] || || || || [[iNES Mapper 041|41]]ʰ, [[iNES Mapper 113|113]]ʰ, [[NES 2.0 Mapper 261|261]]ʰ, [[NES 2.0 Mapper 335|335]]ʰ || style="border-right:1px solid black; border-bottom:1px solid black;"| || || || | ||
|- | |- | ||
!4 | !4 | ||
| oversize [[AxROM]]¹ || | | oversize [[AxROM]]¹, [[iNES Mapper 231|231]]ʰ, [[NES 2.0 Mapper 285|285]]ʰ¹, [[NES 2.0 Mapper 337|337]]ʰ || [[GTROM]]⁴ || || || style="border-right:1px solid black; border-bottom:1px solid black;"| oversize [[GxROM|GNROM]] || [[NES 2.0 Mapper 290|290]]ʰ, [[NES 2.0 Mapper 389|389]]ʰ || || || | ||
|- | |- | ||
!5 | !5 | ||
| || || || | | [[iNES Mapper 015|15]]ʰ, [[iNES Mapper 227|227]]ʰ, [[NES 2.0 Mapper 349|349]]ʰ, [[NES 2.0 Mapper 541|541]]ʰ || || || style="border-right:1px solid black; border-bottom:1px solid black;"| || || || [[iNES Mapper 225|225]]ʰ=[[iNES Mapper 255|255]]ʰ || [[iNES Mapper 046|46]] || | ||
|- | |- | ||
!6 | !6 | ||
| | | [[iNES Mapper 226|226]]ʰ || || style="border-right:1px solid black; border-bottom:1px solid black;"| || || || || [[iNES Mapper 228|228]]ʰ, [[NES 2.0 Mapper 314|314]]ʰ || [[iNES Mapper 062|62]]ʰ, [[NES 2.0 Mapper 519|519]]ʰ || | ||
| || | |||
|- | |- | ||
!7 | !7 | ||
| | | [[iNES Mapper 063|63]]ʰ, [[iNES Mapper 235|235]]ʰ¹ || style="border-right:1px solid black; border-bottom:1px solid black;"| || || || || || || || | ||
|- | |- | ||
!8 | !8 | ||
| oversize [[BNROM]] | |style="border-right:1px solid black; border-bottom:1px solid black;"| oversize [[BNROM]] || || || || || || || || | ||
|} | |} | ||
Line 47: | Line 46: | ||
|- | |- | ||
!3 | !3 | ||
| [[UxROM|UNROM]], [[iNES Mapper 094|94]], [[iNES Mapper 180|180]] || || | | [[UxROM|UNROM]], [[iNES Mapper 094|94]], [[iNES Mapper 180|180]] || || [[iNES Mapper 029|29]] || || [[iNES Mapper 072|72]], [[iNES Mapper 078|78]]¹ʰ, [[iNES Mapper 089|89]]¹, [[iNES Mapper 093|93]]*, [[iNES Mapper 152|152]]¹ || | ||
|- | |- | ||
!4 | !4 | ||
Line 53: | Line 52: | ||
|- | |- | ||
!5 | !5 | ||
| || | | || || [[UNROM 512|Sealie UNROM 512]]¹ || | ||
|- | |- | ||
!6 | !6 | ||
Line 66: | Line 65: | ||
† 4F+4 or 4+4F CHR-RAM banking, not 8 CHR-ROM banking | † 4F+4 or 4+4F CHR-RAM banking, not 8 CHR-ROM banking<br/> | ||
¹ has mapper-controlled single-screen mirroring<br/> | |||
ʰ has mapper-controlled H/V mirroring<br/> | |||
<nowiki>*</nowiki> Emulators commonly implement mapper 93 as a plain UNROM variant, not supporting CHR banking. But the hardware does support it. | |||
Non-standard CHR banking: | |||
* [[NINA-001]] has 1 bit for 32 PRG and 8 bits for 4+4 CHR banking | |||
* [[iNES Mapper 077|77]] has 4 bits for 2+6RAM CHR banking (plus 4 bits for 32 PRG banking) | |||
* [[iNES Mapper 060|60]], [[iNES Mapper 107|107]], and [[iNES Mapper 201|201]] use the same bits to control both PRG and CHR banks | |||
* [[iNES Mapper 184|184]] has 5 bits for 4+4 CHR banking | |||
Exceptions: | Exceptions: | ||
* [[iNES Mapper | * [[iNES Mapper 040|40]] and [[iNES Mapper 050|50]] have 24F+8+8F banking. | ||
Latest revision as of 19:00, 8 July 2022
It appears that all discrete logic mappers either switch 32kB at a time with no fixed bank ("GxROM-like"), or have a 16kB fixed bank and can switch the other ("UxROM-like"). The tables below illustrate the tradeoffs between CHR, PRG, and banking style.
GxROM-like | 8kB CHR bank bits | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ||
32kB PRG bank bits | 0 | NROM, 143, 185 | Vs. System, 145, 149 | CNROM, 87=101, CPROM†, 173 | oversize CNROM | |||||
1 | AN1ROM¹ | MHROM, 132, 133, 203 | NINA-03/06=146, 148 | |||||||
2 | ANROM¹, BNROM | GNROM, 38, 299ʰ, 379 | 58ʰ=213, 59ʰ, 86, 96†, 174ʰ, 288 | Color Dreams, 36, 57ʰ, 140, 147, 319ʰ, 332ʰ | oversize 38 | |||||
3 | AOROM¹, 283 | 41ʰ, 113ʰ, 261ʰ, 335ʰ | ||||||||
4 | oversize AxROM¹, 231ʰ, 285ʰ¹, 337ʰ | GTROM⁴ | oversize GNROM | 290ʰ, 389ʰ | ||||||
5 | 15ʰ, 227ʰ, 349ʰ, 541ʰ | 225ʰ=255ʰ | 46 | |||||||
6 | 226ʰ | 228ʰ, 314ʰ | 62ʰ, 519ʰ | |||||||
7 | 63ʰ, 235ʰ¹ | |||||||||
8 | oversize BNROM |
UxROM-like | 8kB CHR bank bits | |||||||
---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | ||
16kB PRG bank bits | 2 | 168† | ||||||
3 | UNROM, 94, 180 | 29 | 72, 78¹ʰ, 89¹, 93*, 152¹ | |||||
4 | UOROM | 70, 92 | ||||||
5 | Sealie UNROM 512¹ | |||||||
6 | oversize 94 | |||||||
7 | ||||||||
8 | oversize UxROM, oversize 180 |
† 4F+4 or 4+4F CHR-RAM banking, not 8 CHR-ROM banking
¹ has mapper-controlled single-screen mirroring
ʰ has mapper-controlled H/V mirroring
* Emulators commonly implement mapper 93 as a plain UNROM variant, not supporting CHR banking. But the hardware does support it.
Non-standard CHR banking:
- NINA-001 has 1 bit for 32 PRG and 8 bits for 4+4 CHR banking
- 77 has 4 bits for 2+6RAM CHR banking (plus 4 bits for 32 PRG banking)
- 60, 107, and 201 use the same bits to control both PRG and CHR banks
- 184 has 5 bits for 4+4 CHR banking
Exceptions: