Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for Famicom Disk System? #332

Open
philpem opened this issue Apr 29, 2020 · 8 comments
Open

Support for Famicom Disk System? #332

philpem opened this issue Apr 29, 2020 · 8 comments

Comments

@philpem
Copy link

philpem commented Apr 29, 2020

I notice that Quickdisk support has been added to FlashFloppy.
The Nintendo Famicom Disk System is based on QD and has a similar I/O interface.

What would be required to add .FDS image support to FlashFloppy?

@keirf
Copy link
Owner

keirf commented Apr 29, 2020

You will need to add an image format codecs to src/image folder and link it into the QD build.

@philpem
Copy link
Author

philpem commented May 22, 2020

Adding some useful references for this...

@keirf
Copy link
Owner

keirf commented May 29, 2020

I can't see that this would be too super tricky. The fact that FDS contains multiple disks/sides which should presumably be user-selectable presents a possible need for UI modification.

The actual framing up of blocks into the QD track looks pretty simple. None of the referenced OSS is very complex, in doing this job.

It needs someone motivated and with hardware to test against :)

@chris-jh
Copy link

chris-jh commented Dec 6, 2020

I have a spare Sharp Twin Famicom if you want to borrow it @keirf.

@keirf
Copy link
Owner

keirf commented Dec 19, 2022

Pretty sure this is fixed now by the longstanding QD support added to FlashFloppy.

@keirf keirf closed this as completed Dec 19, 2022
@philpem
Copy link
Author

philpem commented Jan 2, 2023

Pretty sure this is fixed now by the longstanding QD support added to FlashFloppy.

Going by the documentation, only the QD image format is supported. So a tool would be needed to convert from FDS to QD -- and possibly multiple QD files, as a single FDS file may contain multiple disks.

There's an image converter for various FDS formats here: https://forums.nesdev.org/viewtopic.php?f=2&t=15895&start=15

I haven't been able to find a spec for the QD file format, but the loader code is here: https://github.com/keirf/flashfloppy/blob/master/src/image/qd.c

It looks fairly simple, but I'm not sure what the read/write window start and end are intended for, or what they'd need to be set to.

@keirf
Copy link
Owner

keirf commented Jan 2, 2023

QD is a raw container format like HFE. The whole raw bitstream gets played out, but READY is only asserted in the window between start and end. You would want to place the FDS file data within that window. I don't know whether FDS or the binaries produced by the conversion software you linked to also encode the bitstream to MFM (or FM, or whatever Famicom uses). If it does, you could basically plonk the binary into the middle of a QD container.

What do you think?

@keirf keirf reopened this Jan 2, 2023
@keirf
Copy link
Owner

keirf commented Jan 2, 2023

By the way a blank QD is shipped with FlashFloppy and this is generated by a Python script in the FlashFloppy source tree. So you can see a typical construction with typical window bounds.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants