// Draw tiles across screen:\r
tilex=(-ts->hscroll)>>3;\r
dx=((ts->hscroll-1)&7)+1;\r
- if(dx != 8) cell--; // have hscroll, start with negative cell\r
+ if (ts->hscroll & 0x0f) {\r
+ int adj = ((ts->hscroll ^ dx) >> 3) & 1;\r
+ cell -= adj + 1;\r
+ ts->cells -= adj;\r
+ }\r
cell+=cellskip;\r
tilex+=cellskip;\r
dx+=cellskip<<3;\r
\r
if (!(Pico.video.reg[12]&1))\r
max_sprites = 64, max_line_sprites = 16, max_width = 264;\r
- if (PicoOpt & POPT_DIS_SPRITE_LIM)\r
+ if (PicoIn.opt & POPT_DIS_SPRITE_LIM)\r
max_line_sprites = MAX_LINE_SPRITES;\r
\r
if (pvid->reg[1]&8) max_lines = 240;\r
if (Pico.video.reg[12]&1) {\r
len = 320;\r
} else {\r
- if (!(PicoOpt&POPT_DIS_32C_BORDER)) pd+=32;\r
+ if (!(PicoIn.opt&POPT_DIS_32C_BORDER)) pd+=32;\r
len = 256;\r
}\r
\r
if (Pico.video.reg[12]&1) {\r
len = 320;\r
} else {\r
- if (!(PicoOpt & POPT_DIS_32C_BORDER))\r
+ if (!(PicoIn.opt & POPT_DIS_32C_BORDER))\r
pd += 32;\r
len = 256;\r
}\r
else if (est->rendstatus & PDRAW_INTERLACE)\r
DrawAllSpritesInterlace(1, sh);\r
// have sprites without layer pri bit ontop of sprites with that bit\r
- else if ((sprited[1] & 0xd0) == 0xd0 && (PicoOpt & POPT_ACC_SPRITES))\r
+ else if ((sprited[1] & 0xd0) == 0xd0 && (PicoIn.opt & POPT_ACC_SPRITES))\r
DrawSpritesHiAS(sprited, sh);\r
else if (sh && (sprited[1] & SPRL_MAY_HAVE_OP))\r
DrawSpritesSHi(sprited, est);\r
Pico.est.DrawScanline = 0;\r
skip_next_line = 0;\r
\r
- if (PicoOpt & POPT_ALT_RENDERER)\r
+ if (PicoIn.opt & POPT_ALT_RENDERER)\r
return;\r
\r
if (Pico.m.dirtyPal)\r
{\r
struct PicoEState *est = &Pico.est;\r
int sh = (Pico.video.reg[0xC] & 8) >> 3; // shadow/hilight?\r
- if (PicoOpt & POPT_ALT_RENDERER)\r
+ if (PicoIn.opt & POPT_ALT_RENDERER)\r
sh = 0; // no s/h support\r
\r
PicoDoHighPal555(sh, 0, &Pico.est);\r
break;\r
\r
case PDF_RGB555:\r
- if ((PicoAHW & PAHW_32X) && use_32x_line_mode)\r
+ if ((PicoIn.AHW & PAHW_32X) && use_32x_line_mode)\r
FinalizeLine = FinalizeLine32xRGB555;\r
else\r
FinalizeLine = FinalizeLine555;\r
{\r
DrawLineDestBase = dest;\r
DrawLineDestIncrement = increment;\r
- Pico.est.DrawLineDest = DrawLineDestBase + Pico.est.DrawScanline * increment;\r
+ Pico.est.DrawLineDest = (char *)DrawLineDestBase + Pico.est.DrawScanline * increment;\r
}\r
\r
void PicoDrawSetInternalBuf(void *dest, int increment)\r
PicoScan32xBegin = NULL;\r
PicoScan32xEnd = NULL;\r
\r
- if ((PicoAHW & PAHW_32X) && FinalizeLine != FinalizeLine32xRGB555) {\r
+ if ((PicoIn.AHW & PAHW_32X) && FinalizeLine != FinalizeLine32xRGB555) {\r
PicoScan32xBegin = begin;\r
PicoScan32xEnd = end;\r
}\r