Commit Graph

6073 Commits

Author SHA1 Message Date
NicknineTheEagle d6767dcd66 [XAM] Implemented XamShowMarketplaceDownloadItemsUI 2024-06-27 07:51:24 +02:00
NicknineTheEagle 6df0904e86 [XAM] Implemented XamShowMarketplaceUI 2024-06-25 20:50:14 +02:00
NicknineTheEagle 738c8dbd11 [HID] Added keyboard_user_index cvar 2024-06-19 13:01:21 +02:00
NicknineTheEagle 5610116131 [HID] Don't pass XInput input while UI pop-up is open 2024-06-19 13:01:21 +02:00
NicknineTheEagle db02755075 Fixed namespace usage 2024-06-19 13:01:21 +02:00
Vonce e4408b6bc3 Screenshot functionality Added
Added a screenshot functionality based on this pr https://github.com/xenia-project/xenia/pull/2074 and added some minor adjustments.

GUI wise, "take screenshot" is under the Display menu and the keyboard shortcut to take it is F10

The screenshots folder will save to where xenia.exe or xenia_canary.exe is located. As for save paths, it will only use the id of the game due to illegal characters in some titles.
2024-06-19 08:05:58 +02:00
NicknineTheEagle 34322ebb41 [XAM] Set license mask for XBLA titles as well 2024-06-18 16:30:22 +02:00
NicknineTheEagle 16affb94d4 [XAM] Added storage device select UI 2024-06-18 07:35:36 +02:00
NicknineTheEagle e5c8f00e26 [Kernel] Fixed XamShowSigninUI 2024-06-17 08:59:11 +02:00
NicknineTheEagle c004d669c2 [Emulator] Removed legacy title re-launching code 2024-06-16 09:37:04 +02:00
Gliniak ec267c348a [LINT] Fixed lint issues after clang-format update 2024-06-13 20:56:56 +02:00
Gliniak ce990e2828 [HID] Added support for joystick deadzones
- Simplified logic for connected controllers
2024-06-01 14:54:01 +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
Adrian f2f8bba081 [XAM] XamUserGetName return Win32 code instead of HResult 2024-05-30 13:10:07 +02:00
Adrian a688f87f55 [VFS] Clear registered devices if launch failed 2024-05-25 20:33:19 +02:00
Triang3l 3d30b2eec3 [Vulkan] Shader memory export (#145) 2024-05-25 16:31:50 +03:00
Gliniak ff692589c7 [Kernel] Changed location of internal_display_resolution in config
This is to better represents usecase of this option as guest related setting
2024-05-20 20:12:31 +02:00
Gliniak 6ebb522270 [Kernel] Added option to use PAL-50 mode 2024-05-20 20:08:52 +02:00
frazier_g c01c06d19b Make guest debugger usable 2024-05-19 18:50:43 +02:00
Triang3l 210ac4b2d2 [GPU] Fix gamma ramp writing after RegisterFile API change (#2262) 2024-05-18 23:53:09 +03:00
Triang3l 8e7301f4d8 [SPIR-V] Use a helper class for most if/else branching
Simplifies emission of the blocks themselves (including inserting blocks
into the function's block list in the correct order), as well as phi after
the branching.

Also fixes 64bpp storing with blending in the fragment shader interlock
render backend implementation (had a typo that caused the high 32 bits to
overwrite the low ones).
2024-05-16 23:05:49 +03:00
Gliniak 5bbba85c70 Implemented: SHA512 guest functions
- XeCryptSha512Init
- XeCryptSha512Update
- XeCryptSha512Final
2024-05-15 20:34:51 +02:00
Triang3l 3189a0e259 [GPU] Check memexport stream constant upper bits in range gathering 2024-05-12 20:26:14 +03:00
Triang3l a3304d252f [Base/GPU] Cleanup float comparisons and NaN and -0 in clamping
C++ relational operators are supposed to raise FE_INVALID if an argument is
NaN, use std::isless/greater[equal] instead where they were easy to locate
(though there are other places possibly, mostly min/max and clamp usage was
checked).

Also fixes a copy-paste error making the CPU shader interpreter execute
MINs as MAXs instead.
2024-05-12 19:21:37 +03:00
Triang3l f964290ea8 [Base] Relax the system clock difference allowance in the test
Hopefully should reduce the CI failure rate, although this testing
approach is fundamentally flawed as it depends on OS scheduling.
2024-05-12 17:44:52 +03:00
Triang3l 376bad5056 [GPU] Remove register reinterpret_casts + WAIT_REG_MEM volatility
Hopefully prevents some potential #1971-like situations.

WAIT_REG_MEM's implementation also allowed the compiler to load the value
only once, which caused an infinite loop with the other changes in the
commit (even in debug builds), so it's now accessed as volatile. Possibly
it would be even better to replace it with some (acquire/release?) atomic
load/store some day at least for the registers actually seen as
participating in those waits.

Also fixes the endianness being handled only on the first wait iteration in
WAIT_REG_MEM.
2024-05-12 17:28:17 +03:00
Triang3l f0ad4f4587 [Base] Add aliasing-safe xe::memory::Reinterpret
Accessing the same memory as different types (other than char) using
reinterpret_cast or a union is undefined behavior that has already caused
issues like #1971.

Also adds a XE_RESTRICT_VAR definition for declaring non-aliasing pointers
in performance-critical areas in the future.
2024-05-12 17:28:16 +03:00
The-Little-Wolf 3ff5663f5b Fixing a typo and found unknown function
I found a missing new line in xboxkrnl_video and corrected it. I also found the name of an unknown function in xam table. Here is my source for it. https://pastebin.com/NbpVq9jG
2024-05-10 09:11:47 +02:00
Gliniak b115823735 Merge branch 'master' of https://github.com/xenia-project/xenia into canary_experimental 2024-05-10 08:59:17 +02:00
Gliniak 2ca752ce07 Revert "Optimized CONVERT_I64_TO_F64 with neat overflow trick"
This reverts commit 3ad80810b5.

Fixes broken statue animation is 454108CF
2024-05-09 20:00:03 +02:00
Triang3l a90f83d44c [Vulkan] Non-seamless cube map filtering 2024-05-05 15:20:23 +03:00
Triang3l e9f7a8bd48 [Vulkan] Optional functionality usage improvements
Functional changes:
- Enable only actually used features, as drivers may take more optimal
  paths when certain features are disabled.
- Support VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE.
- Fix the separateStencilMaskRef check doing the opposite.
- Support shaderRoundingModeRTEFloat32.
- Fix vkGetDeviceBufferMemoryRequirements pointer not passed to the Vulkan
  Memory Allocator.

Stylistic changes:
- Move all device extensions, properties and features to one structure,
  especially simplifying portability subset feature checks, and also making
  it easier to request new extension functionality in the future.
- Remove extension suffixes from usage of promoted extensions.
2024-05-04 22:47:14 +03:00
Triang3l 9ebe25fd77 [GPU] Declare unused register fields explicitly 2024-05-02 23:31:13 +03:00
Gliniak 5ca173cd4f [Kernel] Fixed issue with unsupported deployment type by games.
Thanks Emoose for code for checking title_id type
2024-04-26 20:21:40 +02:00
Adrian 0fcdc12cb9 [APP] Create and Extract Zarchive packages 2024-04-11 19:39:27 +02:00
Radosław Gliński 06d7a5f0a3
[UI] Fixed incorrect characters range in ImGUI 2024-04-06 19:12:32 +02:00
Gliniak 122f58c9dd [APU] Added new XMA decoder as config option. 2024-03-26 09:39:23 +01:00
Gliniak a966143823 [Emulator] use filesystem::file_size instead of ftell where possible 2024-03-22 11:03:34 +01:00
Gliniak c9bf44f4f4 [Emulator] Fixed ZAR loading. Thanks Adrian 2024-03-22 08:28:47 +01:00
Adrian 5efcc6a71b [Emulator] Launch file based on signature instead of file extension 2024-03-21 15:22:32 +01:00
Adrian 2385cc53a9 [Emulator] Better handling of failed device mounting 2024-03-19 09:02:36 +01:00
Adrian 6e13258ad4 [SDL] Log controller GUIDs and their mapping 2024-03-18 15:01:24 +01:00
Gliniak 61ea486481 [Emulator] Added fancy tables to view: Achievements, Properties, Contexts 2024-03-18 08:50:21 +01:00
Gliniak ce3bc101f3 [UTIL] Added remove_eol (end of line) to string_utils 2024-03-18 08:50:21 +01:00
Gliniak 4ee9fa970d [Kernel] XDBF: Removed unknown fields from: XdbfContextTableEntry 2024-03-17 19:39:50 +01:00
Gliniak 8c44649f01 [GPU] Another attempt to fix memleaks caused by depth_bias_slope_scaled 2024-03-16 19:31:00 +01:00
Gliniak 3d4bdc9023 Revert "[GPU] Resolved memory leak in RTV in pipeline creation"
This reverts commit e8dbb65fc1.
2024-03-16 11:07:45 +01:00
Gliniak e8dbb65fc1 [GPU] Resolved memory leak in RTV in pipeline creation 2024-03-15 17:38:30 +01:00
Mateusz Dukat 34ed823bfc [GPU] Change FPS limit strategy 2024-03-14 20:58:40 +01:00
Gliniak b9061e6292 [LINT] Linted files + Added lint job to CI 2024-03-12 19:19:30 +01:00
Gliniak e8afad8f8a [XAM] Fixed issue with invalid path returned in launch_data 2024-03-11 20:33:03 +01:00
Mateusz Dukat 08c740c788 Add information about available avpack video modes in config commentary
Add information about available avpack video modes in config commentary. Information based on xenia-canary wiki page. Formatted just like in `license_mask`.
2024-03-11 19:36:20 +01:00
Gliniak 1ff3dc4d10 [Kernel] Added support for custom kernel version 2024-03-05 11:33:14 +01:00
Maks 1a4746f261 [GPU] Reduced fuzzy alpha epsilon 2024-03-02 13:08:42 +01:00
Gliniak 529d453986 [Base] Fixed compilation error in VS 17.9x. Thanks Chrispy 2024-02-27 19:17:20 +01:00
Gliniak 288900ff7e [HID] Removed controllers_mutex from SDL.
Seems like it is unnecessary as there is some internal mutex that causes deadlocks with this one
2024-02-24 20:54:27 +01:00
Gliniak cce070c129 [HID] Removed mutex from SDLInputDriver::SetState
This seems to actively lock inside embedded SDL lock causing deadlock on main emulator thread and calling thread
2024-02-23 18:44:32 +01:00
maksloboda 9e86750bae [GPU] Add aproximate alpha test 2024-02-18 22:31:10 +01:00
Gliniak 321305cbf8 [XAM] Changes to settings handling
- Fixed incorrect X_USER_PROFILE_SETTING structure
- Added X_USER_PROFILE_SETTING_HEADER based on entries from console
- Removed X_USER_PROFILE_SETTING_DATA in favor of X_USER_DATA
X_USER_DATA is used also in Properties in exactly the same way
- Removed is_set in favor of X_USER_PROFILE_SETTING_SOURCE
- Prevent setting from storing settings longer than 0x3E8 bytes. Some games try to write bigger value which causes them to crash
2024-02-18 17:27:59 +01:00
Gliniak 7d740fb3c1 [XBDM] Added DmGetSystemInfo based on info from ticket.
https://github.com/xenia-canary/xenia-canary/issues/266
2024-02-16 19:39:03 +01:00
Gliniak f5e03173e0 [XAM] Fixed issue with incorrect guest path in launch data 2024-02-16 19:14:23 +01:00
Gliniak 1e321cbf0e [Kernel] Allow to specificy max signed-in profiles 2024-02-14 18:14:23 +01:00
Gliniak 5ade4a1288 [XAM] Added Message: XTitleGetDeploymentType 2024-02-12 22:09:19 +01:00
Gliniak 354d42135d [CPU] Support for const value in src1 for OPCODE_PACK 2024-02-12 18:33:03 +01:00
Gliniak a7ece0ac8f [XAM] Added Support For: XamContentLaunchImageInternal
This will unpack package file to content directory and load it on next boot
2024-02-11 18:17:24 +01:00
Gliniak 6f287a9597 [Emulator] Improvements to launch_data
Added support for autoload titles on boot with:
- Specific launch data
- Specific xex
- Restarting into packages: XamContentLaunchImageFromFileInternal
2024-02-11 13:11:39 +01:00
Gliniak 7e7784347b [XAM] Added iterating over publisher type content.
Importing savefiles this way still doesn't work
2024-02-10 10:23:53 +01:00
Gliniak c847987c27 [Kernel] Added printing of alternate title ids 2024-02-10 10:15:23 +01:00
Gliniak 74b52711a3 [Kernel] Added Support For: XFileRenameInformation 2024-01-29 22:03:58 +01:00
Gliniak 8b14b4bbc4 [Kernel] Removed stack default uninitialized value
Now it's 0 from default as expected to be
2024-01-23 21:06:57 +01:00
Gliniak a6d2ed0e94 [Kernel] Changed uninitialized stack value 2024-01-23 19:38:57 +01:00
Gliniak edba7f3693 [XLive] Added dummy: XPresenceInitialize 2024-01-21 22:34:56 +01:00
Gliniak 341192f6df [Codacy] Removed most of issues under "Performance" category 2024-01-20 18:34:29 +01:00
Gliniak 3675d6a6b1 [Kernel] Fixed nullptr in latest Guest->Host mapping revert 2024-01-20 13:20:06 +01:00
Gliniak c8ca077ec4 [Codacy] Fixed some issues found by codacy.
Added skipping shaders directory in scan
2024-01-20 13:19:37 +01:00
Gliniak 18b5a6706a [Kernel] Revert Guest->Host Object Mapping 2024-01-20 10:15:54 +01:00
Gliniak 49d44600e8 [XDBF] Added support for reading compressed XLast XML file
To decompress it we need gzip and then some library for XML to read it
2024-01-10 22:03:27 +01:00
Gliniak d6c9566c69 [Misc] Fixed discord presence 2024-01-10 22:00:50 +01:00
Gliniak d93ba3dfcf [XDBF] Added support for reading Stats and Match Collection 2024-01-06 16:50:30 +01:00
Gliniak e0f0dc7f3a [Base] Added missing import from previous commit 2023-12-23 22:37:51 +01:00
Gliniak eb2298c412 [XAM] Store XGI contexts 2023-12-23 22:21:18 +01:00
Carlos a246c81e3b [UI] Set fullscreen on double left mouse click 2023-12-23 16:11:35 +01:00
Gliniak d6dc4dc556 [Kernel] Added Extracting Properties and Contexts out of SPA file
+ Did a bit of a cleanup in achievement earning code
2023-12-21 20:43:19 +01:00
Gliniak 2de1b8ad4b [Kernel] Added dummy XUserStatsEnumerator 2023-12-19 20:10:03 +01:00
Gliniak a5596332c9 [Kernel] Put achievement enumerator in xenumerator file 2023-12-19 18:49:33 +01:00
yeah-its-gloria 57a23cf192 Fix typing for output stencil ref 2023-12-05 09:37:57 +01:00
imaginebeingatcomputers e7dcee4c39 [xam] Added debug-level logging of WSAGetLastError result 2023-11-17 18:39:57 +01:00
Gliniak 6284bfc21c [Emulator] Allow saving launch_data and use them on next boot 2023-11-16 19:25:48 +01:00
Gliniak 50b42371a0 [Kernel] Restore assigning pointer to object_type_ptr.
This should at least help with latest requirement for protect_zero in many titles.
+ Removed useless comment
2023-11-13 21:16:25 +01:00
Gliniak 355e25461e [Kernel] Fixed ptr oopsie in XObject destructor
- Removed unnecessary goto statement from XObject::GetNativeObject
- Removed unnecessary comments (obsolete)
- Removed unused code
2023-11-10 09:15:12 +01:00
Gliniak 22a27098a4 [Patcher] Make hash mandatory.
This is to prevent further frustration.
"I added custom patch, removed hash and NOW MY GAME DOESN'T WORK! PLZ FIX"
2023-11-09 17:54:33 +01:00
Gliniak a34944e4d2 [GPU] Added hack for AC6 floor/ground. Thanks Blackbird88 & TTFH3500
Added to prevent further builds fragmentation.
This will stay until accurate RCP will be implemented.
2023-10-28 10:28:25 +02:00
Gliniak ebdea6b02a [Kernel] Store earned achievements in-memory to prevent achievements spam
This doesn't store them externally so after restarting they will unlock again
2023-10-25 09:17:38 +02:00
Gliniak 2509b03b81 [Kernel] Disable high definition mode for internal resolutions lower than 1024x768
This will allow some games to render in lower than normal resolution
2023-10-22 20:24:43 +02:00
Gliniak e633bf3d98 [Kernel] Add support for positive timeout_ticks
used in NetDll_WSAWaitForMultipleEvents
2023-10-22 15:15:49 +02:00
Gliniak 91c67b9af2 [Emulator] Separate host and guest cache directories
Since now modules and shaders are stored within cache_host directory.
This will require coping modules and shaders directories from previous directory to new one
2023-10-21 18:28:14 +02:00
disjtqz a9dd1c89bc [Kernel] shrink ObCreateObject 2023-10-21 17:33:07 +02:00
disjtqz 6a1d612495 [Kernel] Stub out xeObSplitName until cleaner version can be written 2023-10-21 17:33:07 +02:00
disjtqz 275454089e [Kernel] Implement ObCreateObject 2023-10-21 17:33:07 +02:00
none d8aa14da73
Small fixes for better cross-platform compatibility (#200)
* Add ifdef check before the Microsoft-specific movsq in memory.cc

* Added ifdef before Microsoft-specific movsq and replaced with memcpy in other cases. In memory.cc

* Update image_sha_bytes_ from 16 to 20  xex_module.h

The value 16 is less than the expected value 20, causing a buffer overflow during sha1 finalization.

* Update image_sha_bytes_ loop from 16 to 20 iterations xex_module.cc

* Update mapped_memory_posix.cc: Must resize file to map_length.

* Should not map nullptr with MAP_FIXED flag. Update memory_posix.cc.
2023-10-21 17:07:29 +02:00