static void drawTextFpsCenter0(const char *text)\r
{\r
if(!text) return;\r
- drawTextM2(214, 216, text);\r
+ drawTextM2((Pico.video.reg[12]&1) ? 234 : 214, 216, text);\r
}\r
\r
static void drawTextFpsFit0(const char *text)\r
static void drawTextNoticeCenter0(const char *text)\r
{\r
if(!text) return;\r
- drawTextM2(2, 216, text);\r
+ drawTextM2(42, 216, text);\r
}\r
\r
static void drawTextNoticeFit0(const char *text)\r
memcpy32(localPal+0xc0, localPal+0x40, 0x40);\r
localPal[0xe0] = 0x00000000; // reserved pixels for OSD\r
localPal[0xf0] = 0x00ee0000;\r
- } else if (rendstatus & 0x20) { // mid-frame palette changes\r
+ }\r
+ else if (rendstatus & PDRAW_SONIC_MODE) { // mid-frame palette changes\r
vidConvCpyRGB32(localPal, Pico.cram, 0x40);\r
vidConvCpyRGB32(localPal+0x40, HighPal, 0x40);\r
vidConvCpyRGB32(localPal+0x80, HighPal+0x40, 0x40);\r
} else {\r
vidConvCpyRGB32(localPal, Pico.cram, 0x40);\r
+ memcpy32(localPal+0x80, localPal, 0x40); // for sprite prio mess\r
}\r
}\r
\r
unsigned char *ps = PicoDraw2FB+328*8;\r
unsigned long *pd = (unsigned long *) screenbuff;\r
\r
- if (Pico.m.dirtyPal) fillLocalPal();\r
-\r
if(Pico.video.reg[12]&1)\r
vidConvCpy_90(pd, ps, localPal, 320/8);\r
else {\r
unsigned char *ps = PicoDraw2FB+328*8;\r
unsigned long *pd = (unsigned long *) screenbuff;\r
\r
- if (Pico.m.dirtyPal) fillLocalPal();\r
-\r
if(Pico.video.reg[12]&1)\r
vidConvCpy_270(pd, ps, localPal, 320/8);\r
else {\r
unsigned char *ps = PicoDraw2FB+328*8+8;\r
unsigned long *pd = (unsigned long *) screenbuff;\r
\r
- if (Pico.m.dirtyPal) fillLocalPal();\r
-\r
if(Pico.video.reg[12]&1) ps += 32;\r
vidConvCpy_center_0(pd, ps, localPal);\r
if(full) vidClear(pd + 224*256, 96);\r
unsigned char *ps = PicoDraw2FB+328*8+8;\r
unsigned long *pd = (unsigned long *) screenbuff;\r
\r
- if (Pico.m.dirtyPal) fillLocalPal();\r
-\r
if(Pico.video.reg[12]&1) ps += 32;\r
vidConvCpy_center_180(pd, ps, localPal);\r
if(full) vidClear(pd + 224*256, 96);\r
\r
static void vidBlitFit_0(int full)\r
{\r
- if (Pico.m.dirtyPal) fillLocalPal();\r
-\r
if(Pico.video.reg[12]&1)\r
vidConvCpy_center2_40c_0(screenbuff, PicoDraw2FB+328*8, localPal, 168);\r
else vidConvCpy_center2_32c_0(screenbuff, PicoDraw2FB+328*8, localPal, 168);\r
\r
static void vidBlitFit_180(int full)\r
{\r
- if (Pico.m.dirtyPal) fillLocalPal();\r
-\r
if(Pico.video.reg[12]&1)\r
vidConvCpy_center2_40c_180(screenbuff, PicoDraw2FB+328*8, localPal, 168);\r
else vidConvCpy_center2_32c_180(screenbuff, PicoDraw2FB+328*8-64, localPal, 168);\r
\r
static void vidBlitFit2_0(int full)\r
{\r
- if (Pico.m.dirtyPal) fillLocalPal();\r
-\r
if(Pico.video.reg[12]&1)\r
vidConvCpy_center2_40c_0(screenbuff, PicoDraw2FB+328*8, localPal, 224);\r
else vidConvCpy_center2_32c_0(screenbuff, PicoDraw2FB+328*8, localPal, 224);\r
\r
static void vidBlitFit2_180(int full)\r
{\r
- if (Pico.m.dirtyPal) fillLocalPal();\r
-\r
if(Pico.video.reg[12]&1)\r
vidConvCpy_center2_40c_180(screenbuff, PicoDraw2FB+328*8, localPal, 224);\r
else vidConvCpy_center2_32c_180(screenbuff, PicoDraw2FB+328*8-64, localPal, 224);\r
vidBlit = vidBlit_270;\r
}\r
\r
+ fillLocalPal();\r
vidBlit(1);\r
PicoOpt |= 0x100;\r
Pico.m.dirtyPal = 1;\r
drawTextFps(fpsStr);\r
drawTextNotice(noticeStr);\r
\r
+ if (Pico.m.dirtyPal) fillLocalPal();\r
vidBlit(!num); // copy full frame once a second\r
}\r
\r