Commit Graph

155 Commits

Author SHA1 Message Date
Herman S.
1e8f1837cf [Build] Use CMAKE_BINARY_DIR for output paths and version.h include
version.h is now found via CMAKE_BINARY_DIR on the include path instead
of a hardcoded "build/version.h" path. This allows out-of-tree and
multi-config builds to each generate and find their own version header
without colliding.
2026-03-21 01:30:31 +09:00
Gliniak
c651641c2d [UI] Fixed debug crash while closing post-processing menu 2026-03-18 22:21:22 +01:00
Gliniak
d37c22aad0 [HID] Redesigned support for Portals
- Added hotplug support on Windows
- Added support for XamInputNonControllerGetRawEx & XamInputNonControllerSetRawEx
2026-03-14 23:01:38 +01:00
Adrian
f8fb490ef8 [APP] Disable toggle fullscreen double click while rendering dialogs 2025-12-26 21:50:41 +01:00
oltolm
d78bc3a789 [UI]: fix ASAN errors 2025-12-18 10:15:19 +01:00
Adrian
1d410f0e76 [APP] Don't delete Zar extraction folder on failure if empty 2025-12-04 21:20:19 +01:00
Herman S.
e2c33686cc [GPU] Double-buffer readback_resolve.
Introduce "fast" readback resolve that reads from previous frame's
resolve buffers, quick swap between buffers each frame to avoid
copies so minimal performance impact and mostly correct bahavior.
Checks if previous frame had a buffer for the current resolve and
falls through to the slow path, which also allows to support
"screenshot" features in the games that do that without stalling
on normal resolve operations.

Re-enabled readback_memexport as separate feature, was previously
bundled with readback_resolve (probably not intentionally) and
ensures destination address is writeable to avoid memory access
related crashes and unnecessary work.

readback_resolve cvar changes from bool to string ternary with
"none", "fast" and "full" options, defaulting to the new "fast"
mode.
2025-12-01 17:38:34 +01:00
Gliniak
70e44ab6ec [APP] Added config option to disable fullscreen mode on mouse double-click 2025-11-29 23:25:08 +01:00
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
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.
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
Margen67
4cb783bf22 Header cleanup 2025-07-19 14:42:21 -07: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
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
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
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
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
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
Gliniak
9ba0f18c82 [Emulator] Restrict mouse fullscreen toggle to left-click 2024-10-02 21:49:32 +02:00
Gliniak
60b31af811 [3PP] Replaced cpptoml with tomlplusplus
Also adjusted code that used cpptoml to be used with toml++ and some more changes
2024-09-22 20:41:52 +02:00
Gliniak
2709a5d3e8 [Emulator] Improvements to EmulatorWindow::RunTitle
- Use reference instead of copy for provided path
 - Extended error logging for special cases
2024-09-19 22:08:42 +02:00
Adrian
1a9ff8fe67 [App] Add notifications for hotkeys & XNotifyQueueUI 2024-08-27 22:02:00 +02:00
Adrian
ee210db096 [App] Added host notification for Zar creation and extraction on completion 2024-08-26 22:48:17 +02:00
Adrian
f01317591a [App] Run zar extraction and creation in separate thread 2024-08-25 21:08:10 +02:00