X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=pico%2Fdebug.c;h=e780262e6b076296d8c325369db43bf2aad647bf;hb=4f2cdbf551ad1a7f487b65b4754cbf7983e80b8a;hp=efcd3fde40bf366a71e446145d066ccce17a2a38;hpb=98a27142346e05a4cef4fe89469bc09d5560edc1;p=picodrive.git diff --git a/pico/debug.c b/pico/debug.c index efcd3fd..e780262 100644 --- a/pico/debug.c +++ b/pico/debug.c @@ -233,6 +233,7 @@ void PDebugShowSprite(unsigned short *screen, int stride, int which) struct PicoVideo *pvid=&Pico.video; int table=0,u,link=0,*sprite=0,*fsprite,oldsprite[2]; int x,y,max_sprites = 80, oldcol, oldreg; + unsigned char olddbg; if (!(pvid->reg[12]&1)) max_sprites = 64; @@ -257,9 +258,10 @@ void PDebugShowSprite(unsigned short *screen, int stride, int which) fsprite[1] = (sprite[1] & ~0x01ff8000) | 0x800000; oldreg = pvid->reg[7]; oldcol = Pico.cram[0]; + olddbg = pvid->debug_p; pvid->reg[7] = 0; Pico.cram[0] = 0; - PicoDrawMask = PDRAW_SPRITES_LOW_ON; + pvid->debug_p = PVD_KILL_A | PVD_KILL_B; PicoFrameFull(); for (y = 0; y < 8*4; y++) @@ -274,7 +276,7 @@ void PDebugShowSprite(unsigned short *screen, int stride, int which) fsprite[1] = oldsprite[1]; pvid->reg[7] = oldreg; Pico.cram[0] = oldcol; - PicoDrawMask = -1; + pvid->debug_p = olddbg; } #define dump_ram(ram,fname) \ @@ -364,31 +366,31 @@ void PDebugZ80Frame(void) } z80_resetCycles(); - emustatus &= ~1; + PsndStartFrame(); - if (Pico.m.z80Run && !Pico.m.z80_reset && (PicoOpt&POPT_EN_Z80)) - PicoSyncZ80(line_sample*488); - if (ym2612.dacen && PsndDacLine <= line_sample) - PsndDoDAC(line_sample); + if (/*Pico.m.z80Run &&*/ !Pico.m.z80_reset && (PicoOpt&POPT_EN_Z80)) + PicoSyncZ80(SekCycleCnt + line_sample * 488); if (PsndOut) PsndGetSamples(line_sample); - if (Pico.m.z80Run && !Pico.m.z80_reset && (PicoOpt&POPT_EN_Z80)) { - PicoSyncZ80(224*488); + if (/*Pico.m.z80Run &&*/ !Pico.m.z80_reset && (PicoOpt&POPT_EN_Z80)) { + PicoSyncZ80(SekCycleCnt + 224 * 488); z80_int(); } - if (ym2612.dacen && PsndDacLine <= 224) - PsndDoDAC(224); if (PsndOut) PsndGetSamples(224); // sync z80 - if (Pico.m.z80Run && !Pico.m.z80_reset && (PicoOpt&POPT_EN_Z80)) - PicoSyncZ80(Pico.m.pal ? 151809 : 127671); // cycles adjusted for converter - if (PsndOut && ym2612.dacen && PsndDacLine <= lines-1) - PsndDoDAC(lines-1); + if (/*Pico.m.z80Run &&*/ !Pico.m.z80_reset && (PicoOpt&POPT_EN_Z80)) { + SekCycleCnt += Pico.m.pal ? 151809 : 127671; // cycles adjusted for converter + PicoSyncZ80(SekCycleCnt); + } + if (PsndOut && ym2612.dacen && PsndDacLine < lines) + PsndDoDAC(lines - 1); + PsndDoPSG(lines - 1); timers_cycle(); + SekCycleAim = SekCycleCnt; } void PDebugCPUStep(void)