Skip to content

# Cannonball - RetroBIOS

Type | game
Classification | game_engine
Source | https://github.com/libretro/cannonball
Upstream | https://github.com/djyt/cannonball
Version | 1.0
Profiled | 2026-03-23
Cores | cannonball
Systems | sega-outrun

Technical notes

Cannonball is an enhanced OutRun engine that runs the original Sega OutRun arcade ROM set (Rev B). It is not a traditional emulator but a source port that loads the original ROM data for graphics, sound, and gameplay logic.

The core looks for ROM files in one of two locations (src/main/libretro/main.cpp:945-967): 1. The directory containing a loaded .game content file 2. {system_dir}/cannonball/

ROM loading is in src/main/roms.cpp. Each file is verified by CRC32 at load time (src/main/romloader.cpp:70-76). Files are loaded as raw ROM chips, not inside ZIP archives.

The Rev B ROM set is always required. Japanese ROM variants are loaded on demand when the "Japanese Tracks" core option is enabled.

Two optional widescreen tilemap patches are loaded from a res/ subdirectory (src/main/engine/omusic.cpp:42-51). These are Cannonball-specific data files, not original arcade ROMs.

The fixed PCM sample variant (opr-10188.71f) replaces opr-10188.71 when the "Fix Broken Samples" core option is enabled.

42 files | 31 required, 11 optional | 39 in repo, 3 missing Categories: 42 game data

`epr-10381a.132` -required, game_data

- System: sega-outrun
- Size: 64.0 KB
- CRC32: `be8c412b`
- Aliases: `epr-10381b.132`
- Validation: crc32
- Source: `src/main/roms.cpp:29`
- Master 68K, high byte, upper bank

`epr-10383b.117` -required, game_data

- System: sega-outrun
- Size: 64.0 KB
- CRC32: `10a2014a`
- Validation: crc32
- Source: `src/main/roms.cpp:38`
- Master 68K, low byte, upper bank

`epr-10380b.133` -required, game_data

- System: sega-outrun
- Size: 64.0 KB
- CRC32: `1f6cadad`
- Validation: crc32
- Source: `src/main/roms.cpp:39`
- Master 68K, high byte, lower bank

`epr-10382b.118` -required, game_data

- System: sega-outrun
- Size: 64.0 KB
- CRC32: `c4c3fa1a`
- Validation: crc32
- Source: `src/main/roms.cpp:40`
- Master 68K, low byte, lower bank

`epr-10327a.76` -required, game_data

- System: sega-outrun
- Size: 64.0 KB
- CRC32: `e28a5baf`
- Validation: crc32
- Source: `src/main/roms.cpp:44`
- Slave 68K, high byte, lower bank

`epr-10329a.58` -required, game_data

- System: sega-outrun
- Size: 64.0 KB
- CRC32: `da131c81`
- Validation: crc32
- Source: `src/main/roms.cpp:45`
- Slave 68K, low byte, lower bank

`epr-10328a.75` -required, game_data

- System: sega-outrun
- Size: 64.0 KB
- CRC32: `d5ec5e5d`
- Validation: crc32
- Source: `src/main/roms.cpp:46`
- Slave 68K, high byte, upper bank

`epr-10330a.57` -required, game_data

- System: sega-outrun
- Size: 64.0 KB
- CRC32: `ba9ec82a`
- Validation: crc32
- Source: `src/main/roms.cpp:47`
- Slave 68K, low byte, upper bank

`opr-10268.99` -required, game_data

- System: sega-outrun
- Size: 32.0 KB
- CRC32: `95344b04`
- Validation: crc32
- Source: `src/main/roms.cpp:51`
- Tile ROM bank 0

`opr-10232.102` -required, game_data

- System: sega-outrun
- Size: 32.0 KB
- CRC32: `776ba1eb`
- Validation: crc32
- Source: `src/main/roms.cpp:52`
- Tile ROM bank 1

`opr-10267.100` -required, game_data

- System: sega-outrun
- Size: 32.0 KB
- CRC32: `a85bb823`
- Validation: crc32
- Source: `src/main/roms.cpp:53`
- Tile ROM bank 2

`opr-10231.103` -required, game_data

- System: sega-outrun
- Size: 32.0 KB
- CRC32: `8908bcbf`
- Validation: crc32
- Source: `src/main/roms.cpp:54`
- Tile ROM bank 3

`opr-10266.101` -required, game_data

- System: sega-outrun
- Size: 32.0 KB
- CRC32: `9f6f1a74`
- Validation: crc32
- Source: `src/main/roms.cpp:55`
- Tile ROM bank 4

`opr-10230.104` -required, game_data

- System: sega-outrun
- Size: 32.0 KB
- CRC32: `686f5e50`
- Validation: crc32
- Source: `src/main/roms.cpp:56`
- Tile ROM bank 5

`opr-10185.11` -required, game_data

- System: sega-outrun
- Size: 32.0 KB
- CRC32: `22794426`
- Validation: crc32
- Source: `src/main/roms.cpp:60`
- Road ROM, layer 1

`opr-10186.47` -required, game_data

- System: sega-outrun
- Size: 32.0 KB
- CRC32: `22794426`
- Validation: crc32
- Source: `src/main/roms.cpp:61`
- Road ROM, layer 2 (identical to opr-10185.11)

`mpr-10371.9` -required, game_data

- System: sega-outrun
- Size: 128.0 KB
- CRC32: `7cc86208`
- Validation: crc32
- Source: `src/main/roms.cpp:65`
- Sprite ROM, bank 0 byte 0

`mpr-10373.10` -required, game_data

- System: sega-outrun
- Size: 128.0 KB
- CRC32: `b0d26ac9`
- Validation: crc32
- Source: `src/main/roms.cpp:66`
- Sprite ROM, bank 0 byte 1

`mpr-10375.11` -required, game_data

- System: sega-outrun
- Size: 128.0 KB
- CRC32: `59b60bd7`
- Validation: crc32
- Source: `src/main/roms.cpp:67`
- Sprite ROM, bank 0 byte 2

`mpr-10377.12` -required, game_data

- System: sega-outrun
- Size: 128.0 KB
- CRC32: `17a1b04a`
- Validation: crc32
- Source: `src/main/roms.cpp:68`
- Sprite ROM, bank 0 byte 3

`mpr-10372.13` -required, game_data

- System: sega-outrun
- Size: 128.0 KB
- CRC32: `b557078c`
- Validation: crc32
- Source: `src/main/roms.cpp:69`
- Sprite ROM, bank 1 byte 0

`mpr-10374.14` -required, game_data

- System: sega-outrun
- Size: 128.0 KB
- CRC32: `8051e517`
- Validation: crc32
- Source: `src/main/roms.cpp:70`
- Sprite ROM, bank 1 byte 1

`mpr-10376.15` -required, game_data

- System: sega-outrun
- Size: 128.0 KB
- CRC32: `f3b8f318`
- Validation: crc32
- Source: `src/main/roms.cpp:71`
- Sprite ROM, bank 1 byte 2

`mpr-10378.16` -required, game_data

- System: sega-outrun
- Size: 128.0 KB
- CRC32: `a1062984`
- Validation: crc32
- Source: `src/main/roms.cpp:72`
- Sprite ROM, bank 1 byte 3

`epr-10187.88` -required, game_data

- System: sega-outrun
- Size: 32.0 KB
- CRC32: `a10abaa9`
- Validation: crc32
- Source: `src/main/roms.cpp:76`
- Z80 sound program

`opr-10193.66` -required, game_data

- System: sega-outrun
- Size: 32.0 KB
- CRC32: `bcd10dde`
- Validation: crc32
- Source: `src/main/roms.cpp:80`
- PCM sample bank 0

`opr-10192.67` -required, game_data

- System: sega-outrun
- Size: 32.0 KB
- CRC32: `770f1270`
- Validation: crc32
- Source: `src/main/roms.cpp:81`
- PCM sample bank 1

`opr-10191.68` -required, game_data

- System: sega-outrun
- Size: 32.0 KB
- CRC32: `20a284ab`
- Validation: crc32
- Source: `src/main/roms.cpp:82`
- PCM sample bank 2

`opr-10190.69` -required, game_data

- System: sega-outrun
- Size: 32.0 KB
- CRC32: `7cab70e2`
- Validation: crc32
- Source: `src/main/roms.cpp:83`
- PCM sample bank 3

`opr-10189.70` -required, game_data

- System: sega-outrun
- Size: 32.0 KB
- CRC32: `01366b54`
- Validation: crc32
- Source: `src/main/roms.cpp:84`
- PCM sample bank 4

`opr-10188.71` -required, game_data

- System: sega-outrun
- Size: 32.0 KB
- CRC32: `bad30ad9`
- Validation: crc32
- Source: `src/main/roms.cpp:85`
- PCM sample bank 5

`opr-10188.71f` -optional, game_data

- System: sega-outrun
- Size: 32.0 KB
- CRC32: `37598616`
- Validation: crc32
- Source: `src/main/roms.cpp:123`
- PCM sample bank 5, fixed version (replaces opr-10188.71)

`res/tilemap.bin` -optional, game_data, missing from repo

- System: sega-outrun
- Source: `src/main/engine/omusic.cpp:42-44`
- Widescreen tilemap patch, Cannonball-specific

`res/tilepatch.bin` -optional, game_data, missing from repo

- System: sega-outrun
- Source: `src/main/engine/omusic.cpp:49-51`
- Widescreen tile patch, Cannonball-specific

`epr-10380.133` -optional, game_data

- System: sega-outrun
- Size: 64.0 KB
- CRC32: `e339e87a`
- Validation: crc32
- Source: `src/main/roms.cpp:104`
- Master 68K Japan, high byte, lower bank

`epr-10382.118` -optional, game_data

- System: sega-outrun
- Size: 64.0 KB
- CRC32: `65248dd5`
- Validation: crc32
- Source: `src/main/roms.cpp:105`
- Master 68K Japan, low byte, lower bank

`epr-10381.132` -optional, game_data, missing from repo

- System: sega-outrun
- Size: 64.0 KB
- CRC32: `be8c412b`
- Validation: crc32
- Source: `src/main/roms.cpp:106`
- Master 68K Japan, high byte, upper bank

`epr-10383.117` -optional, game_data

- System: sega-outrun
- Size: 64.0 KB
- CRC32: `dcc586e7`
- Validation: crc32
- Source: `src/main/roms.cpp:107`
- Master 68K Japan, low byte, upper bank

`epr-10327.76` -optional, game_data

- System: sega-outrun
- Size: 64.0 KB
- CRC32: `da99d855`
- Validation: crc32
- Source: `src/main/roms.cpp:110`
- Slave 68K Japan, high byte, lower bank

`epr-10329.58` -optional, game_data

- System: sega-outrun
- Size: 64.0 KB
- CRC32: `fe0fa5e2`
- Validation: crc32
- Source: `src/main/roms.cpp:111`
- Slave 68K Japan, low byte, lower bank

`epr-10328.75` -optional, game_data

- System: sega-outrun
- Size: 64.0 KB
- CRC32: `3c0e9a7f`
- Validation: crc32
- Source: `src/main/roms.cpp:112`
- Slave 68K Japan, high byte, upper bank

`epr-10330.57` -optional, game_data

- System: sega-outrun
- Size: 64.0 KB
- CRC32: `59786e99`
- Validation: crc32
- Source: `src/main/roms.cpp:113`
- Slave 68K Japan, low byte, upper bank

Generated on 2026-03-25T14:56:43Z