The Front Fareast (Super) Magic Card, Bung (Super) Game Doctor/Game Master and Venus Game Doctor RAM cartridges load games from the same 2.8" floppy disk media as the Famicom Disk System. The basic header/block structure is identical to the FDS disk format, with the Doctor Header file having a special significance.
Game Doctor/Magic Card disks are run by placing the device between the FDS RAM Adapter and the console. By the default, the Game Doctor/Magic Card merely passes through all signals, so that the normal FDS BIOS screen is shown.
The FDS BIOS boots the disk and tries to store the first data byte of the Doctor Header file to $43FF or $4FFF. This operation switches the Game Doctor/Magic Card from Pass-through into Load mode, switching-in its replacement BIOS at $E000-$FFFF. Since the FDS BIOS' instruction that stores bytes read from disk is at offset $E53A, the entry point into the Game Doctor/Magic Card BIOS is offset $E53C.
The Game Doctor BIOS will read and interpret the Doctor Header file and all subsequent blocks as well as prompt for the insertion of additional disks. All blocks must have valid CRC fields, and the gap length between blocks is like on any regular FDS disk.
The Front Fareast Super Magic Card is different in that it displays its own GUI at power-on from which Magic Card disks may be run, but can be set to pass-through mode via a menu choice ("RUN IC CARD" or "RUN NTD 2.8").
Offset Meaning
$0 Flag byte
1TMM ....
||++------ 0: Not a Magic Card 4M game
|| 1: Magic Card 4M game, 128+256 KiB data
|| 2: Magic Card 4M game, 256+128 KiB data
|| 3: Magic Card 4M game, 256+256 KiB data
|+-------- 1: Trainer present
| 0: No trainer present
+--------- 1: Magic Card disk (if offset $7=0 as well)
$1 Mode byte
This byte is written to register $42FF.
$2-$6 Catalogue number
Can be in ASCII or FDS BIOS tile numbers.
$7 Must be $00 to indicate Magic Card 1M/2M/4M disk
Offset Meaning
$0 Flag byte
1T.. ....
|+-------- 1: Trainer present
| 0: No trainer present
+--------- 1: Super Magic Card disk (if offset $7=$AA as well)
$1 Mode byte
This byte is written to register $42FF.
$2 Trainer address MSB
$3 Number of 8 KiB PRG banks
$4 Number of 8 KiB CHR banks
$5 8 KiB PRG bank number to be initially mapped to $E000-$FFFF
$6 Number of disk sides minus 1
$7 Must be $AA to indicate Super Magic Card disk
Offset Meaning
$0 Flag byte
1T.. ....
|+-------- 1: Trainer present
| 0: No trainer present
+--------- 1: Super Game Doctor disk (if offset $7 !=0 as well)
$1 Mode byte
This byte is written to register $42FF.
$2-$6 Catalogue number
Can be in ASCII or FDS BIOS tile numbers.
$7 Number of disk sides minus 1.
Offset Meaning
$0 Flag byte
0TL. ....
||+------- 1: Special load hooks present
|+-------- 1: Trainer present
| 0: No trainer present
+--------- 0: Turbo Game Doctor disk
$1 Mode byte
This byte is written to register $42FF.
$2-$6 Catalogue number
Can be in ASCII or FDS BIOS tile numbers.
$7 Number of disk sides minus 1.
As with normal FDS disks, file data is stored as pairs of File Header (block type 3) and File Data (block type 4) blocks.
File Header byte $E:
.PPP P..0
||| | +- Denote CPU address space
+++-+---- PRG A18..A15
...C CC.1
| || +- Denote PPU address space
+-++--- CHR A17..A15
The Bung Game Doctor 1M and the Venus Game Converter 1M expect a hidden file, meaning an additional block type 3/block type 4 pair, after the file count denoted in block type 2. Content, size and address do not matter. Later Game Doctors have no such requirement.
On Magic Card 1M/2M/4M games only, if the Doctor Header file's byte $0 has bit 6 set, a block type 5 must be follow the file blocks denoted in block type 2. The block type 5 byte is followed directly by 512 bytes of Trainer data to be stored at CPU $7000, followed by a standard CRC word.
This method of storing Trainer data is unique to Magic Card 1M/2M/4M disks; Super and Turbo Game Doctor disks store Trainers as regular FDS files prior to the Doctor Header file.