Some NES/Famicom games are not being recognized correctly.
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
You can fix the database entries as explained here: https://github.com/sanni/cartreader/wiki/Adding-auto-mapper-to-a-game
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.
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.
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.
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.
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.
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
Can you try today's update? Both nes.txt database and Arduino sketch need to be updated.
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
You can turn the rotary encoder to the right to select the correct variant.
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.