shithub: sms

Download patch

ref: 450e5562c3c27db926ab49903f34f1f383489da5
parent: dcd84fadf58e5c498c2bbed8cc3267adf3c8b447
author: Jean-André Santoni <jean.andre.santoni@gmail.com>
date: Mon Jul 15 10:07:41 EDT 2024

Fix vdpbuf type

--- a/sms.c
+++ b/sms.c
@@ -113,6 +113,11 @@
 		}
 		printf("    vdp registers: %x %x %x %x %x %x %x %x %x %x %x %x %x %x %x %x\n", reg[0], reg[1], reg[2], reg[3], reg[4], reg[5], reg[6], reg[7], reg[8], reg[9], reg[10], reg[11], reg[12], reg[13], reg[14], reg[15]);
 
+		// printf("vram:\n");
+		// for(int i=14000;i<17000;i++)
+		// 	printf("%x ", vram[i]);
+		// printf("\n");
+
 		if (total > 702240){
 			flush();
 			total = 0;
--- a/vdp.c
+++ b/vdp.c
@@ -5,8 +5,8 @@
 
 extern uint8_t *pic;
 
-uint8_t vdpcode, vdpbuf, vdpstat = 0;
-uint16_t vdpaddr;
+uint8_t vdpcode, vdpstat = 0;
+uint16_t vdpaddr, vdpbuf;
 int vdpx = 0, vdpy, vdpyy, frame, intla;
 int first = 1;
 uint16_t hctr;
@@ -363,7 +363,10 @@
 	first = 1;
 	vdpbuf = v;
 	switch(vdpcode){
-		case 0: case 1: case 2: vram[vdpaddr] = v; break;
+		case 0: case 1: case 2:
+			vram[vdpaddr] = v;
+			printf("vramwrite %x %x\n", vdpaddr, v);
+		break;
 		case 3: cramwrite(vdpaddr, v); break;
 	}
 	vdpaddr++;
@@ -455,7 +458,7 @@
 		if(vdpy == yvbl){
 			vdpstat |= STATVBL | STATINT;
 			frame ^= 1;
-			// z80irq = 1;
+			z80irq = 1;
 			if((reg[MODE2] & IE0) != 0)
 				irq |= INTVBL;
 		}
--