- Ok, there's a couple of outdated docs about the Famicom DiskSystem, mapped as iNES 20. There's even strictly technical info by Brad that wouldn't help emulating it, or sources... but most of them have tons of hacks OR confused information / coding structure.
- Where could I find accurate FDS info? I'm interested to emulate it properly.
I recall asking a similar question a while ago. From what I gather... you can't emulate the FDS without some hacks because there is information from the disk missing from the .fds image (like CRCs).
This was my old thread, which (with BT's technical doc) was the best info I could gather:
http://nesdev.com/bbs/viewtopic.php?t=738
In the end I think I largely borrowed code from other emus. Following BT's technical doc to the letter just doesn't work -- since the missing information causes the file pointer to go astray, resulting in disk read errors.
The .fds file format does NOT contain the following pieces of data:
* GAP periods (streams of zeroes that appear before and after each block on the disk)
* start codes (the value $80, stored at the beginning of every block)
* CRCs (a 16-bit checksum that comes after each block)
One trick you might try is to parse the FDS image yourself in order to determine where each block begins and ends (based on the file system Nintendo used). If you can successfully parse through the entire disk, then you can insert the missing pieces of data yourself and then emulate the FDS in its true form. However, I don't know if this will work in every situation, as there's no guarantee a given image will follow the standard formatting.
The latest version of Nestopia (my personal favorite emulator, not only for playing but for learning about the NES) does implement this trick (to an extent, anyway) when it is able to. I remember seeing something in the changelog about needing to do this to fix a particular game.