Skip to content

Xenia Edge - RetroBIOS

Type standalone
Classification Community forks
Source https://github.com/has207/xenia-edge
Version edge
Profiled 2026-09-17
Cores xenia-edge
Systems microsoft-xbox-360
Technical notes

Xbox 360 emulator forked from Xenia Canary, with a wxWidgets front end, a game library, and Direct3D 12, Vulkan and Metal backends. Releases are tagged by short commit on the edge branch and ship as xenia_edge_linux.AppImage, xenia_edge_macos.dmg and xenia_edge_windows.zip. ES-DE finds it through the XENIA-EDGE rule and runs xenia_edge <rom>; RetroDECK unpacks the AppImage into a xenia-edge component and executes bin/xenia_edge.

No Xbox 360 system file is read. xboxkrnl, xam and xbdm are C++ HLE modules registered at startup (src/xenia/emulator.cc:395-404), the XEX2 retail and devkit AES keys are constant arrays in the binary (src/xenia/cpu/xex_module.cc:67-72), and every XConfig setting is synthesised from cvars and constants by BuildSetting rather than read from a flash image (src/xenia/kernel/xconfig.cc:87-246, 259-272). When the launched title is itself a system title the kernel resolves xam.xex, then $flash_xam.xex, through the guest filesystem under the \SystemRoot symlink pointing at that title's own directory (src/xenia/emulator.cc:777-792); that is a companion module inside the dump the user launched, not a host-side lookup.

The fork's data ships inside the executable. assets/font/Inter-VariableFont 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 next to the binary (src/xenia/ui/CMakeLists.txt:48-76). The UI font is read from that buffer with AddFontFromMemoryTTF (src/xenia/ui/imgui_drawer.cc:374-384), and xe::EmbeddedBundle decodes the SDL controller mappings (src/xenia/hid/sdl/sdl_input_driver.cc:237-254), the canary game patches (src/xenia/patcher/patch_db.cc:318-324), the game-compatibility master.json (src/xenia/app/game_compat_db.cc:47-58) and the x360db games.json (src/xenia/app/game_title_db.cc:50-60).

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 Inter (src/xenia/ui/imgui_drawer.cc:39-44, 360-393), mappings_file to the embedded controller DB (src/xenia/hid/sdl/sdl_input_driver.cc:36-39, 237-241), achievement_sound_path leaves the achievement sound silent (src/xenia/ui/audio_helper.cc:21-24, 38-52). For glyphs the embedded font lacks, the host font comes from the OS: tahoma.ttf and msgothic.ttc out of the Windows fonts folder, or the fontconfig sans-serif and CJK matches on Linux (src/xenia/ui/imgui_drawer.cc:395-477, 479-563).

Everything under the storage root is written by the emulator or dropped in by the user: xenia-edge.config.toml and per-game .config.toml (src/xenia/config.cc:45-48), patches/*.patch.toml read on top of the embedded set (src/xenia/emulator.cc:390, src/xenia/patcher/patch_db.cc:34-52, 60-75) and listed by the patches panel beside the bundled ones (src/xenia/patcher/patch_db.cc:373-397), plugins/<title id>/plugins.toml behind allow_plugins, which defaults false (src/xenia/patcher/plugin_loader.cc:16-38, 58-72), content (src/xenia/app/xenia_main.cc:563-566), scratch, cache0, cache1, cache and mu (src/xenia/emulator.cc:1479-1547). portable.txt next to the executable keeps the storage root there instead of the user folder (src/xenia/app/xenia_main.cc:524-538).

On Windows the Direct3D 12 and Vulkan runtimes are not in the release zip, which holds only the build output (.github/workflows/build.yml:392-402). The emulator looks for them in D3D12/ and Vulkan/ beside the executable and offers to download pinned archives from Microsoft and LunarG, gated by d3d12_install_missing_runtime, vulkan_install_missing_loader and update_vc_runtime, all default true (src/xenia/ui/redist_installer_wx.cc:51-70). Each archive is checked against a SHA-256 held in the source before its members are extracted, so the hash covers the archive and never the extracted DLL, which is why no hash is declared on the entries below. The Linux and macOS builds need none of them: MoltenVK is statically linked and the Vulkan loader comes from the system (src/xenia/ui/vulkan/vulkan_instance.cc:66-72, 81-83).

5 files | 2 required, 3 optional | 5 in repo, 0 missing

dxil.dll required in repo
DXIL signer and validator from DirectX Shader Compiler 1.9.2602.24

D3D12Core.dll required in repo
DirectX 12 Agility SDK 1.619.3 runtime

D3D12SDKLayers.dll optional in repo
Direct3D 12 debug layer from Agility SDK 1.619.3

vulkan-1.dll optional in repo
Khronos Vulkan loader 1.4.350.0 for the Vulkan backend on Windows

vc_redist.x64.exe optional in repo
Microsoft Visual C++ 2015-2022 redistributable installer

Generated on 2026-10-10T11:26:02Z