Commit Graph

237 Commits

Author SHA1 Message Date
MechaCat02
7b6902e08f [WIP] Audio/threading fixes + crash investigation; NEW ORACLE: crash is ours not the game
Some checks failed
Orchestrator / Commit Message Validation (push) Has been skipped
Orchestrator / Lint (push) Failing after 1m34s
Orchestrator / Windows (x86-64) (push) Has been skipped
Orchestrator / Linux (x86-64) (push) Has been skipped
Orchestrator / Create Release (push) Has been skipped
Snapshot for handoff. Contains the mission-audio + threading fixes and the
crash-investigation instrumentation (all diagnostic cvars default-OFF).

Fixes (behavioral):
- threading_posix.cc: reap-once guard on PosixCondition<Thread>::post_execution
  (double pthread_join at mission teardown -> fault loop -> audio death + freeze).
- xma_decoder.cc: work_event_->Set() in Pause() so the idle XMA worker observes
  paused_ and signals pause_fence_ (Pause() deadlock -> permanent audio death).
- audio_system / xma_context_master / xboxkrnl_audio / apu_flags / alsa: mission
  audio keepalive + guest_audio_flags + watchdogs.

Instrumentation (additive, default-off): xboxkrnl_debug cache-throw diag +
guest-catch dispatcher, xex_module PE/PDATA/EH scans, kernel_state mem_watch
(NOTE: mem_watch DEFAULTS TRUE -- an always-on host poll thread; prime crash suspect).

NEW ORACLE (see HANDOFF-crash-oracle-2026-07-16.md): stock 6e5b8324f built with
our toolchain + zero custom code = NO crash, NO sound-stop, plays the Ready Room.
=> the Ready-Room out_of_range crash is introduced by THESE changes, not the game
and not the (LTO-broken) build chain. Bisection plan + suspect ranking in the note.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 22:43:50 +02:00
Gliniak
99fd19d025 [XAM] Limit XContentQueryVolumeDeviceType to XContent packages
Some checks failed
Orchestrator / Commit Message Validation (push) Has been skipped
Orchestrator / Lint (push) Successful in 1m23s
Orchestrator / Windows (x86-64) (push) Failing after 5m18s
Orchestrator / Linux (x86-64) (push) Failing after 22m34s
Orchestrator / Create Release (push) Has been skipped
- Changed mount path for XContent packages from Cdrom to Package_0
Normally it should generate specific value instead of 0, but for now 0 is enough
2026-06-05 16:13:31 +02:00
Gliniak
99ea6da18a [XConfig] Implementation of XConfig 2026-05-19 07:50:16 +02:00
Adrian
2072d9bdf1 [APP] Limit logging SPA properties
Fixed Cracdown logging large tabulate table causing garbage text in the log.
2026-05-08 20:02:20 +02:00
Gliniak
74f34818e7 [Lint] Added InsertBraces to linter to unify codebase to one standard 2026-05-08 18:54:50 +02:00
Michael Oliver
6de80dffe2 [Emulator] Load title plugins before main thread execution begins
This keeps the title thread suspended until plugins are loaded, allowing early init and hook setup before guest code starts running.
2026-04-29 20:20:08 +02:00
Herman S.
2590f03bc1 [Emulator] Delegate to UI thread instead of assert 2026-04-13 12:20:22 +09:00
Herman S.
883c2030d0 [ARM64] Initial commit for arm64 backend
Based entirely off existing xbyak x86 implementation and available
tests. Still needs a lot of optimization and testing on non-Windows
platforms.

So far passes all tests and boots at least some games on Windows.
2026-03-22 15:57:37 +09:00
Herman S.
dac9883473 [Emulator] Add access violation details to crash dump messages 2026-03-10 23:55:50 +09:00
Herman S.
64e51c544e [GPU] Add vulkan shader disk storage / startup loading
Big refactor of the shader storage to allow both backends to share code
2026-03-10 00:49:56 +09:00
Gliniak
9bfaff5040 [XAM] Fixed issue with XamContentCreate reassigning already assigned symlinks 2026-02-19 21:02:45 +01:00
Gliniak
016797d19c [Emulator] Return error when device initialization fails
This should prevent "Install Content" option to freeze in specific scenarios
2025-12-01 18:38:18 +01:00
Adrian
6783bea223 [XAM] Implemented SPA XMAT 2025-11-23 19:17:39 +01:00
Adrian
d915dd808d [XAM] Implemented SPA XRPT 2025-11-22 21:19:49 +01:00
Adrian
243178a310 [XAM] Implemented SPA Stats Views 2025-11-18 21:27:45 +01:00
Adrian
6a8193d360 [XAM] Added achievement types to log table 2025-10-30 17:58:21 +01:00
Gliniak
dc151eb439 [Emulator] Fixed media and font loading on linux.
Caused by treating guest path as host path
2025-10-27 14:17:01 +01:00
Gliniak
9054a29483 [UI] Add simple support for controller usage in UI
- Disabled unnecessary hotkeys thread when it is not used
- Removed problematic xam_exports static initialization
- Moved xam_dialogs_shown_ and xam_nui_dialogs_shown_ to XamState
2025-10-10 21:22:16 +02:00
Adrian
e66028f0ff [Kernel] Check XAM is attached using bounding path 2025-08-18 07:41:50 +02:00
Gliniak
ada971aefc [Emulator] Resume should resume threads that are paused, not running 2025-08-03 20:40:30 +02:00
Margen67
4cb783bf22 Header cleanup 2025-07-19 14:42:21 -07:00
Gliniak
270e88a7a7 [Emulator] Removed marking extracted games as booted from disc 2025-05-27 22:26:34 +02:00
seven7000
de10b9ef91 [Kernel] Updated XAM loader to add '$flash_xam.xex' 2025-05-22 07:42:00 +02:00
Gliniak
f4b854e484 [Kernel] Added option to load provided XAM for resource usage
- Added XEX1 key
- Removed annoying assertion from xeXamEnumerate
- Added returning hmodule_ptr for resource locator
2025-05-20 23:14:22 +02:00
Gliniak
d211130c6c [Kernel] Fixed incorrect behaviour of IsSystemTitle util
- Added missing symlinks
2025-05-17 22:28:22 +02:00
Adrian
6b055f1f74 [XAM] Assert struct sizes and misc struct adjustments 2025-05-05 19:26:34 +02:00
The-Little-Wolf
be44b9ba33 [XAM/INFO] - Implement multiple functions
- Implement XamIsSystemExperienceTitleId, XamIsSystemTitleId, XamIsXbox1TitleId
- Replaced is_title_system_type
- Changed XamIsCurrentTitleDash
- Reduced magic numbers
2025-04-25 11:06:06 +02:00
Gliniak
8197881803 [UI] Added detailed installation state to "Install Content" option 2025-04-19 21:13:46 +02:00
Gliniak
5ba6c2b840 [VFS] Improved initial loading time during "Install Content" 2025-04-19 16:54:25 +02:00
Gliniak
56703e52e2 [UI] Redesigned "Install Content" window
- Added ID for each ImGui window
- Added filesystem::CreateFolder function
2025-04-18 21:55:58 +02:00
Adrian
bde7d5579a [Kernel] Fixed xex2_version 2025-04-15 20:37:20 +02:00
Xphalnos
5f918ef28d [Misc] Replaced const with constexpr where possible 2025-03-25 19:50:37 +01:00
Gliniak
5af7e1540b [Emulator] Added extended logging on initialization 2025-03-08 19:20:08 +01:00
Gliniak
1110cdd372 [Kernel] Added support for writing/reading GPD files
This breaks settings in games that are using them and savefiles in games that use settings to store progress
2025-03-07 11:59:48 +01:00
Michael Oliver
9555e7bde4 [Patcher] Ensure hash is checked when loading title plugins
Fixes bug where plugin loader would load all defined plugins if at least one was valid
2025-02-26 15:25:26 +01:00
Adrian
ae23222ba8 [Emulator] Validate module is an executable before launching 2025-01-17 08:04:49 +01:00
Gliniak
ccf4d6d5f8 [Emulator] Added logging file extension and magic value 2025-01-10 21:19:58 +01:00
Gliniak
7437c020d6 [Misc] Fixed some issues during compilation process on Linux 2025-01-07 22:54:16 +01:00
The-Little-Wolf
95df198d8a [Xbox] kXNotification Additions
- Discovered new unknown kXNotificationID use by XNotifyBroadcast together and wanted to record them before I forget them.
- Changed kXNotificationID  to kXNotification
- Added kXNotificationSystemPXLiveSystemUpdate
2025-01-02 18:19:21 +01:00
Gliniak
c3586bc165 [C++] Uplift version to C++20 2024-12-26 23:42:31 +01:00
Gliniak
2fc36721b4 [Kernel] Removed useless GameInfoWrapper class
It was added back in 2016 and never really used.
I tested few games and never saw GameInfo.bin in XNA games or any other game
2024-12-14 20:51:16 +01:00
Gliniak
a295ec1bbd [Base] Removed useless path_to_utf8 conversion while using fmt
Default filesystem::path formatter was added to fmt around 2022
2024-12-13 19:04:31 +01:00
Gliniak
e93373660f [Kernel] AchievementManager: Added Interface for attaching custom implementations 2024-12-10 22:21:24 +01:00
Gliniak
c7c5aed948 [UI] Install Content: Install savefiles to profile signed to first slot.
This will prevent installation of savefiles to non-existing profiles
2024-12-09 19:52:21 +01:00
Gliniak
b471423c1a [XMP] Added dedicated AudioMediaPlayer class 2024-11-02 16:47:52 +01:00
Xphalnos
cf0ee05da6 [MISC] Allow user to override process priority class 2024-11-01 14:23:55 +01:00
Margen67
731c6057de Canaryize
Co-Authored-By: illusion0001 <37698908+illusion0001@users.noreply.github.com>
2024-10-13 15:11:47 -07:00
Gliniak
9bdd07590c [XAM] Implementation of: Profile Manager & Profiles Support
Thanks Emoose for Account Encrypt/Decrypt code!
2024-10-05 10:03:35 +02:00
NicknineTheEagle
a3bd34122b [Emulator] Send XNotification after installing content package 2024-10-01 19:35:18 +02:00
Gliniak
86bd62125d [Kernel] Implemented Game Info Database
This aggregates XDBF and XLAST into one entity.

Replaced UserData::Key into more versatile AttributeKey for future usage in properties
2024-09-20 19:29:37 +02:00