feat: profile idtech4a++, ines and infinity

This commit is contained in:
Abdessamad Derraz committed 2026-08-11 15:56:45 +02:00
1 parent 694f2a74d0
commit ed0c44be4a
3 files changed
+1000

No files matched your search

+618
View File
@@ -0,0 +1,618 @@
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-08-11"
source_commit: "683afc7aa181ec4b7ee69424ce9fdb1a8fac5ba9"
core_version: "1.1.0harmattan72"
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, 237-251,
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:13-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
unsourceable: "arrives with the application package, not sourced separately"
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
unsourceable: "arrives with the application package, not sourced separately"
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
unsourceable: "arrives with the application package, not sourced separately"
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
unsourceable: "arrives with the application package, not sourced separately"
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
unsourceable: "arrives with the application package, not sourced separately"
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
unsourceable: "arrives with the application package, not sourced separately"
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
unsourceable: "arrives with the application package, not sourced separately"
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
unsourceable: "arrives with the application package, not sourced separately"
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
unsourceable: "arrives with the application package, not sourced separately"
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
unsourceable: "arrives with the application package, not sourced separately"
category: game_data
size: 98396
md5: 3155df291027d253e2596db3fca1ac4a
sha1: 2651f1eff1785999918c08600f079e1ad4a206e7
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 so a Dark Mod update replaces it.
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"
- name: renderprogs.pk4
required: true
bundled: true
unsourceable: "arrives with the application package, not sourced separately"
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
unsourceable: "arrives with the application package, not sourced separately"
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
unsourceable: "arrives with the application package, not sourced separately"
category: game_data
size: 136061
md5: 2f5c49dca4993da5911d632d3962c1f3
sha1: 0d4dee46085ced0fd117030a13533d903265301c
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.
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
unsourceable: "arrives with the application package, not sourced separately"
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
unsourceable: "arrives with the application package, not sourced separately"
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: "Q3E/src/main/jni/xash3d/xash3d-fwgs/filesystem/filesystem.c:1376-1378, Q3E/src/main/jni/xash3d/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
unsourceable: "arrives with the application package, not sourced separately"
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: "Q3E/src/main/jni/xash3d/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
unsourceable: "arrives with the application package, not sourced separately"
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
unsourceable: "arrives with the application package, not sourced separately"
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:256-259"
- name: q4_sabot_a9.pk4
required: false
bundled: true
unsourceable: "arrives with the application package, not sourced separately"
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:256-259"
- name: play_original_doom3_level.pk4
required: false
bundled: true
unsourceable: "arrives with the application package, not sourced separately"
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
unsourceable: "arrives with the application package, not sourced separately"
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, 168-169"
- name: controls_theme.zipak
required: false
bundled: true
unsourceable: "arrives with the application package, not sourced separately"
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
unsourceable: "arrives with the application package, not sourced separately"
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
unsourceable: "arrives with the application package, not sourced separately"
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
unsourceable: "console commands written by the user for one install"
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
unsourceable: "text written by whoever assembled the mod folder"
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
unsourceable: "button artwork authored per theme, with no released set to collect"
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
required: false
aliases: [gamearm.so]
unsourceable: "compiled per mod against the published SDK, with no released binary to collect"
description: "External idTech 4 mod game library"
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 suffix 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:342-372, 429-434, idTech4Amm/src/main/java/com/n0n3m4/DIII4A/launcher/AddExternalLibraryFunc.java:71-86, README.md:229-233, 241-251"
- 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:373-414, 445-475"
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,
Q3E/src/main/jni/serioussam/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
+177
View File
@@ -0,0 +1,177 @@
emulator: iNES
type: standalone
core_classification: other
source: "https://fms.komkon.org/iNES/iNES-Android-6104.apk"
upstream: closed-source
author: "Marat Fayzullin (Garage Research)"
profiled_date: "2026-08-11"
core_version: "6.1.4"
display_name: "Nintendo - NES / Famicom (iNES)"
cores:
- ines
systems:
- nintendo-nes
- nintendo-fds
mode: standalone
notes: |
NES and Famicom emulator by Marat Fayzullin, covering cartridges, the Famicom
Disk System and the VS System. The build read here is the free Android APK the
author publishes himself, package com.fms.ines versionName 6.1.4 versionCode
6104, apk md5 d0e1b93b09d4b58294efd4e1509e25ca, signed CN=Marat Fayzullin
O=Garage Research issued 2011, sha256
d09469e9b550cbc9005d3bd089f3df5f0ba89cba71cdd3b33736a0382d6f9848; the two
download paths on that site serve the same bytes. Google Play carries the
emulator as com.fms.ines.free, the package ES-DE launches, and inside VGBAnext
as com.fms.ng, the author recording that Play removed the original com.fms.ines
listing over its built-in cheats. The native libraries keep their symbol
tables, so the readings below cite libmain.so offsets in the x86_64 slice; the
arm64-v8a, armeabi-v7a, armeabi and x86 slices carry the same filename set. The
free iNES 6.1 builds for Windows and Ubuntu were read beside it and open the
same files under the same names. No source has ever been published: the author
releases ColEm and fMSX as source archives, while every iNES download on the
same site, from 0.7 for AIX and SunOS through 6.1, is a binary package.
ref: iNES-Android-6104.apk META-INF/CERT.RSA, https://fms.komkon.org/iNES/,
iNES61-Windows-bin.zip, iNES61-Ubuntu-x86-bin.tgz
One directory holds everything the emulator reads. MainActivity hands
EMULib.k() to jniStart, which copies it into the buffer GetHomeDir returns and
passes that same buffer to SetPrivateDir. Every open goes through mopen, which
calls OpenRealFile: the name is tried as given and again as
<PrivateDir>/<basename>, and when both open the larger of the two is kept. That
directory is <ExternalStorage> joined with the application label up to its first
space, so iNES, falling back to getExternalFilesDirs(null) when the path is not
a writable directory. mopen layers gzdopen over the result, so any of these
files also opens gzipped, and a content:// name is routed to the Android storage
framework instead.
ref: MainActivity.java:2257, EMULib.java:1328, EMULib.java:408,
EMULib.java:474-505, EMULib.java:682, libmain.so 0x1212a-0x1218c,
libmain.so OpenRealFile 0x32070-0x32285, libmain.so mopen 0x322b0-0x323f2
DISKSYS.ROM is the only filename compiled into the emulator. LoadFDS reads the
disk image first, taking a bare *NINTENDO-HVC* header or the 16 byte FDS wrapper
ahead of it, then opens DISKSYS.ROM and reads 0x2000 bytes into RAM at 0xE000. A
failed open leaves the status at NOT FOUND and a short read at FAILED, and
either makes LoadFDS return zero, so the disk never starts. Nothing about the
image is checked past the length of that read. Cartridge titles never reach this
path.
ref: libmain.so LoadFDS 0x3bdd0-0x3c245, open 0x3bf97, read 0x3bfc5-0x3bff7,
iNES61-Ubuntu-x86-bin ines 0x38165-0x381a9
The startup palette is <HomeDir>/iNES.pal, assembled in Application from
GetHomeDir and held in PalName, which StartNES loads when it is set. LoadPAL
reads the first 256 bytes: exactly 192 is taken as 64 RGB triples fed to
SetColor one at a time, anything else is parsed as text. A missing file leaves
the built-in palette in place. The desktop distribution ships twenty candidates
under Palettes/ to copy into that single name, the Android package none.
ref: libmain.so Application 0x39739-0x39795, StartNES 0x3a685-0x3a694,
LoadPAL 0x3a870-0x3a930, iNES61-Windows-bin.zip Palettes/
LoadNES derives five companion names from the ROM path through MakeFileName:
.sav, .ips, .cht, .pal and .sta. Started with no ROM name at all, Application
substitutes CART.NES.
ref: libmain.so LoadNES 0x3bb49, 0x3bc43, 0x3bcdc, 0x3bd2b, 0x3bd52,
libmain.so Application 0x39887-0x3989c
Three package resources are read at runtime. assets/memfs.mp3 is passed whole to
jniStart and mounted as an in-memory filesystem carrying one entry, CART.NES.
assets/names.dat fills the title lookup and is then extended by
<HomeDir>/names.dat, whose entries win on collision. assets/ROOT.chts opens the
cheat browser, its Include lines pulling further sets through the same lookup,
which falls back to <HomeDir>/Cheats and to the home directory itself.
ref: MainActivity.java:2246-2257, libmain.so 0x11ca6-0x11ccc,
FileInfo.java:260-295, Cheatopedia.java:339, 448, 505-520,
CheatHelper.java:14-24
files:
- name: DISKSYS.ROM
system: nintendo-fds
required: true
min_size: 8192
validation: [size]
description: "Famicom Disk System BIOS"
note: "Opened by bare name, so it resolves against the working directory and then against the home directory. Read as 0x2000 bytes into RAM at 0xE000; a missing file reports NOT FOUND and a short read FAILED, and either aborts the disk load. Only the length of that read is checked, so a longer file passes on its first 8192 bytes and no hash is compared. The open is gzip transparent, so a compressed copy answers too."
source_ref: "libmain.so LoadFDS 0x3bdd0-0x3c245 (open 0x3bf97, read 0x3bfc5-0x3bff7), iNES61-Ubuntu-x86-bin ines 0x38165-0x381a9"
- name: iNES.pal
system: nintendo-nes
required: false
unsourceable: "any 64 colour palette the user picks, under the one name the code builds"
description: "startup colour palette"
note: "Built as <HomeDir>/iNES.pal and loaded at startup when present, otherwise the built-in palette stands. Exactly 192 bytes is read as 64 RGB triples, any other length as text. No single file answers to this name: the desktop distribution ships twenty palettes under other names for the user to copy over."
source_ref: "libmain.so Application 0x39739-0x39795, StartNES 0x3a685-0x3a694, LoadPAL 0x3a870-0x3a930"
- name: CART.NES
system: nintendo-nes
required: false
bundled: true
unsourceable: "arrives with the application package, not sourced separately"
category: game_data
size: 24592
md5: c1db31a2aa8a12432705fc8bd3c1156a
sha1: 486eede1bb748d95efc8a2a3d46ef1a530100559
crc32: "2e03cb7f"
description: "sample ROM image started when no game is given"
note: "The only entry in assets/memfs.mp3, which MainActivity reads whole and jniStart mounts as an in-memory filesystem. A 16 byte header plus one 16 KB PRG bank and one 8 KB CHR bank. Application passes this name to StartNES when it is invoked without a ROM, so launching through ES-DE never reaches it."
source_ref: "MainActivity.java:2246-2257, libmain.so 0x11ca6-0x11ccc, libmain.so Application 0x39887-0x3989c"
- name: names.dat
required: false
bundled: true
unsourceable: "arrives with the application package, not sourced separately"
category: game_data
size: 21390
description: "title database keyed by system and CRC32"
note: "Parsed from assets as lines of key colon title, keys reading NES-4C629A95. The copy at <HomeDir>/names.dat is read straight afterwards into the same map, so user entries extend and override the packaged ones."
source_ref: "FileInfo.java:260-295"
- name: ROOT.chts
required: false
bundled: true
unsourceable: "arrives with the application package, not sourced separately"
category: game_data
size: 27447
description: "cheat database read by the Cheatopedia browser"
note: "Looked up in the package assets first, then through the home directory, its subdirectories and Downloads, with <HomeDir>/Cheats as the default cheat directory. Include lines pull further sets through the same lookup; the package carries seven of them, battle-toads, dragon-warrior, dragon-warrior-2, fceu, final-fantasy-2, final-fantasy-3 and super-mario-brothers."
source_ref: "Cheatopedia.java:339, 448, 505-520, CheatHelper.java:14-24"
- name: "<game>.ips"
required: false
unsourceable: "a patch the user supplies for one title"
category: game_data
description: "IPS patch applied to the loaded ROM"
note: "Named from the ROM path by MakeFileName and applied by ApplyIPS when present. A patch chosen by hand goes through the same call in LoadFile."
source_ref: "libmain.so LoadNES 0x3bc43 (ApplyIPS 0x3bc93), LoadFile 0x3acf8"
- name: "<game>.cht"
required: false
unsourceable: "cheat codes the user writes or collects per title"
category: game_data
description: "cheat codes for one title"
note: "Named from the ROM path by MakeFileName and read by LoadCHT when present. Distinct from the .chts sets of the Cheatopedia browser. The menu handler reaches the same loader for a file picked by hand."
source_ref: "libmain.so LoadNES 0x3bcdc (LoadCHT 0x3bcec), Joystick 0x39e7f"
- name: "<game>.pal"
required: false
unsourceable: "any 64 colour palette the user picks for one title"
category: game_data
description: "colour palette for one title"
note: "Named from the ROM path by MakeFileName and read by LoadPAL when present, taking precedence over the startup palette for that game."
source_ref: "libmain.so LoadNES 0x3bd2b"
exclusion_note: >
Left out are the files iNES writes and reads back itself, which are emulator
state rather than anything a user obtains: <game>.sav holding battery backed
cartridge RAM, <game>.sta and the desktop builds' DEFAULT.STA holding saved
emulation state, and LOG.MID, the soundtrack the emulator records when the MIDI
log is toggled on. libOpenSLES.so is left out as the Android audio library the
system provides, dlopen'd by name from InitAudio and the only other literal
filename in the binary. The twenty palettes under Palettes/ in the Windows and
Ubuntu distributions are left out as the shipped candidates for iNES.pal, which
the emulator never opens under those names; four of them are the VS System
chip palettes, RP2C04-001, RP2C04-002, RP2C04-003 and RP2C05-004, and they
reach the emulator through the palette entries above rather than a path of
their own. Neither the VS System nor the FamilyBASIC keyboards need a file:
DISKSYS.ROM is the only image the binary names.
ref: libmain.so LoadNES 0x3bb49, 0x3bd52, libmain.so InitAudio 0x12cfc,
iNES61-Ubuntu-x86-bin ines DEFAULT.STA, iNES61-Windows-bin.zip Palettes/
+205
View File
@@ -0,0 +1,205 @@
emulator: Infinity
type: standalone
core_classification: community_fork
based_on: "fake-08 by jtothebell"
source: "https://play.google.com/store/apps/details?id=me.dt2dev.infinity"
upstream: closed-source
author: "GuoPing He"
profiled_date: "2026-08-11"
core_version: "5"
display_name: "PICO-8 (Infinity)"
cores:
- infinity
systems:
- pico8
mode: standalone
notes: |
Android package me.dt2dev.infinity, closed source, free with ads on Google Play.
Two builds are read here, versionCode 501 (versionName 5, minSdk 32, targetSdk 37,
xapk sha256 d0040583814a634c9aa2ff56b8245f1eb94f33ee0785c264bccfa5188cd3a273) and
versionCode 404 (minSdk 30), both carrying lib/arm64-v8a, the Play app signing
certificate sha256
eb7b3dd469cf44ab614abda7a367c20de540014a37bb2b915dffecf5f3268da2 and the Play
distribution source stamp.
The engine is fake-08 compiled into libinfinity.so and driven through a nine
method JNI bridge. Its Lua blobs are upstream: the settings cart is byte identical
to fake-08 814991a and the default cart differs only where VER_STR is spliced, the
Android build leaving that macro undefined so the boot cart reports v0.0.0.0. The
global Lua glue is patched in five places, all in the pause menu, where "exit to
menu" and "exit to settings" give way to a single "quit game" calling the native
__quitgame, navigation wraps around and the menu holds eight items instead of
nine. No menu entry reaches the cart browser or the settings cart any more, the
Compose interface listing the library instead.
ref: Fake8.java:27-44, 60, 95,
libinfinity.so arm64 .rodata DefaultCart / FakoSettings / p8GlobalLuaFunctions
blobs, symbol __quitgame
A cart never reaches the engine as a path. Java reads the bytes into a direct
ByteBuffer, from the application assets for a built-in cart or through the content
resolver for anything else, then hands the buffer to nativeStart with the save
state name <cart>.ss and the application's internal files directory, where a cdata
subdirectory holds the <id>.p8d.txt cart data files. No storage permission is
declared: the cart library is a directory tree granted through the storage access
framework, and the only write outside internal storage is the .nomedia file that
the "Show Carts in Photos" switch creates or deletes there.
ref: pg0.java:50-92, ok0.java:139-146, yk0.java:54-63,
libinfinity.so arm64 .rodata ".p8d.txt"
ES-DE targets me.dt2dev.infinity/.SchemeActivity with a VIEW intent on its own
content provider. The activity reads the display name from the provider, accepts
it only when it ends in .p8 or .p8.png, strips that extension and forwards
infinity://game with cart_uri, filename, save_state=false and assets=false to
MainActivity. The manifest filter announces the content scheme with the image/png
type, which an explicit component bypasses.
ref: SchemeActivity.java:25-84, AndroidManifest.xml activity me.dt2dev.infinity.SchemeActivity
Two graphics backends. OpenGL ES is the default and carries its three fragment
programs as GLSL string literals inside the library. Vulkan, offered as beta,
reads SPIR-V modules from the application assets instead, one vertex module plus
one fragment module chosen by the display filter. Version 501 ships no shader
asset at all, version 404 ships the four listed below, and both libraries name
them; the loader takes no null check between AAssetManager_open and
AAsset_getLength. The manifest requires only abi and density splits, so no asset
pack can deliver them separately.
ref: vh.java:381 graphics_backend default 0, vh.java:297 display_filter default 0,
libinfinity.so arm64 0xa6ee0-0xa7098, 0x9c72c-0x9c828
files:
- name: common.vert.spv
path: "assets/shaders/common.vert.spv"
system: pico8
required: false
bundled: true
unsourceable: "ships inside the application package"
category: game_data
size: 748
md5: 541e16aa5651699bb085c954ec1b043e
sha1: 20815dcbfaff559ec0faf0f890ad473a3b784ed0
description: "Vulkan vertex shader module"
note: "Opened first whenever the Vulkan backend starts, whatever the display filter. Bytes from versionCode 404."
source_ref: "libinfinity.so arm64 0xa7078, 0x9c780-0x9c78c"
- name: none.frag.spv
path: "assets/shaders/none.frag.spv"
system: pico8
required: false
bundled: true
unsourceable: "ships inside the application package"
category: game_data
size: 580
md5: 8437c4e750da7183dffc7b98f9938377
sha1: f3aae57c3f776d35ddf2690679221c05745dcc8b
description: "Vulkan fragment shader module, unfiltered output"
note: "Chosen for any display filter value other than 1 and 2, the stored default being 0. Bytes from versionCode 404."
source_ref: "libinfinity.so arm64 0xa6f04-0xa6f40, 0xa7090-0xa7098, 0x9c7ec-0x9c828"
- name: crt.frag.spv
path: "assets/shaders/crt.frag.spv"
system: pico8
required: false
bundled: true
unsourceable: "ships inside the application package"
category: game_data
size: 1864
md5: c4878a2aaee2e3c26d3d4aeeeaa3ac25
sha1: 92822c268c59f60fe9a4098768be599006f7f1ab
description: "Vulkan fragment shader module, CRT filter"
note: "Chosen when the display filter is 1. Bytes from versionCode 404."
source_ref: "libinfinity.so arm64 0xa6f34-0xa6f40, 0xa7090-0xa7098, 0x9c7ec-0x9c828"
- name: lcd.frag.spv
path: "assets/shaders/lcd.frag.spv"
system: pico8
required: false
bundled: true
unsourceable: "ships inside the application package"
category: game_data
size: 1700
md5: 76f36cbe69708d631ae356bcd49274b2
sha1: 1a3c0aa0b93cc1ee4690b2c0d593497d003b6165
description: "Vulkan fragment shader module, LCD filter"
note: "Chosen when the display filter is 2. Bytes from versionCode 404."
source_ref: "libinfinity.so arm64 0xa6f10-0xa6f30, 0xa7090-0xa7098, 0x9c7ec-0x9c828"
- name: 7x7demake.p8.png
path: "assets/7x7demake.p8.png"
system: pico8
required: false
bundled: true
unsourceable: "ships inside the application package"
category: game_data
size: 7443
md5: 1d6416a591c99b03c58b41f0dd5537b0
sha1: 35ec298b803b29b6bee6d89f46507c50a3461b35
description: "Built-in cart, 7x7 Demake"
note: "Held as a file:///android_asset URI and prepended to the library when the built-in carts switch is on, the loader taking the path after the scheme and reading it from the assets."
source_ref: "qd.java:15-17, pg0.java:50, ok0.java:139-142"
- name: tictactoe.p8.png
path: "assets/tictactoe.p8.png"
system: pico8
required: false
bundled: true
unsourceable: "ships inside the application package"
category: game_data
size: 7537
md5: 4f508068de9190c06775bfb4e47e2654
sha1: 5a7d0bd289e971a4ea6dfb09704b56252b85fe01
description: "Built-in cart, Infinity Tic Tac Toe"
note: "Second entry of the same table, loaded the same way."
source_ref: "qd.java:18-20, pg0.java:50, ok0.java:139-142"
- name: fake-08.md
path: "assets/fake-08.md"
system: pico8
required: false
bundled: true
unsourceable: "ships inside the application package"
category: game_data
size: 5543
md5: a382a7e446335d3ea20f85a21a5846ec
sha1: 6d7e23241be0a110bc59110773963f678e199c32
description: "Licence text shown for fake-08"
note: "First of four names paired with the library names fake-08, coil, okio and DocumentFileCompat, each read from the assets when its entry is opened."
source_ref: "ry0.java:14-15, yq0.java:125"
- name: coil.txt
path: "assets/coil.txt"
system: pico8
required: false
bundled: true
unsourceable: "ships inside the application package"
category: game_data
size: 11347
md5: 06f4dfd96b1e7f0b6d5cc7f7163c7904
sha1: 14d28015d8a8c902d219b6a24d2241aa061dda09
description: "Licence text shown for coil"
source_ref: "ry0.java:14-15, yq0.java:125"
- name: okio.txt
path: "assets/okio.txt"
system: pico8
required: false
bundled: true
unsourceable: "ships inside the application package"
category: game_data
size: 11358
md5: 3b83ef96387f14655fc854ddc3c6bd57
sha1: 2b8b815229aa8a61e483fb4ba0588b8b6c491890
description: "Licence text shown for okio"
source_ref: "ry0.java:14-15, yq0.java:125"
- name: dfc.txt
path: "assets/dfc.txt"
system: pico8
required: false
bundled: true
unsourceable: "ships inside the application package"
category: game_data
size: 11357
md5: 86d3f3a95c324c9479bd8986968f4327
sha1: 7df059597099bb7dcf25d2a9aedfaf4465f72d8d
description: "Licence text shown for DocumentFileCompat"
source_ref: "ry0.java:14-15, yq0.java:125"