Skip to main content
Batch mode allows you to run Dolphin without the graphical user interface, making it ideal for automation, continuous integration, testing, and scripted workflows.

Overview

Batch mode (--batch or -b) runs Dolphin headless, without displaying the main window. The emulation runs in the background, and Dolphin exits automatically when the game stops or an error occurs.

Requirements

Batch mode requires one of:
  • --exec - Execute a game file
  • --nand-title - Launch a NAND title
Without specifying what to run, batch mode will fail.

Basic Usage

Common Use Cases

Automated Testing

Run games automatically to completion:

TAS (Tool-Assisted Speedrun) Playback

Play back input recordings without GUI:

Save State Loading

Start from a specific save state:

Configuration Testing

Test different emulation settings:

Continuous Integration

Run regression tests in CI/CD pipelines:

Configuration in Batch Mode

You can override configuration settings using --config:

Useful Batch Mode Configurations

Video Backends for Batch Mode

Null Backend (No Rendering)

Fastest option, no graphics output:

Software Renderer (For Testing)

CPU-based rendering, deterministic:

Hardware Backends (With Display Server)

On Linux servers without a display, use xvfb-run:

Exit Behavior

Dolphin exits automatically when:
  • The game stops
  • An error occurs
  • The movie playback completes
  • The emulation crashes
Check the exit code to determine success:

Logging

Enable logging to capture output:

User Directory

Use isolated user directories for parallel execution:

Performance Considerations

Faster-than-Realtime Execution

Remove framelimit for maximum speed:

Deterministic Execution

Use interpreter core for reproducible results:

Limitations

  • No user interaction possible
  • Cannot respond to prompts or dialogs
  • No save/load state hotkeys
  • No GUI configuration changes

Troubleshooting

Batch mode exits immediately

Ensure you specified --exec or --nand-title:

Display server errors

On headless Linux systems, use xvfb-run or the Null backend:

Games don’t stop automatically

Some games run indefinitely. Use timeout to limit execution:

Complete Example

Automated game testing script:

See Also