git: 9front

Download patch

ref: 85b89f574397db1e192a4bd25066cb2c587647f5
parent: c913f5ef68f7ac907cbc60047b806ecb0d0e2ede
author: Jacob Moody <moody@posixcafe.org>
date: Sat Mar 14 18:18:58 EDT 2026

games/md: correctly zero out some controller bits

Bits 2 and 3 on second IO read of a controller port (ctl write 0x00)
should always be low. We left them high since controllers are low active,
but this seems to cause SSF2 to be unable to read the controller.

--- a/sys/src/games/md/mem.c
+++ b/sys/src/games/md/mem.c
@@ -37,8 +37,10 @@
 	case 0x0001: return 0xa0;
 	case 0x0003:
 		v = ~(keys & 0xffff);
-		if((ctl[0] & 0x40) == 0)
+		if((ctl[0] & 0x40) == 0){
 			v >>= 8;
+			v &= ~(0b1100);
+		}
 		return ctl[0] & 0xc0 | v & 0x3f;
 	case 0x0005:
 	case 0x0007:
--