FDS Internal Checksum Question

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

User avatar
ShaneM
Posts: 353
Joined: Wed Apr 04, 2012 4:15 pm
Location: United States of America (USA)
Contact:

Re: FDS Internal Checksum Question

Post by ShaneM »

I honestly must say that I like it, Koitsu. Good job on that new info sheet. The reason why this is such a big deal to me is simple: I recently made a brand new FDS SRAM save patch of SMB2J (I had an older one done by somebody, before I picked up on the 6502) and I've changed everything in the header to accurately portray the new byte changes (I assigned it as v1.2 and changed other header stuff). It's bothering me because I worked so hard on it for months and wanted everything to be professional and "authentic", right down to the unnecessary bytes. So pretty much everything is done except those 5 bytes, which I'm hesitant to mess with even though they are useless. Well, I have work in the morning. I'll continue comparing those bytes and see if I discover anything new with a few dozen more games.

And I didn't realize it, but I was kind of OCD'ing about it. Thanks, Koitsu. ;)
User avatar
koitsu
Posts: 4201
Joined: Sun Sep 19, 2004 9:28 pm
Location: A world gone mad

Re: FDS Internal Checksum Question

Post by koitsu »

No problem. I totally understand your need/desire to make the software look professional/display as much detail as possible. Since we don't know for sure what the values represent, I'd suggest just printing the raw hexadecimal values in their linear order, e.g. the equivalent of printf("$%02X%02X%02X%02X%02X", data[34], data[35], data[36], data[37], data[38]). Then at least the user has some idea of what the raw data is, in case it's somehow useful to them.
User avatar
ShaneM
Posts: 353
Joined: Wed Apr 04, 2012 4:15 pm
Location: United States of America (USA)
Contact:

Re: FDS Internal Checksum Question

Post by ShaneM »

koitsu wrote:I'm not so sure I even believe that $49=Japan, since the FDS was never released outside of Japan to begin with, so why would they just start the number at $49? I even checked things like EUC tables to see if maybe $4961 would turn out to be 日本 but it doesn't (it's $C6FC $CBDC).
Now this is 100% speculation here, but: The original front loader NES has a port on the bottom. Maybe some sort of add-on peripheral was intended. So, when they were designing the FDS header in late 1985/early 1986, they found it necessary to make a country code? Though, this is pure speculation, but that would explain its purpose of being there, if that byte really represents that.
Last edited by ShaneM on Wed Aug 13, 2014 11:49 am, edited 8 times in total.
Sik
Posts: 1589
Joined: Thu Aug 12, 2010 3:43 am

Re: FDS Internal Checksum Question

Post by Sik »

It's very likely that port was originally meant for an American counterpart to the FDS, in fact I assume that's the reason why the audio lines were moved there in the first place (since there isn't any way you could get the disk adapter in the cartridge slot).

Also since we're in speculation mode: maybe they got it off by one and $49 was actually meant to be $4A, and they just didn't notice (or noticed when it was too late)? I mean, that'd give "Ja" as the result (which would make a lot more of sense). Unlikely though, especially since it's probable they'd use all caps if it was indeed ASCII.
User avatar
ShaneM
Posts: 353
Joined: Wed Apr 04, 2012 4:15 pm
Location: United States of America (USA)
Contact:

Re: FDS Internal Checksum Question

Post by ShaneM »

Okay. I've updated my list of the last five unknown bytes after the $49, $61, $00, $00, $02 string. I've made some noteworthy observations. I've also divided like categories into sets. Here they are:

Observations:

1) This list is divided into like bytes of the 1st, 3rd and 5th, bytes
2) The 3rd byte is a value between $00-$06; never greater than $06
3) The 5th byte is never greater than $02
E) The first byte is always either $00 or $06
4) The 4th byte appears to represent something in decimal, as it never uses A-F
5) The 2nd byte appears to be in hex format, as it makes use of A-F (VERY heavily on Set3)
6) The 2nd byte on all the sets except for 3, 7 and 8 are less than $80. All the 2nd bytes on Set3, Set7 and Set8 are greater than $80.
7) The 4th byte, which is ALWAYS decimal, doesn't care about being greater or less than anything.
8) Set6 and Set7 are the only two sets that use $02 at the 5th byte. Every other set has $00 or $01 for the 5th byte. (Maybe this may make it more obvious in finding a similarity with these disks by observing the 5th bytes of Set6 and Set7?)

EDIT2: WHAT?!?...Look at Family Computer Othello and Golf in Set2. They have the EXACT same data (unless Nintendo made a mistake, like they did with the BCD date of "showa" in Zelda I v1.0; where they use $86 instead of $61 for the year) . Though the above observations are indeed correct... (0_o)

EDIT3: So, judging from what we know that the 2nd byte in sets 3, 7 and 8 are ALL greater than $80 (%10000000), and the other sets are ALL less than $80 (so, $7F %01111111 or less). Is it safe to say that this is some sort of bit check?


EDIT4: I just created a Set9, which is the only known set to actually mix greater than/less than $80 of the 2nd byte. Though this set is just composed of two games.

Set1:

Donkey Kong Jr.: ................................$06 $75 $04 $84 $01
Nazoraa Land Dai 2 Gou: ……………………......$06 $71 $04 $80 $01
Super Mario Bros.:..............................$06 $59 $04 $64 $01
Aspic: Majaou no Noroi (side A):………………$06 $33 $04 $34 $01
Aspic: Majaou no Noroi (side B):……………...$06 $0b $04 $06 $01
Dracula II - Noroi no Fuuin (side A)………….$06 $23 $04 $22 $01
Yumi Koujou Doki Doki Panic (side A).......$06 $13 $04 $10 $01
Armana no Kiseki (side A).......................$06 $18 $04 $15 $01
Armana no Kiseki (side B).......................$06 $07 $04 $02 $01
Deep Dungeon: Madou Senki (side A)..........$06 $45 $04 $60 $01
Dirty Pair: Project Eden (side A)...............$06 $51 $04 $56 $01
Dr. Chaos: Jigoku no Tobira (side A)..........$06 $4a $04 $53 $01
Dr. Chaos: Jigoku no Tobira (side B)..........$06 $06 $04 $01 $01
Exciting Baseball (side A).........................$06 $29 $04 $28 $01
Exciting Basket (side A)...........................$06 $76 $04 $85 $01
Exciting Basket (side B)...........................$06 $4a $04 $53 $01
Exciting Billiard (side A)...........................$06 $52 $04 $57 $01
Exciting Billiard (side B)...........................$06 $05 $04 $00 $01
Exciting Soccer: Konami Cup (side A)........$06 $76 $04 $85 $01
Family Com. Golf: Japan Course (side A)...$06 $78 $04 $87 $01
Family Com. Golf: Japan Course (side B)...$06 $33 $04 $34 $01
Family Com. Golf: U.S. Course (side A).....$06 $56 $04 $61 $01
Final Commando: Akai Yousai (side A)......$06 $36 $04 $37 $01
Hao-Kun no Fushigi na Tabi (side A).........$06 $51 $04 $56 $01
Idol Hotline: Nakayama Miho Tokimeki (side A)$06 16 04 13 01
Kieta Princess (Side A)...........................$06 $62 $04 $81 $01
Meikyuu Jiin Dababa (Side A)..................$06 $72 $04 $81 $01
Moero Twinbee (Side A).........................$06 $05 $04 $00 $01
Monty on the Run (Side A).....................$06 $16 $04 $13 $01
Youkai Yashiki (Side A)..........................$06 $21 $04 $20 $01
Adian no Tsue (Side A)..........................$06 $19 $04 $16 $01

Set2:

Legend of Zelda I v1.0 (Side A):.....................$00 $26 $00 $18 $00
Legend of Zelda I v1.0 (Side B):.....................$00 $43 $00 $39 $00
Donkey Kong:...........................................$00 $45 $00 $43 $00
SMB2J:...................................................$00 $1b $00 $97 $00
Metroid v1.1 (Side A)………………………….............$00 $13 $00 $56 $00
Akumajou Dracula v1.2 (Side A)....................$00 $47 $00 $42 $00
Akumajou Dracula v1.2 (Side B)....................$00 $62 $00 $84 $00
Esper Dream v1.0 (Side A)...........................$00 $41 $00 $98 $00
Family Computer Othello............................$00 $19 $00 $09 $00
Golf.......................................................$00 $19 $00 $09 $00
Tennis...................................................$00 $5a $00 $73 $00
Twinbee................................................$00 $3b $00 $52 $00
Ultraman Club v1.0 (Side A)....................$00 $21 $00 $60 $00
Ultraman Club v1.0 (Side B)....................$00 $67 $00 $79 $00


Set3:

Cocona World (Side B)……………………….............$00 $db $03 $70 $01
Legend of Zelda I v1.1 (Side A):...................$00 $e8 $03 $79 $01
Legend of Zelda I v1.1 (Side B):...................$00 $88 $03 $07 $01
Professional Mahjong Gokuu (Side B)………......$00 $92 $03 $73 $01
Legend of Zelda II v1.1 (Side B):.................$00 $b6 $03 $41 $01
Karate Champion (Side A):……………………........$00 $a8 $03 $31 $01
Karate Champion (Side B):……………………........$00 $b4 $03 $39 $01
Apple Town Monogatari-Little Com. (Side B)..$00 $da $03 $69 $01
Dracula II - Noroi no Fuuin (side B)………….....$00 $9b $03 $22 $01
Deep Dungeon II v1.0 (Side B)....................$00 $ac $03 $35 $01
Dirty Pair: Project Eden (Side B)..................$00 $e7 $03 $78 $01
Esper Dream v1.0 (Side B).........................$00 $9a $03 $81 $01
Exciting Baseball (Side B)...........................$00 $fc $03 $95 $01
Exciting Soccer: Konami Cup (Side A).............$00 $a4 $03 $27 $01
Falsion (Side A)........................................$00 $99 $03 $20 $01
Falsion (Side B)........................................$00 $c2 $03 $49 $01
Family Com. Golf: Special Course (Side A)......$00 $a5 $03 $28 $01
Family Com. Golf: Special Course (Side B)......$00 $e6 $03 $77 $01
Final Commando: Akai Yousai (Side B)...........$00 $82 $03 $01 $01
Ginga Denshou: Galaxy Odyssey (Side A).......$00 $d1 $03 $60 $01
Hao-Kun no Fushigi na Tabi (Side B)..............$00 $d5 $03 $64 $01
Karin no Tsurgi (Side A)...............................$00 $d7 $03 $66 $01
Kick Challenger Airfoot (Side A)....................$00 $ac $03 $35 $01
Kick Challenger Airfoot (Side B)....................$00 $d7 $03 $66 $01
Kieta Princess (Side B)................................$00 $8a $03 $09 $01
Meikyuu Jiin Dababa (Side B).......................$00 $eb $03 $82 $01
Monitor Puzzle Kineko (Side A).....................$00 $d8 $03 $67 $01
Monty on the Run (Side B)...........................$00 $e9 $03 $80 $01
Nazo no Murasume Jou (Side A)....................$00 $b4 $03 $39 $01
Nazoraa Land Zoukan Gou (Side A)...............$00 $a2 $03 $25 $01
Nazoraa Land Zoukan Gou (Side B)...............$00 $d3 $03 $62 $01
Nazoraa Land Zoukan Gou: Quiz (Side A)......$00 $a2 $03 $25 $01
Nazoraa Land Zoukan Gou: Quiz (Side B)......$00 $d3 $03 $62 $01
Seiken Psychocalibur (Side A)......................$00 $a7 $03 $30 $01
Youkai Yashiki (Side B)...............................$00 $f2 $03 $85 $01
Michael English Daibouken (Side A)..............$00 $9a $03 $21 $01
Michael English Daibouken (Side B)..............$00 $e3 $03 $74 $01
Adian no Tsue (Side B)...............................$00 $ac $03 $35 $01

Set4:
Cocona World (Side A)………………………..............$00 $7a $02 $48 $00
Legend of Zelda II v1.0 (Side A):...................$00 $25 $02 $18 $00
Legend of Zelda II v1.0 (Side B):...................$00 $56 $02 $36 $00
Legend of Zelda II v1.1 (Side A):...................$00 $26 $02 $19 $00
Akumajou Dracula v1.0 (Side B)....................$00 $5c $02 $10 $00
Deep Dungeon: Madou Senki (Side B)...............$00 $64 $02 $33 $00
Deep Dungeon II v1.0 (Side A)........................$00 $2a $02 $61 $00
Family Com. Golf Tournament: Japan (Side A)...$00 $32 $02 $57 $00
Family Com. Golf: U.S. Course (Side B)............$00 $49 $02 $90 $00
Fire Rock (Side B).......................................$00 $73 $02 $44 $00
Moero Twinbee (Side B).................................$00 $45 $02 $09 $00

Set5:
Metroid v1.1 (Side B)…………………………........$00 $64 $01 $06 $00
Professional Mahjong Gokuu (Side A)………..$00 $7b $01 $20 $00
Apple Town Monogatari-Little Com. (Side A)$00 $3b $01 $09 $00
Yumi Koujou Doki Doki Panic (Side B).........$00 $15 $01 $27 $00
Akumajou Dracula v1.0 (Side A)................$00 $15 $01 $27 $00
Ginga Denshou: Galaxy Odyssey (Side B).....$00 $42 $01 $23 $00
Monitor Puzzle Kineko (Side B)..................$00 $68 $01 $05 $00
Nazo no Murasume Jou (Side B)..................$00 $41 $01 $00 $00
Soccer.................................................$00 $05 $01 $28 $00

Set6:
Knight Move…………………………………......$06 $36 $06 $79 $02
Bio Miracle Bokutte (Side A).............$06 $25 $06 $66 $02
Bio Miracle Bokutte (Side B).............$06 $2b $06 $72 $02
Famicom Grand Prix II (Side A)..........$06 $23 $06 $64 $02
Famicom Grand Prix II (Side B)..........$06 $29 $06 $70 $02
Kaettekita Mario Bros. (Side A)..........$06 $36 $06 $79 $02
Kaettekita Mario Bros. (Side B)..........$06 $3c $06 $85 $02
Risa no Yousei Densetsu (Side A).......$06 $03 $06 $40 $02
Risa no Yousei Densetsu (Side B).......$06 $09 $06 $46 $02
Ultraman Club v1.0 (Side A)..............$06 $23 $06 $64 $02
Ultraman Club v1.0 (Side B)..............$06 $29 $06 $70 $02
Vs. Excitebike (Side A)......................$06 $21 $06 $62 $02
Vs. Excitebike (Side B)......................$06 $27 $06 $68 $02
Yuu Maze (Side A)............................$06 $13 $06 $52 $02
Yuu Maze (Side B)............................$06 $19 $06 $58 $02
Big Challenge! Dogfight Spirit (Side A)$06 $25 $06 $66 $02
Big Challenge! Dogfight Spirit (Side B)$06 $2b $06 $72 $02


Set7:
Druid: Kyoufo no Tobira (Side A)...............$00 $81 $06 $26 $02
Druid: Kyoufo no Tobira (Side B)...............$00 $87 $06 $32 $02
Neunzehn (Side A)..................................$00 $83 $06 $28 $02
Neunzehn (Side B)..................................$00 $89 $06 $34 $02
Tanigawa Kouji no Shougi ShinanII(Side A)$00 $84 $06 $29 $02
Tanigawa Kouji no Shougi ShinanII(Side B)$00 $8a $06 $35 $02


Set8:
All Night Nippon Super Mario Bros…………...........$06 $9a $05 $25 $01
Idol Hotline: Nakayama Miho Tokimeki (Side A)....$06 $92 $05 $05 $01


Set9:
Ice Climber…………………………………….$00 $4a $04 $17 $01
Fire Rock (Side A).......................$00 $85 $04 $60 $01

Misc:
Family Com. Golf Tournament: Japan (Side B).....$00 $56 $06 $17 $00
Seiken Psychocalibur (Side B)............................$06 $03 $03 $98 $01



Conclusion: There is an obvious pattern, here. I think if this is an ID of some sort, byte 2 is hex and 4 is decimal of something (if not randomly chosen, because they are not consecutive; also I doubt they are one byte checksums of some sort, given the precision I've labeled everything) and byte 5 may be more specific (?). Bytes 1 and 3 may be a set number? Maybe at least bytes 1 and 3 are set numbers of some sort used to define greater/less than values of the hex byte? And maybe set 9, which is unique mixes it up?
User avatar
koitsu
Posts: 4201
Joined: Sun Sep 19, 2004 9:28 pm
Location: A world gone mad

Re: FDS Internal Checksum Question

Post by koitsu »

My wiki page has been updated, specifically the "Price" field, as well as the "Game name" field. It turns out the "Game name" field is actually 3 bytes long and correlates with the 3-letter abbreviation on the packaging (ex. LNK for Zelda 1, PTM for Kid Icarus, etc.). The 4th byte actually represents if it's a "normal" game or a game released specially at a particular event or other such things. Interesting to say the least. But the majority of the work went into the "Price" area.

Oh, and about the 5 unknown bytes: I had the translator (who's my neighbour, actually -- he does professional translation for Nikon and had lived in Japan for several years but only recently moved back to the US with his wife) review that. He concurs with my translation/review -- it's purely speculation but the bytes are assumed to be "game information" but nobody knows what.

Anyway if someone could please review the page and give a thumbs-up, I'll move it into the main FDS format wiki page and clean up some of the references/sections.

As for the manufacturing and rewriting dates not honouring the format -- not surprised. Yes it's possible whoever made them made a mistake by encoding the value as the literal 2-digit year number in BCD rather than the offset from 1925.
User avatar
ShaneM
Posts: 353
Joined: Wed Apr 04, 2012 4:15 pm
Location: United States of America (USA)
Contact:

Re: FDS Internal Checksum Question

Post by ShaneM »

koitsu wrote: As for the manufacturing and rewriting dates not honouring the format -- not surprised. Yes it's possible whoever made them made a mistake by encoding the value as the literal 2-digit year number in BCD rather than the offset from 1925.
I got ahold of the Zelda 1 prototype. It makes the same mistake. Let me share the header info using your labels:

Code: Select all

;this is the header of Side A
;Side B's header is identical, except for one byte
;i'll label that difference when I get to it

.db $1d, $0e , $17, $0d, $18, $24, $0c, $18, $27, $15, $1d, $0d, $26, $26, $24, $24 ;this is the Nintendo-HVC string=14 bytes

.db $2a ;the game manufacturer code = 1 byte

.dbw $ff, $ff, $ff ;this is the game name=3 bytes

.db $ff ;this is the game type

.db $ff ;the game version or revision number

.db $ff ; this is the side number

.db $00 ;this is the disk number

.db $00 ;so we seem to have a normal card, here

.db $00 ;speculative byte

.db $0f ; boot read file code

.dbw $86 $02 $03 ;!!! usually, this is where the five $FFs are suppose to be; it seems we have a date here, follow year, month, and day. Just like the 'showa' format except it is a literal year number. same as the mistake in Zelda 1 (but this date is later than the permit date; i'll give my theory at the end

.db $00 ; usually the fourth raw $FF, here

.db $01 ; usually the fifth raw $FF, here

.dbw $85 $12 $28 ;I guess this is the literal permit date (?) it's not in BCD format; here we have December 28th, 1985 as the start date of this project

.db $49 ; country code?

.db $61 ; area code?

.dbw $00, $00, $02 ;unknown

.byte $00 $f1 $ff $ff $00 ; some game specific information. Not in any format matching any of the games I listed, earlier. Also, seems the 4th and 5th byte go unused, here?

.dbw $ff, $ff, $ff ;"rewritten disk" date, according to Koitsu. I guess this is blanked out because it's a proto?

.dw $ff, $ff ; unknown

.dw $ff, $ff ; disk writer serial number

.db $ff    ;unknown

.db $00 ;disk rewrite count

.db $00 ; the disk side. the only difference with the header on Side B is that this is set to $01

.db $fe ;unknown

.db $00 ; the price
Here is the raw data of both disk sides in their header:

Code: Select all

;Side A

.byte $01, $2a, $4e, $49, $4e, $54, $45, $4e, $44, $4f, $2d, $48, $56, $43, $2a, $ff
.byte $ff, $ff, $ff, $ff, $ff, $00, $00, $00, $00, $0f, $86, $02, $03, $00, $01, $85
.byte $12, $28, $49, $61, $00, $00, $02, $00, $f1, $ff, $ff, $00, $ff, $ff, $ff, $ff
.byte $ff, $ff, $ff, $ff, $00, $00, $fe, $00


;Side B


.byte $01, $2a, $4e, $49, $4e, $54, $45, $4e, $44, $4f, $2d, $48, $56, $43, $2a, $ff
.byte $ff, $ff, $ff, $ff, $ff, $00, $00, $00, $00, $0f, $86, $02, $03, $00, $01, $85
.byte $12, $28, $49, $61, $00, $00, $02, $00, $f1, $ff, $ff, $00, $ff, $ff, $ff, $ff
.byte $ff, $ff, $ff, $ff, $00, $01, $fe, $00
Now the reason I shared this was to display Koitsu's layout and to show how the first five unknown bytes are actually used in this. In no published, licensed game are they ever used, the are always 5 bytes of $FF. This game uses where those five FFs should be as "$86 $02 $03 $00, $01". It's pretty obvious to me that since the rest of the BCD date is wrong, up to the published v1.1 of the game, that this is the date of the prototype: February 03, 1986. The permit date was in December according the bytes: December 28, 1985. But, how can I be sure of this? Well, the title screen says 1986! So maybe those 5 bytes were used only for prototype purposes, since every known published game FFs them out.

When I turned it on using Nestopia, I didn't hear any music until I started the game. Also, it looks like some sort of debug thing when I started the game, I was purple and the B button replenished my hearts. Cool finds. Here is a pic with the date as proof:

Image
Sik
Posts: 1589
Joined: Thu Aug 12, 2010 3:43 am

Re: FDS Internal Checksum Question

Post by Sik »

koitsu wrote:My wiki page has been updated, specifically the "Price" field, as well as the "Game name" field. It turns out the "Game name" field is actually 3 bytes long and correlates with the 3-letter abbreviation on the packaging (ex. LNK for Zelda 1, PTM for Kid Icarus, etc.). The 4th byte actually represents if it's a "normal" game or a game released specially at a particular event or other such things. Interesting to say the least. But the majority of the work went into the "Price" area.
Dammit, looking at it, I had forgotten about disk rewrites. This actually is going to be a problem because practically all dumps will be from original disks, but to decode the missing data we'll probably need to get rewritten disks to see how they use it.
User avatar
ShaneM
Posts: 353
Joined: Wed Apr 04, 2012 4:15 pm
Location: United States of America (USA)
Contact:

Re: FDS Internal Checksum Question

Post by ShaneM »

Sik wrote:
koitsu wrote:My wiki page has been updated, specifically the "Price" field, as well as the "Game name" field. It turns out the "Game name" field is actually 3 bytes long and correlates with the 3-letter abbreviation on the packaging (ex. LNK for Zelda 1, PTM for Kid Icarus, etc.). The 4th byte actually represents if it's a "normal" game or a game released specially at a particular event or other such things. Interesting to say the least. But the majority of the work went into the "Price" area.
Dammit, looking at it, I had forgotten about disk rewrites. This actually is going to be a problem because practically all dumps will be from original disks, but to decode the missing data we'll probably need to get rewritten disks to see how they use it.
You could use the available dump of Donkey Kong, Donkey Kong Jr. and Super Mario Bros., since those dumps were made from copies using diskwriter.

EDIT: Also, Kaettekita Mario Bros. is a kiosk-only game.

EDIT2: Looking over rewritten disks is probably how they found the data to begin with. Also, the Super Mario Bros. dump is missing the KYODAKU.
Sik
Posts: 1589
Joined: Thu Aug 12, 2010 3:43 am

Re: FDS Internal Checksum Question

Post by Sik »

We'd probably want more rewritten dumps to be 100% sure though. Heck, even several dumps from the same game, to see in what they differ. Sadly, we risk that information being quite pointless if we don't also know the circumstances under which they got rewritten either... (we'd have to go with pattern guessing)
User avatar
ShaneM
Posts: 353
Joined: Wed Apr 04, 2012 4:15 pm
Location: United States of America (USA)
Contact:

Re: FDS Internal Checksum Question

Post by ShaneM »

Sik wrote:We'd probably want more rewritten dumps to be 100% sure though. Heck, even several dumps from the same game, to see in what they differ. Sadly, we risk that information being quite pointless if we don't also know the circumstances under which they got rewritten either... (we'd have to go with pattern guessing)

What we probably want then is to get someone from No-Intro to do that, as they do full FDS dumps. They even include the missing CRCs and GAP data, too. That's where I got my source of comparing SMB2J with mine to see what was originally there.

Yeah, patterns. Just like the ones I listed above concerning the 5 unknown bytes. I think I got them all. Though, sets 6 and 7 are the only obvious ones. With Side B only going up by $06 in value on the 2nd and 4th bytes, if you saw. Also, all those games are 1988 or later in those sets, which must say something.
Sik
Posts: 1589
Joined: Thu Aug 12, 2010 3:43 am

Re: FDS Internal Checksum Question

Post by Sik »

Yeah, at first I thought that last byte was related to the release year (note how games with the same value were released around the same year generally), but there are several counterexamples to prove otherwise =/
User avatar
ShaneM
Posts: 353
Joined: Wed Apr 04, 2012 4:15 pm
Location: United States of America (USA)
Contact:

Re: FDS Internal Checksum Question

Post by ShaneM »

Sik wrote:Yeah, at first I thought that last byte was related to the release year (note how games with the same value were released around the same year generally), but there are several counterexamples to prove otherwise =/
What's really weird was the Zelda I proto bytes I listed yesterday for those five: "$00, $f1, $ff, $ff, $00"; seems as though byte 3 and 4 there are blanked out. (Remember that the fourth byte is always decimal from those notes I posted yesterday.) Then you see some that share the exact same info. Which is weird, like "Karin no Tsurgi (Side A)" and "Kick Challenger Airfoot (Side B)". There are many more that share the exact same bytes like how these two share. I really don't think this is any checksum or game specific info. I've compared, header info, CHR banks, memory blocks etc and nothing adds up between these two games. I still think it's an ID of some sort. (Those two examples can from Set3.) I've also added some notes to my above ones from yesterday.

Also, I found another dump which uses the diskwriter, which can be compared. The game is called: Clu Clu Land: Welcome to New Clu Clu Land".

Here is its info:
permit date: April 25th, 1986 ($61, $04, $25)
the "IA" string: $49 $61 $00 $00 $02
the five unknown bytes (ID?): $00 $47 $00 $42 $00
date of copy through diskwriter: April 13th, 1993

Here's the other bytes with copy stuff you all can sort out, if you want to verify Koitsu's translated page on the diskwriter (the bytes right after the April 13th stuff I just listed, or $68, $04, $13)

.db $ff, $80, $02, $62, $08, $01, $01, $00, $00

After those 9 bytes dealing with diskwriter are the regular KYODAKU stuff. I'll see if I can find any more of my dumps that use diskwriter. (Note that this is a Side A-only game. No Side B.)
User avatar
MottZilla
Posts: 2837
Joined: Wed Dec 06, 2006 8:18 pm

Re: FDS Internal Checksum Question

Post by MottZilla »

Shanem wrote: What we probably want then is to get someone from No-Intro to do that, as they do full FDS dumps. They even include the missing CRCs and GAP data, too. That's where I got my source of comparing SMB2J with mine to see what was originally there.
I haven't found any with full FDS disk dumps containing the GAP, Block Start, and CRC.
User avatar
ShaneM
Posts: 353
Joined: Wed Apr 04, 2012 4:15 pm
Location: United States of America (USA)
Contact:

Re: FDS Internal Checksum Question

Post by ShaneM »

MottZilla wrote:
Shanem wrote: What we probably want then is to get someone from No-Intro to do that, as they do full FDS dumps. They even include the missing CRCs and GAP data, too. That's where I got my source of comparing SMB2J with mine to see what was originally there.
I haven't found any with full FDS disk dumps containing the GAP, Block Start, and CRC.

I have one. Of SMB2J. If it weren't against forum rules, I'd give you a copy. The ROM image is 65, 536 bytes in total.

EDIT: Or if you want any bytes from it to compare, like header etc., I guess I can share the bytes. Though, the dump came from a brand new copy of the game and matches the VC release of SMB2J.

EDIT2: Okay. I just checked and a regular FDS dumped image is 65,500 bytes. So this one is 36 bytes greater. It seems like the only difference is just some $00s dispersed here and there. There's two right after the header:

Code: Select all

.byte $01, $2a, $4e, 49, $4e, $54, $45, $4e, $44, $4f, $2d, $48, $56, $43, $2a, $01
.byte $53, $4d, $42, $20, $00, $00, $00, $00, $00, $0f, $ff, $ff, $ff, $ff, $ff, $61
.byte $07, $23, $49, $61, $00, $00, $02, $00, $1b, $00, $97, $00, $61, $07, $23 $ff
.byte $ff $ff $ff $ff $00 $00 $00 $00 $00 $00 ;these last two are absent for the common SMB2J dump
EDIT3: For those 5 unknown bytes...I don't know why I didn't think of using a raw dump like this one to find if the values add up to something. Ugh...stupid on my part. Still, I don't think it will make a difference as I still think it's some sort of manufacturer ID.


Edit 4: I just set an arena for what we know about those 5 mysterious bytes:

1.) The first byte must be either $00 or $06. Never anything else. So...is this some sort of check like Koitsu's example of Loderunner with the glasses being $03 instead of $01 on his page?

2) The second byte is hex. If $80 or greater it will be in sets 3, 7 or 8. If less than $80 it will be in sets 1, 2, 4, 5, or 6. Set 9 is the only odd set, comprised of just two games.

3) The third byte can be anything for $00-$06, never anything greater. It is only $06 on sets 7 and 8 (games dating 1988 or later). (Incidentally. since these two sets are composed of games ONLY dating 1988 and after, set 7 has $80 or less for the second byte while set 8 has $80 or higher; as mentioned on the second byte commentary right above this.)

4) The fourth byte will always be decimal. Not much else is known about it except that it only uses 0-9 and never higher than $99.

5) This fifth mystery byte looks like some kind of check. Out of all the hundreds of games, it is ALWAYS $00, $01 or $02. Never anything else.
Post Reply