Commit Graph

628 Commits

Author SHA1 Message Date
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
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
Margen67
25d6f8269a [premake] Cleanup 2025-07-27 02:46:43 -07: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
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
Adrian
fd1abfe6aa [Lint/CI] Use LLVM v19 for Linux & Lint 2025-06-21 00:25:27 +02:00
Gliniak
50492a951e [Misc] Moved pe_image to base from 3pp and cut unnecessary parts 2025-05-31 10:05:00 +02: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
Peter Wright
63c2d94a98 Implement LaunchFileExplorer the same as LaunchWebBrowser. 2025-05-20 20:37:26 +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
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
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
Adrian
b7b707ddd2 [3PP] Uplift utfcpp 2025-02-01 23:43:49 +01:00
Marco Rodolfi
d90c320dda [filesystem] Moved generic methods to platform independent code 2025-01-20 18:03:23 +01:00
Marco Rodolfi
753698ea20 [linux_platform] Implement a bunch of missing functions necessaries to make Xenia build correctly under Linux
With this part fixed and a function readapted from the original codebase to fix the different signature, we should have a compiling Linux build now.
2025-01-20 18:03:23 +01:00
Marco Rodolfi
00c94f28a1 [memory] Rebase of xenia#2230 on latest canary.
See xenia-project#2230 for an explanation of the changes. I've added additional cleanups as requested and clang-tidy additional suggestions.
2025-01-19 22:40:01 +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
Marco Rodolfi
8d841693ff [cpu] Fix System-V ABI guest to host and host to guest thunk emitters for Linux
Upstream changes made from xenia-project#1339 and xenia-project#2228 back to canary builds. This fixes various emulation crashes caused from different calling conventions on System-V ABI platforms compared to Windows standard.
2025-01-19 16:36:52 +01:00
Gliniak
85695692a7 [Base] Fixed issues with thread priority introduced in previous commit 2025-01-17 19:51:18 +01:00
Marco Rodolfi
55bbb28a80 [threading] Linux fixes on setting an incorrect priority
This call was failing since SCHED_FIFO doesn't support negative priorities, but only positive ones, see third paragraph of scheduling policies: https://man7.org/linux/man-pages/man7/sched.7.html.

Additionally Linux do provice up to 99 levels, but I've limited myself to the required UNIX standard of 32, and split the priority levels evenly from that.

I've also added a couple of rows to debug additional issues in the future like this.
2025-01-17 09:56:43 +01:00
Gliniak
09be7e874a [All] Fixed multiple issues during build on Linux
- Added some fixes introduced by RodoMa92 in PR198

- Lack of AVX2 extension (should be done differently in the future)
- Disable deprecated-volatile warning
- Added missing override in posix EventInfo, ImGui notification class and XContent class
- Removed not used XAudio2.h include in XMP
- Fixed missing switch-case in XObject
- Added fugly template in native_list.h
- Fixed multiple smaller issues
2025-01-10 21:41:45 +01:00
Gliniak
7437c020d6 [Misc] Fixed some issues during compilation process on Linux 2025-01-07 22:54:16 +01:00
Margen67
26bf95d50f CI: Add Linux
Also fix build error.
2025-01-06 12:14:07 -08:00
Gliniak
c3301d9281 [Base] Fixed issue with initialization deadlock on Proton
For whatever reason Proton doesn't like it when Xenia is compiled with 2022 MSVC
2024-12-30 16:41:47 +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
bcc3c3172d [Base] Added NtSystemClock to_local for quick time conversion to current timezone
- Changed achievement reward time to local time (in UI)
2024-12-26 23:42:31 +01:00
Gliniak
c3586bc165 [C++] Uplift version to C++20 2024-12-26 23:42:31 +01:00
Xphalnos
c8c62fc07c [Base] Fixed compilation error in math.h 2024-12-16 18:55:46 +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
3ac98ebfba [Static Analysis] Resolved some issues mentioned in Alexandr-u report 2024-11-02 19:08:34 +01:00
Xphalnos
cf0ee05da6 [MISC] Allow user to override process priority class 2024-11-01 14:23:55 +01:00
Antonio de Sousa
1fd501db01 [Emulator] Change default config value for query_occlusion_fake_sample_count 2024-09-23 12:28:10 +02:00
Xphalnos
25e9836343 [Misc] Removing unused files + misc fixes 2024-09-23 08:19:18 +02:00
NicknineTheEagle
6cba5ba7e6 Convert STFS filenames from Win-1252 to UTF-8 2024-09-22 21:38:55 +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
4452e300ac [Emulator] Changed default config values for:
- mount_cache: false -> true
 - framerate_limit: 60 -> 0
 - font_size: 12 -> 14
 - apu_max_queued_frames: 64 -> 8
2024-08-31 21:48:34 +02:00
Adrian
1a9ff8fe67 [App] Add notifications for hotkeys & XNotifyQueueUI 2024-08-27 22:02:00 +02:00
Gliniak
49584ff664 [VFS] Change file attributes or timestamps.
Changing these options is only viable for r/w mounted host devices (Cache)
Changing attributes works only on windows
Changing timestamps is mocked and logged to see if there is any title that uses it
2024-08-15 17:17:44 +02:00
Gliniak
ec267c348a [LINT] Fixed lint issues after clang-format update 2024-06-13 20:56:56 +02:00
Gliniak
b3f2ab0e96 Merge branch 'master' of https://github.com/xenia-project/xenia into canary_experimental 2024-05-31 22:43:59 +02:00