mirror of
https://github.com/skyline-emu/skyline.git
synced 2024-11-05 04:55:09 +01:00
Print NPDM + NACP metadata for title determination
We determined that printing NPDM + NACP metadata is a significantly better way to determine what title is running rather than printing the filename.
This commit is contained in:
parent
48d2b3bf07
commit
128ea33073
@ -118,7 +118,7 @@ extern "C" JNIEXPORT void Java_emu_skyline_EmulationActivity_executeApplication(
|
|||||||
SettingsWeak = settings;
|
SettingsWeak = settings;
|
||||||
jvmManager->InitializeControllers();
|
jvmManager->InitializeControllers();
|
||||||
|
|
||||||
skyline::Logger::InfoNoPrefix("Launching ROM {}", skyline::JniString(env, romUriJstring));
|
skyline::Logger::DebugNoPrefix("Launching ROM {}", skyline::JniString(env, romUriJstring));
|
||||||
|
|
||||||
os->Execute(romFd, static_cast<skyline::loader::RomFormat>(romType));
|
os->Execute(romFd, static_cast<skyline::loader::RomFormat>(romType));
|
||||||
} catch (std::exception &e) {
|
} catch (std::exception &e) {
|
||||||
|
@ -52,11 +52,23 @@ namespace skyline::kernel {
|
|||||||
|
|
||||||
auto &process{state.process};
|
auto &process{state.process};
|
||||||
process = std::make_shared<kernel::type::KProcess>(state);
|
process = std::make_shared<kernel::type::KProcess>(state);
|
||||||
|
|
||||||
auto entry{state.loader->LoadProcessData(process, state)};
|
auto entry{state.loader->LoadProcessData(process, state)};
|
||||||
|
auto &nacp{state.loader->nacp};
|
||||||
|
if (nacp) {
|
||||||
|
std::string name{nacp->GetApplicationName(language::ApplicationLanguage::AmericanEnglish)}, publisher{nacp->GetApplicationPublisher(language::ApplicationLanguage::AmericanEnglish)};
|
||||||
|
if (name.empty())
|
||||||
|
name = nacp->GetApplicationName(nacp->GetFirstSupportedTitleLanguage());
|
||||||
|
if (publisher.empty())
|
||||||
|
publisher = nacp->GetApplicationPublisher(nacp->GetFirstSupportedTitleLanguage());
|
||||||
|
Logger::InfoNoPrefix(R"(Starting "{}" v{} by "{}")", name, nacp->GetApplicationVersion(), publisher);
|
||||||
|
}
|
||||||
|
|
||||||
process->InitializeHeapTls();
|
process->InitializeHeapTls();
|
||||||
auto thread{process->CreateThread(entry)};
|
auto thread{process->CreateThread(entry)};
|
||||||
if (thread) {
|
if (thread) {
|
||||||
Logger::Debug("Starting main HOS thread");
|
Logger::Info("Starting main HOS thread");
|
||||||
|
Logger::EmulationContext.Flush();
|
||||||
thread->Start(true);
|
thread->Start(true);
|
||||||
process->Kill(true, true, true);
|
process->Kill(true, true, true);
|
||||||
}
|
}
|
||||||
|
@ -77,6 +77,6 @@ namespace skyline::vfs {
|
|||||||
if (!threadInfo.coreMask.test(meta.idealCore))
|
if (!threadInfo.coreMask.test(meta.idealCore))
|
||||||
throw exception("NPDM Ideal Core isn't valid: {} ({})", meta.idealCore, threadInfo.coreMask);
|
throw exception("NPDM Ideal Core isn't valid: {} ({})", meta.idealCore, threadInfo.coreMask);
|
||||||
|
|
||||||
Logger::Debug("NPDM Metadata:\nTitle: ID: {:X}, Version: {}\nMain Thread: Priority: {}, Stack Size: 0x{:X}\nScheduler: Ideal Core: {}, Core Mask: {}, Priority: {} - {}\nKernel Version: v{}.{}", aci0.programId, meta.version, meta.mainThreadPriority, meta.mainThreadStackSize, meta.idealCore, threadInfo.coreMask, threadInfo.priority.min, threadInfo.priority.max, kernelVersion.majorVersion, kernelVersion.minorVersion);
|
Logger::InfoNoPrefix("NPDM Metadata:\nTitle: ID: {:X}, Version: {}\nMain Thread: Priority: {}, Stack Size: 0x{:X}\nScheduler: Ideal Core: {}, Core Mask: {}, Priority: {} - {}\nKernel Version: v{}.{}", aci0.programId, meta.version, meta.mainThreadPriority, meta.mainThreadStackSize, meta.idealCore, threadInfo.coreMask, threadInfo.priority.min, threadInfo.priority.max, kernelVersion.majorVersion, kernelVersion.minorVersion);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user