summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraiju <devnull@localhost>2018-06-13 09:26:55 +0000
committeraiju <devnull@localhost>2018-06-13 09:26:55 +0000
commit5d202d345616907d511b46e395226958fe66a2c3 (patch)
tree86657224cdf766a4b54f426e379891a2b73eddd2
parent8fdd633d57778af2e7fc01115e67f3735e553244 (diff)
downloadplan9front-5d202d345616907d511b46e395226958fe66a2c3.tar.xz
games/gb: fix mbc5 register addressing (fixes warioland3 gamebreaking bug)
-rw-r--r--sys/src/games/gb/mem.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/src/games/gb/mem.c b/sys/src/games/gb/mem.c
index 44a10820c..ff8fd7950 100644
--- a/sys/src/games/gb/mem.c
+++ b/sys/src/games/gb/mem.c
@@ -431,11 +431,11 @@ mbc5(int a, int v)
default:
nope(a);
}
- switch(a >> 13){
- case 0: ramen = (v & 0xf) == 0xa; break;
- case 1: b0 = b0 & 0x100 | v; break;
- case 2: b0 = b0 & 0xff | v << 8 & 0x100; break;
- case 3: b1 = v & 0xff; b1 %= nbackbank; break;
+ switch(a >> 12){
+ case 0: case 1: ramen = (v & 0xf) == 0xa; break;
+ case 2: b0 = b0 & 0x100 | v; break;
+ case 3: b0 = b0 & 0xff | v << 8 & 0x100; break;
+ case 4: b1 = v & 0xff; b1 %= nbackbank; break;
}
b0 %= nrom >> 14;
romb = rom + (b0 << 14);