[XAM/Misc] Impl. IsSystem/IsXbox1/IsSystemExperience & FirstRunExperienceShouldRun exports
This commit is contained in:
parent
f3571477dc
commit
25bb73b8c1
|
@ -5,6 +5,8 @@
|
||||||
#include "xenia/kernel/xam/xam_private.h"
|
#include "xenia/kernel/xam/xam_private.h"
|
||||||
#include "xenia/xbox.h"
|
#include "xenia/xbox.h"
|
||||||
|
|
||||||
|
DECLARE_bool(xconfig_initial_setup);
|
||||||
|
|
||||||
namespace xe {
|
namespace xe {
|
||||||
namespace kernel {
|
namespace kernel {
|
||||||
namespace xam {
|
namespace xam {
|
||||||
|
@ -15,14 +17,46 @@ dword_result_t XamDoesOmniNeedConfiguration() {
|
||||||
DECLARE_XAM_EXPORT1(XamDoesOmniNeedConfiguration, kMisc, kStub);
|
DECLARE_XAM_EXPORT1(XamDoesOmniNeedConfiguration, kMisc, kStub);
|
||||||
|
|
||||||
dword_result_t XamFirstRunExperienceShouldRun() {
|
dword_result_t XamFirstRunExperienceShouldRun() {
|
||||||
return 0;
|
return cvars::xconfig_initial_setup;
|
||||||
}
|
}
|
||||||
DECLARE_XAM_EXPORT1(XamFirstRunExperienceShouldRun, kMisc, kStub);
|
DECLARE_XAM_EXPORT1(XamFirstRunExperienceShouldRun, kMisc, kStub);
|
||||||
|
|
||||||
dword_result_t XamIsXbox1TitleId(dword_t title_id) {
|
dword_result_t XamIsSystemTitleId(dword_t title_id) {
|
||||||
return 0;
|
if (title_id == 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((title_id & 0xFF000000) == 0x58000000u) {
|
||||||
|
return (title_id & 0xFF0000) != 0x410000; // if 'X' but not 'XA' (XBLA)
|
||||||
|
}
|
||||||
|
|
||||||
|
return (title_id >> 16) == 0xFFFE; // FFFExxxx are always system apps
|
||||||
}
|
}
|
||||||
DECLARE_XAM_EXPORT1(XamIsXbox1TitleId, kMisc, kStub);
|
DECLARE_XAM_EXPORT1(XamIsSystemTitleId, kNone, kImplemented);
|
||||||
|
|
||||||
|
dword_result_t XamIsXbox1TitleId(dword_t title_id) {
|
||||||
|
if (title_id == 0xFFFE0000) {
|
||||||
|
return true; // Xbox OG dashboard ID?
|
||||||
|
}
|
||||||
|
|
||||||
|
if (title_id == 0 || (title_id & 0xFF000000) == 0xFF000000) {
|
||||||
|
return false; // X360 system apps
|
||||||
|
}
|
||||||
|
|
||||||
|
return (title_id & 0x7FFF) < 0x7D0; // lower 15 bits smaller than 2000
|
||||||
|
}
|
||||||
|
DECLARE_XAM_EXPORT1(XamIsXbox1TitleId, kNone, kImplemented);
|
||||||
|
|
||||||
|
dword_result_t XamIsSystemExperienceTitleId(dword_t title_id) {
|
||||||
|
if ((title_id >> 16) == 0x584A) { // 'XJ'
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if ((title_id >> 16) == 0x5848) { // 'XH'
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return title_id == 0x584E07D2 || title_id == 0x584E07D1; // XN-2002 / XN-2001
|
||||||
|
}
|
||||||
|
DECLARE_XAM_EXPORT1(XamIsSystemExperienceTitleId, kNone, kImplemented);
|
||||||
|
|
||||||
void RegisterMiscExports(xe::cpu::ExportResolver* export_resolver,
|
void RegisterMiscExports(xe::cpu::ExportResolver* export_resolver,
|
||||||
KernelState* kernel_state) {}
|
KernelState* kernel_state) {}
|
||||||
|
|
Loading…
Reference in New Issue