cartreader icon indicating copy to clipboard operation
cartreader copied to clipboard

Some NES/Famicom games are not being recognized correctly.

Open Killertamagotchi opened this issue 2 months ago • 7 comments

OSCR firmware version

15.3

OSCR hardware version

HW5 Rev5

Attach OSCR_LOG.txt file here

No response

System used

NES/Famicom/Family Basic

Describe the issue.

While dumping my NES/Famicom games, a couple were incorrectly identified.

Sometimes it was just the wrong region (Japan was identified as PAL or US version), and other times it was completely misidentified.

Here's a list of the games (the top entry is always the actual game, and below it is what it was identified as).

Super Mario Bros. (Europe).nes 9A2DB086,4AD01697,4E45531A020101080000000001000001

MAPPER: 0 PGR SIZE: 32K CHR SIZE: 8K RAM SIZE: 0K

Super 9999999-in-1 (Asia) (En) (Pirate).nes 5CC862E2,4AD01697,4E45531A101000B8000000000000002A

MAPPER: 176 PGR SIZE: 256K CHR SIZE: 128K RAM SIZE: 0K


Super Mario Bros. 2 (Europe).nes E94E883D,B4100A9C,4E45531A081040080000070001000001

MAPPER: 4 PGR SIZE: 128K CHR SIZE: 128K RAM SIZE: 0K

Super Bros. 2 (Asia) (En) (Pirate).nes 635A7C12,B4100A9C,4E45531A081040080000070001000001

MAPPER: 4 PGR SIZE: 128K CHR SIZE: 128K RAM SIZE: 0K


Super Mario Bros. 3 (Europe).nes 1ED5C801,DC5A7EB4,4E45531A101040080000070001000001

MAPPER: 5 PGR SIZE: 256K CHR SIZE: 128K RAM SIZE: 0K

Nintendo Campus Challenge 1991 (USA) (Competition Cart) [b].nes 1D55C59F,DC5A7EB4,4E45531A2020B0280200080700000001

MAPPER: 555 PGR SIZE: 512K CHR SIZE: 256K RAM SIZE: 0K


Chip 'n Dale - Rescue Rangers (Europe).nes 84F7FC31,2E0EFDED,4E45531A081010080000000001000001

MAPPER: 1 PGR SIZE: 128K CHR SIZE: 128K RAM SIZE: 0K

Chip & Dales (Asia) (Ja) (BA058) (Pirate).nes 16F25F17,2E0EFDED,4E45531A081010080000000000000001

MAPPER: 1 PGR SIZE: 128K CHR SIZE: 128K RAM SIZE: 0K


DuckTales 2 (France).nes 30C5E6CF,C986DA04,4E45531A080021082000000701000001

MAPPER: 2 PGR SIZE: 128K CHR SIZE: 0K RAM SIZE: 0K

DuckTales 2 (Asia) (Ja) (D-T2) (Pirate).nes B624C4D8,C986DA04,4E45531A080021082000000700000001

MAPPER: 2 PGR SIZE: 128K CHR SIZE: 0K RAM SIZE: 0K


Kirby's Adventure (Germany).nes 127D76F4,9C961F55,4E45531A202042080000700001000001

MAPPER: 2 PGR SIZE: 128K CHR SIZE: 0K RAM SIZE: 0K

Hoshi no Kirby - Yume no Izumi no Monogatari (Japan).nes E4A7D436,9C961F55,4E45531A202042080000700000000001

MAPPER: 4 PGR SIZE: 512K CHR SIZE: 256K RAM SIZE: 8K


Rockman (Japan) (En).nes D31DC910,276246FF,4E45531A080021082000000700000001

MAPPER: 2 PGR SIZE: 128K CHR SIZE: 0K RAM SIZE: 0K

Mega Man (Europe).nes 94476A70,276246FF,4E45531A080021082000000701000001

MAPPER: 2 PGR SIZE: 128K CHR SIZE: 0K RAM SIZE: 0K


Rockman 3 - Dr. Wily no Saigo! (Japan).nes D9F1E47C,214004F4,4E45531A101040080000000000000001

MAPPER: 4 PGR SIZE: 256K CHR SIZE: 128K RAM SIZE: 0K

Mega Man 3 (USA) (Beta).nes 12481CC0,214004F4,4E45531A101040080000000000000001

MAPPER: 4 PGR SIZE: 256K CHR SIZE: 128K RAM SIZE: 0K


Rockman 4 - Aratanaru Yabou!! (Japan).nes F161A5D8,31FF1125,4E45531A200040080000000700000001

MAPPER: 4 PGR SIZE: 512K CHR SIZE: 0K RAM SIZE: 0K

Mega Man 4 (Europe).nes 1B932BEA,31FF1125,4E45531A200040080000000701000001

MAPPER: 4 PGR SIZE: 512K CHR SIZE: 0K RAM SIZE: 0K


Rockman 5 - Blues no Wana! (Japan).nes FDDF2135,B6B6B43C,4E45531A102040080000000000000001

MAPPER: 4 PGR SIZE: 256K CHR SIZE: 256K RAM SIZE: 0K

Mega Man 5 (USA).nes 3EDCF7E8,B6B6B43C,4E45531A102040080000000000000001

MAPPER: 4 PGR SIZE: 256K CHR SIZE: 256K RAM SIZE: 0K


Star Soldier (Japan).nes 1B421E9C,F7218FBE,4E45531A020431082000000000000001

MAPPER: 3 PGR SIZE: 32K CHR SIZE: 32K RAM SIZE: 0K

Golden Game 150-in-1 (Asia) (En) (Pirate).nes 6175B9A0,F7218FBE,4E45531A8000B0E8000000070000002A

MAPPER: 235 PGR SIZE: 2048K CHR SIZE: 0K RAM SIZE: 0K

Killertamagotchi avatar Nov 01 '25 14:11 Killertamagotchi

You can fix the database entries as explained here: https://github.com/sanni/cartreader/wiki/Adding-auto-mapper-to-a-game

sanni avatar Nov 04 '25 09:11 sanni

Yes, but the problem isn't that the game version doesn't have an entry with its checksums, but that they're being incorrectly identified even though the correct entry is present in the list.

Somehow they're just not being recognized correctly.

Killertamagotchi avatar Nov 04 '25 16:11 Killertamagotchi

Ok, I see. Probably best to split the database into multiple txt files and let the user choose between NES, Famicom and Unlicensed so that the pirate carts don't mess up the database. I'll have a look at it.

sanni avatar Nov 06 '25 08:11 sanni

Perhaps an option could be added to check the checksums of a cartridge.

So that, for example, one could generate something like "84F7FC31,2E0EFDED,4E45531A081010080000000001000001" and write it to a separate file.

This could also help or make it easier to identify and add newer versions that are not yet in the list.

Killertamagotchi avatar Nov 06 '25 15:11 Killertamagotchi

Ok, I see. Probably best to split the database into multiple txt files and let the user choose between NES, Famicom and Unlicensed so that the pirate carts don't mess up the database. I'll have a look at it.

For the current cart identification to work more efficiently, FC and NES should be completely separated because some games share the same identification CRC but use different mappers, for example: 5C9508AA = Bases Loaded 3 (USA) -> mapper 4 5C9508AA = Moe Pro! '90 - Kandou Hen (Japan) -> mapper 18

Also, one could disable FC if they only dump NES carts (and vice-versa) and save some progmem because of the exclusive mappers.

Ideally we would have 3 .txt files:

  • 1 exclusively for FC cart identification
  • 1 exclusively for NES cart identification
  • 1 shared for FC/NES dump identification

Licensed/unlicensed/pirate does not matter.

nsx0r avatar Nov 07 '25 08:11 nsx0r

No, I also think it would be better to separate NES and Famicom, and put all the aftermarket/bootlegs in a third list, since many of them can otherwise cause false detections.

Or you could be even more precise and say NES US, NES PAL, Famicom, and then Aftermarket/Unlicensed/Bootlegs.

So, four separate lists.

Because it's possible that a PAL version might be recognized as NTSC-U and vice versa.

Killertamagotchi avatar Nov 07 '25 16:11 Killertamagotchi

No, I also think it would be better to separate NES and Famicom, and put all the aftermarket/bootlegs in a third list, since many of them can otherwise cause false detections.

Or you could be even more precise and say NES US, NES PAL, Famicom, and then Aftermarket/Unlicensed/Bootlegs.

So, four separate lists.

Because it's possible that a PAL version might be recognized as NTSC-U and vice versa.

it's not about region it's about mappers and ROM sizes, we don't need names or header in the detection txt file

nsx0r avatar Nov 07 '25 16:11 nsx0r

Can you try today's update? Both nes.txt database and Arduino sketch need to be updated.

sanni avatar Dec 19 '25 17:12 sanni

It's better, but the games are still being incorrectly identified or recognized as a re-release version, like Virtual Console, etc.

for D6C90B79... Super Mario Bros. 2 (Europe) (Virtual Console).nes MAPPER: 4 PRG SIZE: 128K CHR SIZE: 128K RAM SIZE: 0K

for 64E257BF... Super Mario Bros. 3 (Europe) (Virtual Console).nes MAPPER: 4 PRG SIZE: 256K CHR SIZE: 128K RAM SIZE: 0K

for 71A8403F or 94EFA16B... Rockman (Japan) (Capcom Town).nes MAPPER: 2 PRG SIZE: 128K CHR SIZE: 0K RAM SIZE: 0K

for 6A2C164D... Rockman 3 - Dr. Wily no Saigo! (Japan) (Virtual Console).nes MAPPER: 4 PRG SIZE: 256K CHR SIZE: 128K RAM SIZE: 0K

for FD8FC31F or 2FA4F752... Rockman 5 - Blues no Wana! (Japan) (Virtual Console).nes MAPPER: 4 PRG SIZE: 256K CHR SIZE: 256K RAM SIZE: 0K

Killertamagotchi avatar Dec 19 '25 21:12 Killertamagotchi

You can turn the rotary encoder to the right to select the correct variant.

sanni avatar Dec 19 '25 23:12 sanni

Ok now I have sorted Virtual Console entries behind real cartridges. That should only leave Rockman (Japan) (Capcom Town).nes which the AI written sorting code didn't recognize as after-market yet. Maybe I should just tell it to sort entries with the same auto-mapper crc by ascending file name length.

sanni avatar Dec 20 '25 00:12 sanni