diff --git a/bios/Softdisk/Catacomb Apocalypse/SHP1.APC b/bios/Softdisk/Catacomb Apocalypse/SHP1.APC new file mode 100644 index 00000000..1cb16a2e Binary files /dev/null and b/bios/Softdisk/Catacomb Apocalypse/SHP1.APC differ diff --git a/bios/Softdisk/Catacomb Apocalypse/SHP10.APC b/bios/Softdisk/Catacomb Apocalypse/SHP10.APC new file mode 100644 index 00000000..7136cb6d Binary files /dev/null and b/bios/Softdisk/Catacomb Apocalypse/SHP10.APC differ diff --git a/bios/Softdisk/Catacomb Apocalypse/SHP11.APC b/bios/Softdisk/Catacomb Apocalypse/SHP11.APC new file mode 100644 index 00000000..4b2dbf0d Binary files /dev/null and b/bios/Softdisk/Catacomb Apocalypse/SHP11.APC differ diff --git a/bios/Softdisk/Catacomb Apocalypse/SHP12.APC b/bios/Softdisk/Catacomb Apocalypse/SHP12.APC new file mode 100644 index 00000000..5f488cca Binary files /dev/null and b/bios/Softdisk/Catacomb Apocalypse/SHP12.APC differ diff --git a/bios/Softdisk/Catacomb Apocalypse/SHP13.APC b/bios/Softdisk/Catacomb Apocalypse/SHP13.APC new file mode 100644 index 00000000..ac8e937a Binary files /dev/null and b/bios/Softdisk/Catacomb Apocalypse/SHP13.APC differ diff --git a/bios/Softdisk/Catacomb Apocalypse/SHP9.APC b/bios/Softdisk/Catacomb Apocalypse/SHP9.APC new file mode 100644 index 00000000..25622910 Binary files /dev/null and b/bios/Softdisk/Catacomb Apocalypse/SHP9.APC differ diff --git a/bios/Softdisk/Catacomb Armageddon/SHP1.ARM b/bios/Softdisk/Catacomb Armageddon/SHP1.ARM new file mode 100644 index 00000000..1cb16a2e Binary files /dev/null and b/bios/Softdisk/Catacomb Armageddon/SHP1.ARM differ diff --git a/bios/Softdisk/Catacomb Armageddon/SHP10.ARM b/bios/Softdisk/Catacomb Armageddon/SHP10.ARM new file mode 100644 index 00000000..7136cb6d Binary files /dev/null and b/bios/Softdisk/Catacomb Armageddon/SHP10.ARM differ diff --git a/bios/Softdisk/Catacomb Armageddon/SHP11.ARM b/bios/Softdisk/Catacomb Armageddon/SHP11.ARM new file mode 100644 index 00000000..4b2dbf0d Binary files /dev/null and b/bios/Softdisk/Catacomb Armageddon/SHP11.ARM differ diff --git a/bios/Softdisk/Catacomb Armageddon/SHP12.ARM b/bios/Softdisk/Catacomb Armageddon/SHP12.ARM new file mode 100644 index 00000000..5f488cca Binary files /dev/null and b/bios/Softdisk/Catacomb Armageddon/SHP12.ARM differ diff --git a/bios/Softdisk/Catacomb Armageddon/SHP13.ARM b/bios/Softdisk/Catacomb Armageddon/SHP13.ARM new file mode 100644 index 00000000..ac8e937a Binary files /dev/null and b/bios/Softdisk/Catacomb Armageddon/SHP13.ARM differ diff --git a/bios/Softdisk/Catacomb Armageddon/SHP9.ARM b/bios/Softdisk/Catacomb Armageddon/SHP9.ARM new file mode 100644 index 00000000..25622910 Binary files /dev/null and b/bios/Softdisk/Catacomb Armageddon/SHP9.ARM differ diff --git a/emulators/easyrpg.yml b/emulators/easyrpg.yml index 2e5985a1..beae8a23 100644 --- a/emulators/easyrpg.yml +++ b/emulators/easyrpg.yml @@ -67,16 +67,19 @@ files: # ================================================================ - name: "easyrpg.soundfont" + aliases: ["FluidR3_GM.sf2"] category: game_data path: "easyrpg.soundfont" required: false hle_fallback: true - source_ref: "src/decoder_fluidsynth.cpp:125" + source_ref: "src/decoder_fluidsynth.cpp:125, src/decoder_fluidsynth.cpp:149-152" note: > General MIDI soundfont (SF2 format) for MIDI music playback. Many RPG Maker games use MIDI for background music. Without a soundfont, MIDI falls back to the built-in FmMidi synthesizer (lower quality). Any - GM-compatible .sf2 works. + GM-compatible .sf2 works. After easyrpg.soundfont, the FluidSynth + default and SDL_SOUNDFONTS, desktop Linux, BSD and macOS builds try + FluidR3_GM.sf2 under /usr/share/soundfonts and /usr/share/sounds/sf2. # ================================================================ # WildMidi configuration (optional, alternative MIDI backend) diff --git a/emulators/hatari.yml b/emulators/hatari.yml index c08882f2..4b37ac4a 100644 --- a/emulators/hatari.yml +++ b/emulators/hatari.yml @@ -127,11 +127,16 @@ files: required: false storage: user_provided unsourceable: "one table per TOS build, valid only beside the image it was linked with: each EmuTOS release archive carries the table of its ROM, etos512k.sym beside etos512k.img, and Atari TOS has none" - source_ref: "src/tos.c:1094, src/debug/symbols.c:1095-1113, src/debug/symbols.c:1002-1020, src/debug/symbols.c:372-407, src/configuration.c:621, src/includes/configuration.h:29-31" + source_ref: "src/tos.c:1094, src/debug/symbols.c:1095-1113, src/debug/symbols.c:1002-1020, src/debug/symbols.c:372-407, src/configuration.c:621, src/includes/configuration.h:29-31, src/retro/main_retro.c:182-194" note: > The name is the TOS image path with its last three characters - replaced by sym, and the image path is always tos.img here. Read at - every TOS load when present; the symbols serve the built-in debugger. + replaced by sym, and the image path is always tos.img here: retro_init + passes /tos.img as --tos and no other image name reaches the + loader, so a table named after another image, emutos.sym beside + emutos.img, is never opened. nSymbolsAutoLoad gates the read; its + default is not off and no core option changes it, so the table is read + at every TOS load when present. The symbols serve the built-in + debugger. - name: "cartridge ROM" path: null diff --git a/emulators/idtech4a++.yml b/emulators/idtech4a++.yml index 87f377d3..92c34a35 100644 --- a/emulators/idtech4a++.yml +++ b/emulators/idtech4a++.yml @@ -136,7 +136,7 @@ notes: | ETQW are covered by this path; the bot, Rivensin and translation archives are extracted on request from the launcher instead. ref: Q3E/src/main/java/com/n0n3m4/q3e/Q3EMain.java:167, - Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:624-703, 921-940, + Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:667-746, 964-984, Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResource.java:12-47, Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:32-218 @@ -303,7 +303,7 @@ files: moved their uniform-dependent initialisers out of global scope and cast their integer terms to float. The 2.14.1 pack it replaced is kept as a variant. - source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:83-92, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:705-722, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:391, Q3E/src/main/jni/darkmod/glslprogs/ssao.frag.glsl:78-80, 163-166" + source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:83-92, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:748-767, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:391, Q3E/src/main/jni/darkmod/glslprogs/ssao.frag.glsl:78-80, 163-166" - name: renderprogs.pk4 required: true @@ -316,7 +316,7 @@ files: note: >- Unpacked into `base/renderprogs/` beside the game resources. The shipped BFG data carries the desktop HLSL set, which this build cannot use. - source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:72-81, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:768-787, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:393" + source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:72-81, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:811-829, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:393" - name: glsl.pk4 required: true @@ -328,7 +328,7 @@ files: description: "Skin Deep shader set rewritten for OpenGL ES" note: >- Unpacked into `base/glsl/` and stamped with the game version. - source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:197-206, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:726-745, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:399" + source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:197-206, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:769-788, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:399" - name: zzz_etqwbase.pk4 required: true @@ -343,7 +343,7 @@ files: override the ones the retail archives carry. ETQW_GLSL_SHADER_VERSION names the set the build expects and reads .6 here; the .3 pack it replaced is kept as a variant for older builds. - source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:208-217, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:747-766, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:400" + source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:208-217, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:790-809, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:400" - name: legacy_v2.83.2.pk3 required: true @@ -359,7 +359,7 @@ files: retail Enemy Territory data in `etmain` stays the user's to supply. The file name is built from the engine version, so a Legacy update lands under a new name. - source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:175-184, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:845-868, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:397" + source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:175-184, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:888-911, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:397" - name: extras.pk3 required: true @@ -389,7 +389,7 @@ files: note: >- Extracted right after the base extras and mounted the same way, for the cs16 and cs16_yapb server classes the launcher offers. - source_ref: "xash3d-fwgs filesystem/filesystem.c:1380-1382, Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:153-162, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:815-843, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:412" + source_ref: "xash3d-fwgs filesystem/filesystem.c:1380-1382, Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:153-162, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:858-886, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:412" - name: extras.zip required: true @@ -403,7 +403,7 @@ files: Unpacked into `files/` under the Source standalone directory. It carries the DejaVu, Droid Sans Fallback, Itim and Liberation faces the engine substitutes for the Windows fonts, and extras_dir.vpk. - source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:164-173, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:895-919, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:396" + source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:164-173, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:938-961, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:396" - name: d3_sabot_a7.pk4 required: false @@ -657,4 +657,4 @@ exclusion_note: > Q3E/src/main/jni/ecwolf/src/wl_iwad.cpp:766, Q3E/src/main/jni/q3e/q3emisc.c:23-25, idTech4Amm/src/main/java/com/n0n3m4/DIII4A/GameLauncher.java:2899, 2916, - Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:697-703 + Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:740-746 diff --git a/emulators/pom2.yml b/emulators/pom2.yml index f0ca5844..8598b99c 100644 --- a/emulators/pom2.yml +++ b/emulators/pom2.yml @@ -133,8 +133,7 @@ files: description: "Apple ][+ Autostart monitor and Applesoft, 4 KB pad then $C000-$FFFF" required: false priority: 1 - size: 20480 - size_options: [12288, 20480] + size: [12288, 20480] sha256: "92c4bef609920842ea472d21b661a0d35dbda6cd90963b8b734a205e22d84108" sha1: "29a53f3bb158b160433369e8e4a1d7cd5bf68ac6" validation: [size, sha256] @@ -561,8 +560,7 @@ files: description: "Thunderware ThunderClock+ slot ROM rev 1.3, U9" required: false aliases: ["thunderclock_u9.bin", "thunderclock.rom", "Thunderware_REV_1.3_ROM_U9.bin"] - size: 2048 - size_options: [256, 2048] + size: [256, 2048] sha256: "ecca793179427fdd193373080bf23e49a95743bd7b5e0b218c747663938b6c03" sha1: "60f434f5325899d7ea257a6e56e6f53eae65146a" validation: [size, sha256] diff --git a/scripts/dedup.py b/scripts/dedup.py index 99285807..585ca504 100644 --- a/scripts/dedup.py +++ b/scripts/dedup.py @@ -57,6 +57,11 @@ NODEDUP_DIRS = { "Ikemen GO", "Theme Hospital", "TheXTech", + # CatacombGL reads each game's folder by name and compares sizes only: + # the Armageddon and Apocalypse intro shapes SHP1, SHP9 to SHP13 are the + # Abyss shareware bytes under the retail names, and each game opens + # its own copy. + "Softdisk", }