diff --git a/src/xenia/emulator.cc b/src/xenia/emulator.cc index 98e1d2a14..1923b74fe 100644 --- a/src/xenia/emulator.cc +++ b/src/xenia/emulator.cc @@ -415,6 +415,18 @@ bool Emulator::RestoreFromFile(const std::wstring& path) { return true; } +bool Emulator::TitleRequested() { + auto xam = kernel_state()->GetKernelModule("xam.xex"); + return xam->loader_data().launch_data_present; +} + +void Emulator::LaunchNextTitle() { + auto xam = kernel_state()->GetKernelModule("xam.xex"); + auto next_title = xam->loader_data().launch_path; + + CompleteLaunch(L"", next_title); +} + bool Emulator::ExceptionCallbackThunk(Exception* ex, void* data) { return reinterpret_cast(data)->ExceptionCallback(ex); } diff --git a/src/xenia/emulator.h b/src/xenia/emulator.h index ab4ae5400..ca8f17aaa 100644 --- a/src/xenia/emulator.h +++ b/src/xenia/emulator.h @@ -125,6 +125,10 @@ class Emulator { bool SaveToFile(const std::wstring& path); bool RestoreFromFile(const std::wstring& path); + // The game can request another title to be loaded. + bool TitleRequested(); + void LaunchNextTitle(); + void WaitUntilExit(); public: