NES 2.0 Mapper is used for the FC Pocket RS-20 and dreamGEAR My Arcade Gamer V handheld consoles. They use VT3x hardware, which is mostly compatible hardware to the earlier VT0x and VT1x consoles, but add an outer bank register and extended support for legacy mappers. While the original OneBus hardware only has MMC3-compatible registers, this type can directly emulate CNROM, UNROM and MMC1 behavior as well.
7654 3210 --------- .... .CMM |++- Select legacy mapper to emulate in the $8000-$FFFF range | 0: MMC3 | 1: MMC1 | 2: UNROM | 3: CNROM +--- Select CHR memory type 0: CHR-ROM (banked) 1: CHR-RAM (unbanked)
The multicart menu writes $00 to disable and $05 to enable encryption after the next JMP instruction. When encryption is active, CPU opcode bytes only are XORed with $A1.
7654 3210 --------- .... ..CP |+- PRG A25 (32 MiB) +-- CHR A25 (32 MiB)
Expansion sound involves two simultaneous linear 8 bit unsigned PCM channels which just keep playing from their current address until byte $FF is encountered. Note that the address (excluding bits 0-5) is programmed directly and not relative to other bankswitching registers except the 32 MiB outer bank. The playback rate is set using the normal $4010 register bits 0-3.
Selects the channel to which the next writes to $4012, $4035 and $4036 will apply, and sets its linear volume (0-255).
7654 3210 --------- E..0 1... | | +---- 1=Enable channel 1 | +------ 1=Enable channel 0 +--------- 1=Enable expansion sound
Note that the order of the channel bits is reversed from $4014 (see below).
These registers can only be accessed if expansion sound is enabled (via $4033 bit 7, otherwise it $4012 will go to the regular DPCM channel register), and if the selected channel has been disabled via the respective bit in $4033, otherwise the write will be ignored.
7654 3210 --------- .... ..10 |+- 1=Channel 0 still playing +-- 1=Channel 1 still playing
These bits can be used to detect when a sample has finished playing (having encountered byte $FF) in order to restart it. Once a sample has finished playing, these bits return zero, and the channels are no longer enabled. Note that the FC Pocket RS-20 menu apparently confuses the two channel bits and continuously writes to restart the background music, which however does not actually occur because the hardware blocks accesss to the playback address registers while the sample is still playing.
While the original VT03+ Enhanced Palette uses four bits each for hue, saturation and luminance, the VT3x 12-bit palette simply directly encodes 4-bit RGB values:
BA98 7654 3210 -------------- BBBB GGGG RRRR |||| |||| ++++- Red level (0-15) |||| ++++------ Green level (0-15) ++++----------- Blue level (0-15)
The dreamGEAR My Arcade Gamer V multicart contains a few games that were previously published on VT03 multicarts. When converting these games to VT3x, the developers apparently forgot to change a few colors to the new format, resulting in some elements using strange color combinations even on real hardware (e.g. the waterfall in Curly Monkey).
Categories: MMC3-like mappers, Expansion audio, Mappers with scanline IRQs, Mappers with CHR RAM, Multicart mappers, CNROM-like mappers