If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!
This article has a talk page!

Family Computer Disk System

From The Cutting Room Floor
(Redirected from Famicom Disk System)
Jump to navigation Jump to search

Title Screen

Family Computer Disk System

Also known as: Twin Famicom (Sharp), Famicom Disk System, FDS
Developer: Nintendo R&D2
Publishers: Nintendo (standalone), Sharp (Twin Famicom)
Released in JP: February 21, 1986 (standalone), July 1, 1986 (Twin Famicom)


CopyrightIcon.png This console has hidden developer credits.
DebugIcon.png This console has debugging material.
Carts.png This console has revisional differences.


Now loading... *click* *WHIRRR*

The Famicom Disk System was an add-on for the Famicom that utilized distinctive-looking floppy disks (primarily yellow, though sometimes blue) as its media. A number of its games were later ported to the Famicom and/or NES cartridge format, and a number of early Famicom/NES carts were later released (or were planned to be released) in the FDS disk format.

The Twin Famicom, meanwhile, combined the Famicom and FDS into a single unit that supported both formats as well as the Famicom's other peripherals.

One notable aspect of the BIOS itself, which later made cameos in Paper Mario: The Thousand-Year Door and Tetris DS, is the "PLEASE SET DISK CARD" screen: While waiting for the player to insert a disk, Mario and Luigi (using slightly-altered versions of their Mario Bros. sprites) change the color scheme and chase each other around. The FDS' mascot, Diskun, has similarly made cameos in various games.

Three versions (01, 01A, 02) of the FDS BIOS exist, indicated by the markings on the RP2C33 chip containing it. 01 and 01A correspond to standalone units, while 02 corresponds to the Twin Famicom.

RAM Check

OK! ERROR!

Hold Start + Select during the boot screen and press Reset. If no problems are detected, the screen will display "PRAM CRAM OK"; if an error occurs, the address of the first memory cell where the error was detected will be displayed.

Programmer Credit

01 01A/02
Fds bios copyright-older.png Fds bios copyright.png

Use the RAM Check code above, but before the text appears on-screen release Start + Select then hold Right + A to see the programmer credit of Takao Sawano. This works on both the standalone unit and the Twin Famicom, the latter of which otherwise makes no reference to Nintendo.

The 01 revision only includes the programmer credit. The 01A revision onwards features some space-saving code optimizations (including the removal of the code responsible for adding a drop shadow to the font, seen below) that allowed Sawano to add both the name of the ASIC and the team responsible for FDS development, Nintendo R&D2.

Revisional Differences

01, 01A, and 02

01 01A 02
Family Computer Disk System-oldertitle.png What system is this, anyway? Who made this, anyway?

The 01 and 01A revisions display the Nintendo logo, whereas the 02 revision uses the "FAMICOM" logo present on the Twin Famicom.

The 01A revision removed the heavy shading on the bottom edges of the Nintendo logo and the drop shadow behind the alphanumeric character set.

Animal Crossing and Wii Virtual Console

Hmmm...
To do:
  • See which BIOS is used in the Wii U/3DS Virtual Console and the Nintendo Switch Online emulators.
  • Verify that the emulators hook into the modified instructions.

The 01A revision BIOS was modified for use by emulators in Animal Crossing[1] and the Wii Virtual Console[2]. The table below lists the modifications:

BIOS Offset CPU Address Original Data (01A) Modified Data Modified Instruction
$0239 $E239 $85 $42 STP/KIL
$0406 $E406 $85 $42 STP/KIL
$073E~$0740 $E73E~$E740 $A2 $B2 $CA $4C $43 $E7 JMP $E743
$07A4 $E7A4 $4C $42 STP/KIL
$0EF4 $EEF4 $A5 $42 STP/KIL

The unofficial STP/KIL instruction normally causes the CPU to crash/halt execution until the system is reset. It was likely used by the emulators to hook into disk access routines and provide high-level replacements (i.e. to bypass disk loading/saving). The JMP instruction simply skips over a section of timed code originally meant to wait for the CRC checksum to be written to disk.

References