INES Mapper 218: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(Created page with "Mapper 218 is used by the homebrew Magic Floor game. The cartridge contains only one single PRG-ROM chip (and a CIC, if required). There's no CHR-ROM or CHR-RAM. Instead, the...")
 
(Add nesmon to the list of software and clean up the table + notes. Also change VA10 to CIRAM A10, and /VCS to CIRAM /CE, to reflect the cart pinout article.)
 
(15 intermediate revisions by 5 users not shown)
Line 1: Line 1:
Mapper 218 is used by the homebrew Magic Floor game. The cartridge contains only one single PRG-ROM chip (and a CIC, if required).
[[Category:INES Mappers|218]]
'''iNES Mapper 218''' is used by the homebrew game ''Magic Floor''. Excluding the [[CIC]], the cartridge board only contains a single PRG-[[ROM]] chip (up to 32KiB).  


There's no CHR-ROM or CHR-RAM. Instead, the console's internal 2Kbyte Name Table RAM is mapped as CHR-RAM. The 2K RAM is permanently selected (/VCS wired to GND), and can be used in four modes by wiring VA10 to one of the PPU.A10..A13 address lines:
There is no [[CHR_ROM_vs._CHR_RAM|CHR-ROM or CHR-RAM]] on the cartridge. Instead, the console's internal 2KiB nametable RAM is mapped as CHR-RAM. This RAM is permanently selected (CIRAM /CE wired to GND), and can be used in four configurations by wiring CIRAM A10 to one of the PPU A10..A13 address lines:
{| class="tabular"
! CIRAM A10 connection || Effect on [[PPU nametables]] || Effect on [[PPU pattern tables]] || [[INES#Flags 6|iNES Flags 6]] || [[UNIF]] "MIRR" bit 7-0
|-
| PPU A10 || Two-screen, '''Horizontal arrangement''' ("Vertical mirroring") || 2KiB (128 tiles) CHR-RAM, also mapped to nametable data || $A1 (0001) || $01
|-
| PPU A11 || Two-screen, '''Vertical arrangement''' ("Horizontal mirroring") || 2KiB (128 tiles) CHR-RAM, also mapped to nametable data || $A0 (0000) || $00
|-
| PPU A12 || Single-screen arrangement || '''BLK0''': 1KiB (64 tiles) CHR-RAM, "swappable" via [[PPUCTRL]] || $A8 (1000) || $02
|-
| PPU A13 || Single-screen arrangement || '''BLK1''': 1KiB (64 tiles) CHR-RAM || $A9 (1001) || $03
|}


  VA10    Effect on                        iNES Byte 6  UNIF "MIRR"
Notes:
  to      Name Tables                      Bit3.Bit0    Bit7-0
* The "alternative nametable layout" (bit 3) in [[INES#Flags_6|Flags 6]] of the iNES header is used to denote the two Single-screen configurations.
  PPU.A10  Two-Screen, Vertical Mirroring    0.1          01h
* If reads/writes to mirrored addresses are avoided, software for this mapper can also be made compatible with [[AxROM]] ($A8,$A9), [[BxROM]] ($A0,A1), [[NROM]] + CHR-RAM, or other suitable mappers. ''Magic Floor'' itself is well behaved enough to be emulated as AxROM or NROM + CHR-RAM with vertical mirroring.
  PPU.A11  Two-Screen, Horizontal Mirroring  0.0          00h
  PPU.A12  One-Screen, BLK0                  1.0          02h
  PPU.A13  One-Screen, BLK1                  1.1          03h
  Note: Bit 3 in Byte 6 of iNES header would be usually Four-Screen flag,
  but, for this mapper it is used as One-Screen flag.


The VA10 connection does, of course, also affect the CHR-RAM mapping at 0000h-1FFFh. BLK1 would be the most common case (1K NT plus 1K CHR-RAM). BLK0 would allow to swap CHR RAM via Port 2000h.Bit3-4. Two-Screen would allow to use two NTs (and to squeeze CHR data into unused NT areas). Two-Screen would also allow to use 2K OBJ tiles (when leaving BG unused).
== Software ==
Games:
* [//problemkaputt.de/magicflr.htm ''Magic Floor''] ($A8)
* [//problemkaputt.de/starfigh.htm ''Starfight''] ($A8)
Tests:
* [//forums.nesdev.org/viewtopic.php?p=232238#p232238 OAM corruption stress test ROM] ($A0)
Miscellaneous:
* [//github.com/bitcores/nesmon Port of Apple 1 Woz Monitor] ($A9)


Note: 1K CHR-RAM allows to use as much as 64 tiles of 2bpp (or, with suitable color attributes, 128 monochrome tiles of 1bpp).
== References ==
 
* [//forums.nesdev.org/viewtopic.php?t=9342 nesdev forum, Post subject: Single Chip Cartridge]
* http://forums.nesdev.org/viewtopic.php?f=2&t=9342 - nesdev forum, Post subject: Single Chip Cartridge
* [//forums.nesdev.org/viewtopic.php?t=5156 nesdev forum, Post subject: Using the NES's PPU RAM as CHR RAM?]
* http://nocash.emubase.de/magicflr.htm - Magic Floor game

Latest revision as of 10:33, 28 December 2024

iNES Mapper 218 is used by the homebrew game Magic Floor. Excluding the CIC, the cartridge board only contains a single PRG-ROM chip (up to 32KiB).

There is no CHR-ROM or CHR-RAM on the cartridge. Instead, the console's internal 2KiB nametable RAM is mapped as CHR-RAM. This RAM is permanently selected (CIRAM /CE wired to GND), and can be used in four configurations by wiring CIRAM A10 to one of the PPU A10..A13 address lines:

CIRAM A10 connection Effect on PPU nametables Effect on PPU pattern tables iNES Flags 6 UNIF "MIRR" bit 7-0
PPU A10 Two-screen, Horizontal arrangement ("Vertical mirroring") 2KiB (128 tiles) CHR-RAM, also mapped to nametable data $A1 (0001) $01
PPU A11 Two-screen, Vertical arrangement ("Horizontal mirroring") 2KiB (128 tiles) CHR-RAM, also mapped to nametable data $A0 (0000) $00
PPU A12 Single-screen arrangement BLK0: 1KiB (64 tiles) CHR-RAM, "swappable" via PPUCTRL $A8 (1000) $02
PPU A13 Single-screen arrangement BLK1: 1KiB (64 tiles) CHR-RAM $A9 (1001) $03

Notes:

  • The "alternative nametable layout" (bit 3) in Flags 6 of the iNES header is used to denote the two Single-screen configurations.
  • If reads/writes to mirrored addresses are avoided, software for this mapper can also be made compatible with AxROM ($A8,$A9), BxROM ($A0,A1), NROM + CHR-RAM, or other suitable mappers. Magic Floor itself is well behaved enough to be emulated as AxROM or NROM + CHR-RAM with vertical mirroring.

Software

Games:

Tests:

Miscellaneous:

References