Commit Graph

317 Commits

Author SHA1 Message Date
Gliniak
c6be50165f [3PP] Uplifted FMT to 12.1 2025-11-17 13:36:25 +01:00
Adrian
299ba08983 [APP] Detect PR builds with XE_BUILD_IS_PR 2025-10-30 08:19:28 +01:00
Gliniak
d68339d848 [Emulator] Fixed issue with assertion failure during menu draw on Linux 2025-10-29 12:05:50 +01:00
Gliniak
344e8538e0 [XMP] Make volume atomic, fixed issue with invalid SetVolume received from guest
- Replaced invalid log
2025-10-28 21:48:10 +01:00
Gliniak
a25bbed1c3 [XMP] Fixed issue with xmp_default_volume not being correctly applied
- Added menu to modify XMP volume and state
2025-10-28 19:38:51 +01:00
Herman S.
f4b471d000 [App] ensure InitFeatureFlags is called after cvar parsing
Fixes x64_exension_mask being applied
2025-10-21 14:23:58 +02:00
Gliniak
e27b1d1cb5 [UI] Fixed issues with ImGui on Vulkan and few ASAN issues related to ImGui
- Simplified handling of notifications to faster version with ranges
- Removed usage of STB sprintf on checked due to ASAN violation
- Draw ImGui windows only when they're not in close_pending state
2025-10-13 22:08:52 +02: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
Herman S.
3e6a74be13 Ensure runtime directories are created in storage_root()
At the moment they end up wherever the command is run from on linux
or exe directory on Windows, which ignores the "portable" install
mechanism
2025-10-05 11:59:40 +02:00
Adrian
e05b934eca [APP] Added force_mount_devkit to config 2025-09-20 22:11:56 +02:00
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
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
25d6f8269a [premake] Cleanup 2025-07-27 02:46:43 -07:00
Margen67
4cb783bf22 Header cleanup 2025-07-19 14:42:21 -07:00
Gliniak
e601b5ab87 [UI] Added modify profile UI
- Changed default icons size from 75x75 to 64x64 to match console icons size
- Added png_utils
- Removed all dialogs from xam_ui.cc into separate entities under xam/ui
- Added option to return INT32 and WSTRING type settings to host
- Added multiple enums related to user settings
- Added code to handle changing user pfp
- Fixed bug with system app being added to GPD played list
- Changed logic in: XamUserGetUserFlagsFromXUID
- Implemented: XamUserIsOnlineEnabled
- Implemented: XamUserGetMembershipTier
- Implemented: XamUserGetMembershipTierFromXUID
- Implemented: XamUserGetUserTenure
- Partially Implemented: XamUserGetSubscriptionType
2025-05-29 09:00:14 +02:00
Gliniak
8197881803 [UI] Added detailed installation state to "Install Content" option 2025-04-19 21:13:46 +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
Marco Rodolfi
066391fb59 [main ui] Properly handle XDG format specifications for Linux systems.
The issue was stemming from the fact that by default Xenia is running in portable mode, as in use the same root directory as the executable for its datafiles.

This default is an issue when using this software from a POSIX platform, since a lot of the times the location where the binary resides is not writable by default.

Therefore, force portable mode to be disabled on non Windows platforms.
2025-04-17 07:41:30 +02:00
Gliniak
31d715d100 [Premake] Removed unused/unnecessary subprojects.
- Testing currently doesn't work
- VFS Dump is unused. You can use internal function for it
- Demos are only for fun
- Trace Dump & Trace Viewer (unsure, but ok)

You can re-enable them by changing values: enableTests and enableMiscSubprojects in main premake file.

In the future there should be xb command support to overwrite them
2025-04-15 09:04:16 +02:00
Xphalnos
47f327e848 [Misc] Replaced const with constexpr where possible 2025-04-08 19:32:17 +02:00
Gliniak
86a25791d0 [Base] Fixed possible compilation failure 2025-04-01 00:00:03 +02:00
Gliniak
7a2f53bf20 [XAM] Added default value for controller vibration.
- Added notification broadcast while changing controller vibration state
2025-03-30 21:36:47 +02:00
Xphalnos
7479ccc292 [Misc] Fix Some Warnings on Clang Build with Windows + Adding constexpr 2025-03-27 17:52:18 +01:00
Xphalnos
5f918ef28d [Misc] Replaced const with constexpr where possible 2025-03-25 19:50:37 +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
Gliniak
c373208c97 [UI] Disable showing notifications while making screenshot 2025-02-25 21:38:45 +01:00
Adrian
a4412ad40d [APP] Fixed potential string corruption 2025-01-26 17:16:00 +01:00
Marco Rodolfi
f58fab1d2c [compiler] Misc changes to make this emulator properly compile under Linux with Clang 2025-01-19 21:37:29 +01:00
Gliniak
0474053931 [GPU] Improvements to GPU settings modification
- Renamed CommonGPUSetting to GPUSetting
- Removed readback_resolve and memexport from d3d12 exclusive option. In the future it will be available for Vulkan too.
- Removed unused enum class: gpu_cvar
- Removed OS specific code from emulator_window
2025-01-17 20:40:53 +01:00
Adrian
e134bbccd1 [App] Fixed RunTitle crash via hotkey 2025-01-12 16:11:16 +01:00
Gliniak
4584794e24 [HID] Added drivers filter for GetState 2025-01-04 21:42:54 +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
1ba30c519c [HID] Fixed issues with double input in specific config HID configuration.
This was the case in hid set to "any" or to "winkey" and game that requires input from any user
2024-12-30 15:43:40 +01:00
Gliniak
9dfb0d0b68 [Base] Moved IsUseNexusForGameBarEnabled from emulator_window to system.h
This will remove direct usage of system specific code from emulator_window
2024-12-26 23:42:31 +01:00
Gliniak
c3586bc165 [C++] Uplift version to C++20 2024-12-26 23:42:31 +01:00
Gliniak
2e521383c2 [HID] Fixed some issues with controller/passthrough visibility.
- Moved X_INPUT flags from kernel to HID
- Added ability to return input type from driver
2024-12-23 10:43:27 +01:00
Margen67
3acf3fdcd1 Never specify /O1
Leaving it as /O2 might improve performance.
Stops this from being spammed:
cl : command line  warning D9025: overriding '/O2' with '/O1' [D:\a\xenia-canary\xenia-canary\build\glslang-spirv.vcxproj]

/Os is implied by /O1;
https://learn.microsoft.com/en-us/cpp/build/reference/o1-o2-minimize-size-maximize-speed?view=msvc-170
2024-12-13 13:01:06 -08:00
Margen67
1d51ff5bfd Replace invalid vectorextensions
IA32 never existed for x64, see:
https://learn.microsoft.com/en-us/cpp/build/reference/arch-x64?view=msvc-140#syntax
Fixes this:
cl : command line  warning D9002: ignoring unknown option '/arch:IA32' [D:\a\xenia-canary\xenia-canary\build\xenia-app.vcxproj]
2024-12-13 11:03:07 -08: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
Adrian
cfd7da696f [App] Reset dialogs on refresh 2024-12-03 14:38:47 +01:00
Gliniak
2b49fc2ddc [XAM] ProfileManager: Renamed GetProfiles to GetAccounts
This is to prevent confusion between signed-in accounts (aka. Profiles) and all entries (Accounts)

Also added GetAccount to get specific instead of all of them when not needed
2024-11-26 20:28:01 +01:00
Xphalnos
fbad66e5bc [imgui] Clean implementation of rounded edges 2024-11-03 20:07:58 +01:00
Xphalnos
90fc07e400 [GUI] Settings Improvements 2024-10-28 16:45:22 +01:00
Gliniak
32cebd7a11 [UI] Fixed assertion caused by style push/pop mismatch 2024-10-22 19:49:16 +02:00
Xphalnos
1c9783ca3c [imgui] Makes the window edges rounded 2024-10-20 20:22:37 +02:00
Margen67
b93ad3e82a [Emulator] Tie window size to resolution 2024-10-16 03:40:53 -07:00
Margen67
731c6057de Canaryize
Co-Authored-By: illusion0001 <37698908+illusion0001@users.noreply.github.com>
2024-10-13 15:11:47 -07:00