mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 23:37:46 -04:00
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:
parent
4c436138e4
commit
f579f7b891
17 changed files with 759 additions and 622 deletions
45
Pico/Draw2.c
45
Pico/Draw2.c
|
@ -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]);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue