shithub: riscv

Download patch

ref: 26777f4cefb1dc5a19da585cb38e08a7db9f143a
parent: 52cb2d472b040bf057f49369a86e0ca4bffa88c6
author: aiju <devnull@localhost>
date: Fri Mar 21 10:25:08 EDT 2014

games/snes: minor oam bugs

--- a/sys/src/games/snes/mem.c
+++ b/sys/src/games/snes/mem.c
@@ -231,7 +231,7 @@
 		oamaddr = (reg[0x2103] & 1) << 9 | v << 1;
 		break;
 	case 0x2103:
-		oamaddr = (v & 1) << 9 | reg[0x2102];
+		oamaddr = (v & 1) << 9 | reg[0x2102] << 1;
 		break;
 	case 0x2104:
 		if((oamaddr & 1) == 0)
--- a/sys/src/games/snes/ppu.c
+++ b/sys/src/games/snes/ppu.c
@@ -877,7 +877,8 @@
 			reg[RDNMI] |= VBLANK;
 			if((reg[NMITIMEN] & VBLANK) != 0)
 				nmi = 2;
-			oamaddr = reg[0x2102] << 1 | (reg[0x2103] & 1) << 9;
+			if((reg[INIDISP] & 0x80) == 0)
+				oamaddr = reg[0x2102] << 1 | (reg[0x2103] & 1) << 9;
 			if((reg[NMITIMEN] & AUTOJOY) != 0){
 				memwrite(0x4016, 1);
 				memwrite(0x4016, 0);
--