ROM Browser & RetroArch Integration — User Guide
A step-by-step guide to browsing, managing, and launching your ROM collection with the ROM Browser and RetroArch.
Table of Contents
- Opening the ROM Browser
- Scanning a ROM Folder
- Filtering by System
- Searching ROMs
- Viewing Artwork
- Big Picture Mode
- Managing ROMs
- Context Menu
- Organizing by System
- Sending ROMs to a Remote Target
- Hosting & Sharing ROMs
- RetroArch Integration
- Troubleshooting
Opening the ROM Browser
Select ROM Browser from the application sidebar. The view shows an empty ROM list with a toolbar at the top and a status bar at the bottom.
Scanning a ROM Folder
- Click Select Folder in the toolbar.
- Choose the directory that contains your ROM files.
- The scanner recursively searches all subdirectories and identifies files belonging to any of the 46 supported systems using known ROM file extensions.
- A progress indicator shows scanning status. When finished, the status bar reports the total number of ROMs found.
The ROM list displays four columns:
| Column | Description |
|---|---|
| File Name | ROM file name |
| System | Detected console or computer (e.g., NES, SNES, Mega Drive) |
| Size | File size in a human-readable format |
| Valid | Basic validity check result |
Columns are sortable and resizable. You can select multiple ROMs by holding Ctrl or Shift while clicking.
Filtering by System
Use the Filter by System dropdown in the toolbar to narrow the list to a single system (e.g., only Game Boy Advance ROMs). Select All Systems to show every ROM again.
The status bar updates to reflect the filtered ROM count.
Searching ROMs
Use the Search text box in the toolbar to perform a detailed text search across your ROM collection. The search filters by:
- File name — matches any part of the ROM file name
- System name — matches the detected system display name
- File size — matches the formatted file size string
The search works in combination with the system filter. For example, you can select “Game Boy Advance” from the system dropdown and then type “Pokemon” in the search box to find all GBA Pokémon ROMs.
The status bar shows how many ROMs match the current filters (e.g., Showing 5 of 1200 ROM(s).).
Tip: Clear the search box to return to the full filtered list.
Viewing Artwork
- Check the Show Artwork checkbox in the toolbar.
- A side panel appears on the right showing three artwork slots: Box Art, Screenshot, and Title Screen.
- Select a ROM in the list. The application fetches artwork from the Libretro Thumbnails repository.
- Images are cached locally in
%APPDATA%/RetroMultiTools/ArtworkCache/(or the equivalent on Linux/macOS) after the first download, so subsequent views load instantly without a network request.
Uncheck Show Artwork to hide the panel and free screen space for the ROM list.
Tip: Artwork loading is cancelled automatically when you select a different ROM, so you can browse quickly without waiting.
Big Picture Mode
Big Picture Mode transforms the ROM Browser into a fullscreen, controller-friendly experience inspired by Steam’s Big Picture. It displays your ROM collection as large visual cards with color-coded system banners and box art thumbnails, making it ideal for couch gaming with a game controller or keyboard.
Entering Big Picture Mode
There are two ways to enter Big Picture Mode:
- From the ROM Browser — Click the Big Picture Mode button in the toolbar. If you already have a folder scanned, the current ROM list is carried over so you don’t have to rescan.
- On startup — Enable Start in Big Picture Mode automatically in the Settings view and configure a ROM folder. The application will launch directly into Big Picture Mode.
Browsing & Navigation
The game grid displays ROM cards in a responsive wrap layout. Each card shows:
- A color-coded banner based on the system (e.g., red for Nintendo, blue for Sega, peach for Atari) with box art thumbnails that appear as artwork is pre-loaded
- The game name (from the file name, without extension)
- The system name and file size
A ROM count badge in the status bar always shows the number of visible ROMs (e.g., “42 / 128 ROMs” when a filter is active). A zoom level badge shows the current grid scale. When a game controller is connected, a controller badge shows its name.
Navigate the grid using these keyboard shortcuts:
| Key | Action |
|---|---|
| ← → | Move selection left / right |
| ↑ ↓ | Move selection up / down one row (clamps to first / last card) |
| Enter / Space | Launch the selected ROM with RetroArch |
| F | Toggle the selected ROM as a favorite |
| I | Show / hide ROM Info overlay (header details, checksums, GoodTools codes) |
| + / − | Zoom in / zoom out the card grid (50%–200%) |
| H / ? | Show / hide keyboard shortcuts help overlay |
| Escape / Backspace | Exit Big Picture Mode (or defocus the search box) |
| Tab | Focus the search box |
| Home / End | Jump to the first / last card |
| PageUp / PageDown | Scroll up / down by several rows |
Game Controller Navigation
Big Picture Mode natively supports game controllers via the SDL2 Game Controller API. Controllers are automatically detected when plugged in (autoconfig / Plug & Play), using the same controller database as RetroArch.
| Button | Action |
|---|---|
| D-Pad / Left Stick | Navigate between cards |
| A | Launch the selected ROM |
| B | Toggle ROM Info window |
| Y | Toggle favorite |
| X | Focus search box |
| Start | Show / hide help overlay |
| Back (Select) | Pick a random game |
| Guide | Exit Big Picture Mode |
| LB | Page Up (modifier for combos below) |
| RB | Page Down |
| LT | Show / hide Collection Statistics overlay |
| RT | Toggle auto-scroll gallery mode |
| L3 / R3 | Jump to first / last card |
| Right Stick ↕ | Zoom in / out |
| LB + A | Open / close fullscreen artwork viewer |
| LB + B | Toggle recently played bar |
| LB + Y | Cycle game rating (0–5) |
| LB + D-Pad ← / → | Cycle system filter backward / forward |
Additional controller mappings can be loaded from a gamecontrollerdb.txt file placed next to the executable, or from RetroArch’s autoconfig directory. SDL2 must be installed on the system for controller support (keyboard navigation always works regardless).
Filtering, Searching & Sorting
The top bar provides several controls for organizing the grid:
- Search — Type to filter ROMs by file name or system name. Press Tab to focus the search box; press Escape to return focus to the card grid.
- System filter — Select a system from the dropdown to show only ROMs for that console or computer.
- Sort — Choose from Name (A–Z), Name (Z–A), System, Size ascending, Size descending, or Recently Played.
- Favorites — Click the ★ Favorites toggle button to show only ROMs you have marked as favorites.
You can also click Select Folder to scan a different ROM directory, Rescan to refresh the current folder, or Random Game to jump to a random ROM (avoids re-selecting the currently selected game).
Favorites
Mark any ROM as a favorite by selecting it and pressing F on the keyboard, or by clicking the favorite button (☆ / ★) in the detail panel. Favorites are persisted across sessions.
Use the ★ Favorites toggle button in the top bar to filter the grid and show only your favorite ROMs. This works in combination with the system filter and search box.
Recently Played
When you launch a ROM, it is automatically recorded in your recently played history (up to 50 entries). Select Recently Played from the sort dropdown to see your most recently launched games at the top of the grid.
Detail Panel & Artwork
When you select a card, a detail panel slides in from the right showing:
- Game title and system badge
- Favorite button (☆ / ★) to mark or unmark the ROM
- File size, validity status, play count (number of times the ROM has been launched), and file path
- Box art, screenshot, and title screen fetched from the Libretro Thumbnails repository
- A Launch with RetroArch button (enabled when the system has a mapped core)
- A Launch with MAME button (visible for Arcade ROMs when MAME is configured)
Artwork is cached locally after the first download so subsequent selections load instantly. When entering Big Picture Mode, artwork for all loaded ROMs is pre-loaded in the background so that browsing the collection feels instant. Box art thumbnails also appear directly on the game cards as they are loaded.
Grid Zoom
Press + to zoom in or − to zoom out on the card grid. The zoom range is 50% to 200% in 10% steps. The current zoom level is displayed as a badge in the status bar (e.g., “Zoom: 120%”). The zoom preference is saved between sessions.
Keyboard Shortcuts Help
Press H or ? to show a help overlay listing all available keyboard shortcuts. The overlay blocks other input while visible. Press H, ?, or Escape to dismiss it.
ROM Info Overlay
Press I to show a ROM Info overlay for the currently selected ROM. The overlay displays:
- ROM details — file name, system, file size, validity status, and any parsed header fields
- Checksums — CRC32, MD5, SHA-1, and SHA-256 (computed asynchronously in the background)
- GoodTools codes — country codes, standard codes, and GoodGen codes parsed from the file name
Press I or Escape to dismiss the overlay. When using a game controller, press B to toggle it.
Play Statistics
Each time you launch a ROM with RetroArch or MAME, the application increments a play counter for that ROM. The count is displayed in the detail panel as “Times played: N” and is persisted across sessions.
Launching a ROM
Select a ROM card and press Enter, Space, or click the Launch with RetroArch button in the detail panel. For Arcade ROMs, a Launch with MAME button is also available when standalone MAME is configured. The application:
- Looks up the recommended libretro core for the ROM’s system.
- Starts RetroArch with the correct core and ROM path.
- Records the ROM in your recently played history and increments the play count.
- If Minimize to tray when launching a ROM is enabled, minimizes to the system tray and restores automatically when the emulator exits.
Exiting Big Picture Mode
- Press Escape or Backspace (when the search box is not focused).
- Click the Exit Big Picture button in the top-right corner.
If the search box is focused, pressing Escape returns focus to the card grid instead. Press Escape again to exit Big Picture Mode.
The application returns to the standard ROM Browser view at its previous window size.
Auto-Start Setting
To launch directly into Big Picture Mode every time you open the application:
- Open the Settings view.
- In the Big Picture Mode section, check Start in Big Picture Mode automatically.
- Click Browse to select the ROM folder that should be scanned automatically on startup.
Managing ROMs
Adding ROMs
- After scanning a folder, click Add ROMs.
- A file picker appears. Select one or more ROM files from anywhere on your system.
- The selected files are copied into the currently scanned folder and the list is refreshed automatically.
Copying ROMs
- Select one or more ROMs in the list.
- Click Copy To.
- Choose a destination folder. The selected ROMs are copied there.
Moving ROMs
- Select one or more ROMs in the list.
- Click Move To.
- Choose a destination folder. The selected ROMs are moved and the list is refreshed.
Deleting ROMs
- Select one or more ROMs in the list.
- Click Delete.
- The files are removed from disk and the list is refreshed.
The status bar reports the number of files successfully processed and any failures for each operation.
Context Menu
Right-click on a selected ROM in the list to access a context menu with quick actions:
| Action | Description |
|---|---|
| 🎮 Launch with RetroArch | Launches the selected ROM in RetroArch with the appropriate core |
| 🕹️ Launch with MAME | Launches the selected Arcade ROM in standalone MAME |
| 📋 Copy To… | Copies the selected ROM(s) to a destination folder |
| 📁 Move To… | Moves the selected ROM(s) to a destination folder |
| 📤 Send To Remote… | Opens the Send to Remote dialog for the selected ROM(s) |
| 🌐 Host & Share… | Opens the Host & Share dialog to serve the selected ROM(s) over a local HTTP server |
| 🔄 Convert Format | Available for N64, SNES, and NES ROMs — opens the format converter |
| ✂️ Trim ROM | Available for systems with trimmable ROMs (NES, SNES, N64, Game Boy, GBA) |
| 📄 Export Header | Exports the ROM header to a text file for systems with parseable headers |
| ✅ Verify ROM | Guides you to the DAT Verifier or Dump Verifier for ROM verification |
| 🗑️ Delete | Deletes the selected ROM(s) from disk |
System-specific actions (Convert Format, Trim ROM, Export Header) are only visible when the selected ROM belongs to a system that supports that operation.
Organizing by System
- Scan a folder so the ROM list is populated.
- Click Organize ROMs.
- Choose an output directory.
- The organizer copies every scanned ROM into system-specific subfolders based on the detected system type. For example:
Output/
├── NES/
├── SNES/
├── Sega Genesis/
├── Game Boy Advance/
└── ...
A summary reports how many files were copied, skipped (already exist), or failed.
Sending ROMs to a Remote Target
- Select one or more ROMs in the list.
- Click Send to Remote.
- A dialog opens where you choose a transfer protocol and enter connection details.
Supported protocols:
| Protocol | Default Port | Notes |
|---|---|---|
| FTP | 21 | Optional Explicit FTPS (TLS) |
| SFTP | 22 | SSH File Transfer Protocol |
| WebDAV | 443 | HTTP-based, auto-creates directories |
| Amazon S3 | 443 | Also supports S3-compatible services (MinIO, Wasabi, etc.) |
| Google Drive | — | Uses OAuth access token; optional folder ID |
| Dropbox | — | Uses OAuth access token; uploads to specified path |
| OneDrive | — | Uses OAuth access token via Microsoft Graph API |
- Click Send to begin the transfer. Progress is reported per file and can be cancelled.
For cloud storage providers (Google Drive, Dropbox, OneDrive), you will need to provide an OAuth access token obtained from the respective provider’s developer console or API. The token is used for authentication and file upload.
See the Remote Transfer Protocols reference for full connection details and limits.
Hosting & Sharing ROMs
The Host & Share feature starts a lightweight HTTP server on your machine, allowing other devices on the same local network to browse and download your ROMs using any web browser.
Starting the Server
- Optionally select one or more ROMs in the list (for Selected ROMs mode), or leave no selection (for Directory mode).
- Click Host & Share in the toolbar, or right-click and choose 🌐 Host & Share… from the context menu.
- A dialog opens showing the hosting configuration.
- Set the port number (default: 8080). Any available port between 1 and 65535 can be used.
- Click Start.
Hosting Modes
| Mode | Trigger | What Is Served |
|---|---|---|
| Directory | Click Host & Share with no ROMs selected | All ROM files in the currently browsed directory |
| Selected ROMs | Select ROM(s) first, then click Host & Share | Only the selected ROM file(s) |
Sharing the URL
Once the server starts, the dialog displays one or more URLs — one for each network interface on your machine. Share any of these URLs with other users on your LAN:
http://192.168.1.100:8080/
Click Copy URL to copy the first URL to your clipboard.
Recipients open the URL in any web browser to see a styled directory listing with file names and sizes. Clicking a file name starts a download.
Connection Log
The dialog shows a real-time log of incoming connections and requests, which is useful for confirming that clients are connecting successfully.
Features
- Resumable downloads — The server supports HTTP range requests, so interrupted downloads can resume where they left off.
- Cross-platform — Works identically on Windows, Linux, and macOS with no additional setup or dependencies.
- Concurrent connections — Multiple clients can download files simultaneously.
- Path-traversal protection — The server only serves files from the specified directory or file list; it does not expose other files on your system.
Stopping the Server
Click Stop to shut down the server immediately. The server also stops automatically when you close the Host & Share dialog.
RetroArch Integration
The ROM Browser can launch any selected ROM directly in RetroArch with the correct libretro core for its system.
Configuring RetroArch
Before launching ROMs you need to tell the application where RetroArch is installed. Open the Settings view and use the RetroArch configuration section:
| Action | Description |
|---|---|
| Browse | Manually select the RetroArch executable (on macOS you can select the .app bundle directly) |
| Auto-Detect | Searches the system PATH and common install locations automatically |
| Download | Opens the official RetroArch download page in your browser |
| Clear | Removes the stored path |
The configured path is saved in settings.json and persists across sessions.
Auto-detection locations by platform:
- Windows —
Program Files\RetroArch,Program Files (x86)\RetroArch,%LOCALAPPDATA%\RetroArch,C:\RetroArch,C:\RetroArch-Win64, Scoop installs - Linux —
/usr/bin/retroarch,/usr/local/bin/retroarch,/snap/bin/retroarch, system PATH, Flatpak (org.libretro.RetroArch), AppImage files in~/Applications - macOS —
/Applications/RetroArch.app,~/Applications/RetroArch.app, Homebrew (/opt/homebrew/bin/retroarch,/usr/local/bin/retroarch), system PATH. You can also point at a.appbundle directly — the executable inside will be resolved automatically.
Launching a ROM with RetroArch
- Select a single ROM in the ROM Browser list.
- Click Launch RetroArch.
- The application:
- Looks up the recommended libretro core for the ROM’s system.
- Locates the core library file in the RetroArch
cores/directory (or platform-specific fallback locations). - Starts RetroArch with the
-L <core_path> <rom_path>command line.
- The status bar shows which core was used (e.g., Launched with core: snes9x (SNES)).
If the required core is not installed, the status bar displays a message asking you to install it. See Downloading Missing Cores below.
Minimize to Tray on Launch
When Minimize to tray when launching a ROM is enabled (the default), the application automatically minimizes to the system tray after launching RetroArch. A tray icon appears allowing you to restore the window at any time.
When the RetroArch process exits (i.e., you close the game), the application:
- Restores the main window automatically.
- Hides the tray icon.
- Clears the Discord Rich Presence status (if enabled).
This keeps the desktop clean while playing. The setting can be toggled in the Settings view under System Tray.
Discord Rich Presence
When enabled, launching a ROM via RetroArch automatically updates your Discord status to show the game being played and the system it runs on.
- Open the Settings view.
- In the Discord section, check Enable Discord Rich Presence.
- When you launch a ROM, your Discord status will display:
- Game name — the ROM file name (without extension)
- System name — the full name of the console or computer (e.g., “Super Nintendo”, “Sega Genesis / Mega Drive”)
- Elapsed time — how long you’ve been playing
The status is updated each time you launch a new game. Discord must be running for the integration to work.
System-to-Core Mapping
Each supported system maps to a recommended libretro core:
| System | Core | Core Project |
|---|---|---|
| NES | fceumm | FCEUmm |
| SNES | snes9x | Snes9x |
| Nintendo 64 | mupen64plus_next | Mupen64Plus-Next |
| Nintendo 64DD | mupen64plus_next | Mupen64Plus-Next |
| Nintendo DS | melonds | melonDS |
| Nintendo 3DS | citra | Citra |
| Game Boy | gambatte | Gambatte |
| Game Boy Color | gambatte | Gambatte |
| Game Boy Advance | mgba | mGBA |
| Virtual Boy | mednafen_vb | Mednafen VB |
| Sega Master System | genesis_plus_gx | Genesis Plus GX |
| Mega Drive / Genesis | genesis_plus_gx | Genesis Plus GX |
| Sega CD | genesis_plus_gx | Genesis Plus GX |
| Sega 32X | picodrive | PicoDrive |
| Game Gear | genesis_plus_gx | Genesis Plus GX |
| Atari 2600 | stella2014 | Stella 2014 |
| Atari 5200 | atari800 | Atari800 |
| Atari 7800 | prosystem | ProSystem |
| Atari 800 / XL / XE | atari800 | Atari800 |
| Atari Jaguar | virtualjaguar | Virtual Jaguar |
| Atari Lynx | handy | Handy |
| PC Engine / TurboGrafx-16 | mednafen_pce_fast | Mednafen PCE Fast |
| Neo Geo (AES/MVS) | geolith | Geolith |
| Neo Geo CD | neocd | NeoCD |
| Neo Geo Pocket | mednafen_ngp | Mednafen NGP |
| ColecoVision | bluemsx | blueMSX |
| Intellivision | freeintv | FreeIntv |
| MSX / MSX2 | bluemsx | blueMSX |
| NEC PC-88 | quasi88 | QUASI88 |
| Amstrad CPC | cap32 | Caprice32 |
| Thomson MO5 | theodore | Theodore |
| Watara Supervision | potator | Potator |
| Color Computer | xroar | XRoar |
| Panasonic 3DO | opera | Opera |
| Philips CD-i | same_cdi | SAME CDi |
| Amiga CD32 | puae | P-UAE |
| Sega Saturn | mednafen_saturn | Mednafen Saturn |
| Sega Dreamcast | flycast | Flycast |
| GameCube | dolphin | Dolphin |
| Wii | dolphin | Dolphin |
| Arcade (MAME) | mame2003_plus | MAME 2003-Plus |
Neo Geo AES/MVS BIOS Note: The
geolithcore supports both Neo Geo AES (home console) and MVS (arcade) modes. Using the “AES” BIOS will start games in their console (home) versions. Using the “NEOGEO” (Universe BIOS or standard MVS) BIOS will boot games in their arcade versions.
Downloading Missing Cores
If a core is not installed you can download it from within the application:
- Open the Settings view.
- In the RetroArch Core Downloader section, click Check Cores.
- A list appears showing each core with its install status:
- ✔ — installed
- ✘ — missing
- Click Download Missing Cores to download and install all missing cores from the official RetroArch buildbot (
buildbot.libretro.com). - Progress is shown in real time. Click Cancel to stop downloads at any time.
Core directory by platform:
| Platform | Directory |
|---|---|
| Windows | cores/ next to retroarch.exe |
| macOS | cores/ next to the RetroArch binary |
| Linux | cores/ next to the executable, or ~/.config/retroarch/cores/ if the executable directory is not writable |
After downloading, return to the ROM Browser and click Launch RetroArch — the newly installed core will be detected automatically.
MAME Integration
The ROM Browser can launch Arcade ROMs directly in standalone MAME as an alternative to using RetroArch with the mame2003_plus core.
Configuring MAME
Open the Settings view and use the MAME configuration section:
| Action | Description |
|---|---|
| Browse | Manually select the MAME executable (on macOS you can select the .app bundle directly) |
| Auto-Detect | Searches the system PATH and common install locations automatically |
| Download | Opens the official MAME download page in your browser |
| Clear | Removes the stored path |
The configured path is saved in settings.json and persists across sessions.
Auto-detection locations by platform:
- Windows —
%ProgramFiles%\MAME,C:\MAME, Scoop installs - Linux —
/usr/bin/mame,/usr/local/bin/mame,/usr/games/mame,/snap/bin/mame, system PATH - macOS —
/Applications/mame,~/Applications/mame, Homebrew (/opt/homebrew/bin/mame,/usr/local/bin/mame), system PATH
Launching an Arcade ROM with MAME
- Select an Arcade ROM in the ROM Browser list.
- Click the 🕹️ MAME toolbar button, or right-click and choose Launch with MAME.
- The application:
- Passes the ROM directory and ROM set name to MAME via
-rompath <dir> <romname>. - Updates Discord Rich Presence (if enabled).
- Passes the ROM directory and ROM set name to MAME via
- The status bar shows the launch result (e.g., Launched sf2 with MAME.).
In Big Picture Mode, an additional Launch with MAME button appears in the detail panel when an Arcade ROM is selected. Both RetroArch and MAME launch buttons are available simultaneously, letting you choose which emulator to use.
Troubleshooting
| Problem | Solution |
|---|---|
| “MAME not found” | Open Settings and use Auto-Detect or Browse to set the MAME path. If MAME is not installed, click Download. |
| “RetroArch not found” | Open Settings and use Auto-Detect or Browse to set the RetroArch path. If RetroArch is not installed, click Download. |
| “Core not found” | Use the Core Downloader in Settings to install the missing core, or install it from RetroArch’s built-in Online Updater → Core Downloader. |
| No artwork appears | Check your internet connection. Artwork is fetched from the Libretro Thumbnails GitHub repository. After the first download, images are cached locally in the ArtworkCache directory under your app data folder. |
| ROM not detected / shows wrong system | System detection is based on file extensions. Ensure the ROM file has the correct extension for its system (see Supported Systems). |
| Scan finds no ROMs | Verify the folder contains files with recognized ROM extensions. The scanner searches subdirectories automatically. |
| Flatpak RetroArch launch fails | Flatpak installs are detected and launched with flatpak run org.libretro.RetroArch. If this fails, ensure the Flatpak package is installed and up to date. |
| Send to Remote fails | Verify the connection details (host, port, credentials). See the Remote Transfer Protocols reference for protocol-specific requirements. |
| Host & Share server won’t start | The port may already be in use by another application. Try a different port number. On some systems, ports below 1024 require administrator privileges. |
| Others can’t connect to hosted ROMs | Ensure all devices are on the same local network. Check that your firewall allows incoming connections on the configured port. The dialog shows your LAN IP addresses — verify the client is using one of these. |
| Window doesn’t restore after closing RetroArch | The application monitors the RetroArch process. If RetroArch was launched via a wrapper (e.g., Flatpak), the monitored process may exit before the game closes. Click the tray icon or use the tray context menu to restore the window manually. |
| Tray icon not visible | The tray icon only appears while the window is minimized to the tray. On some Linux desktop environments, a system tray extension may be required (e.g., AppIndicator on GNOME). |
| Big Picture Mode is empty | Click Select Folder in the Big Picture top bar to scan a ROM directory, or ensure the ROM folder configured in Settings exists and contains recognized ROM files. |
| Big Picture auto-start shows nothing | Open Settings → Big Picture Mode and verify the ROM folder path is set and points to a directory containing ROM files. |