I am aware that there are currently three FDS Bios ROMs floating around the Internet, one supposedly authentic, another is Sharp Twin Famicom, and the last is of unknown origin. I have narrowed them down to two. One bios is 8,192 bytes (8kb) and the other is 40,976 bytes (40kb). Both work, so my question is which is the closest to the actual FDS hardware, or is there one even closer than the ones I listed (NOT asking for ROM, just asking if there is a more authentic one out there)? Should the 8kb one be preferred over the 40kb one?
The FDS bios is definitely 8kb. I don't see how it could possibly be 40kb, because it should fit the $e000-$ffff range. Pehaps the FDS adapter was dumped as a NROM cart, and that resulted in a 40kb image ? Just a supposition.
I think the 40KB one is just the standard dump padded or mirrored to fill the space. If it has CHR-ROM, then it's just probably a copy of the CHR-RAM contents that the BIOS writes there.
Dwedit wrote:
I think the 40KB one is just the standard dump padded or mirrored to fill the space. If it has CHR-ROM, then it's just probably a copy of the CHR-RAM contents that the BIOS writes there.
Yeah, was thinking this too, especially if it was somebody trying to get the BIOS to boot without FDS emulation. Why would it be 40KB though and not 24KB? Does the BIOS copy its own code to RAM or something?
Quote:
Does the BIOS copy its own code to RAM or something?
No, it only copies things to VRAM.
However as far I know I think the BIOS is embedded on an ASIC chip (as opposed to being it's own 8kb ROM chip) which makes it especially difficult to dump. Myself I couldn't even open my RAM adapter without fearing to do irreversible damage to it... pehaps if I ever gets my hands on a second RAM adapter I could open it and observe it (they are cheap since there is so many broken FDS drives, and this makes the adapter alone completely useless).
Even if the BIOS ROM is in the same package as the FDS mapper, I don't see how that makes it any harder to dump through the RAM adapter's edge connector. Break out your TapeDump, CopyNES, Kazzo, whatever.
The 8 kilobyte FDS BIOS dump is correct. The program ROM resides inside a chip that hosts other hardware too. There are documents that explain all sorts of things about the FDS.
I don't know what you mean about what's closest to the actual hardware. The 40kb image, only the last 8K of program rom contains anything useful and that 8K likely is exactly the same as the 8k disksys.rom or whatever you call the 8k file. The Sharp Twin Famicom version is going to be nearly identical to the regular version with minor changes, mainly graphical.
tepples wrote:
Even if the BIOS ROM is in the same package as the FDS mapper, I don't see how that makes it any harder to dump through the RAM adapter's edge connector. Break out your TapeDump, CopyNES, Kazzo, whatever.
Not even that, you could just use a normal FDS program since the BIOS is still mapped in the address space. You'll need something to output the data but you could even use the controller ports for that matter. Would be slow but also the simplest, and I assume the earliest attempts were like that.
MottZilla wrote:
The 40kb image, only the last 8K of program rom contains anything useful and that 8K likely is exactly the same as the 8k disksys.rom or whatever you call the 8k file.
Beware that 40KB is the maximum size of a mapper 0 program (32KB PRG-ROM + 8KB CHR-ROM). I don't have that file so I can't tell, but if it's just a mapper 0 dump then those last 8KB will actually be CHR-ROM =P
The thing in GoodNES is just 24KiB of garbage from the RAM, the 8KiB actual bios, and 8KiB of garbage in CHR-RAM.
Code:
$ file Famicom\ Disk\ System\ BIOS\ \(J\).nes
Famicom Disk System BIOS (J).nes: iNES1 ROM, Mapper 0x00, 2x16k PRG, 1x8k CHR, [Horz]
$ crc32 Famicom\ Disk\ System\ BIOS\ \(J\).nes
5abc66f6
The dumped CHR is actually RAM and contains Mario (in the first 24 8x8 tiles) for the left pattern table, and the right pattern table contains alphanumerics and the Nintendo logo.
However, I've found another BIOS that differs slightly:
Code:
$ crc32 Famicom\ Disk\ System\ BIOS\ \(J\).extracted ../FDS/FamiCom\ Disk\ System\ BIOS/disksys.rom
5e607dcf Famicom Disk System BIOS (J).extracted
4df24a6c ../FDS/FamiCom Disk System BIOS/disksys.rom
They differ in that the former has the "standard" familiar NINTENDO logo; the latter just says "FAMICOM" and EDIT: you should probably trust what Gilbert says below.
I'm not sure but I think the BIOS with the "FAMICOM" logo is just the one used in the Twin Famicom. Since it's manufactured by Sharp instead of Nintendo, the BIOS was slightly modified to reflect this, so it's probably not a pirated version.
Sik, I did say "only the last 8K of program rom".
If you really wanted to dump the BIOS with a FDS program you could just display the hex bytes of however much data could fit on the screen at once and manually type it from the TV screen into a computer. But ofcourse, why do that when both FDS BIOS roms are dumped, the regular and twin famicom versions.
Gilbert wrote:
I'm not sure but I think the BIOS with the "FAMICOM" logo is just the one used in the Twin Famicom. Since it's manufactured by Sharp instead of Nintendo, the BIOS was slightly modified to reflect this, so it's probably not a pirated version.
I can confirm this, my Twin Famicom just says "Famicom" and all of the casing and labels make no mention of Nintendo.
As far as "works" goes, Bizhawk, when fed a 40976 byte supposed bios, will extract the appropriate 8k from it and use that as its FDS bios. Perhaps other emulators do this as well? Also, if you try to load the 40976 byte bios as an iNES, it should run in most emulators: the bios splash screen will be shown, but nothing else will happen, if it's emulated as NROM.
Hi all,
II found this interesting article here:
http://en.wikipedia.org/wiki/Family_Com ... isk_SystemI quote: The device was connected to the Famicom deck by plugging a modified cartridge known as the RAM Adapter into the system's cartridge port, which attached via a supplied cable to the disk drive. The RAM adapter contained 32 kilobytes (KB) of RAM for temporary program storage, 8 KB of RAM for tile and sprite data storage, and an ASIC known as the 2C33. The ASIC acted as a disk controller for the floppy drive, and also included additional sound hardware featuring primitive wavetable synthesis and FM synthesis capabilities. The Disk Cards used were double-sided, with a total capacity of 112 KB per disk. Many games spanned both sides of a disk, requiring the user to switch sides at some point during gameplay. A few games used two full disks (four sides). The Disk System was capable of running on six C-cell batteries or the supplied AC adapter. Batteries would usually last five months with daily game play. The battery option was included due to the likelihood of a standard set of AC plugs already being occupied by a Famicom and a television.
It appears that the 40kb dump is really a dump of the modified ROM cartridge itself, and the 8kb dump is just a dump of the bios itself, so the real dump would seem to be th 40kb one, no?
Calling it a "modified cartridge" would be wrong, it's just hardware that happens to plug in the cartridge port. The 8KB dump is the correct one, anything else you read from there would be its RAM or its custom hardware.
From the article I posted from above, what does it mean by "32 kilobytes (KB) of RAM for temporary program storage"? What can this 40kb one do that the 8kb one can't? It sounds like that space of 32kb is just "junk" to me from what everybody is saying. But this article says its for temp. program storage.
The other 32KB that 40KB dump are like an empty construction lot. Something will be put there (by the ROM, loading from disk). It doesn't really contain anything at all, and that which it does contain you'll shortly destroy.
From a dump viewpoint it's pointless, that's like dumping the 2KB of the NES RAM in a game.
From a game's viewpoint obviously it isn't useless, it's where the game will load and run from when it's read from the disk =P But for games you dump the disk itself, not the RAM.
So then, what exactly does the 8kb bios ROM do when an FDS ROM loads with the absence of 32kb, where will this temporary data go?
The FDS loads serial blocks from the disk into RAM. If it doesn't initialize a part of the RAM with code, or load serial data into it, it is simply uninitialized (i.e. whatever was there last remains, possibly random stuff if it was just turned on).
Also, FDS disk images are not really ROM, though it's often convenient to call them that in an emulator context. Disks could be writable.
Shanem wrote:
So then, what exactly does the 8kb bios ROM do when an FDS ROM loads with the absence of 32kb, where will this temporary data go?
There isn't any temporary data before anything from the disk is loaded, actually. The temporary data is that stuff that just got loaded, in fact.
Remember, the main reason it has RAM is because the CPU can't retrieve the instructions directly from the disk (with a cartridge you'd just run the game from ROM instead). The game needs to be loaded
somewhere before it can run the code =P The 2KB of RAM the NES has built-in is too little for game data so the FDS adds more RAM (32KB).
Sik wrote:
From a dump viewpoint it's pointless, that's like dumping the 2KB of the NES RAM in a game.
Unless of course you're dumping the nametable from VRAM so that you can
draw on it. But for gameplay, I agree that dumping only the NES's RAM is pointless.
Sik wrote:
There isn't any temporary data before anything from the disk is loaded, actually. The temporary data is that stuff that just got loaded, in fact.
Exactly, so what will the 8kb bios do with the absence of 32kb AFTER a disk loads, where will the temporary data from the FDS disk now go? I am not sure it does exactly what rainwarrior suggested, though he did a good job explaining
![Smile :)](./images/smilies/icon_smile.gif)
.
Also, even though the 8kb dump is solely the bios, wouldn't the 40kb one be more accurate in the sense of emulation?
Shanem wrote:
Exactly, so what will the 8kb bios do with the absence of 32kb AFTER a disk loads, where will the temporary data from the FDS disk now go?
Into separate memory? RAM and ROM aren't the same thing.
Quote:
Also, even though the 8kb dump is solely the bios, wouldn't the 40kb one be more accurate in the sense of emulation?
No, any more than you need a picture of the place you're going to build a sandcastle in a competition, instead of 4 posts specifying the space you're allowed to build in.
An "overdump" is a ROM dump that contains more data than the actual ROM does. The 16K, 24K, 32K, and 40K dumps of the FDS BIOS are overdumps. But in the case of one NES game, the overdump is actually the correct dump because Galaxian's PRG ROM is 8K, smaller than the iNES PRG size unit of 16K. And if you try to dump an FDS as if it were NROM, it'll be an overdump as well.
When byuu developed bsnes, he developed a "purify" tool that strips off copier headers. Likewise, a "purify" tool for the NES would correct iNES headers and convert an iNES-formatted dump of the FDS or Game Genie BIOS by taking the last few K of the PRG ROM.
Shanem wrote:
Exactly, so what will the 8kb bios do with the absence of 32kb AFTER a disk loads
That's RAM, it's the job of the emulator to emulate the hardware =P
Shanem wrote:
where will the temporary data from the FDS disk now go?
Into the RAM? Also the disk is not modified at all, before you ask.
Shanem wrote:
Also, even though the 8kb dump is solely the bios, wouldn't the 40kb one be more accurate in the sense of emulation?
No, because the dump is supposed to contain the BIOS and nothing else. The 32KB of RAM are
not part of the BIOS.
You seem to be confused about the ROM file and how it is used in emulation. The ROM files just contain the software data needed. Components like RAM and Mappers are emulated. They don't exist in a file.
Also beware that Wikipedia is a poor source for technical information on video game and computer systems. While some information may be somewhat accurate, you can't rely on it.