Famicom - Write Protection Bypass for FDS 3206 Disk Drives

Famicom - Write Protection Bypass for FDS 3206 Disk Drives

This article introduces the FD3206 No-Wire Open Source FDS Mod, a new method of bypassing write-restrictions built into Nintendo Famicom Disk System drives. Scroll down to "A New Alternative" if you're only interested in the new mod.


Write Protection History
I've already written about the history of the Famicom Disk System, including mention of the rampant piracy which Nintendo was beginning to suffer.

As this piracy started to eat more and more of Nintendo's "pie" they tasked their drive manufacturer Mitsumi to provide some sort of qualified write protection for disks through the creation of the FD3206 disk controller chip. In addition to the changes made by Mitsumi to the disk drive itself, Nintendo also devised a means of blocking data outside of specific ranges through the incoming data port (before the data made it to the disk drive).

These changes made by Nintendo had an impact on reducing piracy but it was too late, the damage was already done. As the prices of ROM cartridges fell, Nintendo moved back to producing cartridge games and for the most part the popularity of FDS slowly dwindled (Really slowly... discontinued in 2003 slow).


Existing Solutions
Okay, so we already learned about the FD3206 — a chip inside the disk drive which controls read / write. And we know Nintendo made modifications to the intermediary external to internal data connections.

For probably more than a decade there has been an open source circuit available which allow users to bypass the FD3206 disk controller limitations. I believe this was designed by Brad Taylor, but I encourage corrections if I mistaken!
1658938085328.png



There has also been excellent bypass mods available to purchase from Tototek (link). The most recent including this brilliant "no wire" modification:
1658938067245.png



A New Alternative
If you're only here for the chips and dip then this is probably the section you're most interested in. Thanks to the generous contributions of knowledge by members of the broader community @LIV2 (twitter) and @Zane Kaminski, I am pleased to present an open source alternative (GitHub).

FD3206.jpg FD3206_MOD.jpg

I'm calling it the FD3206 No-Wire Open Source FDS Mod (rolls off the tongue, right?). It's an ATF16V8 GAL PLD with pins cut off to make soldering dead simple.


How to Make It Yourself
Making one of these for yourself is somewhat straightforward with a few big caveats. First, you're going to need a chip programmer that supports ATF16V8. If you have the ever-popular TL866 series of programmers then you have already overcome a big hurdle.

I am preparing an instructables article which describes the generic ATF16V8A programming process. This will be a very handy reference for this mod once the article is completed.

This is the PLD source code you will need to use in WinCUPL:
Code:
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;
  • Love
Reactions: Kay K.M.Mods
Author
Stephen
Views
1,504
First release
Last update
Rating
0.00 star(s) 0 ratings

More resources from Stephen