I'm a bit interested in adding FDS support in my emulator. I've read that high-level-emulation of the FDS BIOS routines would be possible. Have anyone tried it and perhaps got some hints on how to implement it?
You'll need a list of the FDS BIOS entry points and approximate cycle counts. Then whenever the program does a JSR to one of the entry points, run the appropriate algorithm in native code and then halt the CPU for an appropriate number of cycles. Does anybody have such a list?
I think the whole point of a high-level FDS emulation is to speed up the read/write procedure, so worrying about halting the CPU and how many cycles a BIOS routine takes probably is dispensable. Brad Taylor's FDS document has a list of entry points, though I don't know how complete it is.
NewRisingSun wrote:
I think the whole point of a high-level FDS emulation is to speed up the read/write procedure
Or to keep people from having to buy an FDS and dump the BIOS. Most GBA emulators high-level-emulate the GBA BIOS for the same reason.
tepples wrote:
Or to keep people from having to buy an FDS and dump the BIOS. Most GBA emulators high-level-emulate the GBA BIOS for the same reason.
It doesn't seem any less reasonable to leave BIOS supply up to the user than it does to leave ROM/disk image supply up to the user. Most people wouldn't have any trouble downloading a copy of the BIOS off the net -- especially considering they're probably already downloading ROMs off the net.
Disch wrote:
It doesn't seem any less reasonable to leave BIOS supply up to the user than it does to leave ROM/disk image supply up to the user. Most people wouldn't have any trouble downloading a copy of the BIOS off the net -- especially considering they're probably already downloading ROMs off the net.
What if you want to run a homebrew FDS program?
My reason (at the moment anyway) to high-level emulate the FDS is the complexity of the unit. The documents on this website are very detailed and interesting but is most likely not written for a swedish emulator-coder with limited electronics-skills.
However it would be nice to have a FDS-"test-disc-image" to help with accurate FDS emulation, if anyone feels up for the task?
Even though certain calls to the FDS bios can be HLEd, many games actively poll the status of the FDS hardware. So even if all the bios functions are high level emulated, some of the low level stuff also needs to be supported.
I can't find any decent FDS docs. Most of available docs are japanese translations, overloaded of 'guessed' information. No RE was done yet AFAIK. It would be very interesting to get something up in the wiki, rather than cryptic source codes around... -_-;;.
My current FDS emulation gives me an error $20 which I can't find documented anywhere.... :/