Commit Graph

4524 Commits

Author SHA1 Message Date
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
Dr. Chat 7b1d9ad19b [CI] Blacklist gh-pages branch only; Skip branches with open PRs 2018-11-18 13:50:26 -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
Dr. Chat dc6b592d79 [CI] Oops 2018-11-18 11:23:19 -06:00
Dr. Chat ba7f6986a4 [CI] Only build master branch (and pull requests) 2018-11-18 11:21:39 -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
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
Rick Gibbed dc3ae5c2cb
Merge pull request #1256 from emoose/enumerate-fix
[Kernel] Remove item limit from enumerators, fixes #1255
2018-11-07 19:32:07 -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
Rick Gibbed 3103ad8e16
Merge pull request #1249 from emoose/saverest-fix
[CPU] Fix XexModule::FindSaveRest not finding functions properly
2018-11-01 18:45:41 -05: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
Rick Gibbed 1ae9b8263d
Merge pull request #1244 from emoose/bugfixes
[Kernel] Fixes for _snwprintf and xmp_app
2018-10-22 12:30:10 -05: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
Justin Moore 2fa7607547
Merge pull request #1086 from bwrsandman/xenia-build-test-bin-path
[Test] Fix build_bin_path for case sensitive FS
2018-10-12 15:08:04 -05:00
Dr. Chat 37e59464c2 [UI] Undo warning fix in file_picker_win.cc 2018-09-10 20:38:58 -05:00