fix for crashes on TLS due to openorbis being W E I R D

This commit is contained in:
lizzie
2025-12-26 12:11:05 +00:00
parent 0f86d527de
commit 35b653e5fb
2 changed files with 23 additions and 1 deletions
+8 -1
View File
@@ -196,7 +196,14 @@ struct Values {
linkage, false, "dump_audio_commands", Category::Audio, Specialization::Default, false}; linkage, false, "dump_audio_commands", Category::Audio, Specialization::Default, false};
// Core // Core
SwitchableSetting<bool> use_multi_core{linkage, true, "use_multi_core", Category::Core}; SwitchableSetting<bool> use_multi_core{linkage,
#ifdef __OPENORBIS__
// Re-enable once proper TLS support is added
false,
#else
true,
#endif
"use_multi_core", Category::Core};
SwitchableSetting<MemoryLayout, true> memory_layout_mode{linkage, SwitchableSetting<MemoryLayout, true> memory_layout_mode{linkage,
MemoryLayout::Memory_4Gb, MemoryLayout::Memory_4Gb,
"memory_layout_mode", "memory_layout_mode",
+15
View File
@@ -82,7 +82,10 @@ struct InputSubsystem::Impl {
#ifdef ENABLE_LIBUSB #ifdef ENABLE_LIBUSB
RegisterEngine("gcpad", gcadapter); RegisterEngine("gcpad", gcadapter);
#endif #endif
#ifndef __OPENORBIS__
// TODO: Issue in PS4, crash for UDP_client
RegisterEngine("cemuhookudp", udp_client); RegisterEngine("cemuhookudp", udp_client);
#endif
RegisterEngine("tas", tas_input); RegisterEngine("tas", tas_input);
RegisterEngine("camera", camera); RegisterEngine("camera", camera);
#ifdef __ANDROID__ #ifdef __ANDROID__
@@ -116,7 +119,9 @@ struct InputSubsystem::Impl {
#ifdef ENABLE_LIBUSB #ifdef ENABLE_LIBUSB
UnregisterEngine(gcadapter); UnregisterEngine(gcadapter);
#endif #endif
#ifndef __OPENORBIS__
UnregisterEngine(udp_client); UnregisterEngine(udp_client);
#endif
UnregisterEngine(tas_input); UnregisterEngine(tas_input);
UnregisterEngine(camera); UnregisterEngine(camera);
#ifdef __ANDROID__ #ifdef __ANDROID__
@@ -152,6 +157,7 @@ struct InputSubsystem::Impl {
auto gcadapter_devices = gcadapter->GetInputDevices(); auto gcadapter_devices = gcadapter->GetInputDevices();
devices.insert(devices.end(), gcadapter_devices.begin(), gcadapter_devices.end()); devices.insert(devices.end(), gcadapter_devices.begin(), gcadapter_devices.end());
#endif #endif
#ifndef __OPENORBIS__
auto udp_devices = udp_client->GetInputDevices(); auto udp_devices = udp_client->GetInputDevices();
devices.insert(devices.end(), udp_devices.begin(), udp_devices.end()); devices.insert(devices.end(), udp_devices.begin(), udp_devices.end());
#ifdef HAVE_SDL3 #ifdef HAVE_SDL3
@@ -186,6 +192,7 @@ struct InputSubsystem::Impl {
return gcadapter; return gcadapter;
} }
#endif #endif
#ifndef __OPENORBIS__
if (engine == udp_client->GetEngineName()) { if (engine == udp_client->GetEngineName()) {
return udp_client; return udp_client;
} }
@@ -271,9 +278,11 @@ struct InputSubsystem::Impl {
return true; return true;
} }
#endif #endif
#ifndef __OPENORBIS__
if (engine == udp_client->GetEngineName()) { if (engine == udp_client->GetEngineName()) {
return true; return true;
} }
#endif
if (engine == tas_input->GetEngineName()) { if (engine == tas_input->GetEngineName()) {
return true; return true;
} }
@@ -300,6 +309,7 @@ struct InputSubsystem::Impl {
#ifdef ENABLE_LIBUSB #ifdef ENABLE_LIBUSB
gcadapter->BeginConfiguration(); gcadapter->BeginConfiguration();
#endif #endif
#ifndef __OPENORBIS__
udp_client->BeginConfiguration(); udp_client->BeginConfiguration();
#ifdef HAVE_SDL3 #ifdef HAVE_SDL3
sdl->BeginConfiguration(); sdl->BeginConfiguration();
@@ -316,6 +326,7 @@ struct InputSubsystem::Impl {
#ifdef ENABLE_LIBUSB #ifdef ENABLE_LIBUSB
gcadapter->EndConfiguration(); gcadapter->EndConfiguration();
#endif #endif
#ifndef __OPENORBIS__
udp_client->EndConfiguration(); udp_client->EndConfiguration();
#ifdef HAVE_SDL3 #ifdef HAVE_SDL3
sdl->EndConfiguration(); sdl->EndConfiguration();
@@ -341,7 +352,9 @@ struct InputSubsystem::Impl {
std::shared_ptr<Mouse> mouse; std::shared_ptr<Mouse> mouse;
std::shared_ptr<TouchScreen> touch_screen; std::shared_ptr<TouchScreen> touch_screen;
std::shared_ptr<TasInput::Tas> tas_input; std::shared_ptr<TasInput::Tas> tas_input;
#ifndef __OPENORBIS__
std::shared_ptr<CemuhookUDP::UDPClient> udp_client; std::shared_ptr<CemuhookUDP::UDPClient> udp_client;
#endif
std::shared_ptr<Camera> camera; std::shared_ptr<Camera> camera;
std::shared_ptr<VirtualAmiibo> virtual_amiibo; std::shared_ptr<VirtualAmiibo> virtual_amiibo;
std::shared_ptr<VirtualGamepad> virtual_gamepad; std::shared_ptr<VirtualGamepad> virtual_gamepad;
@@ -470,7 +483,9 @@ bool InputSubsystem::IsStickInverted(const Common::ParamPackage& params) const {
} }
void InputSubsystem::ReloadInputDevices() { void InputSubsystem::ReloadInputDevices() {
#ifndef __OPENORBIS__
impl->udp_client.get()->ReloadSockets(); impl->udp_client.get()->ReloadSockets();
#endif
} }
void InputSubsystem::BeginMapping(Polling::InputType type) { void InputSubsystem::BeginMapping(Polling::InputType type) {