Misc Help with rom/iso console identification

spitzeqc

Member
OP
Newcomer
Joined
Apr 18, 2022
Messages
24
Trophies
0
Location
Earth
XP
127
Country
United States
I am currently working on a personal project that involves identifying the system a rom/iso belongs to. These are the current methods I am using to identify files, but I would like to know if
  • My current methods of identification are valid
  • There are easier/better identification methods
  • If there are methods I can use for extension-only game checks that would work to identify extensionless files
  • Checks that can be done to identify games not currently listed
Only checks file extension
Check file extension, or check offset 0x104 for CE ED 66 ... B9 33 3E and offset 0x143 IS NOT C0
Check file extension, or check offset 0x4 for 24 FF AE ... D4 F8 07
Check file extension, or check offset 0x104 for CE ED 66 ... B9 33 3E and offset 0x143 IS C0
GMC: Check for extension or check offset 0x1C for C2 33 9F 3D
ISO: Same as GMC?
Check file extension, or check offset 0x7FF0 for 54 4D 52 20 53 45 47 41
Check file extension, or check offset 0x0 for 4C 59 4E 58
Only checks file extension
Check file extension, or check offset 0xC0 for 24 FF AE ... D4 F8 07
Check file extension, or check offset 0x0 for 4E 45 53 1A
Check offset 0x8D6 for 9E A1 8E 61 72 E3 62 23
Goto offset 0xA97, read the next 67 bytes, mask off top 4 bits of each byte and check for
0E 09 09 0E 0E 0E 0E 0E 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0E 09 05 02 00 02 02 02 02 02 02 02 06 0F 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 04 06 06 06 06 06 06 06 06 06 06 06 06 06 06 04 05 0B 08 0E 0D
Goto offset 0x42F, read the next 27 bytes, mask off top 4 bits of each byte and check for
USA: 06 01 00 00 03 03 02 02 02 0D 0D 0C 0C 0E 0E 0E 09 08 08 08 08 09 0E 0D 00 06 05
JPN: 0E 09 08 08 0B 0B 0A 0A 0A 05 05 04 04 06 06 06 01 00 00 00 00 01 06 05 08 0E 0D
ISO: Check offset 0x800 for 50 6C 61 79 53 74 61 74 69 6F 6E 33
Dir.: Check dir. for
Code:
PS3_DISC.SFB
PS3_GAME/ICON0.PNG
PS3_GAME/LICDIR/LIC.DAT
PS3_GAME/PARAM.SFO
PS3_GAME/PIC1.PNG
PS3_GAME/PS3LOGO.DAT
Check offset 0x8000 for 01 43 44 30 30 31 01 00 50 53 50 20 47 41 4D 45
Only checks file extension
Only checks file extension
WBFS: Check for extension or check offset 0x0 for 57 42 46 53
ISO: Check offset 0x18 for 5D 1C 9E A3
Check file extension, or check offset 0x0 for 00 00 00 20 49 73 00 00
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,375
Country
United Kingdom
Extension (great until everybody uses .bin or some bright spark invents another format, as does happen from time to time) and unique values in known locations in header/footer/similar aka fingerprinting (should be able to pull such data from whatever emulator source code, homebrew tools or equivalent to http://problemkaputt.de/gbatek.htm for a given system) are the primary two methods.
https://datomatic.no-intro.org/index.php?page=search&s=64
https://emulation.gametechwiki.com/index.php/GoodTools
http://www.advanscene.com/
https://www.progettosnaps.net/dats/MAME/
+ million other dat formats out there.
Matching a hash is not assured (you might have a hacked or trimmed ROM, or a PS1 game ripped in current space year vs caveman days, or a wii game repackaged*) but combined with extension and maybe size then if it is a decent hash** will give you a decent go of things. Every known game for every console (even more so if you narrow by size first or have clues from extension) is not going to be a particularly strenuous database lookup -- hashing the thing in the first place if it is a multi gig ISO is probably going to be harder.

*see also some of the unscrubbing tools for the Wii. https://gbatemp.net/threads/wii-ultimate-unscrubber.452110/ . They do some interesting things and also do stuff with individual files (the ROM/ISO might be hacked or repacked but there is bound to be something that is unchanged, or maybe a directory layout if you want to kick it like so many old school CD lookup databases (for reference they took the length of songs, 13 odd songs not usually all going to be the same length and order and maybe gap between tracks even though there were notable collision https://musicbrainz.org/doc/FreeDB for start in that world)

**when the GBA was current, albeit about to be replaced by the DS, we did see a Scene group force a collision/match to the stock ROM in CRC32 for their introed ROM. Nobody yet I have seen has force matched even MD5, never mind SHA1 or anything fun that some of the links above support.
 
  • Like
Reactions: spitzeqc

RedColoredStars

Well-Known Member
Member
Joined
Aug 14, 2022
Messages
1,053
Trophies
0
Location
Vancouver
XP
1,378
Country
Canada
Did you ever get anywhere with this? Is there a utility you can share for identification? I am only unsure between a PS2 or Xbox for an iso. isoinfo says that there are no files.

You can try the iso in an emulator like PCSX2. It will either start a PS2 game or tell you that it's an Xbox game. Another option is getting the SHA-1 hash value of the iso and doing a Google search for it.
 
Last edited by RedColoredStars,

spitzeqc

Member
OP
Newcomer
Joined
Apr 18, 2022
Messages
24
Trophies
0
Location
Earth
XP
127
Country
United States
Did you ever get anywhere with this? Is there a utility you can share for identification? I am only unsure between a PS2 or Xbox for an iso. isoinfo says that there are no files.
I did not get super far with this, but at one point I had a basic program that could scan a directory and spit out what consoles roms/isos belonged to. I believe I have a copy of it somewhere, but I would need to dig through an old hard drive to find it. If you can wait about a day or so I can try to find it (no guarantees it still exists though), or if you only have a few games you could try RedColoredStars' suggestion. Alternatively if you have many games that need identification you can use something like JRomManager and a .dat file to sort your games
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    BigOnYa @ BigOnYa: I'd like to find a power strip and HDMI selector built in 1 unit, so I can select which game...