Canonical: https://rom-weaver.com/docs/identify-roms-browser

# Identify a ROM by checksum in the browser

Use the browser ROM identifier to identify a ROM by checksum. Find its recorded game name, region, and revision when the identification data contains a match. Your file stays on your device.

Already have a hash? [Search ROM checksums](<https://rom-weaver.com/docs/search-rom-checksums.md>) without adding a file.

Choose [Checksum](<https://rom-weaver.com/docs/checksum-roms-browser.md>) to calculate a file's hash and compare it with a published value. Choose [Test](<https://rom-weaver.com/docs/test-roms.md>) to run a supported game in an emulator; successful playback does not establish that it is the exact ROM a patch requires.

<!-- START doctoc -->
## Table of contents

- [Identify a file](<#identify-a-file>)
- [Search without a file](<#search-without-a-file>)
- [Inspect known cheats](<#inspect-known-cheats>)
- [Compare a checksum](<#compare-a-checksum>)

<!-- END doctoc -->

## Identify a file

1. Open [Identify](<https://rom-weaver.com/identify-rom>).
2. Add one or more ROMs or supported archives. Each file gets its own result.
3. Wait for identification to finish.
4. Read the result on the ROM card. Its **Checks** drawer lists the checksums; switch from **Simple** to **Detailed** to add the **Identify** drawer. The switch label shows the active view.

An archive can produce several results. Each result names its member so you can tell which ROM it describes.

An unknown ROM shows one neutral **No match** notice above its card, with its checksums still listed. It means no matching checksum was found in the available data. It does not prove that your file is corrupt. Homebrew, modified ROMs, and unlisted releases can be unknown.

If several records share the checksums, read every candidate. If identification data could not load, check your connection and select **Retry identification**.

<figure class="docs-screenshot">
  <picture data-docs-screenshot-theme="light">
    <source media="(max-width: 520px)" type="image/avif" srcset="https://rom-weaver.com/docs/screenshots/identify-checks-mobile-light.avif" width="1170" height="2029">
    <source type="image/avif" srcset="https://rom-weaver.com/docs/screenshots/identify-checks-desktop-light.avif" width="1770" height="1340">
    <source media="(max-width: 520px)" type="image/webp" srcset="https://rom-weaver.com/docs/screenshots/identify-checks-mobile-light.webp" width="1170" height="2029">
    <img src="https://rom-weaver.com/docs/screenshots/identify-checks-desktop-light.webp" alt="Identify result for the homebrew sample with no database match and visible checksum rows in the light theme" width="1770" height="1340">
  </picture>
  <picture data-docs-screenshot-theme="dark">
    <source media="(max-width: 520px)" type="image/avif" srcset="https://rom-weaver.com/docs/screenshots/identify-checks-mobile-dark.avif" width="1170" height="2029">
    <source type="image/avif" srcset="https://rom-weaver.com/docs/screenshots/identify-checks-desktop-dark.avif" width="1770" height="1340">
    <source media="(max-width: 520px)" type="image/webp" srcset="https://rom-weaver.com/docs/screenshots/identify-checks-mobile-dark.webp" width="1170" height="2029">
    <img src="https://rom-weaver.com/docs/screenshots/identify-checks-desktop-dark.webp" alt="Identify result for the homebrew sample with no database match and visible checksum rows in the dark theme" width="1770" height="1340">
  </picture>
  <figcaption>An unknown ROM still has checksums. This example uses the supplied homebrew ROM.</figcaption>
</figure>

## Search without a file

Follow [Search ROM checksums](<https://rom-weaver.com/docs/search-rom-checksums.md>) to look up an existing CRC32, MD5, or SHA-1 hash. That guide also covers finding releases by game name.

## Inspect known cheats

1. Add a ROM or archive and wait for Identify to finish.
2. Select **View cheats** on the matching result or expected-ROM candidate.
3. Search the matched game's known codes.
4. Open **Code details** for original database fields and import warnings.

This view is for inspection. It includes checksum-only matches and candidates found inside archives, even when rom-weaver has not verified that a code is compatible with those exact bytes. Open [Apply cheat codes](<https://rom-weaver.com/apply-cheats>) or [Create a patch from cheat codes](<https://rom-weaver.com/create-rom-cheat-patch>) to classify and use a code.

## Compare a checksum

Open **Checks** on the ROM card. Compare the same algorithm with the value in the patch author's notes. Select a checksum row to copy it.

For an archive, these checks describe the ROM inside it. A checksum for the ZIP itself is different.

Some cards include variants, such as a ROM without its copier header. Compare the form the author specifies. If the values differ, follow [Fix a checksum error](<https://rom-weaver.com/docs/fix-checksum-errors.md>).

For SHA-256 and other algorithms, or to compare a pasted value automatically, use [Checksum a ROM](<https://rom-weaver.com/docs/checksum-roms-browser.md>).

For data sources and offline requirements, see [Where identify data comes from](<https://rom-weaver.com/docs/identify-sources.md>). Terminal procedures are in [Identify and hash ROMs from the CLI](<https://rom-weaver.com/docs/identify-and-hash-files.md>).
