[Kernel] Added option to load provided XAM for resource usage
- Added XEX1 key - Removed annoying assertion from xeXamEnumerate - Added returning hmodule_ptr for resource locator
This commit is contained in:
committed by
Radosław Gliński
parent
97a45315e3
commit
f4b854e484
@@ -29,8 +29,6 @@ namespace xam {
|
||||
uint32_t xeXamEnumerate(uint32_t handle, uint32_t flags, lpvoid_t buffer_ptr,
|
||||
uint32_t buffer_size, uint32_t* items_returned,
|
||||
uint32_t overlapped_ptr) {
|
||||
assert_true(flags == 0);
|
||||
|
||||
auto e = kernel_state()->object_table()->LookupObject<XEnumerator>(handle);
|
||||
if (!e) {
|
||||
return X_ERROR_INVALID_HANDLE;
|
||||
|
||||
@@ -163,8 +163,10 @@ dword_result_t XamBuildGamercardResourceLocator_entry(lpu16string_t filename,
|
||||
|
||||
// If you're running an app that'll need them, make sure to extract xam.xex
|
||||
// resources with xextool ("xextool -d . xam.xex") and add a .xzp extension.
|
||||
const auto xam_module = kernel_state()->GetModule("xam", true);
|
||||
|
||||
return keXamBuildResourceLocator(0, u"gamercrd", filename.value(), buffer_ptr,
|
||||
return keXamBuildResourceLocator(xam_module ? xam_module->hmodule_ptr() : 0,
|
||||
u"gamercrd", filename.value(), buffer_ptr,
|
||||
buffer_count);
|
||||
}
|
||||
DECLARE_XAM_EXPORT1(XamBuildGamercardResourceLocator, kNone, kImplemented);
|
||||
@@ -172,8 +174,11 @@ DECLARE_XAM_EXPORT1(XamBuildGamercardResourceLocator, kNone, kImplemented);
|
||||
dword_result_t XamBuildSharedSystemResourceLocator_entry(lpu16string_t filename,
|
||||
lpvoid_t buffer_ptr,
|
||||
dword_t buffer_count) {
|
||||
const auto xam_module = kernel_state()->GetModule("xam", true);
|
||||
|
||||
// see notes inside XamBuildGamercardResourceLocator above
|
||||
return keXamBuildResourceLocator(0, u"shrdres", filename.value(), buffer_ptr,
|
||||
return keXamBuildResourceLocator(xam_module ? xam_module->hmodule_ptr() : 0,
|
||||
u"shrdres", filename.value(), buffer_ptr,
|
||||
buffer_count);
|
||||
}
|
||||
DECLARE_XAM_EXPORT1(XamBuildSharedSystemResourceLocator, kNone, kImplemented);
|
||||
|
||||
Reference in New Issue
Block a user