buildfix
[picodrive.git] / pico / debug.c
index 4751cf4..d81cf45 100644 (file)
@@ -35,7 +35,7 @@ char *PDebugMain(void)
   sprintf(dstrp, "mode set 4: %02x\n", (r=reg[0xC])); MVP;
   sprintf(dstrp, "interlace: %i%i, cells: %i, shadow: %i\n", bit(r,2), bit(r,1), (r&0x80) ? 40 : 32, bit(r,3)); MVP;
   sprintf(dstrp, "scroll size: w: %i, h: %i  SRAM: %i; eeprom: %i (%i)\n", reg[0x10]&3, (reg[0x10]&0x30)>>4,
-       bit(Pico.m.sram_reg, 4), bit(Pico.m.sram_reg, 2), SRam.eeprom_type); MVP;
+       !!(SRam.flags & SRF_ENABLED), !!(SRam.flags & SRF_EEPROM), SRam.eeprom_type); MVP;
   sprintf(dstrp, "sram range: %06x-%06x, reg: %02x\n", SRam.start, SRam.end, Pico.m.sram_reg); MVP;
   sprintf(dstrp, "pend int: v:%i, h:%i, vdp status: %04x\n", bit(pv->pending_ints,5), bit(pv->pending_ints,4), pv->status); MVP;
   sprintf(dstrp, "pal: %i, hw: %02x, frame#: %i\n", Pico.m.pal, Pico.m.hardware, Pico.m.frame_count); MVP;
@@ -161,22 +161,14 @@ void PDebugShowSpriteStats(unsigned short *screen, int stride)
 
 void PDebugShowPalette(unsigned short *screen, int stride)
 {
-  unsigned int *spal=(void *)Pico.cram;
-  unsigned int *dpal=(void *)HighPal;
-  int x, y, i;
+  int x, y;
 
-  for (i = 0x3f/2; i >= 0; i--)
-#ifdef USE_BGR555
-    dpal[i] = ((spal[i]&0x000f000f)<< 1)|((spal[i]&0x00f000f0)<<3)|((spal[i]&0x0f000f00)<<4);
-#else
-    dpal[i] = ((spal[i]&0x000f000f)<<12)|((spal[i]&0x00f000f0)<<3)|((spal[i]&0x0f000f00)>>7);
-#endif
-  for (i = 0x3f; i >= 0; i--)
-    HighPal[0x40|i] = (unsigned short)((HighPal[i]>>1)&0x738e);
-  for (i = 0x3f; i >= 0; i--) {
-    int t=HighPal[i]&0xe71c;t+=0x4208;if(t&0x20)t|=0x1c;if(t&0x800)t|=0x700;if(t&0x10000)t|=0xe000;t&=0xe71c;
-    HighPal[0x80|i] = (unsigned short)t;
-  }
+  Pico.m.dirtyPal = 1;
+  if (PicoAHW & PAHW_SMS)
+    PicoDoHighPal555M4();
+  else
+    PicoDoHighPal555(1);
+  Pico.m.dirtyPal = 1;
 
   screen += 16*stride+8;
   for (y = 0; y < 8*4; y++)
@@ -192,8 +184,6 @@ void PDebugShowPalette(unsigned short *screen, int stride)
   for (y = 0; y < 8*4; y++)
     for (x = 0; x < 8*16; x++)
       screen[x + y*stride] = HighPal[(x/8 + (y/8)*16) | 0x80];
-
-  Pico.m.dirtyPal = 1;
 }
 
 #if defined(DRAW2_OVERRIDE_LINE_WIDTH)
@@ -280,11 +270,19 @@ void PDebugShowSprite(unsigned short *screen, int stride, int which)
 
 void PDebugDumpMem(void)
 {
-  dump_ram(Pico.ram,  "dumps/ram.bin");
   dump_ram_noswab(Pico.zram, "dumps/zram.bin");
-  dump_ram(Pico.vram, "dumps/vram.bin");
   dump_ram(Pico.cram, "dumps/cram.bin");
-  dump_ram(Pico.vsram,"dumps/vsram.bin");
+
+  if (PicoAHW & PAHW_SMS)
+  {
+    dump_ram_noswab(Pico.vramb, "dumps/vram.bin");
+  }
+  else
+  {
+    dump_ram(Pico.ram,  "dumps/ram.bin");
+    dump_ram(Pico.vram, "dumps/vram.bin");
+    dump_ram(Pico.vsram,"dumps/vsram.bin");
+  }
 
   if (PicoAHW & PAHW_MCD)
   {
@@ -306,6 +304,9 @@ void PDebugZ80Frame(void)
 {
   int lines, line_sample;
 
+  if (PicoAHW & PAHW_SMS)
+    return;
+
   if (Pico.m.pal) {
     lines = 312;
     line_sample = 68;
@@ -342,3 +343,11 @@ void PDebugZ80Frame(void)
   timers_cycle();
 }
 
+void PDebugCPUStep(void)
+{
+  if (PicoAHW & PAHW_SMS)
+    z80_run_nr(1);
+  else
+    SekStepM68k();
+}
+