From fbf9d6ea17fda1d50f359f6d9f912d8fc081c3e4 Mon Sep 17 00:00:00 2001 From: Vincent Pelletier Date: Sat, 17 Sep 2022 00:11:49 +0000 Subject: [PATCH] SI: Ignore non-standard setGameID command Avoids a panic when loading recent swiss. Not enough to have it run, unfortunately. --- Source/Core/Core/HW/SI/SI_Device.h | 1 + Source/Core/Core/HW/SI/SI_DeviceGCController.cpp | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/Source/Core/Core/HW/SI/SI_Device.h b/Source/Core/Core/HW/SI/SI_Device.h index d109432b90..2ae8de0d23 100644 --- a/Source/Core/Core/HW/SI/SI_Device.h +++ b/Source/Core/Core/HW/SI/SI_Device.h @@ -47,6 +47,7 @@ enum class EBufferCommands : u8 CMD_STATUS = 0x00, CMD_READ_GBA = 0x14, CMD_WRITE_GBA = 0x15, + CMD_SET_GAME_ID = 0x1d, CMD_DIRECT = 0x40, CMD_ORIGIN = 0x41, CMD_RECALIBRATE = 0x42, diff --git a/Source/Core/Core/HW/SI/SI_DeviceGCController.cpp b/Source/Core/Core/HW/SI/SI_DeviceGCController.cpp index 2672f70f63..3bd11c09d1 100644 --- a/Source/Core/Core/HW/SI/SI_DeviceGCController.cpp +++ b/Source/Core/Core/HW/SI/SI_DeviceGCController.cpp @@ -105,6 +105,14 @@ int CSIDevice_GCController::RunBuffer(u8* buffer, int request_length) return sizeof(SOrigin); } + // GameID packet, no response needed, nothing to do + // On real hardware, this is used to configure the BlueRetro controler + // adapter, while licensed accessories ignore this command. + case EBufferCommands::CMD_SET_GAME_ID: + { + return 0; + } + // DEFAULT default: {