Commit Graph

3623 Commits

Author SHA1 Message Date
gibbed 919882dd68 [Kernel] Fix use of wrong macro in XamEnumerate for extended error. 2018-11-29 12:34:56 -06:00
Wildhaus 151a955c6a Support EGDF and XSF layouts 2018-11-28 10:08:07 -05:00
gibbed 527f960288 [Kernel] Proper size in XamUserCreateAchievementEnumerator. 2018-11-26 20:43:41 -06:00
gibbed 248b661d14 [Kernel] Maybe fix XamEnumerate, again?
Some titles, when using XamEnumerate synchronously, expect X_ERROR_NO_MORE_FILES as the return value.
Some titles, when using XamEnumerate asynchronously, expect X_ERROR_FUNCTION_FAILED as the overlapped result.
2018-11-26 19:53:03 -06:00
gibbed 2398b1b8f4 [Vulkan] Use epsilon equality for checking rectangle list form. 2018-11-26 11:51:02 -06:00
gibbed af206addd1 Optimize SPIRV code generated via genspirv command. 2018-11-26 11:49:36 -06:00
gibbed da8f094bf8 [App] Fix Travis whining. 2018-11-26 11:21:37 -06:00
gibbed e7d77f4780 Clarify AVX requirement error message. 2018-11-26 10:33:22 -06:00
gibbed 08be8af5c0 [App] Abort out early with an error message if CPU does not support AVX. 2018-11-26 10:24:17 -06:00
gibbed 28b494dadc [Kernel] Stub XMsg app 0x000000FE/msg 0x00020021. 2018-11-26 10:21:09 -06:00
gibbed 5b2b2a3cc1 [Kernel] Fix logging of app for XMsgInProcessCall/XMsgSystemProcessCall/XMsgStartIORequest/XMsgStartIORequestEx. 2018-11-26 09:04:10 -06:00
gibbed 03d6de997c [Kernel] Some titles seem to explicitly expect X_ERROR_FUNCTION_FAILED to mean no more files when enumerating content. 2018-11-26 07:33:21 -06:00
gibbed bd45a5defd [Kernel] Fix timeout in NtWaitForMultipleObjectsEx. 2018-11-25 11:06:57 -06:00
gibbed e91e1c8824 [Kernel] Tag XAudioGetVoiceCategoryVolume as high frequency. 2018-11-25 10:19:40 -06:00
gibbed 894034a9b0 [Kernel] Tag RtlMultiByteToUnicodeN, RtlUnicodeToMultiByteN as high frequency. 2018-11-25 10:02:29 -06:00
gibbed 70b07712b2 [Kernel] Research on C++ exceptions. 2018-11-25 10:01:22 -06:00
gibbed 64403d5dc6 [Kernel] Don't directly call RtlNtStatusToDosError export. 2018-11-25 09:58:03 -06:00
gibbed 216bec15f6 [Kernel] Stub XamQueryLiveHiveW. 2018-11-25 09:56:22 -06:00
gibbed 4dfe83af6c [Kernel] Fix threading issues caused by direct use of exports. 2018-11-25 05:08:16 -06:00
gibbed e6dbd8905c [Kernel] Stub XLiveBaseGetNatType. 2018-11-25 03:46:44 -06:00
gibbed 20315850db [Kernel] Stub XamFeatureEnabled. 2018-11-24 20:53:45 -06:00
gibbed 08fb15fcca [Kernel] Oops. 2018-11-24 19:16:14 -06:00
gibbed 3baf668055 [Kernel] Implement ExAcquireReadWriteLockExclusive, ExReleaseReadWriteLock. 2018-11-24 19:04:42 -06:00
gibbed c98f6af1d8 [Kernel] Better stub XAM online schema. 2018-11-24 17:47:24 -06:00
gibbed 9162bc2af9 [CPU] Fix Travis whining. 2018-11-24 16:21:06 -06:00
gibbed 5679b0f0c7 [CPU] Fix XEX2 delta patching. 2018-11-24 15:16:39 -06:00
gibbed 77f9e1516e [CPU] Minor cleanup in LZX. 2018-11-24 15:16:02 -06:00
gibbed 5f764fc752 [CPU] Move LZX code to its own files. 2018-11-24 15:02:03 -06:00
gibbed dd3a049b23 [CPU] Oops. 2018-11-24 15:00:00 -06:00
gibbed f7501750d9 [CPU/Kernel] Correct size check when parsing XEX_HEADER_IMPORT_LIBRARIES. 2018-11-24 09:38:21 -06:00
gibbed fb50f02a98 [Base] Properly flush remaining writes out before shutting down logging. 2018-11-24 08:54:46 -06:00
gibbed 24dd0267bf [Kernel] Oops. 2018-11-24 04:07:56 -06:00
gibbed 207589e5a1 [CPU/Kernel] Correct parsing of XEX_HEADER_IMPORT_LIBRARIES. 2018-11-24 04:05:41 -06:00
Dr. Chat b3d509eb01 [x64] Swap to using anchor variables instead of dummy function calls 2018-11-23 18:02:04 -06:00
Dr. Chat df964015a4 [x64] Fix improper use of compare_exchange_strong when adjusting code commit mark 2018-11-23 18:02:04 -06:00
Dr. Chat 384ec98a42 [x64] Allow the JIT to use volatile registers 2018-11-23 18:02:04 -06:00
Dr. Chat b57bb74965 [x64] Change the parameters to host_to_guest_thunk
Shuffle some code around in x64_backend.cc
Add GetNativeParam to avoid hardcoding parameters
2018-11-23 18:02:04 -06:00
Dr. Chat c451fda819 [x64] Template-ize a few vector emulation functions 2018-11-23 18:02:03 -06:00
Dr. Chat 4571e8207a [x64] Minor cleanups in emitter 2018-11-23 18:02:03 -06:00
Dr. Chat b2f9d54e7e [x64] Factor out memory handling code 2018-11-23 18:02:03 -06:00
Dr. Chat bb74114cab [x64] Factor out control code 2018-11-23 18:02:03 -06:00
Dr. Chat c318009733 [x64] Factor out vector handling code 2018-11-23 18:02:03 -06:00
Dr. Chat 6861cce492 [x64] Factor out a lot of the opcode handling code 2018-11-23 18:02:02 -06:00
Dr. Chat 696c3cd439 [x64] Remove most of RegisterSequences 2018-11-23 18:02:02 -06:00
gibbed d87ae26895 [CI] Fix mspack linking even more. 2018-11-23 17:58:38 -06:00
gibbed 213e688173 [Kernel] Fix some stuff from PR merge. 2018-11-23 17:27:35 -06:00
emoose 933588717e [Kernel] Add XamGetOnlineSchema export, returns dummy data 2018-11-23 16:38:34 -06:00
emoose 8c6e0b86f9 [Kernel] swprintf_s -> swprintf, change how Format*String/Build*ResourceLocator exports copy text
New way of copying the text should make it less likely for any buffer overflows to occur.
2018-11-23 16:38:34 -06:00
emoose 958882a3ea [Kernel] Add ExConsoleGameRegion export variable (set to 0xFFFFFFFF) 2018-11-23 16:38:34 -06:00
emoose 65e8872dc1 [Kernel] Add _vsnwprintf export 2018-11-23 16:38:34 -06:00
emoose 8efbe32867 [Kernel] Add XamBuild*ResourceLocator & XamFormat*String exports
Resource locators are just strings that say where to find a resource, they can either point to a file path or to an XEX resource.
Normally the Gamercard/SharedSystem exports use XamBuildResourceLocator to make a locator for the resources inside xam.xex.
But since our xam won't have those resources I've made it point them to a local file instead (by passing 0 as the module param for XamBuildResourceLocator).
The resources will have to be extracted to the XEX's local path for it to find them though (and XEX will need to have media:\ symlinked too)

The XamFormat*String exports are really windows-only right now, but they'll at least empty the buffer for other platforms.
They'll also always output MM/DD/YYYY no matter what locale the system is, on 360 this is localized properly of course.

I've renamed XamBuildSharedResourceLocator_ to XamBuildLegacySystemResourceLocator too since that seems to be the proper name for it.
In earlier Xams this just pointed to ...SharedSystemResourceLocator (as does this code), but later versions seem to have their own function.
2018-11-23 16:38:34 -06:00
emoose c5056c644f [Kernel] Add XamNotifyCreateListenerInternal export (1 unknown param)
Just changed the existing XamNotifyCreateListener import to ...CreateListenerInternal, and made a new XamNotifyCreateListener that just calls the internal version.
2018-11-23 16:38:34 -06:00
emoose 5e9e226c94 [Kernel] Add XamContentCreateDeviceEnumerator export
Also changed name field of DeviceInfo to be a wchar_t* of known length, makes it match the X360 DeviceInfo struct more closely and it's easier to make sure things reading it won't overflow anything.
2018-11-23 16:37:04 -06:00
gibbed d68c27d78b [CI] Fix mspack linking. 2018-11-23 15:57:21 -06:00
gibbed 7226c9e047 Update mspack, add to premake, and fix missing license. Fixes #1252. 2018-11-23 15:32:55 -06:00
gibbed 4c53bc5c9a [x64] Fix Travis whining. 2018-11-23 12:03:09 -06:00
gibbed 5fbcb8991e [JIT] Run the SimplificationPass/ConstantPropagationPass until there are no changes. 2018-11-23 12:01:10 -06:00
gibbed b121f45c7f [JIT] Assert that other is constant in set_from. 2018-11-23 10:46:27 -06:00
gibbed 996093e499 [x64] Support constant src1 for Int32 VECTOR_SHL_V128/VECTOR_SHR_V128. 2018-11-23 09:33:30 -06:00
gibbed b24936d248 [Kernel] Tag XamUserGetSigninState as high frequency. 2018-11-23 09:02:49 -06:00
gibbed 7d07720de1 [JIT] Zero constant propagation for OPCODE_SHL/OPCODE_SHR. 2018-11-23 08:02:09 -06:00
gibbed 4c04a9383a [JIT] Fix constant propagation for OPCODE_SELECT. 2018-11-23 07:52:14 -06:00
gibbed 94284ea9aa [CPU] Fix null termination in HIRBuilder::CommentFormat. 2018-11-23 07:50:42 -06:00
gibbed d04c748773 [App] Log content root. 2018-11-22 17:40:38 -06:00
gibbed 00261b9ca0 [App] Get absolute path of content root in all cases. 2018-11-22 17:40:22 -06:00
gibbed 69463033b1 [Kernel] Don't trust buffer length in XamEnumerate when it matches items per enumerate. 2018-11-22 16:49:01 -06:00
gibbed db234309bf [Kernel] Fix logging of broken XamEnumerate usage. 2018-11-22 16:36:19 -06:00
gibbed 086d7e9da7 [Input] Dynamically link to XInput. 2018-11-22 10:46:48 -06:00
gibbed 86d2c9ae1e Fix Travis whining. 2018-11-22 09:48:04 -06:00
Margen67 896ac4a682 Update documentation.
- Convert http to https, provide archive link when possible.
- Made CPU-JIT.png more readable on dark themes;
Added a white background so there isn't black text on a black
background.
2018-11-22 09:20:09 -06:00
gibbed 9f895c3f14 [UI] Use DPI APIs when available. 2018-11-22 08:30:30 -06:00
gibbed 5c473a5203 [Base] Fix missing include in filesystem_posix. 2018-11-22 06:41:58 -06:00
gibbed 463f21e484 [Kernel] Cleanup XamLoaderSetLaunchData, XamLoaderGetLaunchData. 2018-11-22 04:29:35 -06:00
gibbed 473b9d3c3a [Kernel] Don't trust buffer_length in XamEnumerate. 2018-11-22 04:28:46 -06:00
gibbed 683de76b9b [Kernel] Remove stray logging in NtReleaseMutant. 2018-11-21 18:07:46 -06:00
gibbed 1ba5dd5eb1 Use platform-specific user directory to store content. Create a file named portable.txt next to xenia.exe to restore previous behavior. 2018-11-21 18:07:45 -06:00
gibbed eb55d68e1f [Kernel] Tag MmQueryAddressProtect as high frequency. 2018-11-21 17:54:28 -06:00
Rick Gibbed b7a4abc6f6
Merge pull request #1178 from Jeremy517/master
Persist title-specific profile content
2018-11-21 16:47:28 -06:00
gibbed 22e7500f63 [CPU] Handle NaN in fctidxx, fctiwxx. 2018-11-20 23:21:38 -06:00
gibbed 0206e90398 [Kernel] Simplify RtlNtStatusToDosError logging. 2018-11-20 16:25:07 -06:00
gibbed 7ae0e2b8e5 [Kernel] Fix Travis whining. 2018-11-20 16:05:45 -06:00
gibbed 4f2326e5d7 [Kernel] Oops. 2018-11-20 15:52:15 -06:00
gibbed 5b776b99da [Kernel] Move xboxkrnl_threading to new shim convention. 2018-11-20 15:49:06 -06:00
gibbed d7fc74d788 [Kernel] Move xam_ui to new shim convention. 2018-11-20 14:53:00 -06:00
gibbed 2247742494 [Kernel] Add command-line flag to toggle XEX patching. 2018-11-20 14:48:32 -06:00
gibbed 7e78a79a2d [Kernel] Add a note to previous commit. 2018-11-20 14:25:18 -06:00
gibbed de34bd81db [Kernel] Set default license mask when available in XamContentCreateEx. 2018-11-20 14:24:13 -06:00
gibbed ff0b8a67cd [Kernel] Tag XamContentGetLicenseMask as high frequency. 2018-11-20 13:53:46 -06:00
gibbed e1d448f630 [Kernel] Move xam_content to new shim convention. 2018-11-20 13:50:31 -06:00
gibbed 927acf1902 [Kernel] Fix a minor typo. 2018-11-20 13:05:38 -06:00
gibbed 394105d359 [CPU/Kernel] Cleanup and rework of how kernel exports are declared. 2018-11-20 13:03:17 -06:00
gibbed 613be1425e [Kernel] Update XamContentOpenFile argument names. 2018-11-20 13:03:17 -06:00
Rick Gibbed c65ee2aa48
Merge pull request #1226 from chris-hawley/master
[JIT] stmw/lmw
2018-11-20 08:43:26 -06:00
gibbed dafed58e98 [Kernel] Implement MmAllocatePhysicalMemory. 2018-11-19 22:04:44 -06:00
gibbed 4f50e0e6c7 [Kernel] Implement RtlCopyString, RtlCopyUnicodeString. 2018-11-19 21:03:05 -06:00
Dr. Chat 95701f188d [x64] Dynamically link to growable function tables 2018-11-18 21:21:36 -06:00
Triang3l 7fa453c813 [GPU] Fix 1-component ALU instruction swizzle (hopefully) 2018-11-18 22:20:43 +03:00
Dr. Chat c9797dde2a [CPU] Fix switch variable scoping 2018-11-18 11:35:23 -06:00
gibbed 4436616e6d [x64] Use constant a bit earlier in VECTOR_SHL_V128. 2018-11-18 08:17:04 -06:00
gibbed 44f194be35 [x64] Fix constant access in VECTOR_SHL_V128. 2018-11-18 08:13:37 -06:00
gibbed 3ced6c5cf2 [CPU] Add constant VectorAverage. 2018-11-18 08:13:37 -06:00
Rick Gibbed 21b8620bf5
Merge pull request #1264 from bmzhao/fix-failing-linux-build
Fix Linux build errors due to missing virtual destructors
2018-11-17 18:03:09 -06:00
NPCompete da66c68bf6 [CPU] Made xe::cpu::StackWalker destructor virtual since it is an abstract class. 2018-11-17 14:50:30 -08:00
NPCompete 7c24f8e09f [Kernel] Made xe::kernel::App destructor virtual since it is an abstract class. 2018-11-17 14:50:00 -08:00
Rick Gibbed b8b1775837
Merge pull request #1260 from alan-shaffer/thread-name-fix
[Kernel] Don't dereference null pointers in SetThreadName.
2018-11-17 16:40:23 -06:00
Dr. Chat aa14741e74 [x64] Fix unwind info bug; Cleanup win code cache 2018-11-17 14:40:25 -06:00
Dr. Chat 69af4a21ac [x64] Fill unwind reservation info bytes with 0xCC as well 2018-11-17 11:04:25 -06:00
alan bad8c4b0c5 [Kernel] Don't dereference null pointers in SetThreadName. 2018-11-13 11:10:21 -05:00
Wildhaus 80375c62e8 Add support for STFS Metadata V2 2018-11-11 15:27:34 -05:00
Wildhaus 19fb21da7d Games on Demand / Multifile STFS (SVOD) Support 2018-11-11 15:27:29 -05:00
Triang3l c949ce3d9c
[Base] StringBuffer: Clear the C string in Reset 2018-11-10 16:33:40 +03:00
Rick Gibbed 128fb32698
Merge pull request #1253 from emoose/compressed-xex-fix
[CPU] Fix some compressed XEXs trying to decompress past the actual image size, causing errors
2018-11-09 20:27:01 -06:00
emoose 7f479ffb79 [Kernel] Remove item limit from enumerators, fixes #1255
Like said in that issue, it seems the limit passed to XamContentCreateEnumerator is actually a limit on how many results XamEnumerate should return per call, not a limit on the number of enumeration items in total.
These changes fix Sonic Unleashed not loading more than 1 DLC (it passes 1 as the limit, but then loops over XamEnumerate to load in each DLC one at a time), and likely many other games.
2018-11-07 22:47:59 +00:00
emoose ab53cf2a82 [CPU] Fix some compressed XEXs decompressing past the image size 2018-11-05 19:47:18 +00:00
emoose bbb5c938ec [CPU] Fix XexModule::FindSaveRest not finding functions properly 2018-11-01 15:50:56 +00:00
Triang3l 3b584a5f1c [Kernel] Clang-format user_module.cc 2018-10-29 11:21:26 +03:00
Dr. Chat c95ba803a8 Merge branch 'xexp' 2018-10-28 12:20:02 -05:00
Dr. Chat 7443b7e61f [CPU] Rename ImportLibrary fields to follow naming conventions 2018-10-28 09:41:31 -05:00
Rick Gibbed 6a39d4b1f5
Merge pull request #1240 from 0x8080/Exports
[Kernel] Define all exports for xboxkrnl/xam/xbdm
2018-10-23 18:30:04 -05:00
0x7FFFFFFF 96bb9b04da [Kernel] Define all exports for xboxkrnl/xam/xbdm 2018-10-23 17:26:47 -06:00
gibbed a33b13c174 [Kernel] Stub XamShowNuiTroubleshooterUI. 2018-10-23 17:48:10 -05:00
gibbed 3a64cf64e0 [Kernel] Stub HidReadKeys. 2018-10-23 16:43:31 -05:00
Triang3l 76c14f7e58 [APU] Load XAudio2_8.dll dynamically 2018-10-23 23:34:41 +03:00
Triang3l 00adfcadf9
[UI] Fix build error in file_picker_win.cc using decltype 2018-10-23 10:54:16 +03:00
Triang3l 2b03a9e095 [GPU] Synchronize GPU frontend with the D3D12 branch 2018-10-22 23:28:52 +03:00
emoose bf039172cf [Kernel] Add null pointer checks to xmp_app handlers 2018-10-22 18:01:09 +01:00
emoose 67f0e487f4 [Kernel] Fix _snwprintf not having format_core wide = true 2018-10-22 18:00:01 +01:00
emoose 6e74ba93d6 [CPU] Add support for delta patches using *_offset fields 2018-10-22 12:26:14 +01:00
emoose d2fd109af3 [CPU] Add more asserts for XEXP descriptor (+ log a warning) 2018-10-20 05:08:14 +01:00
emoose 265903fe66 [CPU] Add XEXP support to XexModule, if XEXP is in same folder as XEX
This was a headache to work out, big thanks to the lack of documentation on .xexp files... a ton of guesswork was involved here but luckily it turned out well.

I did have to make some pretty major changes to the way XEX files are loaded though.
Previously it'd just load everything in one go: XEX headers -> decrypt/decompress data -> load imports/symbols -> set loader data table entries, etc...

Now it's changed to something like this:
- Load base XEX headers + decrypted/decompressed image data, return X_STATUS_PENDING
- In the LoadFromFile call used to load the XEX, search for XEXP patch file (only .xexp in same folder atm)
- If patch exists: load XEXP, decrypt headers/data, apply patch to base XEX, dispose of XEXP
- Finish XEX load via LoadXexContinue() (handles imports/symbols/loader data...)

This saves us from needing to reset the imports/function/symbol stuff after patching (since all the XEX code will be a lot different), but I'm not really sure if I went about it the best way.
2018-10-20 04:36:21 +01:00
emoose 0b7f7e1657 [CPU] Move XEX2 code into XexModule class, autodetect XEX key
Code is mainly just copy/pasted from kernel/util/xex2.cc, I've tried fixing it up to work better in a class, but there's probably some things I missed.

Also includes some minor improvements to the XEX loader, like being able to try both XEX keys (retail/devkit) automatically, and some fixes to how the base address is determined.

(Previously there was code that would get base address from optional header, code that'd get it from xex_security_info, code that'd use a stored base address value...
Now everything reads it from a single stored value instead, which is set either from the xex_security_info, or if it exists from the optional header instead.
Maybe this can help improve compatibility with any weird XEX's that don't have a base address optional header?)

Compressed XEX loader also has some extra checks to make sure the compressed data hash matches what's expected.
Might increase loading times by a fraction, but could save reports from people unknowingly using corrupt XEXs.
(still no checks for non-compressed data though, maybe need to compare data with xex_security_info->ImageHash?)
2018-10-20 04:18:18 +01:00
Christian Hawley add23849bf [CPU] Implement lmw and stmw instructions 2018-10-14 13:57:45 -04:00
Dr. Chat 37e59464c2 [UI] Undo warning fix in file_picker_win.cc 2018-09-10 20:38:58 -05:00
Justin Moore 91c53f975e
Merge pull request #1209 from Triang3l/all_format_info
[GPU] Add info about unknown texture formats
2018-09-07 17:08:07 -05:00
Justin Moore 413a04eb1b
Merge pull request #1211 from Triang3l/patch-1
[GPU] Add texture signedness enumeration
2018-09-06 19:26:06 -05:00
gibbed de43afbb54 Fix warnings when building on newer Windows 10 SDK versions. 2018-08-25 14:23:20 -05:00
Triang3l 1a4fc3bde2
[GPU] Add texture signedness enumeration
For sign_x, sign_y, sign_z and sign_w fields of xe_gpu_texture_fetch_t.
2018-08-19 15:25:20 +03:00
Triang3l d75a372780 [GPU] Add info about unknown texture formats 2018-08-05 14:02:58 +03:00
gibbed ba7dc6b2d7 [GPU] Improve readability of initialization errors and remove references to OpenGL. 2018-07-01 16:50:03 -05:00
Rick Gibbed 94d1106386
Merge pull request #1177 from Triang3l/depthbias.
[GPU] Depth bias support
2018-07-01 01:34:34 -05:00
gibbed 15eb6ed2d9 [Vulkan] Fix GetMipExtent calculating mip extent incorrectly. 2018-07-01 01:31:33 -05:00
gibbed 4357415892 [GPU] Better names for tiled functions. 2018-07-01 01:30:22 -05:00
Rick Gibbed 724086dcad
Merge pull request #1189 from Triang3l/vpk_vupk_constants.
[CPU] Unify constant operand checks in pack/unpack
2018-07-01 01:23:11 -05:00
Rick Gibbed f24dbaa21b
Merge pull request #1176 from Triang3l/xex_exe_extension.
[Core] Treat .exe files as XEX
2018-07-01 01:14:04 -05:00
Dr. Chat f89b4626a3 [VFS] Add VFS dump tool (supporting STFS only as of now) 2018-06-26 13:45:16 -05:00
Triang3l dd19701dc4 [CPU] Unify constant operand checks in pack/unpack 2018-06-18 13:55:46 +03:00
Triang3l c6255af824 [GPU] Depth bias support 2018-06-16 16:32:14 +03:00
Unknown 86443dd28a Persist title-specific profile content 2018-06-13 19:37:15 -07:00
Triang3l c89cc6a229 [CPU] vupkd3d: NaN on negative overflow and tests 2018-06-11 21:34:13 +03:00
Triang3l 0378f532ab [CPU] Fix W in 2101010 vupkd3d and revert untested saturation 2018-06-11 17:22:15 +03:00