mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-21 11:19:11 -05:00
Profiles that read two repositories, a libretro port and its upstream, now prefix each citation with source or upstream, decided by which tree carries the cited value at its pin. The emulator pages use the word to tell libretro glue, emulator code as the port carries it, and the upstream emulator apart.
507 lines
14 KiB
YAML
507 lines
14 KiB
YAML
emulator: Cannonball
|
|
type: libretro
|
|
core_classification: game_engine
|
|
source: "https://github.com/libretro/cannonball"
|
|
upstream: "https://github.com/djyt/cannonball"
|
|
profiled_date: "2026-03-23"
|
|
source_commit: "0d83575d920ea4c0a280847a19d7802f673e6a68"
|
|
core_version: "1.0"
|
|
display_name: "Cannonball"
|
|
cores:
|
|
- cannonball
|
|
systems:
|
|
- sega-outrun
|
|
|
|
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.c:1009-1020):
|
|
1. The directory containing a loaded .game content file
|
|
2. {system_dir}/cannonball/
|
|
|
|
ROM loading is in src/main/roms.c. Each file is located by CRC32 first,
|
|
canonical filename as fallback (src/main/romloader.c:168-201). 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.
|
|
|
|
The widescreen tilemap patches are compiled into the binary
|
|
(tilemap_data.h) and loaded from memory (src/main/engine/omusic.c:50-67).
|
|
|
|
The fixed PCM sample variant (opr-10188.71f) replaces opr-10188.71 when the
|
|
"Fix Broken Samples" core option is enabled.
|
|
|
|
files:
|
|
# -------------------------------------------------------
|
|
# Master CPU ROMs (68000, Rev B)
|
|
# -------------------------------------------------------
|
|
- name: "epr-10381b.132"
|
|
path: "cannonball/epr-10381b.132"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 65536
|
|
crc32: "be8c412b"
|
|
validation: [crc32]
|
|
aliases: [epr-10381b.132]
|
|
note: "Master 68K, high byte, upper bank"
|
|
source_ref: "upstream src/main/roms.cpp:39"
|
|
|
|
- name: "epr-10383b.117"
|
|
path: "cannonball/epr-10383b.117"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 65536
|
|
crc32: "10a2014a"
|
|
validation: [crc32]
|
|
note: "Master 68K, low byte, upper bank"
|
|
source_ref: "upstream src/main/roms.cpp:40"
|
|
|
|
- name: "epr-10380b.133"
|
|
path: "cannonball/epr-10380b.133"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 65536
|
|
crc32: "1f6cadad"
|
|
validation: [crc32]
|
|
note: "Master 68K, high byte, lower bank"
|
|
source_ref: "upstream src/main/roms.cpp:39"
|
|
|
|
- name: "epr-10382b.118"
|
|
path: "cannonball/epr-10382b.118"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 65536
|
|
crc32: "c4c3fa1a"
|
|
validation: [crc32]
|
|
note: "Master 68K, low byte, lower bank"
|
|
source_ref: "upstream src/main/roms.cpp:40"
|
|
|
|
# -------------------------------------------------------
|
|
# Slave CPU ROMs (68000, Rev A)
|
|
# -------------------------------------------------------
|
|
- name: "epr-10327a.76"
|
|
path: "cannonball/epr-10327a.76"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 65536
|
|
crc32: "e28a5baf"
|
|
validation: [crc32]
|
|
note: "Slave 68K, high byte, lower bank"
|
|
source_ref: "upstream src/main/roms.cpp:44"
|
|
|
|
- name: "epr-10329a.58"
|
|
path: "cannonball/epr-10329a.58"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 65536
|
|
crc32: "da131c81"
|
|
validation: [crc32]
|
|
note: "Slave 68K, low byte, lower bank"
|
|
source_ref: "upstream src/main/roms.cpp:45"
|
|
|
|
- name: "epr-10328a.75"
|
|
path: "cannonball/epr-10328a.75"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 65536
|
|
crc32: "d5ec5e5d"
|
|
validation: [crc32]
|
|
note: "Slave 68K, high byte, upper bank"
|
|
source_ref: "upstream src/main/roms.cpp:46"
|
|
|
|
- name: "epr-10330a.57"
|
|
path: "cannonball/epr-10330a.57"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 65536
|
|
crc32: "ba9ec82a"
|
|
validation: [crc32]
|
|
note: "Slave 68K, low byte, upper bank"
|
|
source_ref: "upstream src/main/roms.cpp:47"
|
|
|
|
# -------------------------------------------------------
|
|
# Tile ROMs
|
|
# -------------------------------------------------------
|
|
- name: "opr-10268.99"
|
|
path: "cannonball/opr-10268.99"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 32768
|
|
crc32: "95344b04"
|
|
validation: [crc32]
|
|
note: "Tile ROM bank 0"
|
|
source_ref: "upstream src/main/roms.cpp:51"
|
|
|
|
- name: "opr-10232.102"
|
|
path: "cannonball/opr-10232.102"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 32768
|
|
crc32: "776ba1eb"
|
|
validation: [crc32]
|
|
note: "Tile ROM bank 1"
|
|
source_ref: "upstream src/main/roms.cpp:52"
|
|
|
|
- name: "opr-10267.100"
|
|
path: "cannonball/opr-10267.100"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 32768
|
|
crc32: "a85bb823"
|
|
validation: [crc32]
|
|
note: "Tile ROM bank 2"
|
|
source_ref: "upstream src/main/roms.cpp:53"
|
|
|
|
- name: "opr-10231.103"
|
|
path: "cannonball/opr-10231.103"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 32768
|
|
crc32: "8908bcbf"
|
|
validation: [crc32]
|
|
note: "Tile ROM bank 3"
|
|
source_ref: "upstream src/main/roms.cpp:54"
|
|
|
|
- name: "opr-10266.101"
|
|
path: "cannonball/opr-10266.101"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 32768
|
|
crc32: "9f6f1a74"
|
|
validation: [crc32]
|
|
note: "Tile ROM bank 4"
|
|
source_ref: "upstream src/main/roms.cpp:55"
|
|
|
|
- name: "opr-10230.104"
|
|
path: "cannonball/opr-10230.104"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 32768
|
|
crc32: "686f5e50"
|
|
validation: [crc32]
|
|
note: "Tile ROM bank 5"
|
|
source_ref: "upstream src/main/roms.cpp:56"
|
|
|
|
# -------------------------------------------------------
|
|
# Road ROMs (identical pair, one per road layer)
|
|
# -------------------------------------------------------
|
|
- name: "opr-10185.11"
|
|
path: "cannonball/opr-10185.11"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 32768
|
|
crc32: "22794426"
|
|
validation: [crc32]
|
|
note: "Road ROM, layer 1"
|
|
source_ref: "upstream src/main/roms.cpp:60"
|
|
|
|
- name: "opr-10186.47"
|
|
path: "cannonball/opr-10186.47"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 32768
|
|
crc32: "22794426"
|
|
validation: [crc32]
|
|
note: "Road ROM, layer 2 (identical to opr-10185.11)"
|
|
source_ref: "upstream src/main/roms.cpp:61"
|
|
|
|
# -------------------------------------------------------
|
|
# Sprite ROMs (interleaved 4-way)
|
|
# -------------------------------------------------------
|
|
- name: "mpr-10371.9"
|
|
path: "cannonball/mpr-10371.9"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 131072
|
|
crc32: "7cc86208"
|
|
validation: [crc32]
|
|
note: "Sprite ROM, bank 0 byte 0"
|
|
source_ref: "upstream src/main/roms.cpp:65"
|
|
|
|
- name: "mpr-10373.10"
|
|
path: "cannonball/mpr-10373.10"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 131072
|
|
crc32: "b0d26ac9"
|
|
validation: [crc32]
|
|
note: "Sprite ROM, bank 0 byte 1"
|
|
source_ref: "upstream src/main/roms.cpp:66"
|
|
|
|
- name: "mpr-10375.11"
|
|
path: "cannonball/mpr-10375.11"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 131072
|
|
crc32: "59b60bd7"
|
|
validation: [crc32]
|
|
note: "Sprite ROM, bank 0 byte 2"
|
|
source_ref: "upstream src/main/roms.cpp:67"
|
|
|
|
- name: "mpr-10377.12"
|
|
path: "cannonball/mpr-10377.12"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 131072
|
|
crc32: "17a1b04a"
|
|
validation: [crc32]
|
|
note: "Sprite ROM, bank 0 byte 3"
|
|
source_ref: "upstream src/main/roms.cpp:68"
|
|
|
|
- name: "mpr-10372.13"
|
|
path: "cannonball/mpr-10372.13"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 131072
|
|
crc32: "b557078c"
|
|
validation: [crc32]
|
|
note: "Sprite ROM, bank 1 byte 0"
|
|
source_ref: "upstream src/main/roms.cpp:69"
|
|
|
|
- name: "mpr-10374.14"
|
|
path: "cannonball/mpr-10374.14"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 131072
|
|
crc32: "8051e517"
|
|
validation: [crc32]
|
|
note: "Sprite ROM, bank 1 byte 1"
|
|
source_ref: "upstream src/main/roms.cpp:70"
|
|
|
|
- name: "mpr-10376.15"
|
|
path: "cannonball/mpr-10376.15"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 131072
|
|
crc32: "f3b8f318"
|
|
validation: [crc32]
|
|
note: "Sprite ROM, bank 1 byte 2"
|
|
source_ref: "upstream src/main/roms.cpp:71"
|
|
|
|
- name: "mpr-10378.16"
|
|
path: "cannonball/mpr-10378.16"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 131072
|
|
crc32: "a1062984"
|
|
validation: [crc32]
|
|
note: "Sprite ROM, bank 1 byte 3"
|
|
source_ref: "upstream src/main/roms.cpp:72"
|
|
|
|
# -------------------------------------------------------
|
|
# Z80 Sound ROM
|
|
# -------------------------------------------------------
|
|
- name: "epr-10187.88"
|
|
path: "cannonball/epr-10187.88"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 32768
|
|
crc32: "a10abaa9"
|
|
validation: [crc32]
|
|
note: "Z80 sound program"
|
|
source_ref: "upstream src/main/roms.cpp:77"
|
|
|
|
# -------------------------------------------------------
|
|
# Sega PCM samples
|
|
# -------------------------------------------------------
|
|
- name: "opr-10193.66"
|
|
path: "cannonball/opr-10193.66"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 32768
|
|
crc32: "bcd10dde"
|
|
validation: [crc32]
|
|
note: "PCM sample bank 0"
|
|
source_ref: "upstream src/main/roms.cpp:81"
|
|
|
|
- name: "opr-10192.67"
|
|
path: "cannonball/opr-10192.67"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 32768
|
|
crc32: "770f1270"
|
|
validation: [crc32]
|
|
note: "PCM sample bank 1"
|
|
source_ref: "upstream src/main/roms.cpp:81"
|
|
|
|
- name: "opr-10191.68"
|
|
path: "cannonball/opr-10191.68"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 32768
|
|
crc32: "20a284ab"
|
|
validation: [crc32]
|
|
note: "PCM sample bank 2"
|
|
source_ref: "upstream src/main/roms.cpp:83"
|
|
|
|
- name: "opr-10190.69"
|
|
path: "cannonball/opr-10190.69"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 32768
|
|
crc32: "7cab70e2"
|
|
validation: [crc32]
|
|
note: "PCM sample bank 3"
|
|
source_ref: "upstream src/main/roms.cpp:83"
|
|
|
|
- name: "opr-10189.70"
|
|
path: "cannonball/opr-10189.70"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 32768
|
|
crc32: "01366b54"
|
|
validation: [crc32]
|
|
note: "PCM sample bank 4"
|
|
source_ref: "upstream src/main/roms.cpp:85"
|
|
|
|
- name: "opr-10188.71"
|
|
path: "cannonball/opr-10188.71"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: true
|
|
size: 32768
|
|
crc32: "bad30ad9"
|
|
validation: [crc32]
|
|
note: "PCM sample bank 5"
|
|
source_ref: "upstream src/main/roms.cpp:85"
|
|
|
|
# -------------------------------------------------------
|
|
# Optional: fixed PCM sample
|
|
# -------------------------------------------------------
|
|
- name: "opr-10188.71f"
|
|
path: "cannonball/opr-10188.71f"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: false
|
|
size: 32768
|
|
crc32: "37598616"
|
|
validation: [crc32]
|
|
note: "PCM sample bank 5, fixed version (replaces opr-10188.71)"
|
|
source_ref: "upstream src/main/roms.cpp:123"
|
|
|
|
# -------------------------------------------------------
|
|
# Japanese ROM variants (loaded when jap option enabled)
|
|
# -------------------------------------------------------
|
|
- name: "epr-10380.133"
|
|
path: "cannonball/epr-10380.133"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: false
|
|
size: 65536
|
|
crc32: "e339e87a"
|
|
validation: [crc32]
|
|
note: "Master 68K Japan, high byte, lower bank"
|
|
source_ref: "upstream src/main/roms.cpp:106"
|
|
|
|
- name: "epr-10382.118"
|
|
path: "cannonball/epr-10382.118"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: false
|
|
size: 65536
|
|
crc32: "65248dd5"
|
|
validation: [crc32]
|
|
note: "Master 68K Japan, low byte, lower bank"
|
|
source_ref: "upstream src/main/roms.cpp:107"
|
|
|
|
- name: "epr-10381.132"
|
|
path: "cannonball/epr-10381.132"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: false
|
|
size: 65536
|
|
crc32: "be8c412b"
|
|
validation: [crc32]
|
|
note: "Master 68K Japan, high byte, upper bank"
|
|
source_ref: "upstream src/main/roms.cpp:106"
|
|
|
|
- name: "epr-10383.117"
|
|
path: "cannonball/epr-10383.117"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: false
|
|
size: 65536
|
|
crc32: "dcc586e7"
|
|
validation: [crc32]
|
|
note: "Master 68K Japan, low byte, upper bank"
|
|
source_ref: "upstream src/main/roms.cpp:107"
|
|
|
|
- name: "epr-10327.76"
|
|
path: "cannonball/epr-10327.76"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: false
|
|
size: 65536
|
|
crc32: "da99d855"
|
|
validation: [crc32]
|
|
note: "Slave 68K Japan, high byte, lower bank"
|
|
source_ref: "upstream src/main/roms.cpp:112"
|
|
|
|
- name: "epr-10329.58"
|
|
path: "cannonball/epr-10329.58"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: false
|
|
size: 65536
|
|
crc32: "fe0fa5e2"
|
|
validation: [crc32]
|
|
note: "Slave 68K Japan, low byte, lower bank"
|
|
source_ref: "upstream src/main/roms.cpp:113"
|
|
|
|
- name: "epr-10328.75"
|
|
path: "cannonball/epr-10328.75"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: false
|
|
size: 65536
|
|
crc32: "3c0e9a7f"
|
|
validation: [crc32]
|
|
note: "Slave 68K Japan, high byte, upper bank"
|
|
source_ref: "upstream src/main/roms.cpp:112"
|
|
|
|
- name: "epr-10330.57"
|
|
path: "cannonball/epr-10330.57"
|
|
system: sega-outrun
|
|
category: game_data
|
|
required: false
|
|
size: 65536
|
|
crc32: "59786e99"
|
|
validation: [crc32]
|
|
note: "Slave 68K Japan, low byte, upper bank"
|
|
source_ref: "upstream src/main/roms.cpp:113"
|