diff options
| author | aiju <devnull@localhost> | 2018-06-13 09:26:55 +0000 |
|---|---|---|
| committer | aiju <devnull@localhost> | 2018-06-13 09:26:55 +0000 |
| commit | 5d202d345616907d511b46e395226958fe66a2c3 (patch) | |
| tree | 86657224cdf766a4b54f426e379891a2b73eddd2 | |
| parent | 8fdd633d57778af2e7fc01115e67f3735e553244 (diff) | |
| download | plan9front-5d202d345616907d511b46e395226958fe66a2c3.tar.xz | |
games/gb: fix mbc5 register addressing (fixes warioland3 gamebreaking bug)
| -rw-r--r-- | sys/src/games/gb/mem.c | 10 |
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); |
