From a0f1cd1baf9bd56b2897b3145401ba483355cb07 Mon Sep 17 00:00:00 2001 From: lizzie Date: Wed, 5 Aug 2026 20:55:01 +0200 Subject: [PATCH] [hid_core] fix NPad crash on pikmin 4 due to nullref (#4249) Signed-off-by: lizzie - [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions). - [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md) - [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability. ------------------- Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4249 Reviewed-by: CamilleLaVey Reviewed-by: Maufeat --- src/hid_core/resources/npad/npad.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/hid_core/resources/npad/npad.cpp b/src/hid_core/resources/npad/npad.cpp index 044ad0fb32..a2fd23b534 100644 --- a/src/hid_core/resources/npad/npad.cpp +++ b/src/hid_core/resources/npad/npad.cpp @@ -504,9 +504,12 @@ void NPad::OnUpdate(Kernel::KernelCore& kernel, const Core::Timing::CoreTiming& for (std::size_t i = 0; i < controller_data[aruid_index].size(); ++i) { auto& controller = controller_data[aruid_index][i]; - controller.shared_memory = - &data->shared_memory_format->npad.npad_entry[i].internal_state; + controller.shared_memory = &data->shared_memory_format->npad.npad_entry[i].internal_state; auto* npad = controller.shared_memory; + if (!npad || !controller.device) { + LOG_WARNING(Service_HID, "No device for {}", i); + continue; + } const auto& controller_type = controller.device->GetNpadStyleIndex();