shithub: sms

Download patch

ref: dcd84fadf58e5c498c2bbed8cc3267adf3c8b447
parent: 255dafa383bf409f7f1cfeb8538fb7b385fe58a1
author: Jean-André Santoni <jean.andre.santoni@gmail.com>
date: Sun Jul 14 14:12:25 EDT 2024

Print vdp registers

--- a/dat.h
+++ b/dat.h
@@ -2,7 +2,7 @@
 
 extern uint32_t irq;
 
-extern uint8_t reg[32];
+extern uint8_t reg[16];
 extern uint8_t dma;
 
 extern uint8_t z80bus, z80irq;
--- a/mem.c
+++ b/mem.c
@@ -11,7 +11,12 @@
 uint16_t cram[64], vsram[40];
 uint32_t cramc[64];
 uint8_t zram[8192];
-uint8_t reg[32];
+uint8_t reg[16] = {
+    0x36, 0x80, 0xff, 0xff,
+    0xff, 0xff, 0xfb, 0x00,
+    0x00, 0x00, 0xff, 0x00,
+    0x00, 0x00, 0x00, 0x00,
+};
 uint8_t ctl[15];
 
 uint8_t dma;
--- a/sms.c
+++ b/sms.c
@@ -105,12 +105,13 @@
 		t = z80step();
 		printf("cycles: %d\n", t);
 		vdpclock -= t * Z80DIV;
-		total += t * Z80DIV;
+		total += t;
 
 		while(vdpclock < 0){
 			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]);
 
 		if (total > 702240){
 			flush();
@@ -123,6 +124,7 @@
 	video_cb(pic, 320, 224, 320*4);
 	// audioout();
 	doflush = 0;
+	total = 0;
 }
 
 void
--- a/vdp.c
+++ b/vdp.c
@@ -293,6 +293,7 @@
 	set = 0;
 	col = 0;
 	for(p = spr; p < lsp; p++){
+		printf("p->x: %d, p->y: %d\n", p->x, p->y);
 		dx = vdpx - p->x;
 		if(dx >= p->w)
 			continue;
@@ -341,6 +342,7 @@
 
 	vdpcode = (v >> 6) & 0x03;
 	vdpaddr = (vdpaddr & 0x00ff) | ((v & 0x3f) << 8);
+
 	printf("vdp code and address %x %x\n", vdpcode, vdpaddr);
 	first = 1;
 
--- a/z80.c
+++ b/z80.c
@@ -414,7 +414,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:
@@ -682,9 +682,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);
--