allow limited z80 vdp access
authornotaz <notasas@gmail.com>
Mon, 25 Sep 2017 23:59:31 +0000 (02:59 +0300)
committernotaz <notasas@gmail.com>
Mon, 2 Oct 2017 21:40:37 +0000 (00:40 +0300)
lame and totally wrong timing

pico/memory.c

index 83fe181..cb1b5ac 100644 (file)
@@ -1165,7 +1165,9 @@ void PicoWrite16_32x(u32 a, u32 d) {}
 \r
 static unsigned char z80_md_vdp_read(unsigned short a)\r
 {\r
-  // TODO?\r
+  if ((a & 0x00e0) == 0x0000)\r
+    return PicoVideoRead8(a); // FIXME: depends on 68k cycles\r
+\r
   elprintf(EL_ANOMALY, "z80 invalid r8 [%06x] %02x", a, 0xff);\r
   return 0xff;\r
 }\r
@@ -1192,13 +1194,13 @@ static void z80_md_ym2612_write(unsigned int a, unsigned char data)
 \r
 static void z80_md_vdp_br_write(unsigned int a, unsigned char data)\r
 {\r
-  // TODO: allow full VDP access\r
   if ((a&0xfff9) == 0x7f11) // 7f11 7f13 7f15 7f17\r
   {\r
     if (PicoOpt & POPT_EN_PSG)\r
       SN76496Write(data);\r
     return;\r
   }\r
+  // at least VDP data writes hang my machine\r
 \r
   if ((a>>8) == 0x60)\r
   {\r