emulators/xenia-edge: add native Linux Xbox 360 emulator#15668
Conversation
Xenia Edge is a native Linux port of Xenia — no Wine required, uses Vulkan + ALSA/SDL directly. - New package: CMake build from has207/xenia-edge, Qt6/SDL2/Vulkan/lz4/ALSA - Build patches: fix missing <tuple> and <algorithm> headers for strict C++20 compliance with clang 18+ / GCC 13+ - Pre-configure hook generates version.h (normally produced by xb script) - ConfigGen: --storage_root/--content_root/--cache_root passed as CLI flags (must be CLI — storage_root is resolved before the TOML config is read) - Paths: configs in /userdata/system/configs/xenia_edge, saves in /userdata/saves/xbox360, patches in /userdata/system/configs/xenia_edge/patches (via datainit) - ES features: resolution, VSync, ALSA/SDL audio, FSR/CAS/FXAA post-processing, language and country using xenia-edge string keys (not integers) - apply_patches preserved across ES launches; patch is_enabled flags managed by xenia UI only - Desktop launcher for PCManFM, conditional on BR2_PACKAGE_XENIA_EDGE - es_systems.yml: xenia-edge added to xbox360 emulators
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
A good starting point although I tested earlier versions for v43 and they were underwhelming. What makes this better? |
I’m very interested to know what was disappointing about it. For me, I played GOW 3 using Vulkan, and the game was perfectly smooth, playable, with no slowdowns or graphical glitches. But I’d really like to know which games are causing problems, so I can test them on my PC as well and confirm whether the issue comes from the emulator itself or from Batocera... if that can help...? Je suis très interressé pour savoir ce qui décevant ? |
|
maybe the later versions are catching up, let me know when it's ready |
- Config.in: select BR2_PACKAGE_XENIA_EDGE for x86_64 (native Linux, no Wine) - batocera-config-xenia-edge: redirect log to userdata for persistence
- Bump version to b0a1ea5f8 (111 new commits, Qt→wxWidgets migration) - Dependencies: replace qt6base/qt6declarative with gtk3+pcre2 (wxWidgets uses GTK3) - Remove QT_DIR cmake env (no longer needed) - Remove Qt xcb platform plugin copy - Remove runtime game-patches clone (now embedded in binary at build time) - Add patch 0003: propagate --storage_root/--content_root/--cache_root/--log_file in both LaunchNewTitle() and LaunchTitleInNewProcess() fork/exec calls so paths are not lost when xenia relaunches for a game title
|
Great work! Would be very interesting to have this system in Batocera! Controller based emulated systems are the most seamless to have integrated imo |
Summary
Adds Xenia Edge as a new Xbox 360 emulator — a native Linux port of Xenia that runs without Wine, using Vulkan and ALSA/SDL directly.
Changes
New package (
package/batocera/emulators/xenia-edge/)<tuple>and<algorithm>headers no longer pulled transitivelyversion.h(normally produced by upstreamxbscript)datainit→ land in/userdata/system/configs/xenia_edge/patches/at first bootConfigGen (
generators/xenia_edge/xenia_edgeGenerator.py)--storage_root/--content_root/--cache_rootpassed as CLI flags (required:storage_rootis resolved before the TOML config is read)"French","Spain") not integersapply_patchesonly overwritten when explicitly enabled in ES; individual patchis_enabledflags managed by xenia UI onlyES features (
xenia-edge.emulator.yml)Other
es_systems.yml: xenia-edge added to xbox360 emulatorsBR2_PACKAGE_XENIA_EDGE)Test plan
/userdata/system/configs/xenia_edge)is_enabledflags preserved across ES launches