Hva er en ROM-fil?

En ROM-fil er en digital kopi av read-only memory-brikken fra en fysisk spillkassett eller disc. Når du dumper dataene fra en kassett, inneholder den resulterende binærfilen et header — en liten blokk med bytes helt på begynnelsen — som beskriver spillet og maskinvaren det ble bygget for. Hver konsollfamilie bruker sin egen unike headerstruktur, så en NES ROM ser fundamentalt annerledes ut fra en Game Boy eller Sega Genesis ROM på bytenivå.

Headeren lagrer vanligvis informasjon som målregion, memory mapper-type, ROM- og RAM-størrelser, og en spillidentifikasjonskode. Dette gjør det mulig å oppdage hvilken konsoll filen stammer fra, bare ved å lese filen, uten å være avhengig av filtypen alene.

Verktøybeskrivelse

Last opp en hvilken som helst ROM-fil, og verktøyet vil umiddelbart identifisere hvilken spillkonsoll den tilhører. Det leser det binære headeren, sammenlikner det med kjente konsolsignaturer, og returnerer konsolnavnet sammen med systemspesifikk metadata som region, spillkode, mapper-type, ROM/RAM-størrelser og kryptografiske hashes (CRC32 og SHA-1). ZIP-arkiver som inneholder en ROM støttes også — verktøyet vil trekke ut og analysere den første ROM-en som finnes inne i arkivet.

Støttede konsoller

Konsoll Systemnøkkel Merknader
NES / Famicom nes iNES 1.0 og NES 2.0 headers; oppdager mapper og sub-mapper
Super Nintendo sfc Oppdager LoROM / HiROM, ROM-hastighet, co-processorer (SuperFX, SA-1, DSP)
Nintendo 64 n64 Header-parsing, regiondeteksjon, byte-swap-varianter (.z64, .v64)
Game Boy / Color gb Oppdager MBC-type, RAM-størrelse, GBC / SGB-kompatibilitet
Game Boy Advance gba Trekker ut spill-ID og lagringstype (SRAM / Flash / EEPROM)
Nintendo DS nds Spillkode, region, enhetskode (DSi-kompatibel), enhetskapasitet
Sega Genesis / Mega Drive genesis Innenlandsk og utenlandsk tittel, serienummer, region
Sega Master System sms TMR SEGA header, produktkode, region
Sega Game Gear gg Basert på Master System header-format
PC Engine / TurboGrafx-16 pce Grunnleggende identifikasjon
WonderSwan ws End-of-ROM header, spill-ID, modell
WonderSwan Color wsc End-of-ROM header, spill-ID, modell

Eksempler

NES ROM-opplastingsresultat

Oppdaget konsoll  NES / Famicom
Systemnøkkel      nes
CRC32             7d2d8d2c
SHA-1             a793e28a...
NES-versjon       iNES 1.0
Mapper            4
PRG ROM           256 KB
CHR ROM           128 KB
Region            NTSC

SNES ROM-opplastingsresultat

Oppdaget konsoll  Super Nintendo (SNES)
Systemnøkkel      sfc
CRC32             b19ed489
ROM-type          LoROM
ROM-hastighet     SlowROM
RAM               8 KB

Funksjoner

  • Konsoldeteksjon fra header-bytes: Identifiserer konsollen ved å lese binære magiske ord og headerstrukturer, ikke bare filtypen
  • ZIP-arkivstøtte: Last opp en .zip-fil som inneholder en ROM, og verktøyet analyserer ROM-en inne automatisk
  • Systemspesifikk metadata: Viser mapper-type, region, spillkode, tittel, serienummer, ROM- og RAM-størrelser avhengig av oppdaget konsoll
  • Dobbel hash-utgang: Beregner CRC32 og SHA-1 samtidig, de to mest brukte checksummene i ROM-verifiseringsdatabaser
  • Serverside-analyse: Behandlingen skjer på serveren ved hjelp av roomie-biblioteket, så ingen klientside JavaScript-begrensninger gjelder for filparsing

Brukstilfeller

  • Organisering av et ROM-bibliotek: Identifiser raskt umerkede eller feilnavngitte ROM-filer og sorter dem etter konsoll uten å måtte åpne en emulator
  • Verifisering av ROM-dumper: Krysskontroller CRC32- eller SHA-1-hashen mot No-Intro, Redump eller TOSEC-databaser for å bekrefte at en ROM er en kjent god dump
  • Emulator-oppsett: Bekreft den nøyaktige mapperen og regionen til en NES eller SNES ROM før du konfigurerer en emulator som krever denne informasjonen manuelt

Begrensninger

  • Deteksjon er avhengig av tilstedeværelsen av et gyldig header i filen. Headerløse eller korrupte ROM-er blir kanskje ikke gjenkjent.
  • Bare én ROM analyseres per opplasting. For ZIP-arkiver med flere ROM-er, behandles bare den første matchende filen.
  • Konsoldeteksjon dekker systemene som er oppført ovenfor; ROM-formater for andre plattformer støttes ikke.