diff --git a/rpcs3/Emu/Cell/lv2/sys_net.cpp b/rpcs3/Emu/Cell/lv2/sys_net.cpp index fc1b813153..a8aaa260ae 100644 --- a/rpcs3/Emu/Cell/lv2/sys_net.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_net.cpp @@ -1217,6 +1217,12 @@ lv2_socket::~lv2_socket() } } +extern void need_network() +{ + g_fxo->need(); + g_fxo->need>(); +} + error_code sys_net_bnet_accept(ppu_thread& ppu, s32 s, vm::ptr addr, vm::ptr paddrlen) { ppu.state += cpu_flag::wait; diff --git a/rpcs3/Emu/NP/np_handler.cpp b/rpcs3/Emu/NP/np_handler.cpp index e5f2a36c76..8fe532759d 100644 --- a/rpcs3/Emu/NP/np_handler.cpp +++ b/rpcs3/Emu/NP/np_handler.cpp @@ -42,6 +42,8 @@ LOG_CHANNEL(nph_log, "NPHandler"); np_handler::np_handler() { + g_fxo->need>(); + g_cfg_rpcn.load(); is_connected = (g_cfg.net.net_active == np_internet_status::enabled); diff --git a/rpcs3/Emu/NP/signaling_handler.cpp b/rpcs3/Emu/NP/signaling_handler.cpp index fab7a43872..d6e8279c0d 100644 --- a/rpcs3/Emu/NP/signaling_handler.cpp +++ b/rpcs3/Emu/NP/signaling_handler.cpp @@ -16,6 +16,7 @@ LOG_CHANNEL(sign_log, "Signaling"); std::vector, std::vector>> get_sign_msgs(); s32 send_packet_from_p2p_port(const std::vector& data, const sockaddr_in& addr); +void need_network(); template <> void fmt_class_string::format(std::string& out, u64 arg) @@ -37,6 +38,11 @@ void fmt_class_string::format(std::string& out, u64 arg) }); } +signaling_handler::signaling_handler() +{ + need_network(); +} + ///////////////////////////// //// SIGNALING CALLBACKS //// ///////////////////////////// diff --git a/rpcs3/Emu/NP/signaling_handler.h b/rpcs3/Emu/NP/signaling_handler.h index de50611142..bf674c62fe 100644 --- a/rpcs3/Emu/NP/signaling_handler.h +++ b/rpcs3/Emu/NP/signaling_handler.h @@ -48,6 +48,7 @@ enum SignalingCommand : u32 class signaling_handler { public: + signaling_handler(); void operator()(); void wake_up(); signaling_handler& operator=(thread_state);