User:Lidnariq/Discrete Logic Table: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
m (m228's gnrom-like)
(GTROM should be on the list)
 
(16 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]], [[iNES Mapper 101|101]], [[CPROM]]† ||  ||  ||  ||  ||  || style="border-right:1px solid black; border-bottom:1px solid black;"| oversize [[CNROM]]
| [[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]] ||  ||  ||  || style="border-right:1px solid black; border-bottom:1px solid black;"| ||
| [[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 058|58]]ʰ, [[iNES Mapper 086|86]], [[iNES Mapper 096|96]]†, [[iNES Mapper 174|174]]ʰ || [[iNES Mapper 011|11]], [[iNES Mapper 036|36]], [[iNES Mapper 057|57]]ʰ, [[iNES Mapper 140|140]] ||  || style="border-right:1px solid black; border-bottom:1px solid black;"| oversize [[iNES Mapper 038|38]] || ||
| [[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]] || style="border-right:1px solid black; border-bottom:1px solid black;"| || || ||
| [[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]]¹, [[iNES Mapper 231|231]]ʰ || ||  ||  || style="border-right:1px solid black; border-bottom:1px solid black;"| oversize [[GxROM|GNROM]] || || || ||
| 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  
| ||  ||  || style="border-right:1px solid black; border-bottom:1px solid black;"| ||  ||  || || [[iNES Mapper 046|46]]ʰ ||
| [[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]]ʰ || [[iNES Mapper 062|62]]ʰ ||
| [[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  
| || style="border-right:1px solid black; border-bottom:1px solid black;"| || || || || || || ||
| [[iNES Mapper 063|63]]ʰ, [[iNES Mapper 235|235]]ʰ¹ || style="border-right:1px solid black; border-bottom:1px solid black;"| || || || || || || ||
|-
|-
!8  
!8  
Line 46: Line 46:
|-
|-
!3  
!3  
| [[UxROM|UNROM]], [[iNES Mapper 094|94]], [[iNES Mapper 180|180]] ||  || ||  || [[iNES Mapper 072|72]], [[iNES Mapper 078|78]]¹­ʰ, [[iNES Mapper 089|89]]¹, [[iNES Mapper 093|93]]*, [[iNES Mapper 152|152]]¹ ||  
| [[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 52: Line 52:
|-
|-
!5  
!5  
|  || || ||
|  || || [[UNROM 512|Sealie UNROM 512]]¹ ||
|-
|-
!6  
!6  
Line 70: Line 70:
<nowiki>*</nowiki> Emulators commonly implement mapper 93 as a plain UNROM variant, not supporting CHR banking. But the hardware does support it.
<nowiki>*</nowiki> Emulators commonly implement mapper 93 as a plain UNROM variant, not supporting CHR banking. But the hardware does support it.


Exceptions:
Non-standard CHR banking:
* [[NINA-001]] has 1 bit for 32 PRG and 8 bits for 4+4 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+6R CHR banking (plus 4 bits for 32 PRG 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 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
* [[iNES Mapper 184|184]] has 5 bits for 4+4 CHR banking
Exceptions:
* [[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:

  • 40 and 50 have 24F+8+8F banking.