mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-11 14:03:23 -05:00
661 lines
33 KiB
YAML
661 lines
33 KiB
YAML
emulator: idTech4A++
|
|
type: standalone
|
|
core_classification: game_engine
|
|
source: "https://github.com/glKarin/com.n0n3m4.diii4a"
|
|
upstream: "https://github.com/glKarin/com.n0n3m4.diii4a"
|
|
author: "glKarin"
|
|
profiled_date: "2026-09-17"
|
|
source_commit: "ce49510f3b0c04969eab8ebe8238416e84e4f0bb"
|
|
core_version: "1.1.0harmattan73"
|
|
display_name: "id Tech engine collection (idTech4A++)"
|
|
cores:
|
|
- "idtech4a++"
|
|
- idtech4amm
|
|
- diii4a
|
|
systems:
|
|
- doom
|
|
- doom3
|
|
- doom3-bfg
|
|
- quake
|
|
- quake2
|
|
- quake3
|
|
- quake4
|
|
- prey
|
|
- wolfenstein3d
|
|
- return-to-castle-wolfenstein
|
|
- wolfenstein-enemy-territory
|
|
- realrtcw
|
|
- the-dark-mod
|
|
- jedi-academy
|
|
- jedi-outcast
|
|
- medal-of-honor-allied-assault
|
|
- urban-terror
|
|
- enemy-territory-quake-wars
|
|
- skin-deep
|
|
- quadrilateral-cowboy
|
|
- icarus-starship-command-simulator
|
|
- hexen2
|
|
- half-life
|
|
- half-life-2
|
|
- serious-sam
|
|
mode: standalone
|
|
|
|
notes: |
|
|
Android package com.karin.idTech4Amm, arm64-v8a and armeabi-v7a, Android 4.4+,
|
|
GPLv3, forked from n0n3m4's DIII4A. A Java launcher picks a game and a command
|
|
line, then loads one of twenty-six engine libraries into the Q3E frontend,
|
|
which owns the GL surface, the on-screen controls and the audio path. Another
|
|
application starts a game directly through com.n0n3m4.q3e.Q3EMain with a `game`
|
|
extra carrying the game token and a `command` extra carrying an argument vector
|
|
that begins with `game.arm`.
|
|
ref: README.md:13-26, 248-262,
|
|
Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:8-33, 91-116, 303,
|
|
Q3E/src/main/java/com/n0n3m4/q3e/Q3EGlobals.java:9,
|
|
idTech4Amm/build.gradle:10-14, 23
|
|
|
|
Game data lives under a working directory, `/sdcard/diii4a` unless the
|
|
preference names another, and each game reads a base folder inside it. With the
|
|
standalone-directory preference on, which is the default, the base folder sits
|
|
under a per-game subdirectory; with it off, games that are not marked always
|
|
standalone read the base folder directly under the working directory. The Dark
|
|
Mod, UZDOOM, FTEQW, ECWolf, Xash3D, Source and both Serious Sam entries are
|
|
always standalone and keep their subdirectory either way.
|
|
ref: Q3E/src/main/java/com/n0n3m4/q3e/Q3EInterface.java:89, 106, 233-254,
|
|
Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:147-202, 421,
|
|
443-461
|
|
|
|
Engine, standalone directory and base folder per game, in registration order:
|
|
DOOM 3 (dante, doom3/base), Quake 4 (dante, quake4/q4base), Prey 2006 (dante,
|
|
prey/preybase), Enemy Territory: QUAKE Wars (Splash Damage idTech4,
|
|
etqw/etqwbase), DOOM 3 BFG (RBDOOM-3-BFG 1.4.0, doom3bfg/base), The Dark Mod
|
|
2.14 (darkmod), Skin Deep 1.0.4 (skindeep/base), Quadrilateral Cowboy
|
|
1.0.2602252 (qc/base), Icarus Starship Command Simulator 1.0.9 (icarus/base),
|
|
Quake III Arena (ioquake3 1.36, quake3/baseq3), Return to Castle Wolfenstein
|
|
(iortcw 1.51d, rtcw/main), Wolfenstein: Enemy Territory (ET: Legacy 2.83.2,
|
|
etw/etmain), Jedi Academy (OpenJK 1.0.1.1, openja/base), Jedi Outcast (OpenJK
|
|
1.0.1.1, openjo/base), Medal of Honor: Allied Assault (OpenMOHAA 0.82.1,
|
|
openmohaa/main), Urban Terror (Q3-UT4 4.3.4, urt/q3ut4), RealRTCW 5.43
|
|
(realrtcw/Main), Quake II (Yamagi 8.60, quake2/baseq2), Quake (Darkplaces,
|
|
quake1/darkplaces/id1), UZDOOM 4.14.3 (uzdoom), Wolfenstein 3D (ECWolf 1.4.2,
|
|
ecwolf), FTEQW 1.05 (fteqw), Xash3D 0.21 (xash/valve), Source Engine 1.16
|
|
(srceng/hl2), Serious Sam TFE 1.10.7 (serioussamtfe) and Serious Sam TSE 1.10.7
|
|
(serioussamtse). Every one is built in this configuration; the F-Droid flavour
|
|
leaves out Xash3D and Source, and the idtech flavour leaves out those two and
|
|
Serious Sam. DOOM 3 BFG carries a second library for its Vulkan renderer.
|
|
ref: Q3E/src/main/java/com/n0n3m4/q3e/Q3EGame.java:17-291,
|
|
Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:204-230,
|
|
Q3E/src/main/jni/CMakeLists.txt:33-60, 137-266
|
|
|
|
The retail data is what the user brings, and no engine here names its archives
|
|
one by one. The idTech 4 lineage lists `.pk4` in the game directory, DOOM 3 BFG
|
|
lists `.resources`, Yamagi walks `pak0` through `pak99` for each of its four
|
|
container suffixes and then globs the rest, and Serious Sam globs `*.gro`. What
|
|
every id-derived engine does gate on is `default.cfg` inside those archives: an
|
|
empty read is a fatal error, and only the Splash Damage build is compiled past
|
|
the check. UZDOOM ends with "Cannot find a game IWAD" when no known IWAD is
|
|
present, and ECWolf with "Can not find base game data. (*.wl6, *.wl1, *.sdm,
|
|
*.sod, *.n3d)". The launcher carries a store or homepage link per game and mod
|
|
so the data can be bought or downloaded.
|
|
ref: doom3/neo/framework/FileSystem.cpp:2052, 2503, 3392-3400,
|
|
Q3E/src/main/jni/doom3bfg/neo/framework/FileSystem.cpp:3001, 3173,
|
|
Q3E/src/main/jni/darkmod/framework/FileSystem.cpp:2650-2657,
|
|
Q3E/src/main/jni/quake3/code/qcommon/files.c:4161-4165,
|
|
Q3E/src/main/jni/rtcw/SP/code/qcommon/files.c:4340-4344,
|
|
Q3E/src/main/jni/jk/code/qcommon/files.cpp:3020,
|
|
Q3E/src/main/jni/openmohaa/code/qcommon/files.cpp:4011,
|
|
Q3E/src/main/jni/quake2/yquake2/src/common/filesystem.c:1801-1850,
|
|
Q3E/src/main/jni/zdoom/src/d_iwad.cpp:738,
|
|
Q3E/src/main/jni/ecwolf/src/wl_iwad.cpp:766,
|
|
idTech4Amm/src/main/java/com/karin/idTech4Amm/sys/GameResourceUrl.java:14-118
|
|
|
|
The Quake III lineage keeps id's release checksums for `baseq3` pak0 through
|
|
pak8 and `missionpack` pak0 through pak3, and an archive whose value disagrees
|
|
only draws a console warning telling the user to re-copy from the CD or
|
|
re-install the point release. Those numbers are a block checksum over the CRCs
|
|
of the archive members, not a hash of the file, so they identify a release
|
|
rather than validate a download.
|
|
ref: Q3E/src/main/jni/quake3/code/qcommon/files.c:178-197, 3572-3690,
|
|
Q3E/src/main/jni/quake3/code/qcommon/qcommon.h:592-593
|
|
|
|
UZDOOM reads the IWAD names it will accept from `iwadinfo.txt` inside
|
|
`game_support.pk3`: the DOOM, DOOM II, Final DOOM, BFG and KEX re-releases,
|
|
Freedoom, Heretic, Hexen, Strife, Blasphemer, Chex Quest, Action Doom 2, HacX,
|
|
Harmony, Square, Delaweare and Return of the Triad, forty-nine names. The
|
|
launcher itself names four of them as selectable data files, DOOM.WAD,
|
|
DOOM2.WAD, freedoom1.wad and freedoom2.wad, because UZDOOM and ECWolf are the
|
|
two games whose data is a file rather than a folder.
|
|
ref: Q3E/src/main/jni/zdoom/src/d_iwad.cpp:287-297, 321-342,
|
|
Q3E/src/main/jni/zdoom/src/version.h:100-102,
|
|
idTech4Amm/src/main/java/com/karin/idTech4Amm/sys/Game.java:69-72,
|
|
Q3E/src/main/java/com/n0n3m4/q3e/Q3EInterface.java:710-713
|
|
|
|
Starting a game extracts that game's bundled resources first. A text file named
|
|
`idtech4amm.version` is written beside them and compared on the next run, so an
|
|
engine update replaces the copy and a user edit survives otherwise. The Dark
|
|
Mod, DOOM 3 BFG, UZDOOM, Xash3D, Source, Enemy Territory, ECWolf, Skin Deep and
|
|
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/Q3EPatchResource.java:12-47,
|
|
Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:32-218
|
|
|
|
On-screen button images are read through a search path built from the working
|
|
directory, the external files directory of the package, its internal data
|
|
directory and the assets of the apk, plus every `.zipak` archive found in the
|
|
first three. A file of the same name in any of them replaces the built-in
|
|
image, and a folder under `controls_theme/` becomes a named theme in the
|
|
chooser, described by a `description.txt` that may be suffixed with a language
|
|
tag.
|
|
ref: Q3E/src/main/java/com/n0n3m4/q3e/karin/KFDManager.java:66-96,
|
|
Q3E/src/main/java/com/n0n3m4/q3e/Q3EContextUtils.java:236-241, 305-345,
|
|
Q3E/src/main/java/com/n0n3m4/q3e/Q3EGlobals.java:230,
|
|
idTech4Amm/src/main/java/com/n0n3m4/DIII4A/launcher/SetupControlsThemeFunc.java:149-179
|
|
|
|
files:
|
|
- name: uzdoom.pk3
|
|
required: true
|
|
bundled: true
|
|
category: game_data
|
|
path: "uzdoom/uzdoom.pk3"
|
|
size: 3007398
|
|
md5: d3f231863ee2973dbc9291e853d1eb4a
|
|
sha1: dd2364da2cc8b49e32330ba9abff80727b4ea0a0
|
|
description: "UZDOOM engine resource archive"
|
|
note: >-
|
|
Named by BASEWAD and searched before anything else; a miss ends the process
|
|
with "Cannot find uzdoom.pk3". Carries the hex font, the widget resources
|
|
and the script definitions the engine needs before a game is chosen. Copied
|
|
out of the apk with the rest of the UZDOOM resource directory.
|
|
source_ref: "Q3E/src/main/jni/zdoom/src/version.h:100, Q3E/src/main/jni/zdoom/src/d_main.cpp:3707-3713, Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:94-103"
|
|
|
|
- name: game_support.pk3
|
|
required: true
|
|
bundled: true
|
|
category: game_data
|
|
path: "uzdoom/game_support.pk3"
|
|
size: 2382047
|
|
md5: 64d976172bae64edb10e542f14f2de9f
|
|
sha1: cccab57d1d1b84601fa0c52a74f55bf7b36f4e1c
|
|
description: "UZDOOM IWAD definitions and per-game filters"
|
|
note: >-
|
|
Named by OPTIONALWAD and opened as the second file of the IWAD manager. It
|
|
holds the IWADINFO lump, so without it no IWAD is recognised and startup
|
|
ends on "Cannot find a game IWAD" even when the WAD is in place. Also
|
|
carries the per-game filter trees keyed by IWAD identity.
|
|
source_ref: "Q3E/src/main/jni/zdoom/src/version.h:102, Q3E/src/main/jni/zdoom/src/d_main.cpp:3744-3746, Q3E/src/main/jni/zdoom/src/d_iwad.cpp:321-342, 738"
|
|
|
|
- name: game_widescreen_gfx.pk3
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
path: "uzdoom/game_widescreen_gfx.pk3"
|
|
size: 5565936
|
|
md5: 8ebf4d4a7b950f156c6c277ed9244aac
|
|
sha1: 9ff11fca19550b189cc8e7d4cafc9897d57cd472
|
|
description: "Widescreen replacements for the stock graphics"
|
|
note: >-
|
|
Searched by name and loaded only when the startup dialog leaves widescreen
|
|
graphics enabled.
|
|
source_ref: "Q3E/src/main/jni/zdoom/src/d_main.cpp:2083"
|
|
|
|
- name: lights.pk3
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
path: "uzdoom/lights.pk3"
|
|
size: 24030
|
|
md5: 5e5977e018d3ef2dfda2607b0b3e57ae
|
|
sha1: 19ad73cae23b5d9f3890ae29542a2d3e611bda00
|
|
description: "Dynamic light definitions"
|
|
note: >-
|
|
Searched by name on the user choice recorded at first start, and offered a
|
|
second time as a launcher switch that appends it to the file list.
|
|
source_ref: "Q3E/src/main/jni/zdoom/src/d_main.cpp:2066-2075, Q3E/src/main/java/com/n0n3m4/q3e/Q3EInterface.java:1138, idTech4Amm/src/main/java/com/n0n3m4/DIII4A/GameLauncher.java:558"
|
|
|
|
- name: brightmaps.pk3
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
path: "uzdoom/brightmaps.pk3"
|
|
size: 246181
|
|
md5: 302fd7cffd2b197c5c68778f877d3086
|
|
sha1: ccb1fb093dc128da46a5060ba319c5bd5790e074
|
|
description: "Brightmap definitions"
|
|
note: >-
|
|
Loaded on the same choice and the same launcher switch as the light
|
|
definitions.
|
|
source_ref: "Q3E/src/main/jni/zdoom/src/d_main.cpp:2066-2081, Q3E/src/main/java/com/n0n3m4/q3e/Q3EInterface.java:1140, idTech4Amm/src/main/java/com/n0n3m4/DIII4A/GameLauncher.java:565"
|
|
|
|
- name: uzdoom.sf2
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
path: "uzdoom/soundfonts/uzdoom.sf2"
|
|
size: 3299098
|
|
md5: f306ebc541a428d296cd3b7ee996d872
|
|
sha1: 4394193fb95c1e59916efe9ac3a47952ab5002f5
|
|
description: "SoundFont for the MIDI devices"
|
|
note: >-
|
|
Collected by scanning a `soundfonts` directory added to the search paths of
|
|
the config file; every .sf2 and zipped GUS patch set found there becomes a
|
|
menu entry.
|
|
source_ref: "Q3E/src/main/jni/zdoom/src/gameconfigfile.cpp:220, 258, Q3E/src/main/jni/zdoom/src/common/audio/music/i_soundfont.cpp:335-370"
|
|
|
|
- name: GENMIDI.GS.wopl
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
path: "uzdoom/fm_banks/GENMIDI.GS.wopl"
|
|
size: 118767
|
|
md5: 29570afc6ccea3d9ef7d2734f02e6cab
|
|
sha1: 538d220d87b86b997f539265eb12a6c319e17a1c
|
|
description: "OPL3 instrument bank"
|
|
note: >-
|
|
Collected from an `fm_banks` directory added to the search paths beside the
|
|
soundfont directory, for the OPL synthesiser.
|
|
source_ref: "Q3E/src/main/jni/zdoom/src/gameconfigfile.cpp:221, 259"
|
|
|
|
- name: gs-by-papiezak-and-sneakernets.wopn
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
path: "uzdoom/fm_banks/gs-by-papiezak-and-sneakernets.wopn"
|
|
size: 274864
|
|
md5: 4978fd39a6d78de1cf1021e24424f822
|
|
sha1: eaca5d7a9fe1db6094990be0d8916b7f97920db1
|
|
description: "OPN2 instrument bank"
|
|
note: >-
|
|
Collected from the same `fm_banks` directory, for the OPN2 synthesiser.
|
|
source_ref: "Q3E/src/main/jni/zdoom/src/gameconfigfile.cpp:221, 259"
|
|
|
|
- name: ecwolf.pk3
|
|
required: true
|
|
bundled: true
|
|
category: game_data
|
|
path: "ecwolf/ecwolf.pk3"
|
|
size: 185013
|
|
md5: d9dcd91db4a0bc45ba12a01ad1828be8
|
|
sha1: d327b48f83d9b95c5a49597145d96be80be3eade
|
|
description: "ECWolf engine resource archive"
|
|
note: >-
|
|
Named by MAIN_PK3 and passed to the game selector with the program
|
|
directory; failing to open it ends the process with "Could not open
|
|
ecwolf.pk3!". It holds the IWADINFO rules that identify which Wolfenstein
|
|
data set is present, the palettes and the actor definitions. This build
|
|
reads it from disk after extraction, unlike the libretro core which
|
|
compiles it in.
|
|
source_ref: "Q3E/src/main/jni/ecwolf/src/version.h:12, Q3E/src/main/jni/ecwolf/src/wl_iwad.cpp:604, Q3E/src/main/jni/ecwolf/src/wl_main.cpp:1294-1307, Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:186-195"
|
|
|
|
- name: glprogs.pk4
|
|
required: true
|
|
bundled: true
|
|
category: game_data
|
|
size: 98425
|
|
md5: a0fcf6c54d453a80c8aac693d17979b8
|
|
sha1: 604636a62dd04c90392b19adf61d3a62381dfb02
|
|
description: "The Dark Mod GLSL shader set rewritten for OpenGL ES"
|
|
note: >-
|
|
Unpacked into the standalone directory as `glslprogs/`, the tree the
|
|
renderer compiles its programs from. Version-stamped with the engine
|
|
release and a patch number, so a Dark Mod update or a shader fix replaces
|
|
it. TDM_GLSL_SHADER_VERSION reads 2.14.2 here: the four SSAO programs
|
|
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"
|
|
|
|
- name: renderprogs.pk4
|
|
required: true
|
|
bundled: true
|
|
category: game_data
|
|
size: 223453
|
|
md5: 7edee35e1e53475d9557c1026877ae7c
|
|
sha1: ab89141b5772de1df43831e64c53aece28c2e6f6
|
|
description: "DOOM 3 BFG shader set rewritten for OpenGL ES"
|
|
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"
|
|
|
|
- name: glsl.pk4
|
|
required: true
|
|
bundled: true
|
|
category: game_data
|
|
size: 51642
|
|
md5: b94d15df5bf72a4c4510c834ef404ebb
|
|
sha1: 87f0f5ec3db3855c4453a9031ce695d39d0eaa44
|
|
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"
|
|
|
|
- name: zzz_etqwbase.pk4
|
|
required: true
|
|
bundled: true
|
|
category: game_data
|
|
size: 141815
|
|
md5: 5b72ab7bb1c295c30b9cbb274a4bd6e9
|
|
sha1: e37810f05cc9a2e40b47a274184fe9347fef1393
|
|
description: "ETQW shader set and megatexture patches"
|
|
note: >-
|
|
Unpacked into the ETQW base folder. The name sorts last so the entries
|
|
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"
|
|
|
|
- name: legacy_v2.83.2.pk3
|
|
required: true
|
|
bundled: true
|
|
category: game_data
|
|
path: "etw/legacy/legacy_v2.83.2.pk3"
|
|
size: 30993701
|
|
md5: ea838df0911a68b5f22f5010d37867f5
|
|
sha1: f156945f70545e37fb5ee33a95ee97204a7f60b7
|
|
description: "ET: Legacy mod archive matching the built engine"
|
|
note: >-
|
|
Copied into the `legacy` folder, the mod the engine runs by default; the
|
|
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"
|
|
|
|
- name: extras.pk3
|
|
required: true
|
|
bundled: true
|
|
category: game_data
|
|
path: "xash/extras.pk3"
|
|
size: 1491748
|
|
md5: 1a65bf279b969c017a34497d183e5544
|
|
sha1: 971249b94cb62fbca2f42c8ab7a7d29d30e5b368
|
|
description: "Xash3D touch controls, fonts and controller database"
|
|
note: >-
|
|
Mounted ahead of every game directory from the path in
|
|
XASH3D_EXTRAS_PAK1. It carries the touch-control textures the mobile build
|
|
draws and the gamecontrollerdb.txt the SDL joystick layer reads through the
|
|
virtual filesystem.
|
|
source_ref: "xash3d-fwgs filesystem/filesystem.c:1376-1378, xash3d-fwgs engine/platform/sdl2/joy_sdl2.c:346, Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:142-151"
|
|
|
|
- name: cs16client-extras.pk3
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
path: "xash/cs16client-extras.pk3"
|
|
size: 12976942
|
|
md5: 15bf94e95c94c301f92270b6775b9a3d
|
|
sha1: ab0c9f66e9e9be4af96c20d5ce3a9d684eeff2c2
|
|
description: "Counter-Strike 1.6 client resources for Xash3D"
|
|
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"
|
|
|
|
- name: extras.zip
|
|
required: true
|
|
bundled: true
|
|
category: game_data
|
|
size: 15081926
|
|
md5: 15944b9068602a6d36905be035e9e547
|
|
sha1: 388bfce5ba834f5ed329a0fa9864b0b75840e951
|
|
description: "Source engine fonts and platform archive"
|
|
note: >-
|
|
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"
|
|
|
|
- name: d3_sabot_a7.pk4
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
path: "doom3/base/zzz_idTech4Amm_d3_sabot_a7.pk4"
|
|
size: 2399406
|
|
md5: 494bd9601fc82752cc6c6d14cf684d8e
|
|
sha1: 8179522bcd5abc4c5a3194bf49f6821738644500
|
|
description: "Stupid Angry Bot definitions for DOOM 3 multiplayer"
|
|
note: >-
|
|
Extracted on request into the current mod folder under a name prefixed to
|
|
sort last. It holds the defs, scripts and multiplayer AAS files the bot
|
|
commands need. A second entry repacks only the `maps/` tree into
|
|
zzz_idTech4Amm_d3_sabot_a7_aas.pk4 for users who already have the mod.
|
|
source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:48-58, 129-140, README.md:267-270"
|
|
|
|
- name: q4_sabot_a9.pk4
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
path: "quake4/q4base/zzz_idTech4Amm_q4_sabot_a9.pk4"
|
|
size: 21143072
|
|
md5: 710997decddd8ace044d028fe79b52e9
|
|
sha1: a3af9251c6a2b4b8d02108bd7b91919aace929dd
|
|
description: "Stupid Angry Bot definitions for Quake 4 multiplayer"
|
|
note: >-
|
|
The Quake 4 counterpart, extracted the same way, with the same
|
|
maps-only variant written as zzz_idTech4Amm_q4_sabot_a9_aas.pk4.
|
|
source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:36-46, 116-127, README.md:267-270"
|
|
|
|
- name: play_original_doom3_level.pk4
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
path: "doom3/rivensin/zzz_idTech4Amm_play_original_doom3_level.pk4"
|
|
size: 16866
|
|
md5: 214e3daebf5d11e40cd06ca5e1b02971
|
|
sha1: de368e97ca86f489c1f10ea148e0812913c25c7d
|
|
description: "Rivensin patch restoring the original DOOM 3 levels"
|
|
note: >-
|
|
Extracted on request into the `rivensin` mod folder, the one patch tied to
|
|
a named mod rather than to whichever mod is selected.
|
|
source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:60-70"
|
|
|
|
- name: doom3_chinese_translation_doom3bfg.pk4
|
|
required: false
|
|
bundled: true
|
|
category: game_data
|
|
path: "doom3/base/doom3_chinese_translation_doom3bfg.pk4"
|
|
size: 5138117
|
|
md5: 4fa638d0accdd696149d83f3579d185e
|
|
sha1: 8c06159ab1012b271d39d624b45c55c2360dc443
|
|
description: "Chinese text and fonts for DOOM 3, taken from the BFG release"
|
|
note: >-
|
|
Copied into the DOOM 3 base folder on request. It pairs with the
|
|
wide-character language and BFG font support compiled into the engine.
|
|
source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EPatchResourceManager.java:105-114, README.md:37, README.md:174-175"
|
|
|
|
- name: controls_theme.zipak
|
|
required: false
|
|
bundled: true
|
|
size: 3133490
|
|
md5: 9f6f5073fda93251f7a48a91a6d4c5d1
|
|
sha1: 5be92df9e74843bc6071e3627f4fd876d499a490
|
|
description: "Button image themes carried in the apk"
|
|
note: >-
|
|
Read in place from the assets, never extracted. Archives with this suffix
|
|
are folded into the search path wherever they are found, and the
|
|
`controls_theme/` folders inside become named entries in the theme chooser;
|
|
this one carries the cs16-client and source-engine sets.
|
|
source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EGlobals.java:230, Q3E/src/main/java/com/n0n3m4/q3e/karin/KFDManager.java:44, 102, 113-129, Q3E/src/main/java/com/n0n3m4/q3e/karin/KFileDescriptor.java:56, 102"
|
|
|
|
- name: btn_jump.png
|
|
required: false
|
|
bundled: true
|
|
description: "Default on-screen button images, 52 files"
|
|
note: >-
|
|
Read from the assets root when the theme is the built-in one. The set
|
|
covers the alphabet, the digits and the named actions the games bind, and
|
|
any of the 52 names can be replaced by putting a file of the same name in
|
|
one of the external search paths.
|
|
source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EContextUtils.java:348-370, idTech4Amm/src/main/java/com/n0n3m4/DIII4A/launcher/SetupControlsThemeFunc.java:167-177"
|
|
|
|
- name: generic.json
|
|
required: false
|
|
bundled: true
|
|
path: "keyboard/generic.json"
|
|
size: 10278
|
|
md5: ef9b27699a627334930f6d4252b644d5
|
|
sha1: 839c05a60c231d409f90b477bf2001c28f10b1bb
|
|
description: "Virtual keyboard layout"
|
|
note: >-
|
|
Read straight from the assets when the on-screen keyboard is built, without
|
|
going through the external search path, so nothing outside the archive
|
|
replaces it.
|
|
source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EKeyboard.java:74"
|
|
|
|
- name: autoexec.cfg
|
|
required: false
|
|
description: "Console script the engine runs at startup"
|
|
note: >-
|
|
Executed by the id-derived engines from the mod folder and from the base
|
|
folder. The launcher lists both positions next to the config file each game
|
|
writes for itself, DoomConfig.cfg, Quake4Config.cfg, preyconfig.cfg,
|
|
q3config.cfg, wolfconfig.cfg, Darkmod.cfg, uzdoom.ini and the rest, and
|
|
opens any of them in its editor. The config files are written by the
|
|
engines; this one only ever comes from the user.
|
|
source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EInterface.java:722-836, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:63-88, idTech4Amm/src/main/java/com/karin/idTech4Amm/ConfigEditorActivity.java:103"
|
|
|
|
- name: description.txt
|
|
required: false
|
|
description: "Blurb shown for a mod in the chooser"
|
|
note: >-
|
|
Read from the root of a mod folder when the mod list is built and shown
|
|
under the folder name with its size. The control theme chooser reads a file
|
|
of the same name from a theme folder, there with an optional language
|
|
suffix.
|
|
source_ref: "idTech4Amm/src/main/java/com/n0n3m4/DIII4A/launcher/ChooseGameModFunc.java:242-251, Q3E/src/main/java/com/n0n3m4/q3e/Q3EContextUtils.java:330-341"
|
|
|
|
- name: controller_map.txt
|
|
required: false
|
|
load_from: internal_storage
|
|
description: "Extra SDL controller mappings"
|
|
note: >-
|
|
SDL builds this path from the internal storage directory of the package
|
|
when SDL_GAMECONTROLLERCONFIG_FILE is unset, which it is here, and reads it
|
|
while the game controller subsystem starts, after the compiled-in mappings
|
|
and before the ones the environment carries. It reaches the six games the
|
|
app runs on SDL, Xash3D, Source, ECWolf, Skin Deep, Quadrilateral Cowboy
|
|
and Icarus; the other engines take input from the Q3E frontend instead. The
|
|
SDL2 tree under deplibs is what the build compiles, version 2.32.5.
|
|
source_ref: "Q3E/src/main/jni/deplibs/SDL2/src/joystick/SDL_gamecontroller.c:1873-1884, 1890-1916, Q3E/src/main/jni/deplibs/SDL2/include/SDL_version.h:59-61, Q3E/src/main/jni/CMakeLists.txt:90-102, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:430, 454-461"
|
|
|
|
- name: "controls_theme/<name>/btn_jump.png"
|
|
required: false
|
|
description: "Button images of a user theme"
|
|
note: >-
|
|
A folder under `controls_theme/` in any search path, or inside a `.zipak`
|
|
there, appears in the chooser under its own name and its images replace the
|
|
built-in ones. A `description.txt` beside them, optionally suffixed with a
|
|
language tag, supplies the name, author and description the chooser shows.
|
|
source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EContextUtils.java:305-345, idTech4Amm/src/main/java/com/n0n3m4/DIII4A/launcher/SetupControlsThemeFunc.java:136-179"
|
|
|
|
- name: gameaarch64.so
|
|
path: "doom3/base/gameaarch64.so"
|
|
required: false
|
|
description: "DOOM 3 game library for arm64, built from the DOOM 3 SDK the README links"
|
|
note: >-
|
|
Looked for in the mod folder of DOOM 3, Quake 4, Prey or ETQW when the
|
|
external-library preference is on, copied to a private cache and named to
|
|
the engine through harm_fs_gameLibPath. The folder is the one fs_game
|
|
names, the base folder of the game when it names none. The file name
|
|
follows the running architecture, gameaarch64.so on arm64 and gamearm.so
|
|
on armv7. Without it the engine keeps the game code built into the apk.
|
|
The launcher also accepts a full path to any libxxxxx.so instead.
|
|
source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:386-416, 472-479, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGlobals.java:276, Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameConstants.java:147-150, idTech4Amm/src/main/java/com/n0n3m4/DIII4A/launcher/AddExternalLibraryFunc.java:71-86, README.md:240-244, README.md:252-262"
|
|
|
|
- name: gamearm.so
|
|
path: "doom3/base/gamearm.so"
|
|
required: false
|
|
description: "DOOM 3 game library for armv7, built from the DOOM 3 SDK the README links"
|
|
note: "Looked for in the DOOM 3 base folder under the same preference, armv7 builds only."
|
|
source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:386-416, 472-479"
|
|
|
|
- name: gameaarch64.so
|
|
path: "doom3/d3xp/gameaarch64.so"
|
|
required: false
|
|
description: "DOOM 3 Resurrection of Evil game library for arm64, built from the DOOM 3 SDK the README links"
|
|
note: "Looked for in the d3xp mod folder of DOOM 3 under the same preference, arm64 builds only."
|
|
source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:386-416, 472-479"
|
|
|
|
- name: gamearm.so
|
|
path: "doom3/d3xp/gamearm.so"
|
|
required: false
|
|
description: "DOOM 3 Resurrection of Evil game library for armv7, built from the DOOM 3 SDK the README links"
|
|
note: "Looked for in the d3xp mod folder of DOOM 3 under the same preference, armv7 builds only."
|
|
source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:386-416, 472-479"
|
|
|
|
- name: gameaarch64.so
|
|
path: "doom3/bloodmod/gameaarch64.so"
|
|
required: false
|
|
description: "DOOM 3 Blood Mod game library for arm64, released from the DOOM 3 SDK repository"
|
|
note: "Looked for in the bloodmod mod folder of DOOM 3 under the same preference, arm64 builds only."
|
|
source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:386-416, 472-479"
|
|
|
|
- name: gamearm.so
|
|
path: "doom3/bloodmod/gamearm.so"
|
|
required: false
|
|
description: "DOOM 3 Blood Mod game library for armv7, released from the DOOM 3 SDK repository"
|
|
note: "Looked for in the bloodmod mod folder of DOOM 3 under the same preference, armv7 builds only."
|
|
source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:386-416, 472-479"
|
|
|
|
- name: gameaarch64.so
|
|
path: "quake4/q4base/gameaarch64.so"
|
|
required: false
|
|
description: "Quake 4 game library for arm64, built from the Quake 4 SDK the README links"
|
|
note: "Looked for in the Quake 4 base folder under the same preference, arm64 builds only."
|
|
source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:386-416, 472-479"
|
|
|
|
- name: gamearm.so
|
|
path: "quake4/q4base/gamearm.so"
|
|
required: false
|
|
description: "Quake 4 game library for armv7, built from the Quake 4 SDK the README links"
|
|
note: "Looked for in the Quake 4 base folder under the same preference, armv7 builds only."
|
|
source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:386-416, 472-479"
|
|
|
|
- name: gameaarch64.so
|
|
path: "prey/preybase/gameaarch64.so"
|
|
required: false
|
|
description: "Prey game library for arm64, built from the Prey SDK the README links"
|
|
note: "Looked for in the Prey base folder under the same preference, arm64 builds only."
|
|
source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:386-416, 472-479"
|
|
|
|
- name: gamearm.so
|
|
path: "prey/preybase/gamearm.so"
|
|
required: false
|
|
description: "Prey game library for armv7, built from the Prey SDK the README links"
|
|
note: "Looked for in the Prey base folder under the same preference, armv7 builds only."
|
|
source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:386-416, 472-479"
|
|
|
|
- name: server.so
|
|
required: false
|
|
aliases: [client.so, menu.so]
|
|
unsourceable: "compiled per mod from hlsdk-portable, with no released binary to collect"
|
|
description: "External Xash3D game libraries"
|
|
note: >-
|
|
Read from `lib/<arch>/` inside the Xash3D mod folder when the
|
|
external-library preference is on, copied to the private cache and passed
|
|
as the dll, clientlib and menulib parameters with gamelibdir pointing at
|
|
the cache. The three default names are used unless the command line names
|
|
others, and any further libraries in the folder are copied alongside.
|
|
source_ref: "Q3E/src/main/java/com/n0n3m4/q3e/Q3EGameHelper.java:417-458, 488-520"
|
|
|
|
exclusion_note: >
|
|
The retail game data is not listed. Every engine here loads it by globbing the
|
|
base folder rather than by name, `.pk4` for the idTech 4 lineage, `.resources`
|
|
for DOOM 3 BFG, the four container suffixes for Yamagi, `*.gro` for Serious
|
|
Sam, and what it gates on is a `default.cfg` that lives inside those archives
|
|
rather than beside them. The names that do appear in the code are the forty-nine
|
|
the DOOM engine accepts as an IWAD, read from `iwadinfo.txt` in
|
|
`game_support.pk3`, the four the launcher offers as selectable UZDOOM data
|
|
files, and the five extensions ECWolf reports when no Wolfenstein data is
|
|
found; all of them are game content, held here the same way the PrBoom and
|
|
boom3 profiles hold theirs, in the notes. `stdout.txt` and `stderr.txt` are
|
|
opened for writing by the engine and read back only to show the last run log,
|
|
and an `idtech4amm.version` stamp is written beside each extracted resource.
|
|
ref: doom3/neo/framework/FileSystem.cpp:2052, 3397-3399,
|
|
Q3E/src/main/jni/quake2/yquake2/src/common/filesystem.c:1801-1850,
|
|
SeriousSamClassic SamTFE/Sources/Engine/Base/Stream.cpp:212-247,
|
|
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
|