feat: add category field to emulator profiles, source missing BIOS

Add category: game_data to sdlpal, nxengine, opentyrian, easyrpg,
mkxp_z profiles. verify.py separates game_data from bios in core
gap metrics for cleaner coverage numbers.

New BIOS files: Cemu fonts (4), QEMU bios-256k + vgabios-stdvga,
GAM4980 ROMs (2), SC-3000 Export variant.
This commit is contained in:
Abdessamad Derraz
2026-03-21 07:31:33 +01:00
parent 13a2938dc7
commit 74f17694c2
17 changed files with 249 additions and 18 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,7 +1,7 @@
{ {
"generated_at": "2026-03-20T22:38:29Z", "generated_at": "2026-03-20T23:11:20Z",
"total_files": 6724, "total_files": 6733,
"total_size": 5256877310, "total_size": 5288642642,
"files": { "files": {
"520d3d1b5897800af47f92efd2444a26b7a7dead": { "520d3d1b5897800af47f92efd2444a26b7a7dead": {
"path": "bios/3DO Company/3DO/3do_arcade_saot.bin", "path": "bios/3DO Company/3DO/3do_arcade_saot.bin",
@@ -22683,6 +22683,24 @@
"sha256": "f5e2f7499cf57ae6ccecda961763ad8a9e9c913dae8061323c03811679c0bf4d", "sha256": "f5e2f7499cf57ae6ccecda961763ad8a9e9c913dae8061323c03811679c0bf4d",
"crc32": "8bcf073d" "crc32": "8bcf073d"
}, },
"dddb2d3b42e8d99911c6bfd523f0020a08f44f9d": {
"path": "bios/BBK/GAM4980/gam4980/8.BIN",
"name": "8.BIN",
"size": 2097152,
"sha1": "dddb2d3b42e8d99911c6bfd523f0020a08f44f9d",
"md5": "ea26b08e67511a34460c103b8b669154",
"sha256": "7663735609c416025b2738c80cedaf11528ff8cb5a7c74c7c31c1f46e43e9caf",
"crc32": "95ec0f62"
},
"159b7e65f3f3dd67f435085be1e154316ba139e0": {
"path": "bios/BBK/GAM4980/gam4980/E.BIN",
"name": "E.BIN",
"size": 2097152,
"sha1": "159b7e65f3f3dd67f435085be1e154316ba139e0",
"md5": "f812738e5ae75de0f4faae78a3829866",
"sha256": "3e12d40948fd50710cef8c6d14acea26ad69f47312125a61bd1003912893fcad",
"crc32": "7a9039f4"
},
"8641b09be090c0dc45f4ee5459fec3cc6fb9d78e": { "8641b09be090c0dc45f4ee5459fec3cc6fb9d78e": {
"path": "bios/Bally/Astrocade/astrocde.zip", "path": "bios/Bally/Astrocade/astrocde.zip",
"name": "astrocde.zip", "name": "astrocde.zip",
@@ -30324,6 +30342,42 @@
"sha256": "3ed66f7e82df79922739c6c2d34de90bc36a48d13acdff24f9d51013bd8c0677", "sha256": "3ed66f7e82df79922739c6c2d34de90bc36a48d13acdff24f9d51013bd8c0677",
"crc32": "77cacffb" "crc32": "77cacffb"
}, },
"2d95227b9b3eaf1c74d9293ecd0d190ec7ffbbe3": {
"path": "bios/Nintendo/Wii U/CafeCn.ttf",
"name": "CafeCn.ttf",
"size": 9664448,
"sha1": "2d95227b9b3eaf1c74d9293ecd0d190ec7ffbbe3",
"md5": "88e8040854b406680406875df51995f2",
"sha256": "6afd751a9bb76bc788efb50a138c6f3765624ee84d8d8203be04d871ade40a6a",
"crc32": "d734cea1"
},
"f0ef38fcc6133c24f4f38ff9b5c06b37e970d3cc": {
"path": "bios/Nintendo/Wii U/CafeKr.ttf",
"name": "CafeKr.ttf",
"size": 5626464,
"sha1": "f0ef38fcc6133c24f4f38ff9b5c06b37e970d3cc",
"md5": "ba18ba58dab47b4f739e0ec28f29f413",
"sha256": "c3c326f6ce1899e391dc4996b10a0c30558c5b8f36dfbaa418976862b3e2dffb",
"crc32": "fc4cc829"
},
"da0d4bcc3b13339179bee946eba16adfd731b4d3": {
"path": "bios/Nintendo/Wii U/CafeStd.ttf",
"name": "CafeStd.ttf",
"size": 5363768,
"sha1": "da0d4bcc3b13339179bee946eba16adfd731b4d3",
"md5": "8ca7dae3bd89ce56087d437932c33656",
"sha256": "59e2494727b8e7a7bbf48c8749f2dbc07d438c9fabeaa9847a08ec690f9888a1",
"crc32": "bc7f3500"
},
"8ec796192ebc710f23ab6bd55453cae523b70444": {
"path": "bios/Nintendo/Wii U/CafeTw.ttf",
"name": "CafeTw.ttf",
"size": 6593548,
"sha1": "8ec796192ebc710f23ab6bd55453cae523b70444",
"md5": "bf8fbf9a200affc4428bf4fc2bb22b67",
"sha256": "c8f9e16345dbc3b6e165fe12435486a748e730ebe6002b5d713efe73d171d51c",
"crc32": "aaf8df7b"
},
"9edc52be45201ec99f6e4ceb5dc6abfc633c4eae": { "9edc52be45201ec99f6e4ceb5dc6abfc633c4eae": {
"path": "bios/Nintendo/Wii U/keys.txt", "path": "bios/Nintendo/Wii U/keys.txt",
"name": "keys.txt", "name": "keys.txt",
@@ -30648,6 +30702,15 @@
"sha256": "c709ca1e74be6bd4b7917d258d81824d33c38a1a9a0287ec693b6459f58fc27a", "sha256": "c709ca1e74be6bd4b7917d258d81824d33c38a1a9a0287ec693b6459f58fc27a",
"crc32": "d23be573" "crc32": "d23be573"
}, },
"2d539603665b8194c671ef5189c5a2b6db3ac645": {
"path": "bios/Other/QEMU/bios-256k.bin",
"name": "bios-256k.bin",
"size": 262144,
"sha1": "2d539603665b8194c671ef5189c5a2b6db3ac645",
"md5": "e8dcffae189b20fbe2722b857faa487c",
"sha256": "ae6f6aa973aaccc143f57aa960fb035fd9de4daee4ad0cd713322f8c259e7650",
"crc32": "7db5c908"
},
"cb1bd2cf5f89741900061955ac1a3b7cbd7a1ce9": { "cb1bd2cf5f89741900061955ac1a3b7cbd7a1ce9": {
"path": "bios/Other/QEMU/bios.bin", "path": "bios/Other/QEMU/bios.bin",
"name": "bios.bin", "name": "bios.bin",
@@ -30657,6 +30720,15 @@
"sha256": "3dfd946d0c03ab0e022f84f10c3eb5f1dd507761f73e7d8067511ba35a10f776", "sha256": "3dfd946d0c03ab0e022f84f10c3eb5f1dd507761f73e7d8067511ba35a10f776",
"crc32": "e7e3ac4c" "crc32": "e7e3ac4c"
}, },
"359becb4c1dcd61c139ab3786983da9640677701": {
"path": "bios/Other/QEMU/vgabios-stdvga.bin",
"name": "vgabios-stdvga.bin",
"size": 39424,
"sha1": "359becb4c1dcd61c139ab3786983da9640677701",
"md5": "07ec9c82c2ac93d091f46236e93c8bbb",
"sha256": "e8fc9e55790dbe3cb31f019a3deb57206ba6c54f5e581adb2ab2677a9d391472",
"crc32": "e3f1ee0a"
},
"214f09a25012e8702783d3ab9a22796071de5374": { "214f09a25012e8702783d3ab9a22796071de5374": {
"path": "bios/Other/QEMU/vgabios.bin", "path": "bios/Other/QEMU/vgabios.bin",
"name": "vgabios.bin", "name": "vgabios.bin",
@@ -56883,6 +56955,15 @@
"sha256": "e184f5982a99c6ebf7799383f16a8624221755786056a3573944598283a4b8cf", "sha256": "e184f5982a99c6ebf7799383f16a8624221755786056a3573944598283a4b8cf",
"crc32": "4dcfd55c" "crc32": "4dcfd55c"
}, },
"c983bfa2f4c6d077e70e6ff9c7ed59b72368e355": {
"path": "bios/Sega/SC-3000/.variants/sc3000.zip.a43aef36",
"name": "sc3000.zip",
"size": 21232,
"sha1": "c983bfa2f4c6d077e70e6ff9c7ed59b72368e355",
"md5": "52adbcbef759756a5b97cafda75b922c",
"sha256": "258b08eafabed889970445adadcc483f91c31205e8c9a75dfa2efceab2f1c43f",
"crc32": "48decddc"
},
"12de390be2595ad17015310085eaec57ad2b953f": { "12de390be2595ad17015310085eaec57ad2b953f": {
"path": "bios/Sega/SC-3000/sc3000.zip", "path": "bios/Sega/SC-3000/sc3000.zip",
"name": "sc3000.zip", "name": "sc3000.zip",
@@ -63042,6 +63123,8 @@
"e5ea0f216fb446f1c4a4f476bc5f03d4": "27dcdb31b0951af99023b2fb8c370d8447ba6ebc", "e5ea0f216fb446f1c4a4f476bc5f03d4": "27dcdb31b0951af99023b2fb8c370d8447ba6ebc",
"ac6ca0f0ed42a1603dfd409c4bf8eb89": "4f0b344231719e80c2a4d4ade3769d7f0d0629b6", "ac6ca0f0ed42a1603dfd409c4bf8eb89": "4f0b344231719e80c2a4d4ade3769d7f0d0629b6",
"c4551d5effaed8f5658fc27e7b643441": "54a12c7aa78696ed310aca04faef642bc332c72d", "c4551d5effaed8f5658fc27e7b643441": "54a12c7aa78696ed310aca04faef642bc332c72d",
"ea26b08e67511a34460c103b8b669154": "dddb2d3b42e8d99911c6bfd523f0020a08f44f9d",
"f812738e5ae75de0f4faae78a3829866": "159b7e65f3f3dd67f435085be1e154316ba139e0",
"f58a3823ab308ef0a02b498d126e5d96": "8641b09be090c0dc45f4ee5459fec3cc6fb9d78e", "f58a3823ab308ef0a02b498d126e5d96": "8641b09be090c0dc45f4ee5459fec3cc6fb9d78e",
"f313610ff87d27a8859950a497c5dc33": "b3a26e21574395a279a37922238802b349c303b7", "f313610ff87d27a8859950a497c5dc33": "b3a26e21574395a279a37922238802b349c303b7",
"320bf3d4142fa1043255db7ff87d17c7": "e99667ea5cfe6a5eceb53faaa39cdda0cbf69c69", "320bf3d4142fa1043255db7ff87d17c7": "e99667ea5cfe6a5eceb53faaa39cdda0cbf69c69",
@@ -63891,6 +63974,10 @@
"a43cbd0ab271990f434412fc5c500eff": "369e6eb5e0c975eaa52a4a3f6ee07b2a3c3c16de", "a43cbd0ab271990f434412fc5c500eff": "369e6eb5e0c975eaa52a4a3f6ee07b2a3c3c16de",
"31fda6c3678507b12631dfd01b0415ef": "c146b651696d25287241f4bab18226e488bc45b3", "31fda6c3678507b12631dfd01b0415ef": "c146b651696d25287241f4bab18226e488bc45b3",
"f65367650f88124362922994b78ede77": "bfee8e708dc4c8f27bfe51a12d57caaa0b7f74de", "f65367650f88124362922994b78ede77": "bfee8e708dc4c8f27bfe51a12d57caaa0b7f74de",
"88e8040854b406680406875df51995f2": "2d95227b9b3eaf1c74d9293ecd0d190ec7ffbbe3",
"ba18ba58dab47b4f739e0ec28f29f413": "f0ef38fcc6133c24f4f38ff9b5c06b37e970d3cc",
"8ca7dae3bd89ce56087d437932c33656": "da0d4bcc3b13339179bee946eba16adfd731b4d3",
"bf8fbf9a200affc4428bf4fc2bb22b67": "8ec796192ebc710f23ab6bd55453cae523b70444",
"9b60696402ca3524a707f3974370f74a": "9edc52be45201ec99f6e4ceb5dc6abfc633c4eae", "9b60696402ca3524a707f3974370f74a": "9edc52be45201ec99f6e4ceb5dc6abfc633c4eae",
"64a95a4a884cf4cc15a566b856603193": "34e5be43effe08435b4535b68b45bb9e61d384e9", "64a95a4a884cf4cc15a566b856603193": "34e5be43effe08435b4535b68b45bb9e61d384e9",
"5f3cd5a4307fed7a9dfe8faa4c044273": "746a2996967282281a980842a93642ad7d740f9e", "5f3cd5a4307fed7a9dfe8faa4c044273": "746a2996967282281a980842a93642ad7d740f9e",
@@ -63927,7 +64014,9 @@
"07fe095d8cc120b8293e7f776dfee90e": "af896c25e6efeeb6dfd4cc7345362b4b29a85324", "07fe095d8cc120b8293e7f776dfee90e": "af896c25e6efeeb6dfd4cc7345362b4b29a85324",
"a1e73e0586ce715ab7daaedfe9b98595": "39825b5d69a07232d91886da68d217465a74695c", "a1e73e0586ce715ab7daaedfe9b98595": "39825b5d69a07232d91886da68d217465a74695c",
"bdfeb89707fac1dd319a17e43328de2b": "63ff6b55caeda529f69983a342618c84cba5addf", "bdfeb89707fac1dd319a17e43328de2b": "63ff6b55caeda529f69983a342618c84cba5addf",
"e8dcffae189b20fbe2722b857faa487c": "2d539603665b8194c671ef5189c5a2b6db3ac645",
"8bef06d1aa74c9ff45b268a18efcc954": "cb1bd2cf5f89741900061955ac1a3b7cbd7a1ce9", "8bef06d1aa74c9ff45b268a18efcc954": "cb1bd2cf5f89741900061955ac1a3b7cbd7a1ce9",
"07ec9c82c2ac93d091f46236e93c8bbb": "359becb4c1dcd61c139ab3786983da9640677701",
"eb49484ba96ce09cdf4e60da747eceb1": "214f09a25012e8702783d3ab9a22796071de5374", "eb49484ba96ce09cdf4e60da747eceb1": "214f09a25012e8702783d3ab9a22796071de5374",
"14ee98e77ec06638bfef782a2ab8a063": "d459d59b4d603d4cf733dd0fe34b7951f7c8165b", "14ee98e77ec06638bfef782a2ab8a063": "d459d59b4d603d4cf733dd0fe34b7951f7c8165b",
"9da101cd2317830649a31f8fa46debec": "cea669f6d740f29ca248d2e8837a4b4f86fbe75a", "9da101cd2317830649a31f8fa46debec": "cea669f6d740f29ca248d2e8837a4b4f86fbe75a",
@@ -66842,6 +66931,7 @@
"ff4a3572475236e859e3e9ac5c87d1f1": "02c287d10da6de579af7a4ce73b134bbdf23c970", "ff4a3572475236e859e3e9ac5c87d1f1": "02c287d10da6de579af7a4ce73b134bbdf23c970",
"4ea493ea4e9f6c9ebfccbdb15110367e": "88d6499d874dcb5721ff58d76fe1b9af811192e3", "4ea493ea4e9f6c9ebfccbdb15110367e": "88d6499d874dcb5721ff58d76fe1b9af811192e3",
"b4e76e416b887f4e7413ba76fa735f16": "70429f1d80503a0632f603bf762fe0bbaa881d22", "b4e76e416b887f4e7413ba76fa735f16": "70429f1d80503a0632f603bf762fe0bbaa881d22",
"52adbcbef759756a5b97cafda75b922c": "c983bfa2f4c6d077e70e6ff9c7ed59b72368e355",
"48e8821fb9087ab60a2a3b1465ee5124": "12de390be2595ad17015310085eaec57ad2b953f", "48e8821fb9087ab60a2a3b1465ee5124": "12de390be2595ad17015310085eaec57ad2b953f",
"0306c0e408d6682dd2d86324bd4ac661": "8c031bf9908fd0142fdd10a9cdd79389f8a3f2fc", "0306c0e408d6682dd2d86324bd4ac661": "8c031bf9908fd0142fdd10a9cdd79389f8a3f2fc",
"9992f2761b0f6e83b3e923451ab8057b": "999ed28cfbf18103a4963b0d3797af3dcf67db05", "9992f2761b0f6e83b3e923451ab8057b": "999ed28cfbf18103a4963b0d3797af3dcf67db05",
@@ -74509,6 +74599,12 @@
"tt.img": [ "tt.img": [
"4f0b344231719e80c2a4d4ade3769d7f0d0629b6" "4f0b344231719e80c2a4d4ade3769d7f0d0629b6"
], ],
"8.BIN": [
"dddb2d3b42e8d99911c6bfd523f0020a08f44f9d"
],
"E.BIN": [
"159b7e65f3f3dd67f435085be1e154316ba139e0"
],
"astrocde.zip": [ "astrocde.zip": [
"8641b09be090c0dc45f4ee5459fec3cc6fb9d78e" "8641b09be090c0dc45f4ee5459fec3cc6fb9d78e"
], ],
@@ -76566,6 +76662,18 @@
"title.keys": [ "title.keys": [
"bfee8e708dc4c8f27bfe51a12d57caaa0b7f74de" "bfee8e708dc4c8f27bfe51a12d57caaa0b7f74de"
], ],
"CafeCn.ttf": [
"2d95227b9b3eaf1c74d9293ecd0d190ec7ffbbe3"
],
"CafeKr.ttf": [
"f0ef38fcc6133c24f4f38ff9b5c06b37e970d3cc"
],
"CafeStd.ttf": [
"da0d4bcc3b13339179bee946eba16adfd731b4d3"
],
"CafeTw.ttf": [
"8ec796192ebc710f23ab6bd55453cae523b70444"
],
"keys.txt": [ "keys.txt": [
"9edc52be45201ec99f6e4ceb5dc6abfc633c4eae" "9edc52be45201ec99f6e4ceb5dc6abfc633c4eae"
], ],
@@ -76675,9 +76783,15 @@
"voices.snd": [ "voices.snd": [
"63ff6b55caeda529f69983a342618c84cba5addf" "63ff6b55caeda529f69983a342618c84cba5addf"
], ],
"bios-256k.bin": [
"2d539603665b8194c671ef5189c5a2b6db3ac645"
],
"bios.bin": [ "bios.bin": [
"cb1bd2cf5f89741900061955ac1a3b7cbd7a1ce9" "cb1bd2cf5f89741900061955ac1a3b7cbd7a1ce9"
], ],
"vgabios-stdvga.bin": [
"359becb4c1dcd61c139ab3786983da9640677701"
],
"vgabios.bin": [ "vgabios.bin": [
"214f09a25012e8702783d3ab9a22796071de5374" "214f09a25012e8702783d3ab9a22796071de5374"
], ],
@@ -84618,6 +84732,7 @@
"70429f1d80503a0632f603bf762fe0bbaa881d22" "70429f1d80503a0632f603bf762fe0bbaa881d22"
], ],
"sc3000.zip": [ "sc3000.zip": [
"c983bfa2f4c6d077e70e6ff9c7ed59b72368e355",
"12de390be2595ad17015310085eaec57ad2b953f" "12de390be2595ad17015310085eaec57ad2b953f"
], ],
"hisaturn_v103.bin": [ "hisaturn_v103.bin": [
@@ -88305,6 +88420,15 @@
"5b922ed9de07d2a729bdf1da7b57c50ddf08809a", "5b922ed9de07d2a729bdf1da7b57c50ddf08809a",
"063609dd518c124a4fc9ba35d1bae35771666a34" "063609dd518c124a4fc9ba35d1bae35771666a34"
], ],
"N88JISHO.ROM": [
"deef0cc2a9734ba891a6d6c022aa70ffc66f783e"
],
"JISYO.ROM": [
"deef0cc2a9734ba891a6d6c022aa70ffc66f783e"
],
"jisyo.rom": [
"deef0cc2a9734ba891a6d6c022aa70ffc66f783e"
],
"iplromcdc_flash.bino.dat": [ "iplromcdc_flash.bino.dat": [
"77511fc58798404701f66b6bbc9cbde06596eba7" "77511fc58798404701f66b6bbc9cbde06596eba7"
], ],
@@ -88416,15 +88540,6 @@
"kanji2.rom": [ "kanji2.rom": [
"b86b932cb4ce34472e0fe0f01a4a4350e15dcb53" "b86b932cb4ce34472e0fe0f01a4a4350e15dcb53"
], ],
"N88JISHO.ROM": [
"deef0cc2a9734ba891a6d6c022aa70ffc66f783e"
],
"JISYO.ROM": [
"deef0cc2a9734ba891a6d6c022aa70ffc66f783e"
],
"jisyo.rom": [
"deef0cc2a9734ba891a6d6c022aa70ffc66f783e"
],
"FONT.BMP": [ "FONT.BMP": [
"b4f14e58030ed40fff2dc312b58ea4440bdf8cc5" "b4f14e58030ed40fff2dc312b58ea4440bdf8cc5"
], ],
@@ -90998,6 +91113,8 @@
"028b561d": "27dcdb31b0951af99023b2fb8c370d8447ba6ebc", "028b561d": "27dcdb31b0951af99023b2fb8c370d8447ba6ebc",
"1fb32c3c": "4f0b344231719e80c2a4d4ade3769d7f0d0629b6", "1fb32c3c": "4f0b344231719e80c2a4d4ade3769d7f0d0629b6",
"8bcf073d": "54a12c7aa78696ed310aca04faef642bc332c72d", "8bcf073d": "54a12c7aa78696ed310aca04faef642bc332c72d",
"95ec0f62": "dddb2d3b42e8d99911c6bfd523f0020a08f44f9d",
"7a9039f4": "159b7e65f3f3dd67f435085be1e154316ba139e0",
"6cad8a0b": "8641b09be090c0dc45f4ee5459fec3cc6fb9d78e", "6cad8a0b": "8641b09be090c0dc45f4ee5459fec3cc6fb9d78e",
"1b43f22d": "b3a26e21574395a279a37922238802b349c303b7", "1b43f22d": "b3a26e21574395a279a37922238802b349c303b7",
"23de1c25": "e99667ea5cfe6a5eceb53faaa39cdda0cbf69c69", "23de1c25": "e99667ea5cfe6a5eceb53faaa39cdda0cbf69c69",
@@ -91847,6 +91964,10 @@
"4c866029": "369e6eb5e0c975eaa52a4a3f6ee07b2a3c3c16de", "4c866029": "369e6eb5e0c975eaa52a4a3f6ee07b2a3c3c16de",
"a65c13ca": "c146b651696d25287241f4bab18226e488bc45b3", "a65c13ca": "c146b651696d25287241f4bab18226e488bc45b3",
"77cacffb": "bfee8e708dc4c8f27bfe51a12d57caaa0b7f74de", "77cacffb": "bfee8e708dc4c8f27bfe51a12d57caaa0b7f74de",
"d734cea1": "2d95227b9b3eaf1c74d9293ecd0d190ec7ffbbe3",
"fc4cc829": "f0ef38fcc6133c24f4f38ff9b5c06b37e970d3cc",
"bc7f3500": "da0d4bcc3b13339179bee946eba16adfd731b4d3",
"aaf8df7b": "8ec796192ebc710f23ab6bd55453cae523b70444",
"d6d5725f": "9edc52be45201ec99f6e4ceb5dc6abfc633c4eae", "d6d5725f": "9edc52be45201ec99f6e4ceb5dc6abfc633c4eae",
"343a0710": "34e5be43effe08435b4535b68b45bb9e61d384e9", "343a0710": "34e5be43effe08435b4535b68b45bb9e61d384e9",
"efc88d2b": "746a2996967282281a980842a93642ad7d740f9e", "efc88d2b": "746a2996967282281a980842a93642ad7d740f9e",
@@ -91883,7 +92004,9 @@
"60dd487f": "af896c25e6efeeb6dfd4cc7345362b4b29a85324", "60dd487f": "af896c25e6efeeb6dfd4cc7345362b4b29a85324",
"06ce2efe": "39825b5d69a07232d91886da68d217465a74695c", "06ce2efe": "39825b5d69a07232d91886da68d217465a74695c",
"d23be573": "63ff6b55caeda529f69983a342618c84cba5addf", "d23be573": "63ff6b55caeda529f69983a342618c84cba5addf",
"7db5c908": "2d539603665b8194c671ef5189c5a2b6db3ac645",
"e7e3ac4c": "cb1bd2cf5f89741900061955ac1a3b7cbd7a1ce9", "e7e3ac4c": "cb1bd2cf5f89741900061955ac1a3b7cbd7a1ce9",
"e3f1ee0a": "359becb4c1dcd61c139ab3786983da9640677701",
"e8256af7": "214f09a25012e8702783d3ab9a22796071de5374", "e8256af7": "214f09a25012e8702783d3ab9a22796071de5374",
"c068031c": "d459d59b4d603d4cf733dd0fe34b7951f7c8165b", "c068031c": "d459d59b4d603d4cf733dd0fe34b7951f7c8165b",
"a975efe4": "cea669f6d740f29ca248d2e8837a4b4f86fbe75a", "a975efe4": "cea669f6d740f29ca248d2e8837a4b4f86fbe75a",
@@ -94798,6 +94921,7 @@
"c94e8c8b": "02c287d10da6de579af7a4ce73b134bbdf23c970", "c94e8c8b": "02c287d10da6de579af7a4ce73b134bbdf23c970",
"0658f691": "88d6499d874dcb5721ff58d76fe1b9af811192e3", "0658f691": "88d6499d874dcb5721ff58d76fe1b9af811192e3",
"4dcfd55c": "70429f1d80503a0632f603bf762fe0bbaa881d22", "4dcfd55c": "70429f1d80503a0632f603bf762fe0bbaa881d22",
"48decddc": "c983bfa2f4c6d077e70e6ff9c7ed59b72368e355",
"62fb7d82": "12de390be2595ad17015310085eaec57ad2b953f", "62fb7d82": "12de390be2595ad17015310085eaec57ad2b953f",
"6abfefea": "8c031bf9908fd0142fdd10a9cdd79389f8a3f2fc", "6abfefea": "8c031bf9908fd0142fdd10a9cdd79389f8a3f2fc",
"0ab1c9ec": "999ed28cfbf18103a4963b0d3797af3dcf67db05", "0ab1c9ec": "999ed28cfbf18103a4963b0d3797af3dcf67db05",

View File

@@ -65,6 +65,7 @@ files:
# ================================================================ # ================================================================
- name: "easyrpg.soundfont" - name: "easyrpg.soundfont"
category: game_data
path: "easyrpg.soundfont" path: "easyrpg.soundfont"
required: false required: false
hle_fallback: true hle_fallback: true
@@ -81,6 +82,7 @@ files:
# ================================================================ # ================================================================
- name: "wildmidi.cfg" - name: "wildmidi.cfg"
category: game_data
path: "wildmidi.cfg" path: "wildmidi.cfg"
required: false required: false
hle_fallback: true hle_fallback: true
@@ -96,6 +98,7 @@ files:
# ================================================================ # ================================================================
- name: "RPG Maker 2000 RTP" - name: "RPG Maker 2000 RTP"
category: game_data
path: "rtp/2000/" path: "rtp/2000/"
required: false required: false
hle_fallback: true hle_fallback: true
@@ -115,6 +118,7 @@ files:
# ================================================================ # ================================================================
- name: "RPG Maker 2003 RTP" - name: "RPG Maker 2003 RTP"
category: game_data
path: "rtp/2003/" path: "rtp/2003/"
required: false required: false
hle_fallback: true hle_fallback: true

View File

@@ -76,6 +76,7 @@ files:
# ================================================================ # ================================================================
- name: "RPG Maker XP RTP (Standard)" - name: "RPG Maker XP RTP (Standard)"
category: game_data
path: "mkxp-z/RTP/Standard/" path: "mkxp-z/RTP/Standard/"
required: false required: false
type: directory type: directory
@@ -93,6 +94,7 @@ files:
# ================================================================ # ================================================================
- name: "RPG Maker VX RTP (RPGVX)" - name: "RPG Maker VX RTP (RPGVX)"
category: game_data
path: "mkxp-z/RTP/RPGVX/" path: "mkxp-z/RTP/RPGVX/"
required: false required: false
type: directory type: directory
@@ -109,6 +111,7 @@ files:
# ================================================================ # ================================================================
- name: "RPG Maker VX Ace RTP (RPGVXAce)" - name: "RPG Maker VX Ace RTP (RPGVXAce)"
category: game_data
path: "mkxp-z/RTP/RPGVXAce/" path: "mkxp-z/RTP/RPGVXAce/"
required: false required: false
type: directory type: directory

View File

@@ -43,6 +43,7 @@ notes: |
files: files:
- name: "Doukutsu.exe" - name: "Doukutsu.exe"
category: game_data
system: cave-story system: cave-story
description: "Cave Story freeware executable (data source for music, sfx, bitmaps, wavetable)" description: "Cave Story freeware executable (data source for music, sfx, bitmaps, wavetable)"
required: true required: true
@@ -53,6 +54,7 @@ files:
notes: "Placed in system/nxengine/. The core extracts ORG music, PXT sounds, stage tile attributes, BMP graphics, and wavetable.dat from this binary at each launch." notes: "Placed in system/nxengine/. The core extracts ORG music, PXT sounds, stage tile attributes, BMP graphics, and wavetable.dat from this binary at each launch."
- name: "data/npc.tbl" - name: "data/npc.tbl"
category: game_data
system: cave-story system: cave-story
description: "NPC attribute table (entity behavior flags, HP, damage, display rect offsets)" description: "NPC attribute table (entity behavior flags, HP, damage, display rect offsets)"
required: true required: true
@@ -60,6 +62,7 @@ files:
notes: "Located in system/nxengine/data/. The core uses this file to verify the data directory is present." notes: "Located in system/nxengine/data/. The core uses this file to verify the data directory is present."
- name: "data/" - name: "data/"
category: game_data
system: cave-story system: cave-story
description: "Full game asset directory tree (399 files: sprites, NPC sheets, stage maps, scripts, backgrounds)" description: "Full game asset directory tree (399 files: sprites, NPC sheets, stage maps, scripts, backgrounds)"
required: true required: true

View File

@@ -70,48 +70,56 @@ files:
# Core data files (required, loaded unconditionally at init) # Core data files (required, loaded unconditionally at init)
# ----------------------------------------------------------- # -----------------------------------------------------------
- name: "tyrian.shp" - name: "tyrian.shp"
category: game_data
system: tyrian system: tyrian
description: "Main shape tables (12 sprite banks: fonts, interface, options, game sprites)" description: "Main shape tables (12 sprite banks: fonts, interface, options, game sprites)"
required: true required: true
source_ref: "sprite.c:669-722 (JE_loadMainShapeTables)" source_ref: "sprite.c:669-722 (JE_loadMainShapeTables)"
- name: "palette.dat" - name: "palette.dat"
category: game_data
system: tyrian system: tyrian
description: "Color palette data (all palettes used by the game)" description: "Color palette data (all palettes used by the game)"
required: true required: true
source_ref: "palette.c:45 (JE_loadPals)" source_ref: "palette.c:45 (JE_loadPals)"
- name: "tyrian.hdt" - name: "tyrian.hdt"
category: game_data
system: tyrian system: tyrian
description: "Help and item data (weapons, ships, shields, enemies, help text)" description: "Help and item data (weapons, ships, shields, enemies, help text)"
required: true required: true
source_ref: "episodes.c:60 (JE_loadItemDat), helptext.c:184 (JE_loadHelpText)" source_ref: "episodes.c:60 (JE_loadItemDat), helptext.c:184 (JE_loadHelpText)"
- name: "tyrian.pic" - name: "tyrian.pic"
category: game_data
system: tyrian system: tyrian
description: "Picture data (menu backgrounds, cutscene images)" description: "Picture data (menu backgrounds, cutscene images)"
required: true required: true
source_ref: "picload.c:32 (JE_loadPic)" source_ref: "picload.c:32 (JE_loadPic)"
- name: "tyrian.cdt" - name: "tyrian.cdt"
category: game_data
system: tyrian system: tyrian
description: "Credits text (encrypted pascal strings)" description: "Credits text (encrypted pascal strings)"
required: true required: true
source_ref: "mainint.c:2002 (JE_drawCredits)" source_ref: "mainint.c:2002 (JE_drawCredits)"
- name: "tyrian.snd" - name: "tyrian.snd"
category: game_data
system: tyrian system: tyrian
description: "Sound effects" description: "Sound effects"
required: true required: true
source_ref: "nortsong.c:112, opentyr.c:333 (JE_loadSndFile)" source_ref: "nortsong.c:112, opentyr.c:333 (JE_loadSndFile)"
- name: "voices.snd" - name: "voices.snd"
category: game_data
system: tyrian system: tyrian
description: "Voice samples" description: "Voice samples"
required: true required: true
source_ref: "nortsong.c:134, opentyr.c:333 (JE_loadSndFile)" source_ref: "nortsong.c:134, opentyr.c:333 (JE_loadSndFile)"
- name: "music.mus" - name: "music.mus"
category: game_data
system: tyrian system: tyrian
description: "Music data (all game tracks)" description: "Music data (all game tracks)"
required: true required: true
@@ -121,90 +129,105 @@ files:
# Episode level files (episode 1 required, 2-5 optional) # Episode level files (episode 1 required, 2-5 optional)
# ----------------------------------------------------------- # -----------------------------------------------------------
- name: "tyrian1.lvl" - name: "tyrian1.lvl"
category: game_data
system: tyrian system: tyrian
description: "Episode 1 level data (also used as data directory detection marker)" description: "Episode 1 level data (also used as data directory detection marker)"
required: true required: true
source_ref: "file.c:51 (data_dir probe), episodes.c:274 (JE_scanForEpisodes)" source_ref: "file.c:51 (data_dir probe), episodes.c:274 (JE_scanForEpisodes)"
- name: "levels1.dat" - name: "levels1.dat"
category: game_data
system: tyrian system: tyrian
description: "Episode 1 level definitions" description: "Episode 1 level definitions"
required: true required: true
source_ref: "episodes.c:263 (JE_initEpisode), tyrian2.c:2434" source_ref: "episodes.c:263 (JE_initEpisode), tyrian2.c:2434"
- name: "cubetxt1.dat" - name: "cubetxt1.dat"
category: game_data
system: tyrian system: tyrian
description: "Episode 1 datacube text (in-game story lore)" description: "Episode 1 datacube text (in-game story lore)"
required: true required: true
source_ref: "episodes.c:262 (JE_initEpisode), game_menu.c:1723" source_ref: "episodes.c:262 (JE_initEpisode), game_menu.c:1723"
- name: "tyrian2.lvl" - name: "tyrian2.lvl"
category: game_data
system: tyrian system: tyrian
description: "Episode 2 level data" description: "Episode 2 level data"
required: false required: false
source_ref: "episodes.c:274" source_ref: "episodes.c:274"
- name: "levels2.dat" - name: "levels2.dat"
category: game_data
system: tyrian system: tyrian
description: "Episode 2 level definitions" description: "Episode 2 level definitions"
required: false required: false
source_ref: "episodes.c:263" source_ref: "episodes.c:263"
- name: "cubetxt2.dat" - name: "cubetxt2.dat"
category: game_data
system: tyrian system: tyrian
description: "Episode 2 datacube text" description: "Episode 2 datacube text"
required: false required: false
source_ref: "episodes.c:262" source_ref: "episodes.c:262"
- name: "tyrian3.lvl" - name: "tyrian3.lvl"
category: game_data
system: tyrian system: tyrian
description: "Episode 3 level data" description: "Episode 3 level data"
required: false required: false
source_ref: "episodes.c:274" source_ref: "episodes.c:274"
- name: "levels3.dat" - name: "levels3.dat"
category: game_data
system: tyrian system: tyrian
description: "Episode 3 level definitions" description: "Episode 3 level definitions"
required: false required: false
source_ref: "episodes.c:263" source_ref: "episodes.c:263"
- name: "cubetxt3.dat" - name: "cubetxt3.dat"
category: game_data
system: tyrian system: tyrian
description: "Episode 3 datacube text" description: "Episode 3 datacube text"
required: false required: false
source_ref: "episodes.c:262" source_ref: "episodes.c:262"
- name: "tyrian4.lvl" - name: "tyrian4.lvl"
category: game_data
system: tyrian system: tyrian
description: "Episode 4 level data" description: "Episode 4 level data"
required: false required: false
source_ref: "episodes.c:274" source_ref: "episodes.c:274"
- name: "levels4.dat" - name: "levels4.dat"
category: game_data
system: tyrian system: tyrian
description: "Episode 4 level definitions" description: "Episode 4 level definitions"
required: false required: false
source_ref: "episodes.c:263" source_ref: "episodes.c:263"
- name: "cubetxt4.dat" - name: "cubetxt4.dat"
category: game_data
system: tyrian system: tyrian
description: "Episode 4 datacube text" description: "Episode 4 datacube text"
required: false required: false
source_ref: "episodes.c:262" source_ref: "episodes.c:262"
- name: "tyrian5.lvl" - name: "tyrian5.lvl"
category: game_data
system: tyrian system: tyrian
description: "Episode 5 level data" description: "Episode 5 level data"
required: false required: false
source_ref: "episodes.c:274" source_ref: "episodes.c:274"
- name: "levels5.dat" - name: "levels5.dat"
category: game_data
system: tyrian system: tyrian
description: "Episode 5 level definitions" description: "Episode 5 level definitions"
required: false required: false
source_ref: "episodes.c:263" source_ref: "episodes.c:263"
- name: "cubetxt5.dat" - name: "cubetxt5.dat"
category: game_data
system: tyrian system: tyrian
description: "Episode 5 datacube text" description: "Episode 5 datacube text"
required: false required: false
@@ -214,180 +237,210 @@ files:
# Shape data files (loaded per-level, character from lookup) # Shape data files (loaded per-level, character from lookup)
# ----------------------------------------------------------- # -----------------------------------------------------------
- name: "shapes2.dat" - name: "shapes2.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character '2')" description: "Level tileset shapes (character '2')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapes3.dat" - name: "shapes3.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character '3')" description: "Level tileset shapes (character '3')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapes4.dat" - name: "shapes4.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character '4')" description: "Level tileset shapes (character '4')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapes5.dat" - name: "shapes5.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character '5')" description: "Level tileset shapes (character '5')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapes7.dat" - name: "shapes7.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character '7')" description: "Level tileset shapes (character '7')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapes8.dat" - name: "shapes8.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character '8')" description: "Level tileset shapes (character '8')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapes9.dat" - name: "shapes9.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character '9')" description: "Level tileset shapes (character '9')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapes0.dat" - name: "shapes0.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character '0')" description: "Level tileset shapes (character '0')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapesa.dat" - name: "shapesa.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character 'A')" description: "Level tileset shapes (character 'A')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapesb.dat" - name: "shapesb.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character 'B')" description: "Level tileset shapes (character 'B')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapesc.dat" - name: "shapesc.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character 'C')" description: "Level tileset shapes (character 'C')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapesd.dat" - name: "shapesd.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character 'D')" description: "Level tileset shapes (character 'D')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapese.dat" - name: "shapese.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character 'E')" description: "Level tileset shapes (character 'E')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapesf.dat" - name: "shapesf.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character 'F')" description: "Level tileset shapes (character 'F')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapesg.dat" - name: "shapesg.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character 'G')" description: "Level tileset shapes (character 'G')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapesh.dat" - name: "shapesh.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character 'H')" description: "Level tileset shapes (character 'H')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapesi.dat" - name: "shapesi.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character 'I')" description: "Level tileset shapes (character 'I')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapesj.dat" - name: "shapesj.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character 'J')" description: "Level tileset shapes (character 'J')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapesk.dat" - name: "shapesk.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character 'K')" description: "Level tileset shapes (character 'K')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapesl.dat" - name: "shapesl.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character 'L')" description: "Level tileset shapes (character 'L')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapesm.dat" - name: "shapesm.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character 'M')" description: "Level tileset shapes (character 'M')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapesn.dat" - name: "shapesn.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character 'N')" description: "Level tileset shapes (character 'N')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapeso.dat" - name: "shapeso.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character 'O')" description: "Level tileset shapes (character 'O')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapesp.dat" - name: "shapesp.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character 'P')" description: "Level tileset shapes (character 'P')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapesq.dat" - name: "shapesq.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character 'Q')" description: "Level tileset shapes (character 'Q')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapesr.dat" - name: "shapesr.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character 'R')" description: "Level tileset shapes (character 'R')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapess.dat" - name: "shapess.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character 'S')" description: "Level tileset shapes (character 'S')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapest.dat" - name: "shapest.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character 'T')" description: "Level tileset shapes (character 'T')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapesu.dat" - name: "shapesu.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character 'U')" description: "Level tileset shapes (character 'U')"
required: false required: false
source_ref: "tyrian2.c:3079, lvlmast.c:23-27" source_ref: "tyrian2.c:3079, lvlmast.c:23-27"
- name: "shapesv.dat" - name: "shapesv.dat"
category: game_data
system: tyrian system: tyrian
description: "Level tileset shapes (character 'V')" description: "Level tileset shapes (character 'V')"
required: false required: false
@@ -397,18 +450,21 @@ files:
# Compressed shape files (newshX.shp, loaded per-level) # Compressed shape files (newshX.shp, loaded per-level)
# ----------------------------------------------------------- # -----------------------------------------------------------
- name: "newsh1.shp" - name: "newsh1.shp"
category: game_data
system: tyrian system: tyrian
description: "Compressed sprites (arrows, mouse cursor)" description: "Compressed sprites (arrows, mouse cursor)"
required: false required: false
source_ref: "mainint.c:493,884,1462 (JE_loadCompShapes '1')" source_ref: "mainint.c:493,884,1462 (JE_loadCompShapes '1')"
- name: "newsh6.shp" - name: "newsh6.shp"
category: game_data
system: tyrian system: tyrian
description: "Compressed sprites (explosions)" description: "Compressed sprites (explosions)"
required: false required: false
source_ref: "tyrian2.c:771 (JE_loadCompShapes '6')" source_ref: "tyrian2.c:771 (JE_loadCompShapes '6')"
- name: "newsh~.shp" - name: "newsh~.shp"
category: game_data
system: tyrian system: tyrian
description: "Compressed sprites (destruct mode)" description: "Compressed sprites (destruct mode)"
required: false required: false
@@ -418,60 +474,70 @@ files:
# Optional / special mode files # Optional / special mode files
# ----------------------------------------------------------- # -----------------------------------------------------------
- name: "tyrianc.shp" - name: "tyrianc.shp"
category: game_data
system: tyrian system: tyrian
description: "Christmas mode shape tables (replaces tyrian.shp at Xmas)" description: "Christmas mode shape tables (replaces tyrian.shp at Xmas)"
required: false required: false
source_ref: "opentyr.c:301-309" source_ref: "opentyr.c:301-309"
- name: "voicesc.snd" - name: "voicesc.snd"
category: game_data
system: tyrian system: tyrian
description: "Christmas mode voice samples (replaces voices.snd at Xmas)" description: "Christmas mode voice samples (replaces voices.snd at Xmas)"
required: false required: false
source_ref: "opentyr.c:301,333" source_ref: "opentyr.c:301,333"
- name: "tyrend.anm" - name: "tyrend.anm"
category: game_data
system: tyrian system: tyrian
description: "Ending animation sequence" description: "Ending animation sequence"
required: false required: false
source_ref: "tyrian2.c:2473 (JE_playAnim)" source_ref: "tyrian2.c:2473 (JE_playAnim)"
- name: "tshp2.pcx" - name: "tshp2.pcx"
category: game_data
system: tyrian system: tyrian
description: "Additional ship graphics (PCX image)" description: "Additional ship graphics (PCX image)"
required: false required: false
source_ref: "tyrian2.c:2757, pcxload.c:25-29" source_ref: "tyrian2.c:2757, pcxload.c:25-29"
- name: "estsc.shp" - name: "estsc.shp"
category: game_data
system: tyrian system: tyrian
description: "Ending sequence character sprites" description: "Ending sequence character sprites"
required: false required: false
source_ref: "mainint.c:1995 (load_sprites_file EXTRA_SHAPES)" source_ref: "mainint.c:1995 (load_sprites_file EXTRA_SHAPES)"
- name: "demo.1" - name: "demo.1"
category: game_data
system: tyrian system: tyrian
description: "Demo replay file 1" description: "Demo replay file 1"
required: false required: false
source_ref: "mainint.c:1781-1786" source_ref: "mainint.c:1781-1786"
- name: "demo.2" - name: "demo.2"
category: game_data
system: tyrian system: tyrian
description: "Demo replay file 2" description: "Demo replay file 2"
required: false required: false
source_ref: "mainint.c:1781-1786" source_ref: "mainint.c:1781-1786"
- name: "demo.3" - name: "demo.3"
category: game_data
system: tyrian system: tyrian
description: "Demo replay file 3" description: "Demo replay file 3"
required: false required: false
source_ref: "mainint.c:1781-1786" source_ref: "mainint.c:1781-1786"
- name: "demo.4" - name: "demo.4"
category: game_data
system: tyrian system: tyrian
description: "Demo replay file 4" description: "Demo replay file 4"
required: false required: false
source_ref: "mainint.c:1781-1786" source_ref: "mainint.c:1781-1786"
- name: "demo.5" - name: "demo.5"
category: game_data
system: tyrian system: tyrian
description: "Demo replay file 5" description: "Demo replay file 5"
required: false required: false

View File

@@ -47,6 +47,7 @@ files:
# ================================================================ # ================================================================
- name: "abc.mkf" - name: "abc.mkf"
category: game_data
path: "sdlpal/abc.mkf" path: "sdlpal/abc.mkf"
required: true required: true
source_ref: "util.c:734, battle.c:879, global.c:55" source_ref: "util.c:734, battle.c:879, global.c:55"
@@ -55,6 +56,7 @@ files:
and character animations. and character animations.
- name: "ball.mkf" - name: "ball.mkf"
category: game_data
path: "sdlpal/ball.mkf" path: "sdlpal/ball.mkf"
required: true required: true
source_ref: "util.c:734, global.c:177" source_ref: "util.c:734, global.c:177"
@@ -62,6 +64,7 @@ files:
Ball/magic effect graphics archive. Ball/magic effect graphics archive.
- name: "data.mkf" - name: "data.mkf"
category: game_data
path: "sdlpal/data.mkf" path: "sdlpal/data.mkf"
required: true required: true
source_ref: "util.c:734, global.c:178" source_ref: "util.c:734, global.c:178"
@@ -69,6 +72,7 @@ files:
Core game data archive containing scripts, events, and game logic. Core game data archive containing scripts, events, and game logic.
- name: "f.mkf" - name: "f.mkf"
category: game_data
path: "sdlpal/f.mkf" path: "sdlpal/f.mkf"
required: true required: true
source_ref: "util.c:734, global.c:179" source_ref: "util.c:734, global.c:179"
@@ -76,6 +80,7 @@ files:
Face/portrait graphics archive for character dialog. Face/portrait graphics archive for character dialog.
- name: "fbp.mkf" - name: "fbp.mkf"
category: game_data
path: "sdlpal/fbp.mkf" path: "sdlpal/fbp.mkf"
required: true required: true
source_ref: "util.c:735, global.c:175" source_ref: "util.c:735, global.c:175"
@@ -83,6 +88,7 @@ files:
Full-screen background picture archive (cutscenes, title screen). Full-screen background picture archive (cutscenes, title screen).
- name: "fire.mkf" - name: "fire.mkf"
category: game_data
path: "sdlpal/fire.mkf" path: "sdlpal/fire.mkf"
required: true required: true
source_ref: "util.c:735, global.c:180" source_ref: "util.c:735, global.c:180"
@@ -90,6 +96,7 @@ files:
Fire/spell effect graphics archive. Fire/spell effect graphics archive.
- name: "gop.mkf" - name: "gop.mkf"
category: game_data
path: "sdlpal/gop.mkf" path: "sdlpal/gop.mkf"
required: true required: true
source_ref: "util.c:735, res.c:234" source_ref: "util.c:735, res.c:234"
@@ -97,6 +104,7 @@ files:
GOP (game object palette/graphics) archive. GOP (game object palette/graphics) archive.
- name: "map.mkf" - name: "map.mkf"
category: game_data
path: "sdlpal/map.mkf" path: "sdlpal/map.mkf"
required: true required: true
source_ref: "util.c:735, res.c:233, global.c:55" source_ref: "util.c:735, res.c:233, global.c:55"
@@ -104,6 +112,7 @@ files:
Map tile and layout data archive for all game locations. Map tile and layout data archive for all game locations.
- name: "mgo.mkf" - name: "mgo.mkf"
category: game_data
path: "sdlpal/mgo.mkf" path: "sdlpal/mgo.mkf"
required: true required: true
source_ref: "util.c:736, global.c:176" source_ref: "util.c:736, global.c:176"
@@ -111,6 +120,7 @@ files:
Map graphic object (sprite overlay) archive. Map graphic object (sprite overlay) archive.
- name: "pat.mkf" - name: "pat.mkf"
category: game_data
path: "sdlpal/pat.mkf" path: "sdlpal/pat.mkf"
required: true required: true
source_ref: "util.c:736, palette.c:53" source_ref: "util.c:736, palette.c:53"
@@ -118,6 +128,7 @@ files:
Palette data archive for color management. Palette data archive for color management.
- name: "rgm.mkf" - name: "rgm.mkf"
category: game_data
path: "sdlpal/rgm.mkf" path: "sdlpal/rgm.mkf"
required: true required: true
source_ref: "util.c:736, global.c:181" source_ref: "util.c:736, global.c:181"
@@ -125,6 +136,7 @@ files:
RGM graphics archive. RGM graphics archive.
- name: "rng.mkf" - name: "rng.mkf"
category: game_data
path: "sdlpal/rng.mkf" path: "sdlpal/rng.mkf"
required: true required: true
source_ref: "util.c:736, rngplay.c:402" source_ref: "util.c:736, rngplay.c:402"
@@ -132,6 +144,7 @@ files:
RNG animation/cutscene sequence archive. RNG animation/cutscene sequence archive.
- name: "sss.mkf" - name: "sss.mkf"
category: game_data
path: "sdlpal/sss.mkf" path: "sdlpal/sss.mkf"
required: true required: true
source_ref: "util.c:737, global.c:182" source_ref: "util.c:737, global.c:182"
@@ -144,6 +157,7 @@ files:
# ================================================================ # ================================================================
- name: "word.dat" - name: "word.dat"
category: game_data
path: "sdlpal/word.dat" path: "sdlpal/word.dat"
required: true required: true
source_ref: "util.c:741, text.c:719, global.c:197" source_ref: "util.c:741, text.c:719, global.c:197"
@@ -152,6 +166,7 @@ files:
strings. Either word.dat or m.msg is needed depending on game version. strings. Either word.dat or m.msg is needed depending on game version.
- name: "m.msg" - name: "m.msg"
category: game_data
path: "sdlpal/m.msg" path: "sdlpal/m.msg"
required: false required: false
source_ref: "util.c:740" source_ref: "util.c:740"
@@ -166,6 +181,7 @@ files:
# ================================================================ # ================================================================
- name: "voc.mkf" - name: "voc.mkf"
category: game_data
path: "sdlpal/voc.mkf" path: "sdlpal/voc.mkf"
required: false required: false
source_ref: "util.c:743, sound.c:969" source_ref: "util.c:743, sound.c:969"
@@ -174,6 +190,7 @@ files:
sounds.mkf is needed for sound effects. sounds.mkf is needed for sound effects.
- name: "sounds.mkf" - name: "sounds.mkf"
category: game_data
path: "sdlpal/sounds.mkf" path: "sdlpal/sounds.mkf"
required: false required: false
source_ref: "util.c:743, sound.c:964" source_ref: "util.c:743, sound.c:964"
@@ -187,6 +204,7 @@ files:
# ================================================================ # ================================================================
- name: "midi.mkf" - name: "midi.mkf"
category: game_data
path: "sdlpal/midi.mkf" path: "sdlpal/midi.mkf"
required: false required: false
source_ref: "util.c:744, midi.c:78, midi_tsf.c:68" source_ref: "util.c:744, midi.c:78, midi_tsf.c:68"
@@ -194,6 +212,7 @@ files:
MIDI music archive. Used when Music type is set to MIDI. MIDI music archive. Used when Music type is set to MIDI.
- name: "mus.mkf" - name: "mus.mkf"
category: game_data
path: "sdlpal/mus.mkf" path: "sdlpal/mus.mkf"
required: false required: false
source_ref: "util.c:744, audio.c:305" source_ref: "util.c:744, audio.c:305"

View File

@@ -49,6 +49,7 @@ notes: |
files: files:
- name: "xrick/data.zip" - name: "xrick/data.zip"
category: game_data
system: rick-dangerous system: rick-dangerous
description: "Rick Dangerous sound data (29 WAV files: sfx and music tracks)" description: "Rick Dangerous sound data (29 WAV files: sfx and music tracks)"
required: true required: true

View File

@@ -241,6 +241,7 @@ def find_undeclared_files(
"name": fname, "name": fname,
"required": f.get("required", False), "required": f.get("required", False),
"hle_fallback": f.get("hle_fallback", False), "hle_fallback": f.get("hle_fallback", False),
"category": f.get("category", "bios"),
"in_repo": in_repo, "in_repo": in_repo,
"note": f.get("note", ""), "note": f.get("note", ""),
}) })
@@ -454,11 +455,14 @@ def print_platform_result(result: dict, group: list[str]) -> None:
# Cross-reference: undeclared files used by cores # Cross-reference: undeclared files used by cores
undeclared = result.get("undeclared_files", []) undeclared = result.get("undeclared_files", [])
if undeclared: if undeclared:
req_not_in_repo = [u for u in undeclared if u["required"] and not u["in_repo"] and not u.get("hle_fallback")] bios_files = [u for u in undeclared if u.get("category", "bios") == "bios"]
req_hle_not_in_repo = [u for u in undeclared if u["required"] and not u["in_repo"] and u.get("hle_fallback")] game_data = [u for u in undeclared if u.get("category", "bios") == "game_data"]
req_in_repo = [u for u in undeclared if u["required"] and u["in_repo"]]
opt_in_repo = [u for u in undeclared if not u["required"] and u["in_repo"]] req_not_in_repo = [u for u in bios_files if u["required"] and not u["in_repo"] and not u.get("hle_fallback")]
opt_not_in_repo = [u for u in undeclared if not u["required"] and not u["in_repo"]] req_hle_not_in_repo = [u for u in bios_files if u["required"] and not u["in_repo"] and u.get("hle_fallback")]
req_in_repo = [u for u in bios_files if u["required"] and u["in_repo"]]
opt_in_repo = [u for u in bios_files if not u["required"] and u["in_repo"]]
opt_not_in_repo = [u for u in bios_files if not u["required"] and not u["in_repo"]]
summary_parts = [] summary_parts = []
if req_not_in_repo: if req_not_in_repo:
@@ -471,9 +475,16 @@ def print_platform_result(result: dict, group: list[str]) -> None:
summary_parts.append(f"{len(opt_in_repo)} optional in repo") summary_parts.append(f"{len(opt_in_repo)} optional in repo")
if opt_not_in_repo: if opt_not_in_repo:
summary_parts.append(f"{len(opt_not_in_repo)} optional NOT in repo") summary_parts.append(f"{len(opt_not_in_repo)} optional NOT in repo")
if game_data:
gd_missing = [u for u in game_data if not u["in_repo"]]
gd_present = [u for u in game_data if u["in_repo"]]
if gd_missing:
summary_parts.append(f"{len(gd_missing)} game_data NOT in repo")
if gd_present:
summary_parts.append(f"{len(gd_present)} game_data in repo")
print(f" Core gaps: {len(undeclared)} undeclared ({', '.join(summary_parts)})") print(f" Core gaps: {len(undeclared)} undeclared ({', '.join(summary_parts)})")
# Show critical gaps (required + no HLE + not in repo) # Show critical gaps (required bios + no HLE + not in repo)
for u in req_not_in_repo: for u in req_not_in_repo:
print(f" {u['emulator']}{u['name']} (required, NOT in repo)") print(f" {u['emulator']}{u['name']} (required, NOT in repo)")
# Show required with HLE (core works but not ideal) # Show required with HLE (core works but not ideal)