Commit Graph

8225 Commits

Author SHA1 Message Date
Gliniak
14c2814654 [CPU] Fixed bug in VECTOR_SHL_V128 implementation
- For EmitInt8 there was missing check for & 7 which was causing graphical glitches in movies

- There is probably similar bug in 16/32 version, but that's for another commit
2026-02-11 22:41:36 +01:00
Gliniak
8f5da619f9 [Kernel] Replaced Yield in XAudioGetVoiceCategoryVolumeChangeMask with NanoSleep
- Removed Yield in XamUserGetSigninState
2026-02-08 23:01:44 +01:00
Adrian
56cff3a09a [APP] Include title information in Win32 exception dialog 2026-02-08 17:52:21 +01:00
Adrian
ef65c6761b [XAM] Cleanup user settings header to reduce including issues 2026-02-07 22:29:29 +01:00
goldislead
1a9613705d Rework max anisotropy override to sampler creation (D3D12/Vulkan)
Revert ac6fd65 fetch additions and implement context-sensitive AF override.
2026-02-07 17:47:12 +01:00
Margen67
60ffc2e83f [CI] Remove unneeded python-setup
The default Python version was updated so this is no longer necessary: https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-Readme.md#language-and-runtime
2026-02-02 00:23:18 -08:00
Gliniak
4dd0842087 [Kernel] Fixed incorrect amount of propagated notifications on boot
- Created dedicated method: IsUIActive
2026-01-31 19:24:10 +01:00
Gliniak
7e1506ff23 [Kernel] XThread: Added mutex to set_name.
There is a small chance that game will spam requests for thread name change which will cause invalid free
2026-01-31 18:32:52 +01:00
The-Little-Wolf
78d700af41 [XAM/USER] - Add missing broadcast to XamUserWriteProfileSettings
-  Add missing broadcast to XamUserWriteProfileSettings
2026-01-30 19:06:47 +01:00
The-Little-Wolf
a8fe4666ad [XEX] - log outputs
- Finish XEX_HEADER_XBOX360_LOGO, XEX_HEADER_FILE_FORMAT_INFO, XEX_HEADER_DELTA_PATCH_DESCRIPTOR, XEX_HEADER_SYSTEM_FLAGS_32, XEX_HEADER_ENABLED_FOR_CALLCAP, and XEX_HEADER_GAME_RATINGS
- Add missing xex2_header_keys
- Add flag name outputs
- Removed magic number
- Added X_FILE_CHARACTERISTICS to X_FILE_FS_DEVICE_INFORMATION
2026-01-30 18:45:04 +01:00
The-Little-Wolf
38ccc71afa [XboxKrnl/Threading] - implement KeInitializeTimerEx
- Taken from Crispy's Nukernel build
2026-01-29 23:05:23 +01:00
Roy Stewart
e3c4b5aef5 refactor xenia-build printing functionality and add color to the outputs 2026-01-29 22:38:43 +01:00
Gliniak
603355ae5b [XAM] Fixed enumeration of achievements once again 2026-01-29 21:55:30 +01:00
Gliniak
2ba82072fc [Kernel] Added stub for: NtCancelIoFile 2026-01-29 20:41:01 +01:00
Stayd
ac6fd65385 [GPU] Add anisotropic filtering override 2026-01-28 08:28:53 +01:00
Gliniak
a74fe21f76 [CPU] Disable context promotion only for vertex type 2026-01-28 07:49:39 +01:00
Gliniak
67d80958c9 [XThread] Remove 10ms delay in thread start 2026-01-25 19:41:57 +01:00
Adrian
263e91b014 [XAM] Fixed XamUserCreateAchievementEnumerator starting index usage
Fixed Vancouver 2010 spamming XamUserCreateAchievementEnumerator
2026-01-20 08:30:25 +01:00
Triang3l
f2fabfdf04 [GPU] Change "bpe" to "bpb" (bytes per block) in comments
Forgotten in the other "element" to "block" change.
2026-01-15 20:48:26 +03:00
Triang3l
88f95a8bd6 [GPU] Change "element" name back to "block" in texture addressing
The 32_32_32_FLOAT format seems to be vertex-only, so it looks like there
can't be storage elements smaller than a single texel.

So, use a more precise name that can't be confused with "picture element"
(pixel) or "texture element" (texel) that represents a single logical pixel
rather than a storage block of pixels.
2026-01-15 11:56:45 +03:00
Triang3l
c4e1242fa2 [D3D12] Include recent D3D12 headers from the Microsoft GitHub 2026-01-14 23:05:08 +03:00
Triang3l
9535e610b0 [GPU] Change texture address local X offsetting back to addition
More likely to be emitted as an immediate load/store offset in host
hardware shaders.
2026-01-14 00:15:08 +03:00
Triang3l
6db6192170 [GPU] Use XOR to flip X texel group in all load/resolve shaders
For visual consistency (missed in the commit that added LocalXAddressXor).
2026-01-13 23:37:01 +03:00
Triang3l
7db772bfeb [GPU] XeResolveLocalXAddressXor comment typo correction 2026-01-13 23:22:30 +03:00
Triang3l
0f23f05683 [GPU] Simplify local X offsetting with resolution scaling
Switch between even and odd 16-byte element sequences along X by simply
flipping a bit rather than going to a different resolution-scaled group of
pixels, by increasing the size of the group within the constraints imposed
by tiling.
2026-01-13 23:14:15 +03:00
Triang3l
76c531bff2 [GPU] Rename AddressTiled in TiledAddress in shaders
There will possibly be more `XenosTextureTiled*` functions in the future
where the word "Address" would make the names excessively long.
2026-01-13 21:20:26 +03:00
Triang3l
80a9af4277 [GPU] Add macro tile size constants to texture addressing headers 2026-01-13 21:18:25 +03:00
Gliniak
81656a9729 [XAM] Fixed issue with error code being returned for local session 2026-01-10 18:26:45 +01:00
Herman S.
4b6ac45650 [VFS/Posix] Fix Rename to properly handle guest paths
And ensure string_views aren't pointing at freed memory by saving
a reference to the result of path_to_utf8
2026-01-10 17:53:39 +01:00
Gliniak
dce4d38c0a [XAM] Fixed crash related to incorrect buffer size in UserPlaylist enum
- Replaced unk_ptr in XMP_CREATE_USER_PLAYLIST_ENUMERATOR
- Simplified logic in achievements StringBuffer
2026-01-09 09:06:14 +01:00
Adrian
4b73839bf1 [XAM] Added std::optional to SPA getters 2026-01-06 18:22:35 +01:00
Triang3l
ea8ae81bfd [GPU] Remove now-unused texture_conversion.cc/h 2026-01-06 17:59:20 +03:00
Triang3l
28b69c21be [GPU] Document tiled texture address bits
Will be useful for calculating memory extents more precisely in the future.
2026-01-06 17:47:19 +03:00
Gliniak
beb52110e3 [Memory] Use randomized values for scribble_heap instead of hardcoded one
This fixes Watchman - The End is Nigh which relay on UB on boot (OOR)

They're checking in hardcoded "game:" for '/' character.
If it doesn't exist then adds 0x7FFFFFFE to start address and start searching from that location downward
2026-01-05 20:50:12 +01:00
The-Little-Wolf
2e61df76f0 [XAM/USER] - Implement XamUserIsParentalControlled
- Implement XamUserIsParentalControlled which is used in 584807F7
- Move some structs into xam.h
2026-01-05 20:30:37 +01:00
NicknineTheEagle
ccd5c50c74 [XAM] Count empty path as exit request in XamLoaderGetLaunchData 2026-01-05 20:04:59 +01:00
Adrian
b723d6e7c2 [UI] Free image data from stbi_load 2026-01-05 19:25:18 +01:00
Gliniak
b8b33ecabf [VFS] XContent: Added support for SVOD normal layout with multiple files 2026-01-05 19:04:37 +01:00
Triang3l
cbbaae8ead [Vulkan] Recompile internal shaders with Vulkan SDK 1.4.335.0
spirv-remap was replaced with spirv-opt --canonicalize-ids, and debug
information is preserved now.
2026-01-04 17:03:37 +03:00
Triang3l
ca34a022a5 [Build] Replace spirv-remap with spirv-opt --canonicalize-ids
`spirv-remap` is not present in modern Vulkan SDK versions, it was replaced
with the `--canonicalize-ids` pass in `spirv-opt`.

Overall, canonicalization provides a significant compression improvement,
which is important considering that currently Xenia is distributed in a ZIP
archive and contains many very similar shaders.

With normal DEFLATE compression, canonicalization reduced the size of a ZIP
with `xenia.exe` from 3.54 MB to 3.45 MB in a test done before committing.

Also disable stripping of debug information from shaders, which apparently
was among what `spirv-remap` was doing with `--do-everything`, as binding
and uniform buffer member names heavily aid in debugging in RenderDoc.

Partially integrated from #2329.

Co-authored-by: Herman S. <429230+has207@users.noreply.github.com>
Co-authored-by: Gliniak <Gliniak93@gmail.com>
2026-01-04 16:53:52 +03:00
Adrian
53c0178766 [NET] Implemented XNetRandom
Fixed checkpoints in Gears of War 3
2025-12-30 23:30:53 +01:00
Herman S.
fcebdfb255 [GPU] Fix scaled resolve tracking for blocks outside write range 2025-12-27 19:02:29 +01:00
Adrian
f8fb490ef8 [APP] Disable toggle fullscreen double click while rendering dialogs 2025-12-26 21:50:41 +01:00
Gliniak
c42aeacf25 [Vulkan] Ensure entire scaled range fits within the buffer.
Fixes devices lost errors when using resolution scaling

Co-authored-by: Herman S. <429230+has207@users.noreply.github.com>
2025-12-25 14:40:33 +01:00
Adrian
594e8b8cdd [XAM] Add null terminator in UserData for WSTRING 2025-12-24 22:33:49 +01:00
Gliniak
01aec51278 [XAM] Fixed invalid xuid being returned when only online XUID is requested
- Fixes stats loading of GoW3 savefile (and maybe checkpoints)

Co-authored-by: Adrian <78108584+AdrianCassar@users.noreply.github.com>
2025-12-24 22:12:01 +01:00
Gliniak
547226fc0b [XMA] Cleanup in XmaDecoder::WriteRegister
- Replaced manual for loop with C++20 countr_zero standard call
2025-12-23 23:28:13 +01:00
Adrian
ac66db337b [XAM] Fixed size used in read_u16string_and_swap 2025-12-22 19:33:47 +01:00
Gliniak
e786d5c8c3 [XAM] Fixed potantial crash while upserting setting related to missing SPA
- Fixed OOR asssertion caused by invalid amount of characters read by from_string
2025-12-22 18:47:34 +01:00
The-Little-Wolf
169fea978a [XAM/XLIVE] - Set proper returns when offline
- Have XLive functions return their offline values.
- Have XGIUserReadStats return X_ONLINE_E_LOGON_NOT_LOGGED_ON
2025-12-22 10:31:29 +01:00