|
|
|
@ -139,8 +139,8 @@ struct System::Impl { |
|
|
|
: kernel{system}, fs_controller{system}, memory{system}, |
|
|
|
cpu_manager{system}, reporter{system}, applet_manager{system}, time_manager{system} {} |
|
|
|
|
|
|
|
ResultStatus Run() { |
|
|
|
status = ResultStatus::Success; |
|
|
|
SystemResultStatus Run() { |
|
|
|
status = SystemResultStatus::Success; |
|
|
|
|
|
|
|
kernel.Suspend(false); |
|
|
|
core_timing.SyncPause(false); |
|
|
|
@ -149,8 +149,8 @@ struct System::Impl { |
|
|
|
return status; |
|
|
|
} |
|
|
|
|
|
|
|
ResultStatus Pause() { |
|
|
|
status = ResultStatus::Success; |
|
|
|
SystemResultStatus Pause() { |
|
|
|
status = SystemResultStatus::Success; |
|
|
|
|
|
|
|
core_timing.SyncPause(true); |
|
|
|
kernel.Suspend(true); |
|
|
|
@ -159,7 +159,7 @@ struct System::Impl { |
|
|
|
return status; |
|
|
|
} |
|
|
|
|
|
|
|
ResultStatus Init(System& system, Frontend::EmuWindow& emu_window) { |
|
|
|
SystemResultStatus Init(System& system, Frontend::EmuWindow& emu_window) { |
|
|
|
LOG_DEBUG(Core, "initialized OK"); |
|
|
|
|
|
|
|
device_memory = std::make_unique<Core::DeviceMemory>(); |
|
|
|
@ -197,7 +197,7 @@ struct System::Impl { |
|
|
|
|
|
|
|
gpu_core = VideoCore::CreateGPU(emu_window, system); |
|
|
|
if (!gpu_core) { |
|
|
|
return ResultStatus::ErrorVideoCore; |
|
|
|
return SystemResultStatus::ErrorVideoCore; |
|
|
|
} |
|
|
|
|
|
|
|
service_manager = std::make_shared<Service::SM::ServiceManager>(kernel); |
|
|
|
@ -217,21 +217,22 @@ struct System::Impl { |
|
|
|
|
|
|
|
LOG_DEBUG(Core, "Initialized OK"); |
|
|
|
|
|
|
|
return ResultStatus::Success; |
|
|
|
return SystemResultStatus::Success; |
|
|
|
} |
|
|
|
|
|
|
|
ResultStatus Load(System& system, Frontend::EmuWindow& emu_window, const std::string& filepath, |
|
|
|
u64 program_id, std::size_t program_index) { |
|
|
|
SystemResultStatus Load(System& system, Frontend::EmuWindow& emu_window, |
|
|
|
const std::string& filepath, u64 program_id, |
|
|
|
std::size_t program_index) { |
|
|
|
app_loader = Loader::GetLoader(system, GetGameFileFromPath(virtual_filesystem, filepath), |
|
|
|
program_id, program_index); |
|
|
|
|
|
|
|
if (!app_loader) { |
|
|
|
LOG_CRITICAL(Core, "Failed to obtain loader for {}!", filepath); |
|
|
|
return ResultStatus::ErrorGetLoader; |
|
|
|
return SystemResultStatus::ErrorGetLoader; |
|
|
|
} |
|
|
|
|
|
|
|
ResultStatus init_result{Init(system, emu_window)}; |
|
|
|
if (init_result != ResultStatus::Success) { |
|
|
|
SystemResultStatus init_result{Init(system, emu_window)}; |
|
|
|
if (init_result != SystemResultStatus::Success) { |
|
|
|
LOG_CRITICAL(Core, "Failed to initialize system (Error {})!", |
|
|
|
static_cast<int>(init_result)); |
|
|
|
Shutdown(); |
|
|
|
@ -249,8 +250,8 @@ struct System::Impl { |
|
|
|
LOG_CRITICAL(Core, "Failed to load ROM (Error {})!", load_result); |
|
|
|
Shutdown(); |
|
|
|
|
|
|
|
return static_cast<ResultStatus>(static_cast<u32>(ResultStatus::ErrorLoader) + |
|
|
|
static_cast<u32>(load_result)); |
|
|
|
return static_cast<SystemResultStatus>( |
|
|
|
static_cast<u32>(SystemResultStatus::ErrorLoader) + static_cast<u32>(load_result)); |
|
|
|
} |
|
|
|
AddGlueRegistrationForProcess(*app_loader, *main_process); |
|
|
|
kernel.MakeCurrentProcess(main_process.get()); |
|
|
|
@ -282,7 +283,7 @@ struct System::Impl { |
|
|
|
GetAndResetPerfStats(); |
|
|
|
perf_stats->BeginSystemFrame(); |
|
|
|
|
|
|
|
status = ResultStatus::Success; |
|
|
|
status = SystemResultStatus::Success; |
|
|
|
return status; |
|
|
|
} |
|
|
|
|
|
|
|
@ -355,7 +356,7 @@ struct System::Impl { |
|
|
|
arp_manager.Register(launch.title_id, launch, std::move(nacp_data)); |
|
|
|
} |
|
|
|
|
|
|
|
void SetStatus(ResultStatus new_status, const char* details = nullptr) { |
|
|
|
void SetStatus(SystemResultStatus new_status, const char* details = nullptr) { |
|
|
|
status = new_status; |
|
|
|
if (details) { |
|
|
|
status_details = details; |
|
|
|
@ -411,7 +412,7 @@ struct System::Impl { |
|
|
|
/// Network instance
|
|
|
|
Network::NetworkInstance network_instance; |
|
|
|
|
|
|
|
ResultStatus status = ResultStatus::Success; |
|
|
|
SystemResultStatus status = SystemResultStatus::Success; |
|
|
|
std::string status_details = ""; |
|
|
|
|
|
|
|
std::unique_ptr<Core::PerfStats> perf_stats; |
|
|
|
@ -439,16 +440,16 @@ const CpuManager& System::GetCpuManager() const { |
|
|
|
return impl->cpu_manager; |
|
|
|
} |
|
|
|
|
|
|
|
System::ResultStatus System::Run() { |
|
|
|
SystemResultStatus System::Run() { |
|
|
|
return impl->Run(); |
|
|
|
} |
|
|
|
|
|
|
|
System::ResultStatus System::Pause() { |
|
|
|
SystemResultStatus System::Pause() { |
|
|
|
return impl->Pause(); |
|
|
|
} |
|
|
|
|
|
|
|
System::ResultStatus System::SingleStep() { |
|
|
|
return ResultStatus::Success; |
|
|
|
SystemResultStatus System::SingleStep() { |
|
|
|
return SystemResultStatus::Success; |
|
|
|
} |
|
|
|
|
|
|
|
void System::InvalidateCpuInstructionCaches() { |
|
|
|
@ -463,8 +464,8 @@ void System::Shutdown() { |
|
|
|
impl->Shutdown(); |
|
|
|
} |
|
|
|
|
|
|
|
System::ResultStatus System::Load(Frontend::EmuWindow& emu_window, const std::string& filepath, |
|
|
|
u64 program_id, std::size_t program_index) { |
|
|
|
SystemResultStatus System::Load(Frontend::EmuWindow& emu_window, const std::string& filepath, |
|
|
|
u64 program_id, std::size_t program_index) { |
|
|
|
return impl->Load(*this, emu_window, filepath, program_id, program_index); |
|
|
|
} |
|
|
|
|
|
|
|
@ -624,7 +625,7 @@ Loader::ResultStatus System::GetGameName(std::string& out) const { |
|
|
|
return impl->GetGameName(out); |
|
|
|
} |
|
|
|
|
|
|
|
void System::SetStatus(ResultStatus new_status, const char* details) { |
|
|
|
void System::SetStatus(SystemResultStatus new_status, const char* details) { |
|
|
|
impl->SetStatus(new_status, details); |
|
|
|
} |
|
|
|
|
|
|
|
|