diff options
| author | Sepalani <sepalani@hotmail.fr> | 2026-02-04 19:49:09 +0400 |
|---|---|---|
| committer | Jordan Woyak <jordan.woyak@gmail.com> | 2026-02-15 20:14:15 -0600 |
| commit | 2ffa7cec0781afde855a071ae9e4bdc24ce0a825 (patch) | |
| tree | d6b63a4cf61c3e8b7f724ed2387bdf762f739ccb /Source/Core | |
| parent | cbc7c2d3858aab404974a16be2b3cf54e98c923a (diff) | |
SI_DeviceAMBaseboard: Fix log issues related to GeneralDriverOutput
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/Core/HW/SI/SI_DeviceAMBaseboard.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/Source/Core/Core/HW/SI/SI_DeviceAMBaseboard.cpp b/Source/Core/Core/HW/SI/SI_DeviceAMBaseboard.cpp index 326362bacf..060ff44773 100644 --- a/Source/Core/Core/HW/SI/SI_DeviceAMBaseboard.cpp +++ b/Source/Core/Core/HW/SI/SI_DeviceAMBaseboard.cpp @@ -2349,17 +2349,24 @@ int CSIDevice_AMBaseboard::RunBuffer(u8* buffer, int request_length) break; } - if (!validate_jvs_io(std::max(bytes, 3u), "GeneralDriverOutput")) + if (!validate_jvs_io(bytes, "GeneralDriverOutput")) break; - const u16 seat_state = Common::swap16(jvs_io + 1) >> 2; INFO_LOG_FMT(SERIALINTERFACE_JVSIO, "JVS-IO: Command 0x32, GPO: delay=0x{:02x}, rx_reply=0x{:02x}," - " seat_state=0x{:04x}, bytes={}, buffer:\n{}", - delay, m_rx_reply, seat_state, bytes, HexDump(jvs_io, bytes)); - jvs_io += bytes; + " bytes={}, buffer:\n{}", + delay, m_rx_reply, bytes, HexDump(jvs_io, bytes)); + + if (bytes < 3) + { + jvs_io += bytes; + break; + } // Handling of the motion seat used in F-Zero AXs DX version + const u16 seat_state = Common::swap16(jvs_io + 1) >> 2; + jvs_io += bytes; + switch (seat_state) { case 0x70: |
