A simple "no-wire" modchip for the Nintendo Famicom Disk System HVC-022 Disk Drive. This modchip reverses copy-protection restrictions applied by the Mitsumi FD3206 chip.
- Start by disassembling your FDS HVC-022.
- You can follow existing belt replacement guides.
- Here's a guide from famicomdisksystem.com article.
- Stop once you reach step 5 of the article above, the removal of the PCB.
- Upon closer inspection of the PCB, you will find a large chip labeled
FD3206
. - Place the
ATF16V8A-PU15
programmed with my source code with pin 1 overlapping pin 1 of theFD3206
.- the orientation is easily noted by the presence of a semicircle on the far-end of each chip's surface.
- This is the side with pin 1.
- Solder the following
ATF16V8A-15PU
pins:- This is the side with pin 1.
- It may be necessary to mod your HVC-022 Power Board.
- You can learn more about this process in this famicomworld.com article.
There are two versions of the WinCUPL PLD Source Code. The first is my version, which is directly analogous to the write-mod documented on famicomworld.com. The second was generously contributed by LIV2 and is a handy reference. Both version are available in the repo directory.
My Version
Name FDS3206 Enabler;
PartNo 00 ;
Date 27/07/2022 ;
Revision 01 ;
Designer Stephen;
Company BetterBit ;
Assembly None ;
Location ;
Device g16v8ms ;
/* *************** INPUT PINS *********************/
PIN 1 = clk ;
PIN 13 = ready ;
PIN 5 = write_protect ;
PIN 4 = write_gate ;
PIN 6 = write_data ;
/* *************** OUTPUT PINS ********************/
PIN 12 = Q ;
PIN 15 = !write_head_1 ;
PIN 14 = !write_head_2 ;
PIN 19 = write_clk ;
/* ***************** Braining *********************/
/* - Write Data toggles flip flop. */
/* - Flip flop enters either a high or low output state */
/* - Output state maps to "A" position on 74LS45 */
/* - "Ready" maps to "B" position on 74LS45 */
/* - "Write Protect" maps to "C" position on 74LS45 */
/* - "Write Gate" maps to "D" position on 74LS45 */
/* */
/* 74LS45 TRUTH TABLE */
/* ------------------------- */
/* | A | B | C | D | 01 | 02 | */
/* | L | L | L | L | L | H | */
/* | H | L | L | L | H | L | */
/* ------------------------- */
Q.d = !Q;
write_clk = !write_data;
write_head_1 = !Q & !ready & !write_protect & !write_gate;
write_head_2 = Q & !ready & !write_protect & !write_gate;
LIV2's Version
Name FD3206 ;
PartNo 00 ;
Date 27/07/2022 ;
Revision 01 ;
Designer LIV2 ;
Company BetterBit ;
Assembly None ;
Location ;
Device g16v8ms ;
/* *************** INPUT PINS *********************/
PIN 1 = write_data ;
PIN 3 = ready ;
PIN 4 = write_protect ;
PIN 5 = write_gate ;
/* *************** OUTPUT PINS *********************/
PIN 14 = Q ;
PIN 12 = !write_head_1 ;
PIN 13 = !write_head_2 ;
Q.d = !Q;
write_head_1 = !Q & !ready & !write_protect & !write_gate;
write_head_2 = Q & !ready & !write_protect & !write_gate;
- Early PLD guidance and support was provided by Zane Kaminski (GitHub)
- A version of the source code was generously provided by LIV2 (Twitter) one brief evening when I asked if anyone was available to review my code.
- Tomy of Tototek for providing closed source mod-chip options (available for purchase at Tototek)
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.