core, improve pad compatibility (6btn, mcd32x)
authorkub <derkub@gmail.com>
Fri, 26 Nov 2021 19:33:26 +0000 (20:33 +0100)
committerkub <derkub@gmail.com>
Fri, 26 Nov 2021 19:33:26 +0000 (20:33 +0100)
pico/memory.c

index 6bdbec3..85e2e37 100644 (file)
@@ -240,9 +240,9 @@ static u32 read_pad_6btn(int i, u32 out_bits)
   }\r
   else if(phase == 3) {\r
     if (out_bits & 0x40)\r
-      return (pad & 0x30) | ((pad >> 8) & 0xf);  // ?1CB MXYZ\r
+      value = (pad & 0x30) | ((pad >> 8) & 0xf); // ?1CB MXYZ\r
     else\r
-      return ((pad & 0xc0) >> 2) | 0x0f;         // ?0SA 1111\r
+      value = ((pad & 0xc0) >> 2) | 0x0f;        // ?0SA 1111\r
     goto out;\r
   }\r
 \r
@@ -281,7 +281,7 @@ static NOINLINE u32 port_read(int i)
   // disables output before doing TH-low read, so don't emulate it for TH.\r
   // Decap Attack reportedly doesn't work on Nomad but works on must\r
   // other MD revisions (different pull-up strength?).\r
-  if (PicoIn.AHW & PAHW_32X) // don't do it on 32X, it breaks WWF Raw\r
+  if (PicoIn.AHW & (PAHW_32X|PAHW_MCD)) // don't do it on 32X, it breaks WWF Raw\r
     out |= 0x7f & ~ctrl_reg;\r
   else\r
     out |= 0x3f & ~ctrl_reg;\r