fix: check bstone hurrican ikemen against source

This commit is contained in:
Abdessamad Derraz committed 2026-10-04 16:58:26 +02:00
1 parent 97f741bf0f
commit b6c57bf6ed
3 files changed
+489 -216

No files matched your search

+256 -82
View File
@@ -9,140 +9,305 @@ core_version: "v1.3.4"
display_name: "Blake Stone (BStone)"
cores: [bstone]
systems: [blake-stone]
verification: md5
verification: sha1
notes: |
Blake Stone source port by bibendovsky, covering Aliens of Gold (shareware
v1.0/v2.0/v2.1/v3.0 and registered v1.0/v2.0/v2.1/v3.0) plus Planet Strike.
Source port of Blake Stone: Aliens of Gold and Blake Stone: Planet Strike.
The engine identifies the installed game by SHA1-hashing every file in the
content directory against a hardcoded resource table in id_ca.cpp.
Assets::get_aog_sw_v1_0_resources, get_aog_sw_v2_0_resources,
get_aog_sw_v2_1_resources, get_aog_sw_v3_0_resources,
get_aog_full_v1_0_resources through get_aog_full_v3_0_resources, and
get_ps_resources (id_ca.cpp:1493-1687) each list one shipping variant.
has_content() in jm_free.cpp:195-220 opens every file in the chosen set and
fails the match on the first SHA1 mismatch.
The engine accepts nine data sets, each a table of file names and SHA-1
values in src/bstone/src/id_ca.cpp:1493-1688: Aliens of Gold shareware
v1.0, v2.0, v2.1, v3.0 (.BS1), Aliens of Gold registered v1.0, v2.0, v2.1,
v3.0 (.BS6) and Planet Strike (.VSI). has_content
(src/bstone/src/jm_free.cpp:197-220) opens every file of a table, hashes
each one and rejects the set on the first mismatch, so the files of one
directory must all belong to the same version. Within a game the versions
are tried in the order v2.1, v3.0, v2.0, v1.0
(src/bstone/src/jm_free.cpp:222-356).
Search paths come from the command line (-aog_dir, -ps_dir), the Steam install
(bstone_steam_content_path.cpp) and the GOG install (bstone_gog_content_path.cpp)
before the current working directory. File names carry the game suffix:
.BS1 Aliens of Gold shareware
.BS6 Aliens of Gold registered
.VSI Planet Strike
find_contents (src/bstone/src/jm_free.cpp:626-773) looks for the three
games, or only the one forced by --aog, --aog_sw or --ps, in these
directories in order:
1. the --data_dir directory, when given
2. the working directory
3. the profile directory (--profile_dir, else the per-user data path)
4. the GOG install directories (Windows registry)
5. the Steam install directories (Windows registry)
One complete set is enough. With none the engine stops on "Content not
found." (src/bstone/src/jm_free.cpp:754); with several games found it asks
which one to play. No single file is required on its own.
Every file in a set is required; the game refuses to start otherwise. Levels
are checked separately: a modded-levels hash saves to the player data instead
of being refused (jm_free.cpp:934-946).
Each file is opened under its upper-case name first, then under the
lower-case name (src/bstone/src/id_ca.cpp:940-961).
No separate BIOS. BStone requires one of the three retail/shareware data sets.
A --mod_dir directory is searched before the data directory for every
resource. A MAPTEMP file found there replaces the level hash, unless it is
the official level file of another version, which is refused
(src/bstone/src/jm_free.cpp:918-950).
files:
# ─── Aliens of Gold registered v3.0 (the common retail dump) ───
# Aliens of Gold shareware
- name: "AUDIOHED.BS1"
category: game_data
system: blake-stone
description: "Aliens of Gold shareware audio chunk offsets"
required: false
sha1:
- "0c3de403b524107809fa9308b730d60e8e41ba93"
- "e2c101f9fd4bc7e22ddbfa3f019c9303877de4e2"
validation: [sha1]
note: "sha1 values in order: v1.0 and v2.0; v2.1 and v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1497, 1518, 1539, 1560"
- name: "AUDIOT.BS1"
category: game_data
system: blake-stone
description: "Aliens of Gold shareware audio data"
required: false
sha1:
- "3d4e8b62aa4683671027513ad9720f76f176ba5b"
- "b79e7afcb4e4b29e59660ec261f72ff1ab4d3a25"
validation: [sha1]
note: "sha1 values in order: v1.0 and v2.0; v2.1 and v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1498, 1519, 1540, 1561"
- name: "IANIM.BS1"
category: game_data
system: blake-stone
description: "Aliens of Gold shareware intro movie"
required: false
sha1: "ba1fa5b0bc34f148deffb4977a3cd1e718e91bbd"
validation: [sha1]
source_ref: "src/bstone/src/id_ca.cpp:1499, 1520, 1541, 1562"
- name: "MAPHEAD.BS1"
category: game_data
system: blake-stone
description: "Aliens of Gold shareware map offsets"
required: false
sha1:
- "55b9eb9ed555b0f249c2cefd54ecc3f511bfcd55"
- "04a8e4e7c360f6033dc70f7b09edbc4a6447e462"
validation: [sha1]
note: "sha1 values in order: v1.0; v2.0 and v2.1 and v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1500, 1521, 1542, 1563"
- name: "MAPTEMP.BS1"
category: game_data
system: blake-stone
description: "Aliens of Gold shareware level data"
required: false
sha1:
- "293464e7143ff7e6faf5f5b20799e76a394d65bf"
- "bbb3cd6ab3e742eada427862504eba06437036d0"
validation: [sha1]
note: "sha1 values in order: v1.0; v2.0 and v2.1 and v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1501, 1522, 1543, 1564"
- name: "SANIM.BS1"
category: game_data
system: blake-stone
description: "Aliens of Gold shareware second final movie"
required: false
sha1: "22bf818465da0f32eef9611de936cba9966b14aa"
validation: [sha1]
source_ref: "src/bstone/src/id_ca.cpp:1502, 1523, 1544, 1565"
- name: "VGADICT.BS1"
category: game_data
system: blake-stone
description: "Aliens of Gold shareware graphics Huffman dictionary"
required: false
sha1:
- "b54d48d35d095e27a3c9130cfa59ed9c4f05abe7"
- "058fe0b59c7aa020bf4e7509103892d4c7459aa6"
- "ed1ab61ad2529e046f966d9c1627508f76693ef8"
- "537676ddcafeee415c22bb9d00097b25bc7e13c5"
validation: [sha1]
note: "sha1 values in order: v1.0; v2.0; v2.1; v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1503, 1524, 1545, 1566"
- name: "VGAGRAPH.BS1"
category: game_data
system: blake-stone
description: "Aliens of Gold shareware compressed graphics"
required: false
sha1:
- "d1fa19131281d30787125f946881652be876f57a"
- "e14b6172b6ab7568d3736f087f07a0df5eac5dad"
- "b59cbe3793b4612b06254ece48bf8e961ab6f528"
- "9f9f4c40c9637af472ce5e1a360e51364c3a418a"
validation: [sha1]
note: "sha1 values in order: v1.0; v2.0; v2.1; v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1504, 1525, 1546, 1567"
- name: "VGAHEAD.BS1"
category: game_data
system: blake-stone
description: "Aliens of Gold shareware graphics chunk offsets"
required: false
sha1:
- "cc44c362e9e2c9f7b9fb2e4ba31331dde42a1e96"
- "6c0e273df7fd3940c038fc20a5bdfb81cd50e7ef"
- "0635a4a2b823eef2904ed1d590d98362fb16621d"
- "e7fb8f241b8fa94739c3bd09ea05c1afc7bbfc95"
validation: [sha1]
note: "sha1 values in order: v1.0; v2.0; v2.1; v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1505, 1526, 1547, 1568"
- name: "VSWAP.BS1"
category: game_data
system: blake-stone
description: "Aliens of Gold shareware walls, sprites and digitised sounds"
required: false
sha1:
- "37412ca9139562fc31330d72470822de4d9ceb4a"
- "dbde907ba1110bef445d6daae283c4520d6951b4"
validation: [sha1]
note: "sha1 values in order: v1.0; v2.0 and v2.1 and v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1506, 1527, 1548, 1569"
# Aliens of Gold registered
- name: "AUDIOHED.BS6"
category: game_data
system: blake-stone
description: "Aliens of Gold v3.0 audio header"
required: true
description: "Aliens of Gold registered audio chunk offsets"
required: false
sha1: "e2c101f9fd4bc7e22ddbfa3f019c9303877de4e2"
source_ref: "src/bstone/src/id_ca.cpp:1657 (get_aog_full_v3_0_resources)"
validation: [sha1]
source_ref: "src/bstone/src/id_ca.cpp:1581, 1604, 1627, 1650"
- name: "AUDIOT.BS6"
category: game_data
system: blake-stone
description: "Aliens of Gold v3.0 audio data"
required: true
description: "Aliens of Gold registered audio data"
required: false
sha1: "b79e7afcb4e4b29e59660ec261f72ff1ab4d3a25"
source_ref: "src/bstone/src/id_ca.cpp:1658"
validation: [sha1]
source_ref: "src/bstone/src/id_ca.cpp:1582, 1605, 1628, 1651"
- name: "EANIM.BS6"
category: game_data
system: blake-stone
description: "Aliens of Gold v3.0 ending animation"
required: true
description: "Aliens of Gold registered final movie"
required: false
sha1: "af5af59ad7ed17517d87b3ece3c0cac23ade535b"
source_ref: "src/bstone/src/id_ca.cpp:1659"
validation: [sha1]
source_ref: "src/bstone/src/id_ca.cpp:1583, 1606, 1629, 1652"
- name: "GANIM.BS6"
category: game_data
system: blake-stone
description: "Aliens of Gold v3.0 gameplay animation"
required: true
description: "Aliens of Gold registered third final movie"
required: false
sha1: "9b2418a1a1f34abdcf6fcd9ed3344a49912c9b5e"
source_ref: "src/bstone/src/id_ca.cpp:1660"
validation: [sha1]
source_ref: "src/bstone/src/id_ca.cpp:1584, 1607, 1630, 1653"
- name: "IANIM.BS6"
category: game_data
system: blake-stone
description: "Aliens of Gold v3.0 intro animation"
required: true
description: "Aliens of Gold registered intro movie"
required: false
sha1: "ba1fa5b0bc34f148deffb4977a3cd1e718e91bbd"
source_ref: "src/bstone/src/id_ca.cpp:1661"
validation: [sha1]
source_ref: "src/bstone/src/id_ca.cpp:1585, 1608, 1631, 1654"
- name: "MAPHEAD.BS6"
category: game_data
system: blake-stone
description: "Aliens of Gold v3.0 map header"
required: true
sha1: "028f624e150f84ffc8336336cb0ecea0932cc22d"
source_ref: "src/bstone/src/id_ca.cpp:1662"
description: "Aliens of Gold registered map offsets"
required: false
sha1:
- "6f19a144d8985e90f096fc1c67ade58e9051235c"
- "028f624e150f84ffc8336336cb0ecea0932cc22d"
validation: [sha1]
note: "sha1 values in order: v1.0; v2.0 and v2.1 and v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1586, 1609, 1632, 1655"
- name: "MAPTEMP.BS6"
category: game_data
system: blake-stone
description: "Aliens of Gold v3.0 level data"
required: true
sha1: "8b48e7eb859382a4c84948c5a62899194288e853"
source_ref: "src/bstone/src/id_ca.cpp:1663"
description: "Aliens of Gold registered level data"
required: false
sha1:
- "4d00c5f5c843f99a266bd938648192a6eff17b5a"
- "8b48e7eb859382a4c84948c5a62899194288e853"
validation: [sha1]
note: "sha1 values in order: v1.0; v2.0 and v2.1 and v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1587, 1610, 1633, 1656"
- name: "SANIM.BS6"
category: game_data
system: blake-stone
description: "Aliens of Gold v3.0 story animation"
required: true
description: "Aliens of Gold registered second final movie"
required: false
sha1: "22bf818465da0f32eef9611de936cba9966b14aa"
source_ref: "src/bstone/src/id_ca.cpp:1664"
validation: [sha1]
source_ref: "src/bstone/src/id_ca.cpp:1588, 1611, 1634, 1657"
- name: "VGADICT.BS6"
category: game_data
system: blake-stone
description: "Aliens of Gold v3.0 huffman dictionary"
required: true
sha1: "60da35e506d57753f83cca5f232a76dd1cf074ba"
source_ref: "src/bstone/src/id_ca.cpp:1665"
description: "Aliens of Gold registered graphics Huffman dictionary"
required: false
sha1:
- "d4f81ace1701a7338d43ce07723c2adaafdc837c"
- "e83b690836c9edf9ef60f6189b8384fb2319b735"
- "e4ae3ef9a3ac158a832092b7b5487227337c6f13"
- "60da35e506d57753f83cca5f232a76dd1cf074ba"
validation: [sha1]
note: "sha1 values in order: v1.0; v2.0; v2.1; v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1589, 1612, 1635, 1658"
- name: "VGAGRAPH.BS6"
category: game_data
system: blake-stone
description: "Aliens of Gold v3.0 compressed graphics"
required: true
sha1: "001037fafdff124befb5437c563d0b9c613b3c00"
source_ref: "src/bstone/src/id_ca.cpp:1666"
description: "Aliens of Gold registered compressed graphics"
required: false
sha1:
- "02dc27d4810e3ffa26540b310eac6091f5e16de0"
- "67a679e3b107db8685ba5ff1643a38f9291b00bf"
- "6868e6cc4f8cb9160a218c5bce680a11f64c675a"
- "001037fafdff124befb5437c563d0b9c613b3c00"
validation: [sha1]
note: "sha1 values in order: v1.0; v2.0; v2.1; v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1590, 1613, 1636, 1659"
- name: "VGAHEAD.BS6"
category: game_data
system: blake-stone
description: "Aliens of Gold v3.0 graphics offsets"
required: true
sha1: "ff165ca5924d738853587a7e4ab1cd239e10e359"
source_ref: "src/bstone/src/id_ca.cpp:1667"
description: "Aliens of Gold registered graphics chunk offsets"
required: false
sha1:
- "639ec9e7a81ad83fc5b5c557cf4fc5fa28b9676b"
- "48b18caa86151610957b64b207cf2a2977ef7d57"
- "1a3864cd12de4b8fd6be023b73d2d79e91b9018d"
- "ff165ca5924d738853587a7e4ab1cd239e10e359"
validation: [sha1]
note: "sha1 values in order: v1.0; v2.0; v2.1; v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1591, 1614, 1637, 1660"
- name: "VSWAP.BS6"
category: game_data
system: blake-stone
description: "Aliens of Gold v3.0 wall and sprite data"
required: true
sha1: "6fcc6e007b02b2e55892cfa7acfd42966ef9c9fb"
source_ref: "src/bstone/src/id_ca.cpp:1668"
description: "Aliens of Gold registered walls, sprites and digitised sounds"
required: false
sha1:
- "0a700732ccbc72f95318a6226a7e1ad78ac713bb"
- "6fcc6e007b02b2e55892cfa7acfd42966ef9c9fb"
validation: [sha1]
note: "sha1 values in order: v1.0; v2.0 and v2.1 and v3.0"
source_ref: "src/bstone/src/id_ca.cpp:1592, 1615, 1638, 1661"
# ─── Planet Strike (only one shipping version) ───
# Planet Strike
- name: "AUDIOHED.VSI"
category: game_data
system: blake-stone
description: "Planet Strike audio header"
description: "Planet Strike audio chunk offsets"
required: false
sha1: "2ed9a587926b2b455f8176788f595d03f6359171"
source_ref: "src/bstone/src/id_ca.cpp:1696 (get_ps_resources)"
validation: [sha1]
source_ref: "src/bstone/src/id_ca.cpp:1673"
- name: "AUDIOT.VSI"
category: game_data
@@ -150,31 +315,35 @@ files:
description: "Planet Strike audio data"
required: false
sha1: "ecac8a800c5d021c8b68d170066c8859df9bd79a"
source_ref: "src/bstone/src/id_ca.cpp:1697"
validation: [sha1]
source_ref: "src/bstone/src/id_ca.cpp:1674"
- name: "EANIM.VSI"
category: game_data
system: blake-stone
description: "Planet Strike ending animation"
description: "Planet Strike final movie"
required: false
sha1: "b668330e56ceb069c1b972cefddd8a3d618a14af"
source_ref: "src/bstone/src/id_ca.cpp:1698"
validation: [sha1]
source_ref: "src/bstone/src/id_ca.cpp:1675"
- name: "IANIM.VSI"
category: game_data
system: blake-stone
description: "Planet Strike intro animation"
description: "Planet Strike intro movie"
required: false
sha1: "ba1fa5b0bc34f148deffb4977a3cd1e718e91bbd"
source_ref: "src/bstone/src/id_ca.cpp:1699"
validation: [sha1]
source_ref: "src/bstone/src/id_ca.cpp:1676"
- name: "MAPHEAD.VSI"
category: game_data
system: blake-stone
description: "Planet Strike map header"
description: "Planet Strike map offsets"
required: false
sha1: "c3fb0a9b81e0240d12c952fe5b57b78c1108aa48"
source_ref: "src/bstone/src/id_ca.cpp:1700"
validation: [sha1]
source_ref: "src/bstone/src/id_ca.cpp:1677"
- name: "MAPTEMP.VSI"
category: game_data
@@ -182,15 +351,17 @@ files:
description: "Planet Strike level data"
required: false
sha1: "acd03031d526eeaee64072518adf6814f96e2a37"
source_ref: "src/bstone/src/id_ca.cpp:1701"
validation: [sha1]
source_ref: "src/bstone/src/id_ca.cpp:1678"
- name: "VGADICT.VSI"
category: game_data
system: blake-stone
description: "Planet Strike huffman dictionary"
description: "Planet Strike graphics Huffman dictionary"
required: false
sha1: "061692d166f68d7e0b81568725439078cc728f33"
source_ref: "src/bstone/src/id_ca.cpp:1702"
validation: [sha1]
source_ref: "src/bstone/src/id_ca.cpp:1679"
- name: "VGAGRAPH.VSI"
category: game_data
@@ -198,20 +369,23 @@ files:
description: "Planet Strike compressed graphics"
required: false
sha1: "e619a3e6245f79888da5436df138d63204d2caba"
source_ref: "src/bstone/src/id_ca.cpp:1703"
validation: [sha1]
source_ref: "src/bstone/src/id_ca.cpp:1680"
- name: "VGAHEAD.VSI"
category: game_data
system: blake-stone
description: "Planet Strike graphics offsets"
description: "Planet Strike graphics chunk offsets"
required: false
sha1: "ad5fed9de5d1d82145df3ff2286e4bc62cb80e2a"
source_ref: "src/bstone/src/id_ca.cpp:1704"
validation: [sha1]
source_ref: "src/bstone/src/id_ca.cpp:1681"
- name: "VSWAP.VSI"
category: game_data
system: blake-stone
description: "Planet Strike wall and sprite data"
description: "Planet Strike walls, sprites and digitised sounds"
required: false
sha1: "4113ce83c42e69dc5cb20de79f41971a100f876e"
source_ref: "src/bstone/src/id_ca.cpp:1705"
validation: [sha1]
source_ref: "src/bstone/src/id_ca.cpp:1682"
+52 -32
View File
@@ -12,75 +12,95 @@ systems: []
verification: existence
notes: |
Open-source Turrican-inspired platformer by Poke53280 / HurricanGame. The
tree ships all shipping assets under Hurrican/data/ (93 MB): textures,
levels, music, sfx, shaders, plus a bundled gamecontrollerdb.txt.
Turrican-style platformer by Poke53280. The repository ships the game data
under Hurrican/data/ (textures, levels, music, sfx, shaders,
gamecontrollerdb.txt) and the language files under Hurrican/lang/.
The engine resolves two paths at startup, both set in Hurrican/src/Main.cpp
(main() at line 342):
* g_storage_ext — the data root used for every asset load. Taken from the
-data= CLI flag first (Main.cpp:349-353), then from the compile-time
USE_STORAGE_PATH macro (355-363), falling back to "." (365).
* g_save_ext / g_config_ext — the user-writable save and config directory,
from -save= CLI flag then XDG_DATA_HOME/XDG_CONFIG_HOME under UNIX
(369-389).
main() (Hurrican/src/Main.cpp:342) sets two roots:
g_storage_ext: the read-only data root. Taken from --pathdata or -PD
(Hurrican/src/Main.cpp:227-241, 349-352), else from the compile-time
USE_STORAGE_PATH when that directory exists, else "."
(Hurrican/src/Main.cpp:354-366).
g_save_ext and g_config_ext: saves, high scores and Hurrican.cfg. Taken
from --pathsave or -PS, else XDG_DATA_HOME and XDG_CONFIG_HOME on
builds with USE_HOME_DIR, else "." (Hurrican/src/Main.cpp:370-385).
Everything the game loads is under <g_storage_ext>/data/:
data/textures/* — DX8Font.cpp:160, DX8Graphics.cpp:393-407 (shaders),
TextureAtlas class and loadImageSDL calls
data/shaders/<glsl_ver>/ — DX8Graphics.cpp:393-407 (vert/frag per renderer)
data/levels/<name>.lev — Tileengine.cpp:324-330
data/music/ — SoundManager Mp3/OGG loads
data/sfx/ — SoundManager LoadSound
data/gamecontrollerdb.txt (joystick remapping)
Files read under g_storage_ext:
lang/*.lng: Hurrican/src/Main.cpp:496-515, Hurrican/src/Texts.cpp:65
data/textures/: Hurrican/src/DX8Texture.cpp:204-211
data/levels/levellist.dat: Hurrican/src/Texts.cpp:127
data/levels/<name>: Hurrican/src/Tileengine.cpp:330
data/music/: Hurrican/src/DX8Sound.cpp:314
data/sfx/: Hurrican/src/DX8Sound.cpp:580
data/shaders/<glsl_version>/: Hurrican/src/DX8Graphics.cpp:393-428
data/gamecontrollerdb.txt: Hurrican/src/DX8Input.cpp:97-99
All data is open content; no retail or BIOS files needed.
A texture, level, song or sample that cannot be found sets GameRunning to
false and the game quits. --custom <name> reads data/levels/<name>/ first
for levels, textures, custom.lng and levellist.dat.
files:
- name: "lang"
path: "lang"
category: game_data
description: "Language files (.lng)"
required: true
bundled: true
source_ref: "Hurrican/src/Main.cpp:496-515, Hurrican/src/Texts.cpp:65"
note: >
GameInit lists the .lng files of lang/, then of the working directory,
and aborts when it finds none.
- name: "textures"
path: "data/textures"
category: game_data
description: "Game textures (sprites, backgrounds, fonts)"
description: "Textures (sprites, backgrounds, fonts)"
required: true
bundled: true
source_ref: "src/DX8Font.cpp:160 (data/textures/ prefix on every font load)"
source_ref: "Hurrican/src/DX8Texture.cpp:204-218"
note: >
An optional scalefactors.txt in the same directory is read by
ReadScaleFactorsFiles (Hurrican/src/DX8Texture.cpp:162-168).
- name: "levels"
path: "data/levels"
category: game_data
description: "Level files (.lev)"
description: "Level files and levellist.dat"
required: true
bundled: true
source_ref: "src/Tileengine.cpp:324-330 (data/levels/<name>.lev + custom lists)"
source_ref: "Hurrican/src/Tileengine.cpp:330-336, Hurrican/src/Texts.cpp:127-133"
- name: "shaders"
path: "data/shaders"
category: game_data
description: "GLSL shader sources per version subdirectory"
description: "GLSL shader sources, one subdirectory per GLSL version"
required: true
bundled: true
source_ref: "src/DX8Graphics.cpp:393-407 (data/shaders/<glsl_version>/*)"
source_ref: "Hurrican/src/DX8Graphics.cpp:393-428"
note: >
Loaded by the GL2 and GL3 renderers (GL2 is the build default); a GL1
build compiles this block out.
- name: "music"
path: "data/music"
category: game_data
description: "Music tracks"
required: false
required: true
bundled: true
source_ref: "src/SoundManager.cpp (data/music/ prefix for LoadMp3/LoadOgg)"
source_ref: "Hurrican/src/DX8Sound.cpp:314-320"
- name: "sfx"
path: "data/sfx"
category: game_data
description: "Sound effect samples"
required: false
required: true
bundled: true
source_ref: "src/SoundManager.cpp (data/sfx/ prefix for LoadSound)"
source_ref: "Hurrican/src/DX8Sound.cpp:580-586"
- name: "gamecontrollerdb.txt"
path: "data/gamecontrollerdb.txt"
category: game_data
description: "SDL gamecontroller mapping database"
description: "SDL game controller mapping database"
required: false
bundled: true
source_ref: "src/DirectInput.cpp (data/gamecontrollerdb.txt)"
source_ref: "Hurrican/src/DX8Input.cpp:97-99"
+181 -102
View File
@@ -4,7 +4,7 @@ core_classification: game_engine
source: "https://github.com/ikemen-engine/Ikemen-GO"
upstream: "https://github.com/ikemen-engine/Ikemen-GO"
profiled_date: "2026-10-04"
source_commit: "02a078d6bf189ff56bbcbbbc8dbfd81753692c56"
source_commit: "e8b065f410fa9507dbddc1d6b1abc231de99f8c6"
core_version: ~
display_name: "Ikemen GO"
cores: [ikemen]
@@ -12,180 +12,259 @@ systems: []
verification: existence
notes: |
Open-source M.U.G.E.N.-compatible 2D fighting game engine, written in Go.
Reads the Elecbyte .def / .air / .cmd / .cns / .sff / .snd files that
commercial and community M.U.G.E.N. content ships with.
M.U.G.E.N.-compatible 2D fighting game engine written in Go. It reads the
.def, .air, .cmd, .cns, .sff and .snd files of M.U.G.E.N. content, plus its
own .zss state files.
The binary comes with the engine's own motif-neutral core data (bundled with
the install, not retail BIOS):
data/ — common definitions, stage shell, screenpack parameters
(action.zss, common.air, common.cmd, common.const,
common1.cns.zss, dizzy.zss, functions.zss, guardbreak.zss,
score.zss, system.base.def, tag.zss, training.zss)
external/ — icons, mods template, lua scripts, GLSL shaders
font/ — fallback TTF fonts (Open Sans) and 3x5 bitmap fonts
(default-3x5-bold.def/sff, default-3x5.def/sff, debug.def)
Every path below is relative to the working directory. The file names come
from the embedded default configuration, src/resources/defaultConfig.ini,
which save/config.ini overrides (src/main.go:189-195).
Characters, stages, and motifs are user-supplied. system.go:2630 and
script.go:1174 enforce the convention that any character path lacking the
"chars/" prefix is rewritten to "chars/<name>", so content drops into
chars/, stages/, data/<motif>/ under the install root.
The repository ships:
data/: common animations, commands, constants and state files
external/script/: the Lua scripts that drive menus and game modes
external/icons/: window icons
external/shaders/: optional post-processing shaders
font/: debug.def with Open Sans, and the default-3x5 bitmap fonts
Nothing in Ikemen itself is a BIOS. The engine refuses to run with no motif,
but ships a stub select screen and the common.* lifebar config, so a user
character and stage are enough to boot.
The default configuration also names files the repository does not hold:
the motif data/ikemen1/system.def, the effects pack data/gofx/gofx.def and
the stage stages/stage0-720.def. Release packages copy chars, data, font,
sound, stages and video from the Ikemen-GO-Screenpack repository next to
the engine (.github/workflows/releases.yml:585-593).
Characters and stages are found under chars/ and stages/
(src/system.go:5364, src/system.go:5590).
files:
- name: "system.base.def"
path: "data/system.base.def"
- name: "script"
path: "external/script"
category: game_data
description: "Screenpack / motif parameter reference"
description: "Lua scripts: main.lua and the modules it requires"
required: true
bundled: true
source_ref: "src/system.go (default screenpack parsing)"
source_ref: "src/resources/defaultConfig.ini:143, src/main.go:213-232"
note: >
main.go opens Config.System and panics when it is missing. main.lua
requires debug, start, options and menu from the same directory.
- name: "common.cmd"
path: "data/common.cmd"
- name: "IkemenCylia_256.png"
path: "external/icons/IkemenCylia_256.png"
category: game_data
description: "Common character command set (fallback for chars missing CMD)"
description: "Window icon, 256 px"
required: true
bundled: true
source_ref: "src/char.go (common.cmd lookup for every loaded character)"
source_ref: "src/resources/defaultConfig.ini:141, src/system.go:527-538"
- name: "IkemenCylia_96.png"
path: "external/icons/IkemenCylia_96.png"
category: game_data
description: "Window icon, 96 px"
required: true
bundled: true
source_ref: "src/resources/defaultConfig.ini:141, src/system.go:527-538"
- name: "IkemenCylia_48.png"
path: "external/icons/IkemenCylia_48.png"
category: game_data
description: "Window icon, 48 px"
required: true
bundled: true
source_ref: "src/resources/defaultConfig.ini:141, src/system.go:527-538"
- name: "shaders"
path: "external/shaders"
category: game_data
description: "Post-processing shaders offered in the options menu"
required: false
bundled: true
source_ref: "external/script/options.lua:1646, src/system.go:457-470"
- name: "common.air"
path: "data/common.air"
category: game_data
description: "Common animations (fallback for chars missing AIR)"
description: "Common animations merged into every character"
required: true
bundled: true
source_ref: "src/char.go"
source_ref: "src/resources/defaultConfig.ini:12, src/char.go:4676-4689"
- name: "common.cmd"
path: "data/common.cmd"
category: game_data
description: "Common commands appended to every character's command file"
required: true
bundled: true
source_ref: "src/resources/defaultConfig.ini:14, src/compiler.go:8367-8380"
- name: "common.const"
path: "data/common.const"
category: game_data
description: "Common constants (gravity, speeds)"
description: "Common constants"
required: true
bundled: true
source_ref: "src/char.go"
- name: "common1.cns.zss"
path: "data/common1.cns.zss"
category: game_data
description: "Common state controllers (ZSS)"
required: true
bundled: true
source_ref: "src/char.go (ZSS state handler)"
- name: "action.zss"
path: "data/action.zss"
category: game_data
description: "Default engine action script"
required: true
bundled: true
source_ref: "src/system.go"
source_ref: "src/resources/defaultConfig.ini:16, src/char.go:4338-4355"
- name: "functions.zss"
path: "data/functions.zss"
category: game_data
description: "Shared ZSS helper functions"
description: "Common states: shared ZSS functions"
required: true
bundled: true
source_ref: "src/system.go"
source_ref: "src/resources/defaultConfig.ini:18, src/compiler.go:8545-8552"
- name: "score.zss"
path: "data/score.zss"
- name: "action.zss"
path: "data/action.zss"
category: game_data
description: "Score system script"
description: "Common states: actions"
required: true
bundled: true
source_ref: "src/system.go"
source_ref: "src/resources/defaultConfig.ini:18, src/compiler.go:8545-8552"
- name: "tag.zss"
path: "data/tag.zss"
- name: "demo.zss"
path: "data/demo.zss"
category: game_data
description: "Tag-team mode script"
description: "Common states: demo mode"
required: true
bundled: true
source_ref: "src/system.go"
source_ref: "src/resources/defaultConfig.ini:18, src/compiler.go:8545-8552"
- name: "dizzy.zss"
path: "data/dizzy.zss"
category: game_data
description: "Dizzy/stun state script"
description: "Common states: dizzy"
required: true
bundled: true
source_ref: "src/system.go"
source_ref: "src/resources/defaultConfig.ini:18, src/compiler.go:8545-8552"
- name: "guardbreak.zss"
path: "data/guardbreak.zss"
category: game_data
description: "Guard-break state script"
description: "Common states: guard break"
required: true
bundled: true
source_ref: "src/system.go"
source_ref: "src/resources/defaultConfig.ini:18, src/compiler.go:8545-8552"
- name: "score.zss"
path: "data/score.zss"
category: game_data
description: "Common states: score"
required: true
bundled: true
source_ref: "src/resources/defaultConfig.ini:18, src/compiler.go:8545-8552"
- name: "system.zss"
path: "data/system.zss"
category: game_data
description: "Common states: system"
required: true
bundled: true
source_ref: "src/resources/defaultConfig.ini:18, src/compiler.go:8545-8552"
- name: "tag.zss"
path: "data/tag.zss"
category: game_data
description: "Common states: tag team"
required: true
bundled: true
source_ref: "src/resources/defaultConfig.ini:18, src/compiler.go:8545-8552"
- name: "training.zss"
path: "data/training.zss"
category: game_data
description: "Training mode script"
description: "Common states: training mode"
required: true
bundled: true
source_ref: "src/system.go"
source_ref: "src/resources/defaultConfig.ini:18, src/compiler.go:8545-8552"
- name: "default-3x5.sff"
path: "font/default-3x5.sff"
- name: "common1.cns.zss"
path: "data/common1.cns.zss"
category: game_data
description: "Default 3x5 bitmap font sprites"
description: "ZSS replacement for the common1.cns state file"
required: true
bundled: true
source_ref: "src/font.go, data/system.base.def [Files]"
- name: "default-3x5.def"
path: "font/default-3x5.def"
category: game_data
description: "Default 3x5 bitmap font definition"
required: true
bundled: true
source_ref: "src/font.go"
- name: "default-3x5-bold.sff"
path: "font/default-3x5-bold.sff"
category: game_data
description: "Default 3x5 bold bitmap font sprites"
required: true
bundled: true
source_ref: "src/font.go"
- name: "default-3x5-bold.def"
path: "font/default-3x5-bold.def"
category: game_data
description: "Default 3x5 bold bitmap font definition"
required: true
bundled: true
source_ref: "src/font.go"
source_ref: "src/compiler.go:6929-6943, src/compiler.go:8538-8543"
note: >
A character names its common state file in stcommon. When that file is
not found, stateCompile retries with the .zss suffix, so a character
asking for common1.cns gets data/common1.cns.zss.
- name: "debug.def"
path: "font/debug.def"
category: game_data
description: "Debug overlay font"
description: "Debug overlay font definition"
required: true
bundled: true
source_ref: "src/resources/defaultConfig.ini:174, external/script/main.lua:648, src/script.go:4108-4111"
note: "loadDebugFont raises a Lua error when the font cannot be loaded."
- name: "OpenSans-Bold.ttf"
path: "font/Open_Sans/OpenSans-Bold.ttf"
category: game_data
description: "TrueType face named by debug.def"
required: true
bundled: true
source_ref: "font/debug.def:19, src/util_desktop.go:29-40"
note: >
When the file is not found, the same name is searched in the system
font directories; the engine panics when that fails too.
- name: "default-3x5.def"
path: "font/default-3x5.def"
category: game_data
description: "Default motif font (font1)"
required: false
bundled: true
source_ref: "src/font.go"
source_ref: "src/resources/defaultMotif.ini:75, src/motif.go:2593-2609"
note: "A motif font that fails to load is logged and replaced by an empty font."
- name: "default-3x5.sff"
path: "font/default-3x5.sff"
category: game_data
description: "Glyph sprites named by default-3x5.def"
required: false
bundled: true
source_ref: "font/default-3x5.def:21, src/font.go:412-418"
note: "LoadFntSff panics when default-3x5.def is loaded and this file is missing."
- name: "system.def"
path: "data/ikemen1/system.def"
category: game_data
description: "Default motif definition"
required: true
bundled: true
source_ref: "src/resources/defaultConfig.ini:96, src/motif.go:2627-2659, src/script.go:4249-4252"
note: >
Held by the Ikemen-GO-Screenpack repository and copied into release
packages. main.lua calls loadMotif at startup, which raises a Lua error
when the definition cannot be read. -r selects another motif.
- name: "gofx.def"
path: "data/gofx/gofx.def"
category: game_data
description: "Common effects pack"
required: true
bundled: true
source_ref: "src/resources/defaultConfig.ini:21, src/fightscreen.go:85-102, src/system.go:6551-6555"
note: >
Held by the Ikemen-GO-Screenpack repository and copied into release
packages. A load failure puts the match loader in its error state.
- name: "chars"
path: "chars"
category: game_data
description: "User-supplied character directory (name resolved via chars/<name>)"
description: "Character directory"
required: false
source_ref: "src/system.go:2630, src/script.go:1174 (prefix enforcement)"
source_ref: "src/system.go:5364, src/script.go:3190-3191"
note: >
Not shipped: user drops MUGEN-compatible characters under chars/. Each
character directory contains its own .def, .cmd, .cns, .air, .sff, .snd.
User supplied. A character path that does not resolve as given is
searched under chars/.
- name: "stages"
path: "stages"
category: game_data
description: "User-supplied stage directory"
description: "Stage directory"
required: false
source_ref: "src/resources/defaultConfig.json:112 (StartStage default)"
source_ref: "src/system.go:5590, src/resources/defaultConfig.ini:178, external/script/main.lua:1770-1774"
note: >
Not shipped: user drops MUGEN-compatible stages under stages/. Default
configuration asks for stages/stage1.def.
User supplied. Debug.StartStage defaults to stages/stage0-720.def, the
stage added when select.def lists none.