User:Lidnariq/Discrete Logic Table: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(disclaimer for m93)
(incorporate some of the discrete logic pirate multicarts, and so denote mappers with h/v controlled mirroring)
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]]† ||  ||  ||  ||  ||  || oversize [[CNROM]]
| [[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]]
|-
|-
!1  
!1  
| [[AxROM|AN1ROM]]¹ ||  || [[GxROM|MHROM]] || [[NINA-003-006|NINA-03/06]] ||  ||  ||  ||  
| [[AxROM|AN1ROM]]¹ ||  || [[GxROM|MHROM]] || [[NINA-003-006|NINA-03/06]] ||  ||  ||  || 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 011|11]], [[iNES Mapper 036|36]], [[iNES Mapper 140|140]] ||  || oversize [[iNES Mapper 038|38]]
| [[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]] || ||
|-
|-
!3  
!3  
| [[AxROM|AOROM]]¹ ||  ||  ||  || [[iNES Mapper 113|113]] ||  
| [[AxROM|AOROM]]¹ ||  ||  ||  || [[iNES Mapper 113|113]] || style="border-right:1px solid black; border-bottom:1px solid black;"| || || ||
|-
|-
!4  
!4  
| oversize [[AxROM]]¹ ||  ||  ||  || oversize [[GxROM|GNROM]]  
| oversize [[AxROM]]¹, [[iNES Mapper 231|231]]ʰ ||  ||  ||  || style="border-right:1px solid black; border-bottom:1px solid black;"| oversize [[GxROM|GNROM]] || || || ||
|-
|-
!5  
!5  
|  ||  ||  ||  
|  ||  ||  || style="border-right:1px solid black; border-bottom:1px solid black;"| ||  ||  ||  || [[iNES Mapper 046|46]]ʰ ||
|-
|-
!6  
!6  
|   
| [[iNES Mapper 226|226]]ʰ ||  || style="border-right:1px solid black; border-bottom:1px solid black;"| ||||  ||  || [[iNES Mapper 062|62]]ʰ ||
|  ||  
|-
|-
!7  
!7  
|  ||  
|| 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]] ||  ||  ||  || [[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 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  
|  ||  ||  ||  
|  ||  ||  ||
|-
|-
!6  
!6  
Line 67: Line 66:


† 4F+4 or 4+4F CHR-RAM banking, not 8 CHR-ROM banking<br/>
† 4F+4 or 4+4F CHR-RAM banking, not 8 CHR-ROM banking<br/>
¹ has mapper-controlled single-screen mirroring.<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.
<nowiki>*</nowiki> Emulators commonly implement mapper 93 as a plain UNROM variant, not supporting CHR banking. But the hardware does support it.


Line 73: Line 73:
* [[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+6R CHR banking (plus 4 bits for 32 PRG banking)
* [[iNES Mapper 060|60]] and [[iNES Mapper 107|107]] 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 058|58]], [[iNES Mapper 174|174]], and [[iNES Mapper 231|231]] are various discrete logic pirate multicarts
* [[iNES Mapper 184|184]] has 5 bits for 4+4 CHR banking
* [[iNES Mapper 184|184]] has 5 bits for 4+4 CHR banking

Revision as of 19:56, 13 May 2013

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 Vs. System CNROM, 87, 101, CPROM oversize CNROM
1 AN1ROM¹ MHROM NINA-03/06
2 ANROM¹, BNROM GNROM, 38 58ʰ, 86, 96†, 174ʰ 11, 36, 57ʰ, 140 oversize 38
3 AOROM¹ 113
4 oversize AxROM¹, 231ʰ oversize GNROM
5 46ʰ
6 226ʰ 62ʰ
7
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 72, 78¹­ʰ, 89¹, 93*, 152¹
4 UOROM 70, 92
5
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.

Exceptions:

  • NINA-001 has 1 bit for 32 PRG and 8 bits for 4+4 CHR banking
  • 77 has 4 bits for 2+6R 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