FDS header date fields

Discuss technical or other issues relating to programming the Nintendo Entertainment System, Famicom, or compatible systems. See the NESdev wiki for more information.

Moderator: Moderators

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

Re: FDS header date fields

Post by ZReport »

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: 1045
Joined: Sun Mar 19, 2006 9:44 pm
Location: Japan
Contact:

Re: FDS header date fields

Post by ccovell »

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: 405
Joined: Sun Sep 19, 2004 10:52 pm
Location: UT

Re: FDS header date fields

Post by loopy »

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: 1045
Joined: Sun Mar 19, 2006 9:44 pm
Location: Japan
Contact:

Re: FDS header date fields

Post by ccovell »

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: 1510
Joined: Thu May 19, 2005 11:30 am

Re: FDS header date fields

Post by NewRisingSun »

What additional low-level functionality does this provide beyond what FDSStick offers in raw mode?
User avatar
loopy
Posts: 405
Joined: Sun Sep 19, 2004 10:52 pm
Location: UT

Re: FDS header date fields

Post by loopy »

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: 1745
Joined: Tue Oct 06, 2015 10:16 am

Re: FDS header date fields

Post by calima »

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: 160
Joined: Sat Apr 24, 2021 7:25 am

Re: FDS header date fields

Post by puppydrum64 »

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?
ccovell
Posts: 1045
Joined: Sun Mar 19, 2006 9:44 pm
Location: Japan
Contact:

Re: FDS header date fields

Post by ccovell »

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: 160
Joined: Sat Apr 24, 2021 7:25 am

Re: FDS header date fields

Post by puppydrum64 »

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)
Pokun
Posts: 2675
Joined: Tue May 28, 2013 5:49 am
Location: Hokkaido, Japan

Re: FDS header date fields

Post by Pokun »

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.
ZReport
Posts: 21
Joined: Thu May 31, 2018 11:57 pm

Re: FDS header date fields

Post by ZReport »

I recently had a very interesting discussion with the good folk at the VideoGameSage forums over what the 7 digit, white stamped serial numbers mean on FDS games. They partially figured it out -- it denotes the time when the disk itself was manufactured.

The first digit in the code translates to the Month (from A to L), while the day comes after on the digits two and three (from 01 to 31) and the fourth digit denotes the year, which starts at 6 for 1986, then 7 for 1987, 8 for 1988 and so on. On VGS I posted many examples with the lister which seems to back up the theory when official/disk writer games are concerned:

Image

Image

Stamped code shows the disk was pressed in September 16, 1986, while the write date of the actual game is September 24, 1986. This was just one example, but it seems to always follow the trend.

Can see the other examples in the thread here: https://www.videogamesage.com/forums/to ... l-numbers/

This leads me to a question for Chris -- is there a way for you to update this program to show the internal "Rewrite Count" and "Price" fields? Given that games are rewritten in some cases, it might be interesting to have this information in your lister, if for the sake of collectors and other archeologists of this type of hidden information.
Pokun
Posts: 2675
Joined: Tue May 28, 2013 5:49 am
Location: Hokkaido, Japan

Re: FDS header date fields

Post by Pokun »

Anyone seen this one before?
ccovell
Posts: 1045
Joined: Sun Mar 19, 2006 9:44 pm
Location: Japan
Contact:

Re: FDS header date fields

Post by ccovell »

That is all very cool. I didn't know the FMC-CHK disk had that disk header info screen.

For ZReport's question, I'll think of a way to add some more info/data on the screen, but I don't want to make my program output too cluttered. I don't think I want to make it print everything in the FDS header.
Post Reply