ROM tester online: play and test a patched ROM
Use rom-weaver's ROM tester online to test a patched ROM before downloading it. Open Test to play local games through EmulatorJS. Play NES, SNES, Game Boy, GBA, Nintendo 64, Nintendo DS, and PlayStation games.
Your ROM stays on your device; no upload or account is required.
To verify the exact file a patch requires, use Checksum to compare its hash with the author's expected value, or Identify to look up a known game, region, and revision. Playing a game successfully does not verify its checksum.
If you need a practice file, open guided Test. It loads a tiny homebrew NES ROM from this project.
Check platform support
- Check browser emulator support for your game's platform and the bundled core limitations.
- For GameCube, Wii, Nintendo 3DS, Dreamcast, or PlayStation 2 games, use an emulator for that platform. Converting, patching, or identifying a ROM in rom-weaver does not mean the browser player supports it.
- Keep the original ROM and use a copy when testing a patch.
Load a ROM
- Open Test.
- Drop a ROM onto 0x01 Load a game, or select that area to choose a file.
- If the player shows START GAME, select it. Touch devices can require this tap before playback starts.
- Use the controls inside the emulator player.
You can also add a ZIP or 7z archive. rom-weaver shows the extraction progress, then opens a supported ROM from the archive.
A CHD that rom-weaver identifies as Sony PlayStation or Sega Mega Drive or Genesis opens without extraction. A CHD identified as Sega CD or Mega-CD has no bundled core and does not play. The emulator core reads the CHD directly, so a multi-track CD plays as one file. Add the .chd file itself, not an archive that contains it. A CHD for any other platform, including Saturn, is extracted first.
Browser emulator support lists the platforms with bundled cores.
Test an Apply result
To test a patched ROM online, send the Apply result directly to the browser player:
- Load your ROM and patches on the Apply Patches page.
- Set Open Test after patching under Options, then apply the patches. If the option warns that the platform cannot be tested, use another emulator or the target hardware.
- Select Open in the Test tab after Apply finishes.
- Play far enough to exercise the patched content.
- Return to Apply and download the result if you have not downloaded it.
The Open Test after patching option can open Test automatically or hide the Test button. Apply skips automatic testing for unsupported platforms. Its disabled Test button names the unsupported platform.
Use Download after patching to choose whether Apply downloads the result automatically.
An emulator test does not prove that every part of a patch works. Keep the clean original and test important paths on the target hardware when possible.
Switch games or stop
Select Choose another ROM to replace the current game. Select Stop to unload the game and return to the Test start screen.
The emulator pauses when you leave the Test page or hide the browser tab. It resumes when you return.
Use saves and fullscreen
Use the emulator menu to create a save state or save the game's SRAM. rom-weaver stores the save bytes in this browser.
Each save uses the ROM's SHA-1 checksum as its identity. The record also stores the file name as a display name. Thus, the same ROM finds its save after you rename the file.
The panel above EmulatorJS shows the current file name and complete SHA-1. Storage shows the same value as a ROM fingerprint. You only need these values when you troubleshoot a save mismatch.
Use the fullscreen button above the player to enter or leave fullscreen. On iPhone and iPad, the button uses a full-viewport player because Safari does not offer fullscreen for this type of content.
Export and restore a save
Export a save before you clear browser data or move to another browser.
- Load the ROM on the Test page.
- Create a save state or save the game's SRAM from the emulator menu.
- Open Settings, then select Saves & storage.
- Find the ROM under Emulator saves.
- Select Export and keep the downloaded ZIP file.
Restore the save in a browser that has the same ROM:
- Open Settings, then select Saves & storage.
- Select Import save.
- Choose the exported rom-weaver ZIP file.
- Confirm that the ROM name and SHA-1 appear under Emulator saves.
- Load the same ROM on the Test page.
- Select Load State from the emulator menu.
Saves & storage also accepts the older uncompressed JSON export.
To import a raw SRAM or save-state file:
- Open Settings, then select Saves & storage.
- Select Import save.
- Choose the file exported by the emulator settings.
- Select SRAM or Save state.
- Enter the ROM's 40-character SHA-1.
The import merges with any other save part for the same SHA-1. You can select Delete before the import if you want to test the complete restore process.
Disable save storage
- Open Settings.
- Clear Store emulator saves on this device.
- Select Save.
New save states and SRAM are not stored while this setting is off. Existing saves remain in Saves & storage until you delete them.
Use the Delete action in Saves & storage to remove one game. Use your browser's site-data controls to remove all rom-weaver data.
Fix a game that does not start
- No emulator core for this system: check browser emulator support.
- A Famicom Disk System
.fdsgame shows a BIOS message: these games need the FDS BIOS, and the Test page cannot load one yet, so the emulator does not start. The same applies to an.fdsfile inside a ZIP or 7z archive and to an Apply result. Issue #1223 tracks BIOS support. - WebGL 2 is required: enable hardware acceleration or use a browser that supports WebGL 2.
- An archive does not load: extract it yourself, then add the ROM file.
- A save does not appear: load the same ROM bytes. rom-weaver uses the ROM's SHA-1 checksum to find its saves.
- An imported save does not load: confirm that its SHA-1 matches the ROM shown in Storage.
- The player has no sound on iPhone or iPad: start the game inside the player. Safari requires that direct tap before it enables audio.
The emulator and its selected cores download from rom-weaver's own origin. Load a game for each system you plan to use while online, so its emulator core is cached before you go offline.