mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-10 13:33:24 -05:00
Thirty profiles from the ES-DE batch, each source-verified by the session that wrote it and passing the schema and semantic checks. Five declare no files at all and say why in notes referenced to the code: NGP.emu, openbor, Plastic, Swan.emu and XeniOS. Twenty-eight files come with them, every one declared by the profile that needs it and matching the hash it declares, with no duplicate of anything already held: the NetherSX2 Turnip Classic assets, the Speccy machine ROMs, the Virtual Boy homebrew the app bundles, Snes9x EX+'s bundled game, and sixtyforce's Overrides.plist, which carries a size and no hash because the binary never checks one. supermodel gains the four data files it reads from its install tree, hakux marks its controller map unsourceable now that the asset manager is known to read inside the package, and nethersx2 sheds the two core aliases that belong to the Turnip profiles.
91 lines
5.1 KiB
YAML
91 lines
5.1 KiB
YAML
emulator: XeniOS
|
|
type: standalone
|
|
core_classification: community_fork
|
|
source: "https://github.com/xenios-jp/XeniOS"
|
|
upstream: "https://github.com/has207/xenia-edge"
|
|
profiled_date: "2026-08-12"
|
|
source_commit: "87b176a078c316fde3adf67a217f0c44615b0e0d"
|
|
upstream_commit: "07021f019cf55105bc26c0474e0b0835808353e2"
|
|
core_version: "2.0.1"
|
|
display_name: "Microsoft - Xbox 360 (XeniOS)"
|
|
cores:
|
|
- "xenios"
|
|
- "XENIOS"
|
|
systems:
|
|
- microsoft-xbox-360
|
|
mode: standalone
|
|
|
|
notes: |
|
|
Xbox 360 emulator for macOS and iOS, forked from Xenia Edge by xenios-jp and
|
|
published as xenios_macos_apple_silicon.dmg, xenios_macos_intel.dmg,
|
|
xenios_macos_universal.dmg and xenios_ios_iphone_ipad.ipa. The 2.0.1 disk
|
|
image holds a single bundle, Xenia-edge.app, carrying the executable, an
|
|
icon, a compiled asset catalog and two dylibs under Contents/Frameworks.
|
|
|
|
Rendering runs on Metal. Guest DXBC is converted to DXIL through
|
|
libdxilconv.dylib, built from the fork's own DirectX Shader Compiler branch,
|
|
then to Metal IR through Apple's Metal Shader Converter
|
|
(libmetalirconverter.dylib), which the build requires present before it will
|
|
configure. Both are linked as imported shared libraries and copied into the
|
|
bundle before it is signed (third_party/CMakeLists.txt:432-448, 489-579,
|
|
src/xenia/app/CMakeLists.txt:347-363, 371-378), so the code calls IRCompilerCreate
|
|
and DxcCreateInstance as ordinary symbols and never names either file
|
|
(gpu/metal/metal_shader_converter.cc:83, gpu/metal/dxbc_to_dxil_converter.cc:103).
|
|
MoltenVK is statically linked and its entry points resolve as real symbols,
|
|
so the Vulkan backend loads no loader library
|
|
(ui/vulkan/vulkan_instance.cc:30-33, 81-82).
|
|
|
|
No Xbox 360 system file is read. xboxkrnl, xam and xbdm are C++ HLE modules
|
|
registered at startup (emulator.cc:425-427), the XEX1 and XEX2 retail keys
|
|
and the zeroed devkit key are constexpr arrays in the binary
|
|
(cpu/xex_module.cc:55-63, used at 344 and 503), and every XConfig setting is
|
|
assembled from cvars and constants by BuildSetting, in a file that makes no
|
|
filesystem call at all (kernel/xconfig.cc:87-246). Launching a system title
|
|
symlinks \SystemRoot to that title's own mount and resolves xam.xex, then
|
|
$flash_xam.xex, through the guest filesystem (emulator.cc:744-762): a
|
|
companion module inside the dump the user launched, not a host lookup.
|
|
|
|
The fork's data ships inside the executable. assets/font and assets/icon are
|
|
linked in by xe_embed_binary_assets and the 33 assets/locale catalogues are
|
|
compiled to .mo at configure time and bundled, with no .mo written beside the
|
|
binary (ui/CMakeLists.txt:55-58, 64-83). The UI font is read from that buffer
|
|
with AddFontFromMemoryTTF (ui/imgui_drawer.cc:367-377), and xe::EmbeddedBundle
|
|
decodes the SDL controller mappings (hid/sdl/sdl_input_driver.cc:148-165), the
|
|
canary game patches (patcher/patch_db.cc:303-318) and the canary.json and
|
|
stable.json compatibility lists (app/game_compat_db.cc:65-79).
|
|
|
|
Three cvars accept a file and name none by default, so nothing is expected at
|
|
a fixed path: custom_font_path falls back to the embedded font
|
|
(ui/imgui_drawer.cc:39-44, 353-377), mappings_file to the embedded controller
|
|
DB (hid/sdl/sdl_input_driver.cc:35-39, 148-152), achievement_sound_path leaves
|
|
the achievement sound silent (ui/audio_helper.cc:21-25, 44-48). Each carries an
|
|
UPDATE_from_path rule that clears the earlier default out of an existing config.
|
|
|
|
Everything under the storage root is written by the emulator or dropped in by
|
|
the user: xenia-edge.config.toml and per-title config/<title id>.config.toml
|
|
(config.cc:44-52), patches/*.patch.toml read on top of the embedded set
|
|
(patcher/patch_db.cc:29-60, app/xenia_main_ios.mm:275-300), plugins/<title id>/plugins.toml
|
|
behind allow_plugins, which defaults false (patcher/plugin_loader.cc:16-18, 40-62),
|
|
content, cache_host and the per-module executable_addr_flags.bin analysis cache
|
|
(app/xenia_main.cc:588-613, cpu/xex_module.cc:1336-1343). portable.txt next to
|
|
the executable keeps the storage root there instead of the user folder
|
|
(app/xenia_main.cc:556-570). On iOS the touch layouts live as
|
|
Documents/touch-layouts/<id>.toml, written by the layout editor
|
|
(ui/ios/touch/touch_layout_store_ios.mm:117-139).
|
|
|
|
files: []
|
|
|
|
exclusion_note: >
|
|
XeniOS emulates the Xbox 360 by high-level emulation and reads no BIOS,
|
|
firmware, NAND image, flash dump or keyvault at any point: the kernel, XAM
|
|
and XBDM are compiled-in modules, the XEX AES keys are constant arrays and
|
|
XConfig is synthesised. Its own data (UI font, icons, locale catalogues, SDL
|
|
controller mappings, game patches, compatibility lists) is compressed into
|
|
the executable through xe_embed_binary_assets and xe_embed_compressed_bundle,
|
|
so none of it exists as a file beside the binary. The three cvars that accept
|
|
a path default to empty and fall back to those embedded copies. The two
|
|
dylibs under Contents/Frameworks, libmetalirconverter.dylib and
|
|
libdxilconv.dylib, are shader translation components linked at build time and
|
|
resolved by the loader through @rpath; no code path names them, and they are
|
|
obtained by the same download that provides the executable.
|