mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-10 13:33:24 -05:00
fix: check bstone hurrican ikemen against source
This commit is contained in:
1 parent
97f741bf0f
commit
b6c57bf6ed
3 files changed
+489
-216
No files matched your search
+256
-82
@@ -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
@@ -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
@@ -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.
|
||||
Reference in new issue
Block a user