X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=Pico%2FPico.c;h=aae914bf41f4b0e33b91f40585d3d7488d19fc28;hb=fbc65db75502192750f19f5cc8c5543aef625cb1;hp=c85c78a2fc0868305a551136345b1a5d10a3fc27;hpb=2aa27095f2dbf5b38950fcb1f856d5ffc6a70361;p=picodrive.git diff --git a/Pico/Pico.c b/Pico/Pico.c index c85c78a..aae914b 100644 --- a/Pico/Pico.c +++ b/Pico/Pico.c @@ -1,7 +1,7 @@ -// This is part of Pico Library +// PicoDrive // (c) Copyright 2004 Dave, All rights reserved. -// (c) Copyright 2006 notaz, All rights reserved. +// (c) Copyright 2006-2008 notaz, All rights reserved. // Free for non-commercial use. // For commercial use, separate licencing terms must be obtained. @@ -218,7 +218,8 @@ PICO_INTERNAL int CheckDMA(void) if(Pico.video.reg[12] & 1) dma_op |= 4; // 40 cell mode? if(!(Pico.video.status&8)&&(Pico.video.reg[1]&0x40)) dma_op|=8; // active display? xfers_can = dma_timings[dma_op]; - if(xfers <= xfers_can) { + if(xfers <= xfers_can) + { if(dma_op&2) Pico.video.status&=~2; // dma no longer busy else { burn = xfers * dma_bsycles[dma_op] >> 8; // have to be approximate because can't afford division.. @@ -307,6 +308,7 @@ PICO_INTERNAL void PicoSyncZ80(int m68k_cycles_done) } +// TODO: rm from asm too int idle_hit_counter = 0; void PicoFrame(void) @@ -362,10 +364,19 @@ char *debugString(void) static char dstr[1024]; struct PicoVideo *pv=&Pico.video; unsigned char *reg=pv->reg, r; + extern int HighPreSpr[]; + int i, sprites_lo, sprites_hi; char *dstrp; + sprites_lo = sprites_hi = 0; + for (i = 0; HighPreSpr[i] != 0; i+=2) + if (HighPreSpr[i+1] & 0x8000) + sprites_hi++; + else sprites_lo++; + dstrp = dstr; - sprintf(dstrp, "mode set 1: %02x\n", (r=reg[0])); dstrp+=strlen(dstrp); + sprintf(dstrp, "mode set 1: %02x spr lo: %2i, spr hi: %2i\n", (r=reg[0]), sprites_lo, sprites_hi); + dstrp+=strlen(dstrp); sprintf(dstrp, "display_disable: %i, M3: %i, palette: %i, ?, hints: %i\n", bit(r,0), bit(r,1), bit(r,2), bit(r,4)); dstrp+=strlen(dstrp); sprintf(dstrp, "mode set 2: %02x\n", (r=reg[1])); dstrp+=strlen(dstrp);