--- /dev/null
+ uint8 *paletteRam=&tom_ram_8[0x400];
+ paletteRam+=(idx&0x1)*256*2;
+ if (flags&FLAGS_READMODIFY)
+ {
+ if (flags&FLAGS_HFLIP)
+ {
+ while (scaled_width)
+ {
+ uint32 c=jaguar_byte_read(ptr+(((cnt>>16) & (~0x07))*pitch)+((cnt>>16)&0x07));
+ c<<=1;
+ if (flags&FLAGS_TRANSPARENT)
+ {
+ if (c)
+ {
+ *current_line_buffer--=BLEND_Y(*current_line_buffer,paletteRam[c+0]);
+ *current_line_buffer--=BLEND_CC(*current_line_buffer,paletteRam[c+1]);
+ }
+ else
+ current_line_buffer-=2;
+ }
+ else
+ {
+ *current_line_buffer--=BLEND_Y(*current_line_buffer,paletteRam[c+0]);
+ *current_line_buffer--=BLEND_CC(*current_line_buffer,paletteRam[c+1]);
+ }
+
+ cnt+=hscale_fixed;
+ scaled_width--;
+ }
+ }
+ else
+ {
+ while (scaled_width)
+ {
+ uint32 c=jaguar_byte_read(ptr+(((cnt>>16) & (~0x07))*pitch)+((cnt>>16)&0x07));
+ c<<=1;
+ if (flags&FLAGS_TRANSPARENT)
+ {
+ if (c)
+ {
+ *current_line_buffer++=BLEND_Y(*current_line_buffer,paletteRam[c+0]);
+ *current_line_buffer++=BLEND_CC(*current_line_buffer,paletteRam[c+1]);
+ }
+ else
+ current_line_buffer+=2;
+ }
+ else
+ {
+ *current_line_buffer++=BLEND_Y(*current_line_buffer,paletteRam[c+0]);
+ *current_line_buffer++=BLEND_CC(*current_line_buffer,paletteRam[c+1]);
+ }
+
+ cnt+=hscale_fixed;
+ scaled_width--;
+ }
+ }
+ }
+ else
+ {
+ if (flags&FLAGS_HFLIP)
+ {
+ while (scaled_width)
+ {
+ uint32 c=jaguar_byte_read(ptr+(((cnt>>16) & (~0x07))*pitch)+((cnt>>16)&0x07));
+ c<<=1;
+ if (flags&FLAGS_TRANSPARENT)
+ {
+ if (c)
+ {
+ *current_line_buffer--=paletteRam[c+0];
+ *current_line_buffer--=paletteRam[c+1];
+ }
+ else
+ current_line_buffer-=2;
+ }
+ else
+ {
+ *current_line_buffer--=paletteRam[c+0];
+ *current_line_buffer--=paletteRam[c+1];
+ }
+
+ cnt+=hscale_fixed;
+ scaled_width--;
+ }
+ }
+ else
+ {
+ while (scaled_width)
+ {
+ uint32 c=jaguar_byte_read(ptr+(((cnt>>16) & (~0x07))*pitch)+((cnt>>16)&0x07));
+ c<<=1;
+ if (flags&FLAGS_TRANSPARENT)
+ {
+ if (c)
+ {
+ *current_line_buffer++=paletteRam[c+0];
+ *current_line_buffer++=paletteRam[c+1];
+ }
+ else
+ current_line_buffer+=2;
+ }
+ else
+ {
+ *current_line_buffer++=paletteRam[c+0];
+ *current_line_buffer++=paletteRam[c+1];
+ }
+
+ cnt+=hscale_fixed;
+ scaled_width--;
+ }
+ }
+ }