code: plan9front

Download patch

ref: c6ec2041ad9bb2dbb6b710c7efdbf2fc8de4f5ba
parent: 22cf5562fae445333c83d7d562156943dbe1716b
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Fri Oct 20 23:43:29 EDT 2023

games/md: ignore invalid writes (makes cave story work)

--- a/sys/src/games/md/mem.c
+++ b/sys/src/games/md/mem.c
@@ -75,7 +75,7 @@
 	case 0x30f3: case 0x30f5: case 0x30f7: case 0x30f9: case 0x30fb:
 		return;
 	}
-	sysfatal("write to 0xa1%.4x (pc=%#.6ux)", a, curpc);
+	fprint(2, "write to 0xa1%.4x (pc=%#.6ux)", a, curpc);
 }
 
 void
@@ -286,7 +286,7 @@
 		break;
 	default:
 	invalid:
-		sysfatal("write to %#.6x (pc=%#.6x)", a, curpc);
+		fprint(2, "write to %#.6x (pc=%#.6x)", a, curpc);
 	}
 }
 
@@ -404,7 +404,8 @@
 			memwrite(0xc00000 | a & 0x7e, v | v << 8, (a & 1) != 0 ? 0xff : 0xff00);
 			return;
 		}
-		sysfatal("z80 write to %#.4x (pc=%#.4x)", a, scurpc);
+		fprint(2, "z80 write to %#.4x (pc=%#.4x)", a, scurpc);
+		return;
 	default:
 		memwrite(z80bank << 15 | a & 0x7ffe, v << 8 | v, (a & 1) != 0 ? 0xff : 0xff00);
 	}