mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-01 07:33:45 -06:00
Each libretro profile records version_basis and core_version is read there at its pin. snes9x states 1.63 in snes9x.h, nestopia 2.0.0, mgba 0.11.0, vice 3.10, atari800's libretro tree 7.0.0. Cores whose build takes its version from git carry the nearest tag in describe form (flycast v2.7-90-ge88b0ce, ppsspp, duckstation, gearcoleco), placeholders copied from .info files (Git, SVN) are replaced by the code's statement, and a code that states none is null with kind none.
518 lines
14 KiB
YAML
518 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"
|
|
upstream_commit: "27493ebf62be3498dff93ed6a45e8e2db819bae1"
|
|
core_version: "0.3"
|
|
version_basis:
|
|
kind: file
|
|
path: "src/main/frontend/menu.c"
|
|
pattern: 'menu_about\[[^\]]+\]\s*=\s*"CANNONBALL ([0-9.]+) '
|
|
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).
|
|
res/tilemap.bin and res/tilepatch.bin of the repository are their source
|
|
and are never opened. No config.xml is read: settings come from the core
|
|
options (src/main/frontend/config.c:86-87). The res/ folder beside the ROMs
|
|
is only a prefix for external music tracks, and the three tracks are the
|
|
internal YM ones (src/main/libretro/main.c:1045,
|
|
src/main/frontend/config.c:47-62, src/main/engine/omusic.c:283-298).
|
|
|
|
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"
|