FDS header date fields

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

Moderator: Moderators

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

FDS header date fields

Post by ccovell » Tue Mar 02, 2021 8:53 pm

Hello, all. Recently I thought I'd update Marat Fayzullin's FDSList once again, and add a readout of some more of the data in the FDS disk header. That got me interested in the two Copyright/(Re)Written date fields, and the quirky date format some games have.

So, most games are "supposed" to have a BCD representation of the years passed since the start of the Japanese Showa era, here calculated by adding 1925 to the value. Thus, most games have a date starting at $61 in BCD = 1986, and counting up.

(There are two homebrew controller test disks out there, and they have date codes of $94 and $95, showing they were made in the years 2019 and 2020.)

But then I wondered if anything changed when the Heisei era began in 1989, and, yep, a number of games began numbering their date fields starting at $01 in 1989. Some stragglers remain, however, counting up from the Showa era even into the 1990s.

YuuYuuki and Famicom Tantei Club II have date values of $01, meaning 1988+1=1989. Knight Move has a value of $02, meaning 1990. Clu Clu Land, as an oddball example, has a rewritten value of $68, meaning 1993 adding from 1925.

Zelda no Densetsu v1.0 and its prototype have values of $85 and $86, meaning they store the Gregorian date in BCD. I wonder if there are any other examples like this out there...

And then there are the odd few games whose copyright or written dates I can't figure out. So, some examples:

Wrecking Crew has a Rewritten date value of $72. Counting from Showa, that makes the year 1997. Not impossible, but... I have my doubts.
SD Gundam Gachapon World (Disk Writer) has a date of $73.
Puzzle Boys and Pinball have a date of $74.
Goonies and Donkey Kong have Copyright dates of $77!

Perhaps this has some special meaning when games are created on the Disk Writer.

--

So the simple rules that I had to add to FDSList are as follows:

For date codes $01-$60, add 1988 (Heisei) to value.
For date codes $61-$99, add 1925 (Showa) to value.
For codes $85 and $86, single them out: just add 1900. (Apologies to the years 2010 and 2011.)
For codes $9A-$FF, they're invalid.

Is there any logic that I missed?

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

Re: FDS header date fields

Post by NewRisingSun » Wed Mar 03, 2021 3:38 am

Have you added the "disk version" field as well? It's what the wiki erroneously calls the "Price" field. It's listed in the leaked spreadsheet, and No-Intro organizes revisions around it when the "game version" field does not differ between disk versions.

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

Re: FDS header date fields

Post by ccovell » Wed Mar 03, 2021 6:50 am

Hmm.. I would be quite interested in seeing said spreadsheet. :idea:

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

Re: FDS header date fields

Post by Pokun » Wed Mar 03, 2021 7:30 am

The disk labels on the master disks in Nintendo's archive has some numbers that are supposedly the game version and disk version numbers. They seems to match the game version and "price" fields for their corresponding games.


I guess the controller test disk from 2019 you mentioned is the one I made. I indeed used the Showa date format pretending like Heisei never happened (and it was released right before the Reiwa era started), just like Clu Clu Land. I didn't know that there where games using the Heisei and even Gregorian date formats at the time. Rainwarrior did the same with his FDS example which uses year $92. We simply just followed the rules as stated by the wiki at the time.

According to Wikipedia, the Disk Writer service continued to 2003, so I don't see what's odd about the rewrite date being '97, '98 and '99 for some dumps.

The wiki says that the rewrite date should be the same as the manufacture date if the disk is sold as a retail game, but Nintendo's master disks seems to fill the rewrite date with $FF-$FF-$FF. This includes Zelda which is reportedly taken from a Disk Writer ROM cartridge instead of its master disk (since it was corrupt). It doesn't really prove anything because the master version could still be different from the retail versions, but I still wanted to point it out. It might be worth it to verify if retail games really do have the same rewrite date as their manufacture date for as many games as possible.

Uvixen
Posts: 3
Joined: Wed Aug 01, 2018 7:15 am

Re: FDS header date fields

Post by Uvixen » Sun Mar 07, 2021 2:35 pm

ccovell wrote:
Tue Mar 02, 2021 8:53 pm
But then I wondered if anything changed when the Heisei era began in 1989, and, yep, a number of games began numbering their date fields starting at $01 in 1989. Some stragglers remain, however, counting up from the Showa era even into the 1990s.

YuuYuuki and Famicom Tantei Club II have date values of $01, meaning 1988+1=1989. Knight Move has a value of $02, meaning 1990. Clu Clu Land, as an oddball example, has a rewritten value of $68, meaning 1993 adding from 1925.
I would expect the rewritten date, at least for non-retail disks, to always be the Showa era. It seems unlikely they would have updated the kiosk firmware just for the new calendar system.

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

Re: FDS header date fields

Post by ccovell » Tue Mar 09, 2021 7:15 am

Of course, that makes perfect sense.

I've updated FDSList to show disk contents like this now:
-------------------------------------------------------
DISK 'DRM ' Side A Files 7 Maker $01 BootID Lim. $0F
Disk/Game Ver. 2/0 (C)/Written 1986.11.26 / 1987.09.15
-------------------------------------------------------
000 $00 'KYODAKU-' $2800-$28DF ( 224) [NAMTBL]
001 $D1 'EN-SND-D' $6000-$65FF ( 1536) [CODE]
...

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

Re: FDS header date fields

Post by ZReport » Wed Mar 10, 2021 11:40 am

ccovell wrote:
Tue Mar 09, 2021 7:15 am
Of course, that makes perfect sense.

I've updated FDSList to show disk contents like this now:
-------------------------------------------------------
DISK 'DRM ' Side A Files 7 Maker $01 BootID Lim. $0F
Disk/Game Ver. 2/0 (C)/Written 1986.11.26 / 1987.09.15
-------------------------------------------------------
000 $00 'KYODAKU-' $2800-$28DF ( 224) [NAMTBL]
001 $D1 'EN-SND-D' $6000-$65FF ( 1536) [CODE]
...
Neat! I have a great interest in this as I am collecting FDS games. Is there a way for you to incorporate this into your old "FDS Disk Listing Program" as well?

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

Re: FDS header date fields

Post by ccovell » Wed Mar 10, 2021 5:16 pm

ZReport wrote:
Wed Mar 10, 2021 11:40 am
Neat! I have a great interest in this as I am collecting FDS games. Is there a way for you to incorporate this into your old "FDS Disk Listing Program" as well?
I've been meaning to update my FDS Listing program, but date / disk ver. info is not accessible in the data returned by the BIOS subroutine that my program uses. I'll have to rewrite the program to access the header files by directly reading them. (So don't count on an update anytime soon.)

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

Re: FDS header date fields

Post by ZReport » Wed Mar 10, 2021 7:28 pm

ccovell wrote:
Wed Mar 10, 2021 5:16 pm
ZReport wrote:
Wed Mar 10, 2021 11:40 am
Neat! I have a great interest in this as I am collecting FDS games. Is there a way for you to incorporate this into your old "FDS Disk Listing Program" as well?
I've been meaning to update my FDS Listing program, but date / disk ver. info is not accessible in the data returned by the BIOS subroutine that my program uses. I'll have to rewrite the program to access the header files by directly reading them. (So don't count on an update anytime soon.)
Ahh, that's a shame! But exciting that you might be updating it eventually. Sometimes I swear I might be the only person on the planet using the program, but it's helped me identify FDS game revisions on quite a number of occasions in the last few months alone. I can just as well use FDSList to take a peek at write dates as well.

Thank you so much for your years of hard work at this stuff! It's greatly appreciated!

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

Re: FDS header date fields

Post by ccovell » Sun Mar 14, 2021 7:36 am

ZReport wrote:
Wed Mar 10, 2021 7:28 pm
ccovell wrote:
Wed Mar 10, 2021 5:16 pm
I've been meaning to update my FDS Listing program, but date / disk ver. info is not accessible in the data returned by the BIOS subroutine that my program uses. I'll have to rewrite the program to access the header files by directly reading them. (So don't count on an update anytime soon.)
Ahh, that's a shame! But exciting that you might be updating it eventually. Sometimes I swear I might be the only person on the planet using the program, but it's helped me identify FDS game revisions on quite a number of occasions in the last few months alone. I can just as well use FDSList to take a peek at write dates as well.

Thank you so much for your years of hard work at this stuff! It's greatly appreciated!
You're welcome. These programs come in handy for myself, too. I'm glad other people find them useful as well.

Well, I've made a small update to my FDS Listing program. I moved the source code from X816 to NESASM, and added a game name database. So, for most released games, the lister will print its name.

Link: http://chrismcovell.com/data/FDListNAM2021.zip

Image

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

Re: FDS header date fields

Post by ZReport » Wed Mar 17, 2021 1:17 pm

ccovell wrote:
Sun Mar 14, 2021 7:36 am
ZReport wrote:
Wed Mar 10, 2021 7:28 pm
ccovell wrote:
Wed Mar 10, 2021 5:16 pm
I've been meaning to update my FDS Listing program, but date / disk ver. info is not accessible in the data returned by the BIOS subroutine that my program uses. I'll have to rewrite the program to access the header files by directly reading them. (So don't count on an update anytime soon.)
Ahh, that's a shame! But exciting that you might be updating it eventually. Sometimes I swear I might be the only person on the planet using the program, but it's helped me identify FDS game revisions on quite a number of occasions in the last few months alone. I can just as well use FDSList to take a peek at write dates as well.

Thank you so much for your years of hard work at this stuff! It's greatly appreciated!
You're welcome. These programs come in handy for myself, too. I'm glad other people find them useful as well.

Well, I've made a small update to my FDS Listing program. I moved the source code from X816 to NESASM, and added a game name database. So, for most released games, the lister will print its name.

Link: http://chrismcovell.com/data/FDListNAM2021.zip

Image
Great update! I just dumped it onto a disk I had and it works great! The format is much more legible, even though I had gotten well used to the old format, hehe.

User avatar
oRBIT2002
Posts: 642
Joined: Sun Mar 19, 2006 3:06 am
Location: Gothenburg/Sweden

Re: FDS header date fields

Post by oRBIT2002 » Wed Mar 17, 2021 1:46 pm

Slightly offtopic for this thread, sorry, but "dumped it into a disk", how do you do that the easiest way? What kind of hardware is required?

User avatar
rainwarrior
Posts: 8016
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Re: FDS header date fields

Post by rainwarrior » Wed Mar 17, 2021 1:59 pm

oRBIT2002 wrote:
Wed Mar 17, 2021 1:46 pm
Slightly offtopic for this thread, sorry, but "dumped it into a disk", how do you do that the easiest way? What kind of hardware is required?
I think Loopy's FDS Stick is the easiest way to interface with an FDS these days. You could run a disk copy utility from it and do some swapping with a real disk, maybe?

Otherwise there is FDSLOADR but you need a specific cable, and a computer with a built in parallel port. (USB parallel port adapters will not work.)

There might be other useful info here:
https://www.famicomdisksystem.com/disk-copy/

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

Re: FDS header date fields

Post by Pokun » Wed Mar 17, 2021 4:23 pm

Yeah the FDSStick is great in many ways. Better than a flashcart for running FDS homebrew since it uses the real RAM Adapter for authentic expansion audio goodness. You just need to build the read/write cable if you want to dump or write disks. To write disks, the disk drive must additionally be write-enabled, and chances are that the disks you write will only ever work on your own drive (unless you know some secret way to adjust it to write universal disks).

FDSloadr is VERY hard to get working. I've tried a bunch of computers (years before the FDSStick existed) and only got it half-working (disk changing didn't work) on an old computer I found in the garbage. Now when the FDSStick exists (and is really cheap) the FDSloadr is kind of obsolete anyway.

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

Re: FDS header date fields

Post by ZReport » Wed Mar 17, 2021 9:42 pm

Pokun wrote:
Wed Mar 17, 2021 4:23 pm
Yeah the FDSStick is great in many ways. Better than a flashcart for running FDS homebrew since it uses the real RAM Adapter for authentic expansion audio goodness. You just need to build the read/write cable if you want to dump or write disks. To write disks, the disk drive must additionally be write-enabled, and chances are that the disks you write will only ever work on your own drive (unless you know some secret way to adjust it to write universal disks).

FDSloadr is VERY hard to get working. I've tried a bunch of computers (years before the FDSStick existed) and only got it half-working (disk changing didn't work) on an old computer I found in the garbage. Now when the FDSStick exists (and is really cheap) the FDSloadr is kind of obsolete anyway.
Pretty much! Just use an FDSStick if you want to write to disks. There are a couple of steps you must follow. You'll need:

1) FDSStick: http://3dscapture.com/fdsstick/
2) Read/Write Cable: Here or Here
3) A Working FDS Drive that is 7201 (or a modded 3206), alongside a Compatible FDS Power Board

Pokun, there is a way of adjusting for universal disks, but it requires having a Game Doctor and a Copy Disk that can check the drive speed:

Image

It's not foolproof, but it helps to get closer to a "universal" disk copy.

Post Reply