various SDL driver fixes for joystick, initialize video

This commit is contained in:
lizzie
2026-06-30 01:46:14 +00:00
parent 65971d3ad2
commit 3ab3feeb1d
2 changed files with 71 additions and 94 deletions
+3 -11
View File
@@ -75,12 +75,7 @@ Services::Services(std::shared_ptr<SM::ServiceManager>& sm, Core::System& system
system.GetFileSystemController().CreateFactories(*system.GetFilesystem(), false);
#ifdef __OPENORBIS__
// PS4 requires us to run this on a single thread so we don't immediately die
bool const run_on_host = false;
#else
bool const run_on_host = true;
#endif
// Just a quick C++ lesson
// Capturing lambdas will silently create new variables for the objects referenced via <ident> = <expr>
@@ -99,12 +94,9 @@ Services::Services(std::shared_ptr<SM::ServiceManager>& sm, Core::System& system
{"ldn", &LDN::LoopProcess},
{"nvservices", &Nvidia::LoopProcess},
{"bsdsocket", &Sockets::LoopProcess},
}) {
if (run_on_host) kernel.RunOnHostCoreProcess(std::string(e.first), [&system, f = e.second] { f(system); }).detach();
else kernel.RunOnGuestCoreProcess(std::string(e.first), [&system, f = e.second] { f(system); });
}
if (run_on_host) kernel.RunOnHostCoreProcess("vi", [&, token] { VI::LoopProcess(system, token); }).detach();
else kernel.RunOnGuestCoreProcess("vi", [&, token] { VI::LoopProcess(system, token); });
})
kernel.RunOnHostCoreProcess(std::string(e.first), [&system, f = e.second] { f(system); }).detach();
kernel.RunOnHostCoreProcess("vi", [&, token] { VI::LoopProcess(system, token); }).detach();
// Avoid cold clones of lambdas -- succintly
for (auto const& e : std::vector<std::pair<std::string_view, void (*)(Core::System&)>>{
{"sm", &SM::LoopProcess},