Commit Graph

1137 Commits

Author SHA1 Message Date
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
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
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
gibbed
40e8d78d16 [Kernel] Allow specifying of additional command-line passed to guest. 2018-06-06 19:56:03 -05:00
gibbed
9ac2bf0beb [Kernel] Fix fetch field name that was changed. 2018-05-31 20:17:03 -05:00
gibbed
e89a31006f - [GPU] Rename TextureMemoryUsage to TextureExtent (and relevant functions/etc).
- [GPU] Precalculate memory byte usage for base mip (and any additional mip levels).
- [GPU] Change TextureCache::WatchCallback so that if it's fired multiple times for the same texture it does not assert.
- [GPU] Add write watches for texture memory associated with additional mipmap levels.
2018-05-31 19:41:33 -05:00
gibbed
e665c0a3fb Fix another Travis complaint. 2018-05-28 14:42:53 -05:00
gibbed
f450ae6a76 Fix lint errors due to Travis lint differences. 2018-05-28 07:14:18 -05:00
gibbed
73c7546114 [Kernel] Fix return of XamUserGetXUID and XamUserGetSigninInfo. 2018-05-27 19:51:25 -05:00
gibbed
da06cb4f06 [Kernel] Fix return of XamUserGetDeviceContext. 2018-05-27 19:43:44 -05:00
gibbed
dc5bd83098 [Kernel] Move xam_user to new shim convention. 2018-05-27 19:43:39 -05:00
gibbed
fc0cc89a1d [Kernel] Add X_HRESULT_result. (yes, the name is stupid) 2018-05-27 18:12:48 -05:00
gibbed
ee7b9f415a [Kernel] Move xam_input to new shim convention. 2018-05-27 16:59:07 -05:00
gibbed
4cc2aaf5b9 Remove unnecessary usage of xe::be. 2018-05-27 16:35:01 -05:00
gibbed
56dd07e329 [Kernel] Add yield to XAudioGetVoiceCategoryVolumeChangeMask for games that spin threads with it. 2018-05-24 23:31:21 -05:00
gibbed
8e9d50dd4a [Kernel] Fix XamUserGetSigninInfo to zero out info even in failure. 2018-05-24 12:41:13 -05:00
gibbed
14c73a33f9 [Kernel] Fix return of CreateContent/OpenContent in ContentManager when an already open package was found. 2018-05-24 11:17:56 -05:00
gibbed
85ad87eb73 [Kernel] Fix ContentPackage leaking its registered device. 2018-05-24 11:17:52 -05:00
gibbed
bc7306b352 [Kernel] Fix XamLoaderGetLaunchDataSize to set size to 0 for games that don't check its return value. 2018-05-24 03:26:29 -05:00
gibbed
d0561d046b [Kernel] Handle title being null in XamShowMessageBoxUI. 2018-05-23 13:30:59 -05:00
gibbed
2ef3ea996f [Kernel] Experimental debug monitor/PIX code. 2018-05-23 05:10:39 -05:00
gibbed
712a2afdf4 [Kernel] Correct GammaType enum. 2018-05-23 04:25:19 -05:00
gibbed
bc369e43cb [Kernel] Add support for XFileEndOfFileInformation. 2018-05-23 04:24:37 -05:00
gibbed
f8961df221 Fix Travis complaints, as usual. 2018-05-22 06:23:37 -05:00
gibbed
53cf0c5be0 [Kernel] Notes for VdGetCurrentDisplayGamma and VdSetDisplayMode. 2018-05-22 06:01:29 -05:00
gibbed
6e9994ee41 [Kernel] Log handle addditions/removals. 2018-05-22 05:57:32 -05:00
gibbed
9f86868a95 [Kernel] Deny non-zero users for some XAM exports. 2018-05-20 19:15:16 -05:00
Dr. Chat
dcca5f587e [Kernel] ExInitializeReadWriteLock 2018-05-07 18:46:15 -05:00
Dr. Chat
10c8413acf [Kernel] Flag a few frequently-used functions as kHighFrequency 2018-05-05 18:44:08 -05:00
DrChat
f02f192f2b [Xboxkrnl] Document a couple parameters in VdInitializeEngines 2018-04-13 21:10:50 -05:00
DrChat
1d4fa80eac [GPU] Fixup ringbuffer log2_size (which specifies size in qwords)
Save microengine init packets
2018-04-08 15:50:36 -05:00
DrChat
9653c0bafc [GPU] Allow dynamic building of GPU packets 2018-04-03 19:08:30 -05:00
DrChat
79308b477f Merge branch 'vtx_cache' 2018-02-18 16:49:32 -06:00
DrChat
766974c30a [Kernel] Document XMP[G/S]etPlaybackController 2018-02-16 18:59:45 -06:00
DrChat
325599948a [Core] Remove hardcoded type field from HeapAllocationInfo 2018-02-10 16:47:53 -06:00
DrChat
1b038125a1 Fix Travis and the build 2017-12-23 17:49:37 -06:00
Dr. Chat
27d1cd8e94 [Kernel] Fill in XGISessionCreateImpl/XGISessionJoinLocal structs 2017-12-23 13:55:49 -06:00
DrChat
aaf281351d Format all code with new clang-format 2017-12-14 20:44:43 -06:00
drillsar
5702814212 [xboxkrnl] Add missing break (#805) 2017-11-04 21:02:09 -05:00
gibbed
ff1a3aaa67 Corrected QueryDirectory return code for no more files. 2017-08-09 01:16:42 -05:00
DrChat
e9e23c02a2 Kernel: VdSwap takes a texture format, not color format argument 2017-08-08 22:34:15 -05:00