Commit Graph

6392 Commits

Author SHA1 Message Date
Herman S.
4d1380decb Fix hotkey processing locking issue.
Rather than manually release the lock inside the loop, which breaks RAII
and introduces undefined behavior, we separate the controller state gathering
operation from the rumble hotkey processing loop. The lock lifecycle
is now automatically managed by scope.

On a side note, with multiple controllers connected this would probably
have become clear that it's broken sooner but I guess that's not a very
common use case.
2025-09-13 18:48:59 +02:00
Margen67
765073021a [CPU/XEX] Use fmt to make hash string, check size 2025-08-22 06:22:07 -07:00
Margen67
a4154b236b [CI, premake] Make some submodules optional 2025-08-22 06:22:07 -07:00
Margen67
fa8c19edbd [premake, xb] Moar cleanup 2025-08-22 06:22:07 -07:00
Adrian
e66028f0ff [Kernel] Check XAM is attached using bounding path 2025-08-18 07:41:50 +02:00
Adrian
a9fb32a2fd [GPU] More post merge fixes 2025-08-15 22:38:56 +02:00
Adrian
3ba63e05ac [XAM] Fixed crash due to missing XELOGW arguments in user tracker 2025-08-15 22:38:37 +02:00
Adrian
e45f547a49 [Kernel] Prevent $flash_xam from initialization while loading dashboard 2025-08-15 22:38:25 +02:00
Triang3l
9fac0c0b5d [Vulkan] Fix VulkanInstance::Create return values 2025-08-15 18:07:10 +02:00
Gliniak
419c0149c9 [Base] Post merge fixes 2025-08-15 18:06:57 +02:00
Gliniak
c4bd676c5e Merge branch 'master' of https://github.com/xenia-project/xenia into canary_experimental 2025-08-15 15:37:50 +02:00
Triang3l
b5432ab83f [Vulkan] Refactoring and fixes for VulkanProvider and related areas
Enable portability subset physical device enumeration.

Don't use Vulkan 1.1+ logical devices on Vulkan 1.0 instances due to the
VkApplicationInfo::apiVersion specification.

Make sure all extension dependencies are enabled when creating a device.

Prefer exposing feature support over extension support via the device
interface to avoid causing confusion with regard to promoted extensions
(especially those that required some features as extensions, but had those
features made optional when they were promoted).

Allow creating presentation-only devices, not demanding any optional
features beyond the basic Vulkan 1.0, for use cases such as internal tools
or CPU rendering.

Require the independentBlend feature for GPU emulation as working around is
complicated, while support is almost ubiquitous.

Move the graphics system initialization fatal error message to xenia_main
after attempting to initialize all implementations, for automatic fallback
to other implementations in the future.

Log Vulkan driver info.

Improve Vulkan debug message logging, enabled by default.

Refactor code, with simplified logic for enabling extensions and layers.
2025-08-14 23:44:21 +03:00
Margen67
8b6cb9c287 [Premake, 3PP] Formatting/cleanup 2025-08-11 21:03:31 -07:00
Margen67
81b972f329 [Base, premake] Cleanup
date has detected _MSVC_LANG for a while, so HAS_UNCAUGHT_EXCEPTIONS isn't needed.
2025-08-10 06:06:59 -07:00
Margen67
995c105c1c [Base] Don't hardcode UTF_CPP_CPLUSPLUS 2025-08-10 06:01:43 -07:00
Margen67
6941b69691 [Base] Remove unneeded if
C++20 is required to build and this didn't work for Windows since it didn't account for _MSVC_LANG.
2025-08-10 04:38:33 -07:00
The-Little-Wolf
64b7695f52 [Kernel] - restrict kXNotificationLiveConnectionChanged to startup
- allow for dashboard to show achievements and themes again.
2025-08-08 22:44:28 +02:00
Gliniak
06456c20fc [Kernel] Prevent real XAM from initialization while loading dashboard 2025-08-08 22:05:24 +02:00
Gliniak
a871079ee0 [XAM] Added config option to enable stereoscopic mode in titles 2025-08-07 20:14:52 +02:00
Gliniak
e9b2464254 [XAM] Fixed issue with Content not being close due to upper-lower characters difference.
- Added string_key_insensitive
2025-08-06 22:46:20 +02:00
Triang3l
a06be03f1b [GPU] Cleanup definitions of some registers
VS/PS_NUM_REG is 6-bit on Adreno 200, and games aren't seen using the
bit 7 to indicate that no GPRs are used. It's not clear why Freedreno
configures it this way.

Some texture fetch fields were deprecated or moved during the development
of the Xenos, reflect that in the comments.

Add definitions of the registers configuring the conversion of vertex
positions to fixed-point. Although there isn't much that can be done with
it when emulating using PC GPU APIs, there are some places in Xenia that
wrongly (though sometimes deliberately, for results closer to the behavior
of the host GPU) assume that the conversion works like in Direct3D 10+,
however the Xenos supports only up to 4 subpixel bits rather than 8. The
effects of this difference are largely negligible, though.

Also add more detailed info about register references and differences from
other ATI/AMD GPUs for potential future contributors.
2025-08-06 13:21:19 +03:00
Margen67
10f2b5ebfc Imgui stuff 2025-08-03 19:51:32 -07:00
Gliniak
37e3fe9eb6 [D3D12] Default to RTV on Intel ARC GPUs 2025-08-03 22:26:39 +02:00
Gliniak
ada971aefc [Emulator] Resume should resume threads that are paused, not running 2025-08-03 20:40:30 +02:00
Gliniak
e7e3cfc7fb [XThread] Fixed issue with incorrect thread state caused by invalid suspend count 2025-08-03 20:40:30 +02:00
Gliniak
2969a04145 [Kernel] Added support for loading modules before main 2025-08-03 20:40:30 +02:00
Gliniak
70364e73ae [XAM] Added option to remove titles with 0 achievements unlocked 2025-08-03 19:29:02 +02:00
The-Little-Wolf
4e8e789876 [XAM/UI] - Stubbed XamShowSigninUIEx and XamShowNuiSigninUI
- Add XTT file header
- partially implemented XamShowSigninUIEx & XamShowNuiSigninUI
- add flags for XamShowCreateProfileUI, exXamShowSigninUI, and XamUserLogon
- Define sign in states
- Add undefined params
2025-08-01 08:06:10 +02:00
guccigang420
9ae3a72500 [CPU/HIR] Fixed MulHi in value.cc for Linux systems 2025-07-30 23:47:17 +03:00
Margen67
4a5f63650d Add .py file extension to Python 2025-07-28 23:54:52 -07:00
Gliniak
fe0e18466f [XThread] Changed behaviour for threads requesting Yield with non-alertable state 2025-07-27 19:20:44 +02:00
Adrian
4702bfb94c [XBDM] Cleanup Stubs 2025-07-27 18:57:19 +02:00
Adrian
a717c0cd9f [Kernel] Implemented RtlDowncaseUnicodeChar 2025-07-27 18:05:58 +02:00
Margen67
f36dbd2b33 [3PP] Switch to zlib-ng 2025-07-27 02:46:43 -07:00
Margen67
25d6f8269a [premake] Cleanup 2025-07-27 02:46:43 -07:00
Adrian
7fec549552 [XAM] Implemented XamTaskCloseHandle 2025-07-27 00:35:10 +02:00
Gliniak
8a1188090f [Kernel] Fixed compilation 2025-07-26 22:35:47 +02:00
The-Little-Wolf
39621ddec8 [KERNEL] - Replacing Unk
- Changes here are from Chrispy's Nukernel
2025-07-26 22:27:21 +02:00
The-Little-Wolf
31173107bc kXNotification - adding more
- Added more kXNotification ids
- Added missing Notification to XMPCreateTitlePlaylist
2025-07-26 21:58:57 +02:00
Gliniak
4182852a4b [Base] Split of xbox.h file
- Splitted into: kernel.h and xam.h
- Removed UpdateSpaData from KernelState into ContentManager
2025-07-26 21:25:32 +02:00
Adrian
c4e86cfd2b [XAM] Cleanup XamGetOverlappedResult 2025-07-24 23:29:46 +02:00
Adrian
f66ab091c1 [XAM] Implemented XamGetCachedTitleName 2025-07-24 20:45:00 +02:00
Adrian
d9092fb232 [XAM] Cleanup XEnumerateCrossTitle 2025-07-23 23:05:35 +02:00
The-Little-Wolf
c83522060e [XBOXKRNL/XCONFIG] - Properly set PC values
- Adding PC Related flags
- set correct size of XCONFIG_USER_PC_HINT
2025-07-23 21:46:49 +02:00
Adrian
01d46c20ff [XAM] Cleanup XamUserAreUsersFriends 2025-07-21 08:11:54 +02:00
Margen67
3eef564ff8 [format] Require EOF newline 2025-07-19 14:42:21 -07:00
Margen67
4cb783bf22 Header cleanup 2025-07-19 14:42:21 -07:00
The-Little-Wolf
6314388c51 [XAM] - Replacing Unk
- Replacing unk parameters
- Naming unk xmp calls
- Added missing xmp structs
- Added missing messenger structs
- Added missing XamProfileCreate related structs
2025-07-19 20:37:23 +02:00
The-Little-Wolf
0f804c3690 [SMC] - add structs and enum for poweron and standby messages
- add structs for poweron and standby messages
- add enum for poweron and standby messages
- add enum for HalReturnToFirmware and log
2025-07-07 15:40:48 +02:00
Margen67
0aeac841b8 Fix building with Clang 20
date: 3.0.4
tomlplusplus: Latest master as of writing since there's no stable release with the build fixes.
2025-07-07 04:27:38 -07:00