shithub: sms

Download patch

ref: b9f35dab4549abfe4461b1a6bd0f6620b9de425b
parent: 8b4c7b422bd4338a2df0d4e70fc79de96d18537f
author: Jean-André Santoni <jean.andre.santoni@gmail.com>
date: Sun Jul 21 16:00:07 EDT 2024

Clean

--- a/mem.c
+++ b/mem.c
@@ -39,16 +39,16 @@
 
 	cramc[a & 0x1f] = (b << 16) | (g << 8) | r;
 
-	printf("cramwrite %x %x\n", a, v);
-	for(int i=0;i<64;i++)
-		printf("%x ", cram[i]);
-	printf("\n");
+	// printf("cramwrite %x %x\n", a, v);
+	// for(int i=0;i<64;i++)
+	// 	printf("%x ", cram[i]);
+	// printf("\n");
 }
 
 uint8_t
 z80read(uint16_t a)
 {
-	printf("z80read %x\n", a);
+	// printf("z80read %x\n", a);
 	uint16_t v;
 
 	if (a < 0x400)
@@ -61,8 +61,8 @@
 		if (ram_enabled)
 			return ram[(a - 0x8000) + ram_bank];
 		else{
-			printf("== page 2 %x %x %x\n", a, (a - 0x8000) + slotaddr[2], slotaddr[2]);
-			printf("== rom[(a - 0x8000) + slotaddr[2]] %x\n", rom[(a - 0x8000) + slotaddr[2]]);
+			// printf("== page 2 %x %x %x\n", a, (a - 0x8000) + slotaddr[2], slotaddr[2]);
+			// printf("== rom[(a - 0x8000) + slotaddr[2]] %x\n", rom[(a - 0x8000) + slotaddr[2]]);
 			return rom[(a - 0x8000) + slotaddr[2]];
 		}
 	}else
@@ -72,7 +72,7 @@
 void
 z80write(uint16_t a, uint8_t v)
 {
-	printf("z80write %x %x\n", a, v);
+	// printf("z80write %x %x\n", a, v);
 	if (a < 0x8000)
 		printf("wrong z80write page 0 or 1 %x %x\n", a, v);
 	else if (a < 0xC000)
@@ -95,20 +95,20 @@
 		{
 			case 0xFFFC:
 				ram_bank = (v & (1 << 2)) != 0 ? 0x4000 : 0;
-				printf("RAM bank %x\n", ram_bank);
+				// printf("RAM bank %x\n", ram_bank);
 				ram_enabled = (v & (1 << 3)) != 0 ? 1 : 0;
-				printf("RAM enabled %x\n", ram_enabled);
+				// printf("RAM enabled %x\n", ram_enabled);
 				break;
 			case 0xFFFD:
-				printf("Switch mapper slot 0 to %d\n", (v & nbank-1));
+				// printf("Switch mapper slot 0 to %d\n", (v & nbank-1));
 				slotaddr[0] = (v & nbank-1) * 0x4000;
 				break;
 			case 0xFFFE:
-				printf("Switch mapper slot 1 to %d\n", (v & nbank-1));
+				// printf("Switch mapper slot 1 to %d\n", (v & nbank-1));
 				slotaddr[1] = (v & nbank-1) * 0x4000;
 				break;
 			case 0xFFFF:
-				printf("Switch mapper slot 2 to %d\n", (v & nbank-1));
+				// printf("Switch mapper slot 2 to %d\n", (v & nbank-1));
 				slotaddr[2] = (v & nbank-1) * 0x4000;
 				break;
 		}
@@ -124,7 +124,7 @@
 uint8_t
 z80in(uint8_t port)
 {
-	printf("z80in %x\n", port);
+	// printf("z80in %x\n", port);
 	if (port < 0x40)
 		return 0xff;
 	else if (port >= 0x40 && port < 0x80)
@@ -138,10 +138,9 @@
 		else
 			return vdpstatus();
 	else
-		if ((port & 0x01) == 0x00){
-			printf("  read port DC: %x\n", portDC);
+		if ((port & 0x01) == 0x00)
 			return portDC;
-		}else
+		else
 			return (portDD & 0x3f) | (port3F & 0xc0);
 }
 
@@ -148,9 +147,9 @@
 void
 z80out(uint8_t port, uint8_t v)
 {
-	printf("z80out %x %x\n", port, v);
+	// printf("z80out %x %x\n", port, v);
 	if (port < 0x40){
-		printf("  write to control register\n");
+		// printf("  write to control register\n");
 		if ((port & 0x01) == 0x00)
 			port3E = v;
 		else{
@@ -157,9 +156,9 @@
 			port3FHC = v & 0x05;
 			port3F = ((v & 0x80) | (v & 0x20) << 1) & 0xC0;
 		}
-	}else if ((port >= 0x40) && (port < 0x80))
-		printf("  write to SN76489 PSG\n");
-	else if ((port >= 0x80) && (port < 0xC0)){
+	}else if ((port >= 0x40) && (port < 0x80)){
+		// printf("  write to SN76489 PSG\n");
+	}else if ((port >= 0x80) && (port < 0xC0)){
 		// printf("  write to VDP\n");
 		if ((port & 0x01) == 0x00)
 			vdpdata(v);
--- a/sms.c
+++ b/sms.c
@@ -119,13 +119,13 @@
 void
 retro_run(void)
 {
-	printf("%d ================================\n", counter++);
+	// printf("%d ================================\n", counter++);
 	input_poll_cb();
 	process_inputs();
 
 	while(!doflush){
 		t = z80step();
-		printf("cycles: %d\n", t);
+		// printf("cycles: %d\n", t);
 		vdpclock -= t * Z80DIV;
 		total += t;
 
@@ -133,7 +133,7 @@
 			vdpstep();
 			vdpclock += 8;
 		}
-		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("    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++)
--- a/vdp.c
+++ b/vdp.c
@@ -12,7 +12,7 @@
 int first = 1;
 uint16_t hctr;
 static int xmax, xdisp;
-static int sx, snx, col, pri, lum;
+static int sx, snx, col, pri;
 enum { ymax = 262, yvbl = 234 };
 
 void
@@ -29,7 +29,7 @@
 }
 
 static void
-pixeldraw(int x, int y, int v)
+pixeldraw(int x, int y, uint32_t v)
 {
 	uint32_t *p;
 	union { uint32_t l; uint8_t b[4]; } u;
@@ -49,14 +49,13 @@
 
 	if (vdpy > 192) return;
 
-	int y = vdpy >> 3;
+	int ty = vdpy >> 3;
+	int tyoff = vdpy & 7;
 
 	for(int x = 0; x < 256; x++){
 		int tx = x >> 3;
-		int ty = y >> 3;
 		int txoff = x & 7;
-		int tyoff = vdpy & 7;
-		uint16_t taddr = screenmap + (((y << 5) + tx) << 1);
+		uint16_t taddr = screenmap + (((ty << 5) + tx) << 1);
 		int tidx = vram[taddr];
 		int data = (tidx << 5) + (tyoff << 2);
 		int xx = 7 - txoff;
@@ -77,8 +76,6 @@
 static void
 spritesinit(void)
 {
-	printf("spritesinit\n");
-
 	uint16_t t1 = (reg[SPRTAB] << 7 & 0x3f00);
 	uint16_t t2 = t1 + 0x80;
 
@@ -151,10 +148,10 @@
 void
 vdpctrl(uint8_t v)
 {
-	printf("	vdp write to control port %x\n", v);
+	// printf("	vdp write to control port %x\n", v);
 
 	if(first){
-		printf("first\n");
+		// printf("first\n");
 		first = 0;
 		vdpaddr = (vdpaddr & 0xFF00) | v;
 		return;
@@ -163,7 +160,7 @@
 	vdpcode = (v >> 6) & 0x03;
 	vdpaddr = (vdpaddr & 0x00ff) | ((v & 0x3f) << 8);
 
-	printf("vdp code and address %x %x\n", vdpcode, vdpaddr);
+	// printf("vdp code and address %x %x\n", vdpcode, vdpaddr);
 	first = 1;
 
 	switch(vdpcode){
@@ -179,13 +176,13 @@
 void
 vdpdata(uint8_t v)
 {
-	printf("	vdp (code: %x) write to data port %x\n", vdpcode, v);
+	// printf("	vdp (code: %x) write to data port %x\n", vdpcode, v);
 	first = 1;
 	vdpbuf = v;
 	switch(vdpcode){
 		case 0: case 1: case 2:
 			vram[vdpaddr] = v;
-			printf("vramwrite %x %x\n", vdpaddr, v);
+			// printf("vramwrite %x %x\n", vdpaddr, v);
 		break;
 		case 3: cramwrite(vdpaddr, v); break;
 	}
@@ -200,7 +197,7 @@
 	vdpbuf = vram[vdpaddr];
 	vdpaddr++;
 	vdpaddr &= 0x3fff;
-	printf("	vdp read from data port %x\n", v);
+	// printf("	vdp read from data port %x\n", v);
 	first = 1;
 	return v;
 }
@@ -211,7 +208,7 @@
 	uint8_t v = vdpstat | 0x1f;
 	vdpstat = 0;
 	z80irq = 0;
-	printf("	vdp read status flags %x\n", v);
+	// printf("	vdp read status flags %x\n", v);
 	first = 1;
 	return v;
 }
@@ -219,7 +216,7 @@
 uint8_t
 vdphcounter(void)
 {
-	printf("	vdp read hcounter %x\n", vdpx);
+	// printf("	vdp read hcounter %x\n", vdpx);
 	return vdpx;
 }
 
@@ -226,7 +223,7 @@
 uint8_t
 vdpvcounter(void)
 {
-	printf("	vdp read vcounter %x\n", vdpy);
+	// printf("	vdp read vcounter %x\n", vdpy);
 	return vdpy;
 }
 
@@ -242,7 +239,6 @@
 		if(vdpx < xdisp){
 			col = reg[BGCOL] & 0x0f + 16;
 			pri = 0;
-			lum = 0;
 			planes();
 			sprites();
 			pixeldraw(vdpx, vdpy, 0);
--- a/z80.c
+++ b/z80.c
@@ -415,7 +415,7 @@
 	uint16_t a, n;
 
 	op = fetch8();
-	printf("ed %.2x\n", op);
+	// printf("ed %.2x\n", op);
 	switch(op){
 	case 0xa0: case 0xa1: case 0xa8: case 0xa9:
 	case 0xb0: case 0xb1: case 0xb8: case 0xb9:
@@ -688,9 +688,9 @@
 		}
 	}
 	curpc = pc;
-	printf("%x AF %.2x%.2x BC %.2x%.2x DE %.2x%.2x HL %.2x%.2x IX %.4x IY %.4x\n", curpc, s[rA], s[rF], s[rB], s[rC], s[rD], s[rE], s[rH], s[rL], ix[0], ix[1]);
+	// printf("%x AF %.2x%.2x BC %.2x%.2x DE %.2x%.2x HL %.2x%.2x IX %.4x IY %.4x\n", curpc, s[rA], s[rF], s[rB], s[rC], s[rD], s[rE], s[rH], s[rL], ix[0], ix[1]);
 	op = fetch8();
-	printf("op: %x\n", op);
+	// printf("op: %x\n", op);
 	switch(op >> 6){
 	case 1: return move(op >> 3 & 7, op & 7);
 	case 2: return alu(op >> 3 & 7, op & 7);
--