NES 2.0 Mapper 347: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(Created page with "{{DEFAULTSORT:347}}347354 NES 2.0 Mapper 347 is used for Kaiser's cartridge conversion of the Famicom Dis...")
 
 
(2 intermediate revisions by the same user not shown)
Line 13: Line 13:
* CPU $D800-$FFFF: 10 KiB PRG-ROM bank, hard-wired
* CPU $D800-$FFFF: 10 KiB PRG-ROM bank, hard-wired
=Registers=
=Registers=
==Mirroring Select ($4025, write)==
==PRG-ROM Bank Select #1/Mirroring Select ($8000-$8FFF, write)==
  D~7654 3210
  A~FEDC BA98 7654 3210
   ---------
   -------------------
  .... M...
   1000 .... .... MBBB
        +---- Select nametable mirroring type
                  |+++- Select 4 KiB PRG-ROM bank at CPU $7000-$7FFF
              0: Vertical
                  +---- Select nametable mirroring type
              1: Horizontal
                        0: Vertical
This register is basically identical to the original Famicom Disk System register.
                        1: Horizontal
 
==PRG-ROM Bank Select #1 ($8000-$8FFF, write)==
D~7654 3210
  ---------
   .... .BBB
        +++- Select 4 KiB PRG-ROM bank at CPU $7000-$7FFF


==PRG-ROM Bank Select #2 ($9000-$9FFF, write)==
==PRG-ROM Bank Select #2 ($9000-$9FFF, write)==
  D~7654 3210
  A~FEDC BA98 7654 3210
   ---------
   -------------------
   .... BBBB
   1001 .... .... BBBB
        ++++- Select 4 KiB PRG-ROM bank,
                  ++++- Select 4 KiB PRG-ROM bank,
              the first 1 KiB of which mapped to CPU $6C00-$6FFF,
                        the first 3 KiB of which mapped to CPU $C000-$CBFF,
              the second 3 KiB of which mapped to CPU $C000-$CBFF
                        the second 1 KiB of which mapped to CPU $6C00-$6FFF


=Notes=
=Notes=
* As the [https://github.com/OpenEmu/FCEU-Core/blob/master/src/boards/ks7030.cpp FCEUX] source code comment indicates, the actual bank order in the 128 KiB mask ROM is unknown. Current emulators expect the ROM image to be laid out like this:
* As the [https://github.com/OpenEmu/FCEU-Core/blob/master/src/boards/ks7030.cpp FCEUX] source code comment indicates, the actual bank order in the 128 KiB mask ROM was unknown until July 2020. Emulators expected the ROM image to be laid out like this:
** the first 32 KiB to contain the eight banks selected by register $8000 mapped to $7000-$7FFF,
** the first 32 KiB to contain the eight banks selected by register $8000 mapped to $7000-$7FFF;
** the next 64 KiB to contain the sixteen banks selected by register $9000, with the first 1 KiB mapped to CPU $6C00-$6FFF and the second 3 KiB mapped to CPU $C000-$CBFF;
** the next 64 KiB to contain the sixteen banks selected by register $9000, with the first 1 KiB mapped to CPU $6C00-$6FFF and the second 3 KiB mapped to CPU $C000-$CBFF;
** the final 32 KiB mapped to CPU $8000-$FFFF except where replaced by RAM and the switchable PRG-ROM bank.
* The actual mask ROM layout is as follows:
** the first 64 KiB contain the sixteen banks selected by register $9000, with the first 3 KiB mapped to CPU $C000-$CBFF and the second 1 KiB mapped to CPU $6C00-$6FFF;
** the next 32 KiB contain the eight banks selected by register $8000 mapped to $7000-$7FFF;
** the final 32 KiB mapped to CPU $8000-$FFFF except where replaced by RAM and the switchable PRG-ROM bank.
** the final 32 KiB mapped to CPU $8000-$FFFF except where replaced by RAM and the switchable PRG-ROM bank.
* The conversion retains all writes to the FDS sound channel registers, so an emulator could provide the expansion sound channel even though the original Kaiser cartridge did not.
* The conversion retains all writes to the FDS sound channel registers, so an emulator could provide the expansion sound channel even though the original Kaiser cartridge did not.
* A different cartridge conversion of the same game is described by [[INES Mapper 103]]. Its memory map is simpler, at the cost of requiring 16 KiB of WRAM instead of just 8 KiB.
* A different cartridge conversion of the same game is described by [[INES Mapper 103]]. Its memory map is simpler, at the cost of requiring 16 KiB of WRAM instead of just 8 KiB.

Latest revision as of 08:34, 18 July 2020

NES 2.0 Mapper 347 is used for Kaiser's cartridge conversion of the Famicom Disk System game Yume Koujou: Doki Doki Panic. Its UNIF board name is UNL-KS7030.

Banks

A typical example of a board designed to accomodate a single (converted) FDS game while using only 8 KiB of PRG-RAM, its memory map is quite complicated.

  • CPU $6000-$6BFF: 3 KiB PRG-RAM bank
  • CPU $6C00-$6FFF: 1 KiB PRG-ROM bank, selected by register at $9000
  • CPU $7000-$7FFF: 4 KiB PRG-ROM bank, selected by register at $8000
  • CPU $8000-$B7FF: 14 KiB PRG-ROM bank, hard-wired
  • CPU $B800-$BFFF: 2 KiB PRG-RAM bank
  • CPU $C000-$CBFF: 3 KiB PRG-ROM bank, selected by register at $9000
  • CPU $CC00-$D7FF: 3 KiB PRG-RAM bank
  • CPU $D800-$FFFF: 10 KiB PRG-ROM bank, hard-wired

Registers

PRG-ROM Bank Select #1/Mirroring Select ($8000-$8FFF, write)

A~FEDC BA98 7654 3210
  -------------------
  1000 .... .... MBBB
                 |+++- Select 4 KiB PRG-ROM bank at CPU $7000-$7FFF
                 +---- Select nametable mirroring type
                        0: Vertical
                        1: Horizontal

PRG-ROM Bank Select #2 ($9000-$9FFF, write)

A~FEDC BA98 7654 3210
  -------------------
  1001 .... .... BBBB
                 ++++- Select 4 KiB PRG-ROM bank,
                       the first 3 KiB of which mapped to CPU $C000-$CBFF,
                       the second 1 KiB of which mapped to CPU $6C00-$6FFF

Notes

  • As the FCEUX source code comment indicates, the actual bank order in the 128 KiB mask ROM was unknown until July 2020. Emulators expected the ROM image to be laid out like this:
    • the first 32 KiB to contain the eight banks selected by register $8000 mapped to $7000-$7FFF;
    • the next 64 KiB to contain the sixteen banks selected by register $9000, with the first 1 KiB mapped to CPU $6C00-$6FFF and the second 3 KiB mapped to CPU $C000-$CBFF;
    • the final 32 KiB mapped to CPU $8000-$FFFF except where replaced by RAM and the switchable PRG-ROM bank.
  • The actual mask ROM layout is as follows:
    • the first 64 KiB contain the sixteen banks selected by register $9000, with the first 3 KiB mapped to CPU $C000-$CBFF and the second 1 KiB mapped to CPU $6C00-$6FFF;
    • the next 32 KiB contain the eight banks selected by register $8000 mapped to $7000-$7FFF;
    • the final 32 KiB mapped to CPU $8000-$FFFF except where replaced by RAM and the switchable PRG-ROM bank.
  • The conversion retains all writes to the FDS sound channel registers, so an emulator could provide the expansion sound channel even though the original Kaiser cartridge did not.
  • A different cartridge conversion of the same game is described by INES Mapper 103. Its memory map is simpler, at the cost of requiring 16 KiB of WRAM instead of just 8 KiB.