Are you a PlayChoice 10 Owner who has asked the question
"Why Can't I Play Nintendo NES games in my PlayChoice 10?"
Well thanks to another PlayChoice 10 Collector, Oliver
Achten from Germany, has an answer NOW YOU CAN!
This page is dedicated to Oliver's great work in allowing the PlayChoice system to play
NES Games! Please read below to see how it works in Oliver's own words!
Hello my name is Oliver, and I bought a
Playchoice 10 board this week.
Unfortunately, it is impossible to find any game cartridges here in Germany, so I
decided to reverse engineer the hardware to gain the knowledge in making it
NES compatible. Listed below is the detailed hardware description for the
system. If you are interested: I am currently writing a new BIOS for this machine,
making it possible to have up to 10 NES cartridges in one Playchoice 10
system with a special adapter. While I am writing this document, my PC10 board
runs the original Super Mario Bros. cartridge code.
Nintendo Playchoice 10 Hardware Description
-------------------------------------------
V 0.1 by Oliver Achten
(achten@gmx.de)
I apologize in advance for lingual mistakes... ;-)
Overview
--------
The Nintendo Playchoice 10 hardware consists of 2 main parts: the control and
the game part. The control part is driven by a Z80 CPU, which handles the
game selection, menu display and controls the game part. The game part is 100%
compatible to the NES game console, using a N2A03 CPU and a N2B03 PPU.
Z80 memory map
--------------
$0000 - $3FFF 16Kb bios rom
$8000 - $87FF 2Kb scratchpad ram
$8800 - $8FFF 2KB battery backed up ram
$9000 - $97FF 2KB video ram (write only!)
$C000 - $DFFF 8Kb cartridge bios (resides on each game cartridge)
$E000 - $FFFF protection
Z80 i/o map
-----------
read:
$00 bit 0: channel select button
bit 1: enter button
bit 2: reset button
bit 3: Z80 interrupt detect
bit 4: < zero >
bit 5: coin 2 button
bit 6: service button
bit 7: coin 1 button
Video ram resides at $9000 - $97FF, and can only be accessed by the Z80 when
bit 0 of write port $00 is 0 (which also turns off the display). The screen matrix
consists of 32*28 characters. Character and color codes are stored in two
bytes: byte 0 - cccccccc byte 1 - pppppccc (bit 0 - 7)
c: character code ($000 - $7FF) p: color code ($00 - $1F)
The video circuit generates a nmi each vertical blank (when port $40 is set
to 1). Screen refresh is 60 Hz.
Watchdog
--------
When enabled by port $09, the watchdog resets the Z80 cpu after 8 screen
refreshes, which shall prevent a machine lockup. The watchdog is reset by
toggling port $09 from 0 to 1, which should be done by the nmi routine.
Game part
---------
As mentioned before, the game part consists practically of a whole NES. Memory
map and registers are the same, however, the PPU is different since it has
separate RGB and SYNC outputs, which provide a MUCH clearer picture than
the N2A02 NES PPU. Unlike VS UNISYSTEM PPUïs, the Playchoice 10 PPU holds
the same color palette than its NES equivalent, so the game part of the
Playchoice 10 can be considered 100% NES compatible!
The Z80 i/o map shows that each single part of the NES can be controlled.
Ports $0B - $0E determine which one of the 10 game slots is activated.
It affects also the $C000 - $FFFF area in the Z80 memory map (cartridge bios
and protection).
Protection
----------
Protection is done by a RP5H01 unit. Knowing nothing about this device, i
can't give any technical descriptions. Theoretically, it holds 16 bytes
of data, which is accessed by both system and cartridge bios.
Theoretically, the unit would not need the protection when a new Z80 bios
is written (i am currently performing this task), which would allow the
possibility of building a NES cart adapter for the PC 10.
Oliver has come through with an upgrade to the original version. Please read the exciting
news below along with what he will be working on in the future!
Now i got a big bonbon for all Playchoice 10 owners.
I am proud to release the new PC10 bios to you, making it possible to have BOTH NES and PC
10 cartridges in one unit.
If you want to test it without burning an eprom,
download mame and a Playchoice 10 rom, and copy the bios.bin from this archive over the
pch1-c.8t file.
You´ll see that it works (but you'll have difficulties in setting the DIP switches
correctly)! :-)
Next task will be to make a text file, which describes how to make a NES adaptor.
Unfortunately,since it´s hard to find the 72pin cartridge connector here, i´ll have
no real chance to test the adapter soon, but it will work in theory... ;-)
Nintendo Playchoice 10 Hardware Description
-------------------------------------------
V 0.2 by Oliver Achten
(achten@gmx.de)
I apologize in advance for lingual mistakes... ;-)
Overview
--------
The Nintendo Playchoice 10 hardware consists of 2 main parts: the control and the game
part. The control part is driven by a Z80 CPU, which handles the game selection, menu
display and controls the game part. The game part is 100% compatible to the NES game
console, using a N2A03 CPU and a N2B03 PPU.
Z80 memory map
--------------
$0000 - $3FFF 16Kb bios rom
$8000 - $87FF 2Kb scratchpad ram
$8800 - $8FFF 2KB battery backed up ram
$9000 - $97FF 2KB video ram (write only!)
$C000 - $DFFF 8Kb cartridge bios (resides on each game cartridge)
$E000 - $FFFF protection
Z80 i/o map
-----------
read:
$00 bit 0: channel select button
bit 1: enter button
bit 2: reset button
bit 3: N2A03 interrupt detect
bit 4: < zero >
bit 5: coin 2 button
bit 6: service button
bit 7: coin 1 button
Video circuit
-------------
Video ram resides at $9000 - $97FF, and can only be accessed by the Z80 when bit 0 of
write port $00 is 0 (which also turns off the display). The screen matrix consists of
32*28 characters. Due to the design of the video circuit, the first visible line starts at
$9080. Character and color codes are stored in two bytes: byte 0 - cccccccc byte 1 -
pppppccc (bit 0 - 7)
c: character code ($000 - $7FF) p: color code ($00 - $1F)
The video circuit generates a nmi each vertical blank (when port $40 is set to 1). Screen
refresh is 60 Hz.
Watchdog
--------
When enabled by port $09, the watchdog resets the Z80 cpu after 8 screen refreshes, which
shall prevent a machine lockup. The watchdog is reset by toggling port $09 from 0 to 1,
which should be done by the nmi routine.
Game part
---------
As mentioned before, the game part consists practically of a whole NES. Memory map and
registers are the same, however, the PPU is different since it has seperate RGB and SYNC
outputs, which provide a MUCH clearer picture than the N2A02 NES PPU. Unlike VS UNISYSTEM
PPUïs, the Playchoice 10 PPU holds
the same color palette than its NES equivalent, so the game part of the Playchoice 10 can
be considered 100% NES compatible!
The Z80 i/o map shows that each single part of the NES can be controlled.
Ports $0B - $0E determine which one of the 10 game slots is activated.
It affects also the $C000 - $FFFF area in the Z80 memory map (cartridge bios
and protection).
Protection
----------
Protection is done by a RP5H01 unit. Knowing nothing about this device, i
canït give any technical descriptions. Theoretically, it holds 16 bytes
of data, which is accessed by both system and cartridge bios.
Theoretically, the unit would not need the protection when a new Z80 bios
is written (iïve written such a bios, so check out the web! ), which would
allow the possibility of building a NES cart adaptor for the PC 10.