From 52ab0d153472f74effbcbd7fbfb6faa84dd80e61 Mon Sep 17 00:00:00 2001 From: aiju Date: Wed, 1 Apr 2015 19:27:52 +0200 Subject: games/gb: fix gbc dma --- sys/src/games/gb/dat.h | 8 ++++---- 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; -- cgit v1.2.3