FDS header date fields

Discuss technical or other issues relating to programming the Nintendo Entertainment System, Famicom, or compatible systems.

Moderator: Moderators

ZReport
Posts: 16
Joined: Thu May 31, 2018 11:57 pm

Re: FDS header date fields

Post by ZReport » Tue Apr 20, 2021 8:08 am

ccovell wrote:
Tue Apr 20, 2021 7:11 am
ZReport wrote:
Mon Apr 19, 2021 10:05 pm
HAHA! So many revisions! This one is a cool change. Is there something to look for as far as the disk data? Like could I see a bad disk or one that has been demagnetized?
Hmmm... only partially. If there's no disk header at the start, my program will error out, so corrupted disks like this will not be read. 1-sided disks actually have a blank disk header and 0-file counter on the "blank" side, so that can be read and shown.

I did actually attempt a raw-read version of my program that would constantly read $4031 for any and all data, but it didn't consistently get anything that could be interpreted. But perhaps having a raw disk scan display something graphically would be interesting...
Ha, I feel kinda silly then. I had a Metroid game that was partially demagnetized and rewrote using the FDSStick. In the time it was demagnetized, I checked it out using your newest revision of this program.

It had the header working, but could not read all of the games data on either side. It showed up as "15/02" files for Side A for example. Visually, it showed where the data begun, then abruptly cut off. I kinda regret not taking a screenshot of it now, but I *do* have a large box of Err 27 disks...

And yeah, RAW disk display could be VERY interesting indeed. Even more so of the various unlicensed games, bootlegs and Game Doctor disks floating out there. :shock:

ccovell
Posts: 1041
Joined: Sun Mar 19, 2006 9:44 pm
Location: Japan
Contact:

Re: FDS header date fields

Post by ccovell » Mon May 03, 2021 6:40 am

Just an update to note that I've made a page and a 2.0 version release of my FDS Disk Lister:

https://www.chrismcovell.com/fds-lister.html

User avatar
loopy
Posts: 403
Joined: Sun Sep 19, 2004 10:52 pm
Location: UT

Re: FDS header date fields

Post by loopy » Mon May 03, 2021 6:34 pm

Pretty impressive what you've pulled off with a native NES app.

A little project I've been tinkering with lately is a drive interface board, that connects directly to the drive mech for doing low level shit. FDSStick felt a bit too limited. It's got multiple connectors for other drives (Smith Corona PWP, Roland QD..) that I wanted to play with. Still very much a prototype, but I'd like to make it all open source once it feels ready. (Not really something worth trying to sell, I can only think of a handful of people who'd have interest)

Image

ccovell
Posts: 1041
Joined: Sun Mar 19, 2006 9:44 pm
Location: Japan
Contact:

Re: FDS header date fields

Post by ccovell » Tue May 04, 2021 6:46 am

loopy wrote:
Mon May 03, 2021 6:34 pm
Pretty impressive what you've pulled off with a native NES app.

A little project I've been tinkering with lately is a drive interface board, that connects directly to the drive mech for doing low level shit.
Thanks for the compliment! And that new board looks pretty interesting too!

NewRisingSun
Posts: 1312
Joined: Thu May 19, 2005 11:30 am

Re: FDS header date fields

Post by NewRisingSun » Tue May 04, 2021 10:19 am

What additional low-level functionality does this provide beyond what FDSStick offers in raw mode?

User avatar
loopy
Posts: 403
Joined: Sun Sep 19, 2004 10:52 pm
Location: UT

Re: FDS header date fields

Post by loopy » Tue May 04, 2021 11:44 am

I wanted more breathing room for hacking. FDSStick's MCU is just enough to get the job done.

- Easier CPU to work with (ARM vs 8051). Some parts of FDSStick are meticulously written to meet timing and that can get burdensome when you want to change things around and experiment.
- External crystal vs on-chip RC oscillator. Not important for what FDSStick needs to do, but this gives better accuracy for raw timing / calibration stuff.
- FDSStick was at the upper limit of transfer speeds for doing raw dumps, as a USB HID. (I started using a packed format in later fw versions, throwing away more timing data). Not an issue anymore. It spits out 16bit samples (vs 8) at higher timer speeds. Is that useful? IDK. But it's possible now.
- FDSStick has rather "canned" read/write routines. You could potentially make this access OOB data if you felt like it. Or play with pulse widths and see how much you can theoretically squeeze on there.
- Bigger board with more blinky LEDs and headers for probing / debugging.

Strictly a pet project for my own amusement. If there's other stuff you'd want it to do, I'm all ears.

calima
Posts: 1369
Joined: Tue Oct 06, 2015 10:16 am

Re: FDS header date fields

Post by calima » Wed May 05, 2021 12:33 am

loopy wrote:
Tue May 04, 2021 11:44 am
- FDSStick has rather "canned" read/write routines. You could potentially make this access OOB data if you felt like it. Or play with pulse widths and see how much you can theoretically squeeze on there.
...
Strictly a pet project for my own amusement. If there's other stuff you'd want it to do, I'm all ears.
This, but for PS1 and Gamecube :P Nobody has been able to burn their respective wobbles.

(sorry, OT)
(yes, I know of the PS1 softmod)

puppydrum64
Posts: 158
Joined: Sat Apr 24, 2021 2:18 pm

Re: FDS header date fields

Post by puppydrum64 » Thu May 13, 2021 7:00 am

I've been curious about how the RAM adapter works. My understanding is that since the RAM adapter contains all the chips needed to run the game, that all FDS games have the same mapper. Is there an iNES header that is common to all disk system games?
Current Projects: Aquarium Simulator (MMC1), Astro Birds (VRC6)

ccovell
Posts: 1041
Joined: Sun Mar 19, 2006 9:44 pm
Location: Japan
Contact:

Re: FDS header date fields

Post by ccovell » Fri May 14, 2021 4:54 pm

Well, yes, the FDS RAM adaptor contains a "mapper" that handles IRQs, mirroring, and has an extra audio channel. However, FDS games are not in the iNES format; they are essentially distilled dumps of the bytes on magnetic media. Please read up on the format: https://wiki.nesdev.com/w/index.php/FDS_disk_format
and if there was anything practical that you wanted to know about the FDS hardware or disks, please ask.

puppydrum64
Posts: 158
Joined: Sat Apr 24, 2021 2:18 pm

Re: FDS header date fields

Post by puppydrum64 » Sat May 15, 2021 1:24 pm

ccovell wrote:
Fri May 14, 2021 4:54 pm
Well, yes, the FDS RAM adaptor contains a "mapper" that handles IRQs, mirroring, and has an extra audio channel. However, FDS games are not in the iNES format; they are essentially distilled dumps of the bytes on magnetic media. Please read up on the format: https://wiki.nesdev.com/w/index.php/FDS_disk_format
and if there was anything practical that you wanted to know about the FDS hardware or disks, please ask.
I looked into making an FDS game and I tried using a BIOS file and naming it "disksys.rom" to make it work with FCEUX but I get an error message. I'm curious how the Switch handles FDS emulation, it seems to be very different from the way most unofficial emulators do it. (Vs. Excitebike skips the BIOS entirely and acts as if it were a cartridge, though it still has the load times)
Current Projects: Aquarium Simulator (MMC1), Astro Birds (VRC6)

Pokun
Posts: 1916
Joined: Tue May 28, 2013 5:49 am
Location: Hokkaido, Japan

Re: FDS header date fields

Post by Pokun » Sat May 15, 2021 3:18 pm

You can't get any FDS game to work in FCEUX? The "disksys.rom" file should be 8 kB, if not you got the wrong file.
There are templates somewhere on the forum for FDS that you can study together with the wiki. I've made a few FDS programs myself (also on the forum), but I won't recommend them as good examples as I'm kind of noobish.

I have no idea how the Famicom emulator in the Switch works, but I don't think it's terribly different from other emulators. I haven't tried VS Excitebike on it, but all FDS games I've tried behaves like FDS games with the scrolling intro and all.


These questions are starting to derail the thread. Maybe you should start a new thread for asking basic FDS stuff in.

Post Reply