debug menu unified, more debug tools

git-svn-id: file:///home/notaz/opt/svn/PicoDrive@545 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
notaz 2008-07-14 21:00:24 +00:00
parent 4c436138e4
commit f579f7b891
17 changed files with 759 additions and 622 deletions

View file

@ -27,8 +27,6 @@
#define LINE_WIDTH 328
#endif
int currpri = 0;
static int HighCache2A[41*(TILE_ROWS+1)+1+1]; // caches for high layers
static int HighCache2B[41*(TILE_ROWS+1)+1+1];
@ -284,12 +282,8 @@ static void DrawLayerFull(int plane, int *hcache, int planestart, int planeend)
code=Pico.vram[nametab_row+(tilex&xmask)];
if (code==blank) continue;
#ifdef USE_CACHE
if (code>>15) { // high priority tile
*hcache++ = code|(dx<<16)|(trow<<27); // cache it
#else
if ((code>>15) != currpri) {
#endif
continue;
}
@ -497,7 +491,7 @@ static void BackFillFull(int reg7)
}
#endif
static void DrawDisplayFull()
static void DrawDisplayFull(void)
{
struct PicoVideo *pvid=&Pico.video;
int win, edge=0, hvwin=0; // LSb->MSb: hwin&plane, vwin&plane, full
@ -512,7 +506,8 @@ static void DrawDisplayFull()
}
// horizontal window?
if((win=pvid->reg[0x12])) {
if ((win=pvid->reg[0x12]))
{
hvwin=1; // hwindow shares display with plane A
edge=win&0x1f;
if(win == 0x80) {
@ -531,7 +526,8 @@ static void DrawDisplayFull()
}
// check for vertical window, but only if win is not fullscreen
if(hvwin != 4) {
if (hvwin != 4)
{
win=pvid->reg[0x11];
edge=win&0x1f;
if (win&0x80) {
@ -555,15 +551,16 @@ static void DrawDisplayFull()
}
}
if(hvwin==1) { winend|=maxcolc<<16; planeend|=maxcolc<<16; }
if (hvwin==1) { winend|=maxcolc<<16; planeend|=maxcolc<<16; }
currpri = 0;
DrawLayerFull(1, HighCache2B, START_ROW, (maxcolc<<16)|END_ROW);
switch(hvwin) {
HighCache2A[1] = HighCache2B[1] = 0;
if (PicoDrawMask & PDRAW_LAYERB_ON)
DrawLayerFull(1, HighCache2B, START_ROW, (maxcolc<<16)|END_ROW);
if (PicoDrawMask & PDRAW_LAYERA_ON) switch (hvwin)
{
case 4:
// fullscreen window
DrawWindowFull(START_ROW, (maxcolc<<16)|END_ROW, 0);
HighCache2A[1] = 0;
break;
case 3:
@ -585,12 +582,13 @@ static void DrawDisplayFull()
DrawLayerFull(0, HighCache2A, START_ROW, (maxcolc<<16)|END_ROW);
break;
}
DrawAllSpritesFull(0, maxw);
if (PicoDrawMask & PDRAW_SPRITES_LOW_ON)
DrawAllSpritesFull(0, maxw);
#ifdef USE_CACHE
if(HighCache2B[1]) DrawTilesFromCacheF(HighCache2B);
if(HighCache2A[1]) DrawTilesFromCacheF(HighCache2A);
switch(hvwin) {
if (HighCache2B[1]) DrawTilesFromCacheF(HighCache2B);
if (HighCache2A[1]) DrawTilesFromCacheF(HighCache2A);
switch (hvwin)
{
case 4:
// fullscreen window
DrawWindowFull(START_ROW, (maxcolc<<16)|END_ROW, 1);
@ -608,18 +606,15 @@ static void DrawDisplayFull()
DrawWindowFull(winstart, winend, 1);
break;
}
#else
currpri = 1;
// TODO
#endif
DrawAllSpritesFull(1, maxw);
if (PicoDrawMask & PDRAW_SPRITES_HI_ON)
DrawAllSpritesFull(1, maxw);
}
PICO_INTERNAL void PicoFrameFull()
{
// prepare cram?
if(PicoPrepareCram) PicoPrepareCram();
if (PicoPrepareCram) PicoPrepareCram();
// Draw screen:
BackFillFull(Pico.video.reg[7]);