NES 2.0 Mapper 409: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
m (Typos and wording.)
(→‎Address Latch ($C000-$CFFF, write): restoring mask with Register/Value terminology (discussed in discord))
 
(2 intermediate revisions by the same user not shown)
Line 12: Line 12:
=Registers=
=Registers=
==Address Latch ($C000-$CFFF, write)==
==Address Latch ($C000-$CFFF, write)==
  Mask: unknown, probably $8000
 
  Register Mask: $8000 ?
    Value Mask: $0FFF
 
  A~FEDC BA98 7654 3210
  A~FEDC BA98 7654 3210
   -------------------
   -------------------
   1... BBBB BBBB BBBB
   1... BBBB BBBB BBBB
         ++++-++++-++++- Selects bank via PRG A25..A14 at CPU $8000-BFFF (CPU A14=0)
         ++++-++++-++++- Selects bank via PRG A25..A14 at CPU $8000-BFFF (CPU A14=0)
This register may respond to all of $8000-FFFF, but it is unknown whether it does. ''A Winner is You'' only uses the $C000-CFFF range.


=See also=
=See also=
* https://forums.nesdev.org/viewtopic.php?t=15188
* https://forums.nesdev.org/viewtopic.php?t=15188
* https://web.archive.org/web/20191024003230/nintendoage.com/forum/messageview.cfm?catid=34&threadid=160050
* https://web.archive.org/web/20191024003230/nintendoage.com/forum/messageview.cfm?catid=34&threadid=160050

Latest revision as of 21:27, 17 January 2023

NES 2.0 Mapper 409 denotes the retroUSB DPCMcart circuit board, used for the homebrew music cartridge "A Winner is You" released by retroUSB.. It is basically an extremely oversized version of UNROM that latches twelve bits of the address, rather than the data, bus for selecting banks from a 64 MiB PRG address space.

Despite being called "DPCMcart", it cannot actually bank DPCM samples because of its fixed bank. Instead, A Winner is You uses the large ROM for PCM sample storage, played back with timed CPU code.

Banks

  • CPU $8000-$BFFF: 16 KiB PRG bank, switchable
  • CPU $C000-$FFFF: 16 KiB PRG bank, fixed to last bank
  • PPU $0000-$1FFF. 8 KiB CHR RAM, unbanked
  • Mirroring: Hard-wired

Registers

Address Latch ($C000-$CFFF, write)

Register Mask: $8000 ?
   Value Mask: $0FFF
A~FEDC BA98 7654 3210
  -------------------
  1... BBBB BBBB BBBB
       ++++-++++-++++- Selects bank via PRG A25..A14 at CPU $8000-BFFF (CPU A14=0)

This register may respond to all of $8000-FFFF, but it is unknown whether it does. A Winner is You only uses the $C000-CFFF range.

See also