diff options
author | aiju <devnull@localhost> | 2015-04-01 19:27:52 +0200 |
---|---|---|
committer | aiju <devnull@localhost> | 2015-04-01 19:27:52 +0200 |
commit | 52ab0d153472f74effbcbd7fbfb6faa84dd80e61 (patch) | |
tree | 73f9611ff6e30ab53112f8ffab9232455f4bca20 /sys/src/games | |
parent | 66c98fab71ea8878fc963b38a106a38518dac83a (diff) |
games/gb: fix gbc dma
Diffstat (limited to 'sys/src/games')
-rw-r--r-- | sys/src/games/gb/dat.h | 8 | ||||
-rw-r--r-- | sys/src/games/gb/mem.c | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/sys/src/games/gb/dat.h b/sys/src/games/gb/dat.h index 110e955de..787c8f839 100644 --- a/sys/src/games/gb/dat.h +++ b/sys/src/games/gb/dat.h @@ -69,10 +69,10 @@ enum { WX = 0x4B, KEY1 = 0x4D, VBK = 0x4F, - HDMASL = 0x51, - HDMASH = 0x52, - HDMADL = 0x53, - HDMADH = 0x54, + HDMASH = 0x51, + HDMASL = 0x52, + HDMADH = 0x53, + HDMADL = 0x54, HDMAC = 0x55, BCPS = 0x68, diff --git a/sys/src/games/gb/mem.c b/sys/src/games/gb/mem.c index c5b4bd554..7f2894571 100644 --- a/sys/src/games/gb/mem.c +++ b/sys/src/games/gb/mem.c @@ -549,7 +549,7 @@ dmastep(void) u16int sa, da; sa = (reg[HDMASL] | reg[HDMASH] << 8) & 0xfff0; - da = (reg[HDMADL] | reg[HDMADH] << 8) & 0x0ff0; + da = (reg[HDMADL] | reg[HDMADH] << 8) & 0x1ff0 | 0x8000; for(i = 0; i < 16; i++) memwrite(da++, memread(sa++)); reg[HDMASL] += 16; |