Commit Graph

1273 Commits

Author SHA1 Message Date
gibbed 947eef4701 [Kernel] Static size assert for X_CONTENT_DEVICE_DATA. 2018-12-03 11:54:47 -06:00
gibbed aa38d4b77b [Kernel] Zero out device data in XamContentGetDeviceData. 2018-12-03 11:54:23 -06:00
gibbed 6824905b78 Merge branch 'master' into d3d12 2018-11-29 12:39:13 -06:00
gibbed 919882dd68 [Kernel] Fix use of wrong macro in XamEnumerate for extended error. 2018-11-29 12:34:56 -06:00
Triang3l 5b9e4b5886 Merge branch 'master' into d3d12 2018-11-27 11:05:14 +03: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
Triang3l b56f8f9c7c Merge branch 'master' into d3d12 2018-11-26 20:45:52 +03: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 9058868c96 Merge branch 'master' into d3d12 2018-11-26 07:41:47 -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
Triang3l ab2e1b1ca7 Merge branch 'master' into d3d12 2018-11-25 20:13:44 +03: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 9709a230fb Merge branch 'master' into d3d12 2018-11-25 05:12:41 -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
Triang3l beebed4ca2 Merge branch 'master' into d3d12 2018-11-25 12:44:30 +03: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
Triang3l cb4fb451bf Merge branch 'master' into d3d12 2018-11-24 18:40:22 +03:00
gibbed f7501750d9 [CPU/Kernel] Correct size check when parsing XEX_HEADER_IMPORT_LIBRARIES. 2018-11-24 09:38:21 -06:00
Triang3l 5c1efe7b9a Merge branch 'master' into d3d12 2018-11-24 16:26:27 +03: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
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
Triang3l ff363d85be Merge branch 'master' into d3d12 2018-11-23 19:08:43 +03:00
gibbed b24936d248 [Kernel] Tag XamUserGetSigninState as high frequency. 2018-11-23 09:02:49 -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
Triang3l da280347c4 Merge branch 'master' into d3d12 2018-11-22 21:01:05 +03: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 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
Triang3l e6bd8f37aa Merge branch 'master' into d3d12 2018-11-21 13:17:18 +03: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
Triang3l 2c8bdcd1b0 Merge branch 'master' into d3d12 2018-11-20 23:10:25 +03: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
Triang3l a6b3bddf13 Merge branch 'master' into d3d12 2018-11-20 22:04:55 +03: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
Triang3l 3139e2d33b Merge branch 'master' into d3d12 2018-11-20 20:22:59 +03:00
Triang3l f8ecd47490 Merge branch 'master' into d3d12 2018-11-20 10:26:31 +03: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
Triang3l 251ce2af6b Merge branch 'master' into d3d12 2018-11-18 12:13:26 +03: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 7c24f8e09f [Kernel] Made xe::kernel::App destructor virtual since it is an abstract class. 2018-11-17 14:50:00 -08:00
alan bad8c4b0c5 [Kernel] Don't dereference null pointers in SetThreadName. 2018-11-13 11:10:21 -05:00
Triang3l 6274f664f9 Merge branch 'master' into d3d12 2018-11-08 19:45:56 +03: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
Triang3l d55a2a586f Merge branch 'master' into d3d12 2018-11-02 09:30:53 +03:00
emoose bbb5c938ec [CPU] Fix XexModule::FindSaveRest not finding functions properly 2018-11-01 15:50:56 +00:00
Triang3l e4a7d1dc5e Merge branch 'master' into d3d12 2018-10-29 11:22:26 +03:00
Triang3l 3b584a5f1c [Kernel] Clang-format user_module.cc 2018-10-29 11:21:26 +03:00
Triang3l c7befee395 Merge branch 'master' into d3d12 2018-10-28 20:31:49 +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
Triang3l 4162716a54 Merge branch 'master' into d3d12 2018-10-26 22:04:59 +03: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 abdb37464d
Merge branch 'master' into d3d12 2018-10-22 23:15:07 +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 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
Triang3l 6e36101b42 [D3D12] Experimental write watch implementation for shared memory 2018-09-24 23:18:16 +03:00
Unknown 86443dd28a Persist title-specific profile content 2018-06-13 19:37:15 -07: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