summaryrefslogtreecommitdiff
path: root/sys/src/games
diff options
context:
space:
mode:
authoraiju <devnull@localhost>2015-04-01 19:27:52 +0200
committeraiju <devnull@localhost>2015-04-01 19:27:52 +0200
commit52ab0d153472f74effbcbd7fbfb6faa84dd80e61 (patch)
tree73f9611ff6e30ab53112f8ffab9232455f4bca20 /sys/src/games
parent66c98fab71ea8878fc963b38a106a38518dac83a (diff)
games/gb: fix gbc dma
Diffstat (limited to 'sys/src/games')
-rw-r--r--sys/src/games/gb/dat.h8
-rw-r--r--sys/src/games/gb/mem.c2
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;