mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-20 10:23:16 -05:00
Profiles, the wiki, comments, docstrings, command output and schema descriptions carried em-dashes, clause-joining semicolons, unicode arrows, box-drawing banners and check-mark glyphs. Each sentence was rewritten rather than having its character swapped. Hashes, paths, source_ref values and every cited file:line are unchanged, which a comparison of each parsed profile against the previous revision confirms. validate_pr comments now say PASS and FAIL in words, and source_ref values in a profile's structured blocks render as code. test_prose_style fails if any of these comes back, in tracked files or in the generated site.
208 lines
8.7 KiB
YAML
208 lines
8.7 KiB
YAML
emulator: TheXTech
|
|
type: standalone
|
|
core_classification: game_engine
|
|
source: "https://github.com/TheXTech/TheXTech"
|
|
upstream: "https://github.com/TheXTech/TheXTech"
|
|
profiled_date: "2026-10-04"
|
|
source_commit: "a72915cd9a2c811f2388423775f20d75bb2107bd"
|
|
display_name: "TheXTech"
|
|
cores: []
|
|
systems: [smbx]
|
|
|
|
notes: |
|
|
C++ reimplementation of the SMBX 1.3 engine. The engine itself ships
|
|
no game assets. Asset packs are searched at startup under every root
|
|
of AppPathManager::assetsSearchPath(): the root itself (legacy
|
|
layout), then each directory or archive of its assets/ folder.
|
|
ref: src/main/asset_pack.cpp:249-378 (s_find_asset_packs),
|
|
lib/AppPath/private/app_path.cpp:135-181
|
|
|
|
A directory is scanned when it carries graphics/ui/, an archive when
|
|
it carries _meta.ini. Two descriptors are recognized:
|
|
_meta.ini archive pack ([content] engine "TheXTech", platform
|
|
matching the running target, pack-id)
|
|
gameinfo.ini directory pack ([game] id, menu images under
|
|
[android])
|
|
A pack under assets/ is ignored when no id could be read, while the legacy
|
|
root pack needs none.
|
|
ref: src/main/asset_pack.cpp:125-207, 334-339
|
|
|
|
The pack-selection menu loads an icon, a logo and a background. Only
|
|
the logo is checked: without it the pack is ignored ("Could not load
|
|
UI assets from possible asset pack").
|
|
ref: src/main/asset_pack.cpp:115-117, 225-233, 282-283
|
|
|
|
The selected pack is then loaded by GFX_t::load, which fails when one
|
|
of the UI images it requires from graphics/ui/ is missing.
|
|
ref: src/gfx.cpp:121-229, src/main/asset_pack.cpp:415-438
|
|
|
|
TheXTech is content-agnostic. The reference packs that TheXTech
|
|
releases alongside the engine are the SMBX 1.3 asset pack
|
|
(`thextech-assets-smbx13`) and the free Adventures of Demo pack
|
|
(`thextech-assets-adventures-of-demo`). Any pack that satisfies the
|
|
structure above runs.
|
|
|
|
Paths below are written from a search root. TheXTech/ is the name the
|
|
build gives its user directory (THEXTECH_DIRECTORY_PREFIX) and its
|
|
system directory, and the application directory is searched the same way.
|
|
ref: CMakeLists.txt:297, lib/AppPath/private/app_path_unix.cpp:46, 103,
|
|
lib/AppPath/private/app_path.cpp:87
|
|
|
|
files:
|
|
# ================================================================
|
|
# Pack discovery
|
|
# ================================================================
|
|
|
|
- name: "assets/"
|
|
type: directory
|
|
category: game_data
|
|
path: "TheXTech/assets/"
|
|
required: false
|
|
source_ref: "src/main/asset_pack.cpp:131-181, 290-300, 313-319"
|
|
note: "Every file directly under assets/ is opened as an archive and kept as a pack when it holds _meta.ini, and every subdirectory is kept when it holds graphics/ui/. _meta.ini is read only through the archive prefix: [content] engine must be TheXTech, platform must match the build, pack-id names the pack."
|
|
|
|
- name: "gameinfo.ini"
|
|
category: game_data
|
|
path: "TheXTech/gameinfo.ini"
|
|
required: false
|
|
source_ref: "src/main/asset_pack.cpp:126, 182-190, src/main/game_info.cpp:143"
|
|
note: "Directory pack descriptor. [game] id names the pack, [android] logo/background override the menu images."
|
|
|
|
- name: "thextech.ini"
|
|
category: game_data
|
|
path: "TheXTech/thextech.ini"
|
|
required: false
|
|
source_ref: "lib/AppPath/private/app_path.cpp:98, 196-222"
|
|
note: "Read from the application directory at startup. [Main] force-portable = true makes that directory the user directory, so settings and saves stay next to the executable."
|
|
|
|
# ================================================================
|
|
# Images of the pack-selection menu
|
|
# ================================================================
|
|
|
|
- name: "thextech_128.png"
|
|
category: game_data
|
|
path: "TheXTech/graphics/ui/icon/thextech_128.png"
|
|
required: false
|
|
source_ref: "src/main/asset_pack.cpp:115, 225"
|
|
note: "Pack icon. Loaded during pack scan, result not checked."
|
|
|
|
- name: "MenuGFX2.png"
|
|
category: game_data
|
|
path: "TheXTech/graphics/ui/MenuGFX2.png"
|
|
required: true
|
|
source_ref: "src/main/asset_pack.cpp:116, 226-230, 334-335, src/gfx.cpp:201"
|
|
note: "Main menu logo. Pack ignored if no logo loads, and GFX_t::load requires it as well."
|
|
|
|
- name: "background2-2.png"
|
|
category: game_data
|
|
path: "TheXTech/graphics/background2/background2-2.png"
|
|
required: false
|
|
source_ref: "src/main/asset_pack.cpp:117, 227-233"
|
|
note: "Menu background. Loaded during pack scan, result not checked."
|
|
|
|
# ================================================================
|
|
# Core content (engine iterates on disk, filenames are the pack's
|
|
# own, the directory contract is what the engine checks)
|
|
# ================================================================
|
|
|
|
- name: "graphics/"
|
|
type: directory
|
|
category: game_data
|
|
path: "TheXTech/graphics/"
|
|
required: true
|
|
source_ref: "src/main/asset_pack.cpp:274, 326-327, src/gfx.cpp:121-229, src/load_gfx.cpp:120-123"
|
|
note: "graphics/ui/ must exist for a directory to be scanned as a pack, and GFX_t::load rejects the pack when a required UI image is missing."
|
|
|
|
- name: "fonts/"
|
|
type: directory
|
|
category: game_data
|
|
path: "TheXTech/fonts/"
|
|
required: false
|
|
source_ref: "src/fontman/font_manager.cpp:270, 477-499"
|
|
note: "Raster fonts described by *.font.ini files. Without the directory, or with no font in it, the built-in fallback fonts are loaded."
|
|
|
|
- name: "languages/"
|
|
type: directory
|
|
category: game_data
|
|
path: "TheXTech/languages/"
|
|
required: false
|
|
source_ref: "lib/AppPath/private/app_path.cpp:311-315, src/core/language/language_common.cpp:72-83, 104-122"
|
|
note: "thextech_<lang>.json and assets_<lang>.json translations. Without the directory no translation is listed."
|
|
|
|
- name: "sound/"
|
|
type: directory
|
|
category: game_data
|
|
path: "TheXTech/sound/"
|
|
required: false
|
|
source_ref: "src/sound.cpp:1319"
|
|
note: "SFX directory, files named by sounds.ini. Game runs without sounds."
|
|
|
|
- name: "music/"
|
|
type: directory
|
|
category: game_data
|
|
path: "TheXTech/music/"
|
|
required: false
|
|
source_ref: "src/sound.cpp:1318"
|
|
note: "Music tracks, files named by music.ini."
|
|
|
|
- name: "sounds.ini"
|
|
category: game_data
|
|
path: "TheXTech/sounds.ini"
|
|
required: false
|
|
source_ref: "src/sound.cpp:1322, 1348-1354, 1363"
|
|
note: "SFX index. A message box reports its absence and the game runs without SFX."
|
|
|
|
- name: "music.ini"
|
|
category: game_data
|
|
path: "TheXTech/music.ini"
|
|
required: false
|
|
source_ref: "src/sound.cpp:1321, 1341-1347, 1356"
|
|
note: "Music index. A message box reports its absence and the game runs without default music."
|
|
|
|
- name: "editor.ini"
|
|
category: game_data
|
|
path: "TheXTech/editor.ini"
|
|
required: false
|
|
source_ref: "src/editor/editor_custom.cpp:962, 979, src/main/translate.cpp:888"
|
|
note: "Item lists of the built-in editor, read when the translation table is built."
|
|
|
|
- name: "intro.lvlx"
|
|
category: game_data
|
|
path: "TheXTech/intro.lvlx"
|
|
aliases: ["intro.lvl"]
|
|
required: true
|
|
source_ref: "src/game_main.cpp:172-185, 224-250, 1095-1106"
|
|
note: "Level shown behind the main menu. intro.lvl is opened when intro.lvlx is absent, and a level picked from introset/ takes the place of both. With none of the three the game exits on a fatal error."
|
|
|
|
- name: "introset/"
|
|
type: directory
|
|
category: game_data
|
|
path: "TheXTech/introset/"
|
|
required: false
|
|
source_ref: "src/game_main.cpp:194-222, 247, src/main/level_file.cpp:321-339"
|
|
note: "Directory of .lvl/.lvlx intro levels. One is picked at random when present, otherwise the root intro level is opened. The Adventures of Demo pack carries none, and these 19 levels come from the introset/ of the Nostalgic Paradise pack (Blue Edition 0.2.8b, nostalgic-paradise-stable.7z). A level reads custom graphics from introset/ and from the subfolder named after it (07/, 08/, 10/), and every other block, BGO, NPC and background ID they use is present in the Adventures of Demo graphics."
|
|
|
|
- name: "outro.lvlx"
|
|
category: game_data
|
|
path: "TheXTech/outro.lvlx"
|
|
aliases: ["outro.lvl"]
|
|
required: false
|
|
source_ref: "src/game_main.cpp:857-869"
|
|
note: "Level shown behind the credits, unless the episode names its own. outro.lvl is opened when outro.lvlx is absent."
|
|
|
|
- name: "worlds/"
|
|
type: directory
|
|
category: game_data
|
|
path: "TheXTech/worlds/"
|
|
required: false
|
|
source_ref: "src/main/menu_main.cpp:361-370"
|
|
note: "Episodes shipped with the pack, listed next to the user's worlds directory."
|
|
|
|
- name: "battle/"
|
|
type: directory
|
|
category: game_data
|
|
path: "TheXTech/battle/"
|
|
required: false
|
|
source_ref: "src/main/menu_main.cpp:701-706"
|
|
note: "Battle mode levels shipped with the pack."
|