From 031c382c3eca5427436433875f51f9fabc143599 Mon Sep 17 00:00:00 2001 From: OBattler Date: Wed, 5 Nov 2025 06:12:09 +0100 Subject: [PATCH] PC87306: Properly fix the ID readout, now it works on the Thor & Co. even without the register 0x00 hack. --- src/sio/sio_pc87306.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/sio/sio_pc87306.c b/src/sio/sio_pc87306.c index 5b9cafa37..7fdf6d2d6 100644 --- a/src/sio/sio_pc87306.c +++ b/src/sio/sio_pc87306.c @@ -284,12 +284,9 @@ pc87306_write(uint16_t port, uint8_t val, void *priv) valxor = val ^ dev->regs[dev->cur_reg]; dev->tries = 0; - if ((dev->cur_reg <= 0x1c) && (dev->cur_reg != 0x08)) { - if ((dev->cur_reg == 0x00) && (val == 0x08)) - val = 0x4f; - + if ((dev->cur_reg <= 0x1c) && (dev->cur_reg != 0x08)) dev->regs[dev->cur_reg] = val; - } else + else return; } else { dev->tries++; @@ -407,8 +404,8 @@ pc87306_read(uint16_t port, void *priv) dev->tries = 0; } } else { - if (dev->cur_reg == 8) - ret = 0x70; + if (dev->cur_reg == 0x08) + ret = 0x71; else if (dev->cur_reg < 28) ret = dev->regs[dev->cur_reg]; dev->tries = 0; @@ -427,7 +424,6 @@ pc87306_reset_common(void *priv) dev->regs[0x00] = 0x0b; dev->regs[0x01] = 0x01; - dev->regs[0x02] = 0x08; dev->regs[0x03] = 0x01; dev->regs[0x05] = 0x0d; dev->regs[0x08] = 0x71;