if (vb->inheight2 < 1)
vb->inheight2 = 1;
- if (vb->inwidth > vb->width_allocated)
- vb->inwidth = vb->width_allocated;
- if (vb->inwidth2 > vb->width_allocated)
- vb->inwidth2 = vb->width_allocated;
-
- if (vb->inheight > vb->height_allocated)
- vb->inheight = vb->height_allocated;
- if (vb->inheight2 > vb->height_allocated)
- vb->inheight2 = vb->height_allocated;
-
- vb->outwidth = vb->inwidth;
- vb->outheight = vb->inheight;
-
- if (vb->outwidth > vb->width_allocated)
- vb->outwidth = vb->width_allocated;
-
- if (vb->outheight > vb->height_allocated)
- vb->outheight = vb->height_allocated;
+ if (!vb->hardwiredpositioning) {
+ vb->outwidth = vb->inwidth;
+ vb->outheight = vb->inheight;
+ }
check_nocustom();
set_config_changed();
+ custom_end_drawing();
+
if (currprefs.monitoremu_mon != 0) {
target_graphics_buffer_update(currprefs.monitoremu_mon, false);
}
- if (target_graphics_buffer_update(0, false)) {
- reset_drawing();
- }
+ target_graphics_buffer_update(0, false);
+
+ if (vb->inwidth > vb->width_allocated)
+ vb->inwidth = vb->width_allocated;
+ if (vb->inwidth2 > vb->width_allocated)
+ vb->inwidth2 = vb->width_allocated;
+
+ if (vb->inheight > vb->height_allocated)
+ vb->inheight = vb->height_allocated;
+ if (vb->inheight2 > vb->height_allocated)
+ vb->inheight2 = vb->height_allocated;
+
+ if (vb->outwidth > vb->width_allocated)
+ vb->outwidth = vb->width_allocated;
+
+ if (vb->outheight > vb->height_allocated)
+ vb->outheight = vb->height_allocated;
+
resetfulllinestate();
}
resetfulllinestate();
updateprghpostable();
+ if (!has_draw_denise()) {
+ start_draw_denise();
+ }
+
#ifdef ACTION_REPLAY
/* Doing this here ensures we can use the 'reset' command from within AR */
action_replay_reset(hardreset, keyboardreset);
static void do_draw_line(void)
{
+ if (!has_draw_denise()) {
+ start_draw_denise();
+ }
+
if (custom_fastmode_exit) {
custom_fastmode_exit = 0;
quick_denise_rga_queue(rga_denise_cycle_line, rga_denise_cycle_start, rga_denise_cycle);
if (linear_vpos >= maxvpos + lof_store) {
nosignal_trigger = true;
linear_vpos = 0;
- end_draw_denise();
+ if (has_draw_denise()) {
+ end_draw_denise();
+ }
if (!custom_disabled) {
start_draw_denise();
}
if (vpos == vsync_startline) {
- end_draw_denise();
+ if (has_draw_denise()) {
+ end_draw_denise();
+ }
linear_vpos_prev[2] = linear_vpos_prev[1];
linear_vpos_prev[1] = linear_vpos_prev[0];
}
return maxvpos_display >= MAXVPOS_NTSC + (MAXVPOS_PAL - MAXVPOS_NTSC) / 2;
}
+
+void custom_end_drawing(void)
+{
+ draw_denise_line_queue_flush();
+ if (has_draw_denise()) {
+ write_log("flushing denise draw queue\n");
+ end_draw_denise();
+ }
+}
*
* Copyright 1995-2000 Bernd Schmidt
* Copyright 1995 Alessandro Bissacco
-* Copyright 2000-2024 Toni Wilen
+* Copyright 2000-2025 Toni Wilen
*
-* Complete rewrite 2024
+* Complete rewrite 2024-2025
*/
#include "sysconfig.h"
#include "devices.h"
#include "gfxboard.h"
+#define ENABLE_MULTITHREADED_DENISE 1
extern int multithread_enabled;
-#define MULTITHREADED_DENISE (multithread_enabled != 0)
+#define MULTITHREADED_DENISE (ENABLE_MULTITHREADED_DENISE && multithread_enabled != 0)
#define BLANK_COLOR 0x000000
#define AUTOSCALE_SPRITES 1
#define LOL_SHIFT_COLORS 0
+#define MAX_RGA_OVERLAPPING_CYCLES 5
+uae_u8 *xlinebuffer, *xlinebuffer2;
+uae_u16 *xlinebuffer_genlock;
+
+static int *amiga2aspect_line_map, *native2amiga_line_map;
+static int native2amiga_line_map_height;
+static uae_u8 **row_map;
+static uae_u16 *row_map_genlock_buffer;
+static uae_u8 row_tmp8[MAX_PIXELS_PER_LINE * 32 / 8];
+static uae_u16 row_tmp16[MAX_PIXELS_PER_LINE * 32 / 8];
+static int max_drawn_amiga_line;
+uae_u16 **row_map_genlock;
+uae_u8 *row_map_color_burst_buffer;
static uae_sem_t write_sem, read_sem;
struct denise_rga_queue
{
int type;
- int vpos;
+ int vpos, linear_vpos;
int gfx_ypos;
nln_how how;
uae_u32 linecnt;
static volatile uae_atomic rga_queue_read, rga_queue_write;
static int denise_thread_state;
static struct denise_rga_queue rga_queue[DENISE_RGA_SLOT_CHUNKS];
+static struct denise_rga_queue temp_line;
+static struct denise_rga_queue *this_line;
+static volatile bool thread_debug_lock;
static void quick_denise_rga(int linecnt, int startpos, int endpos)
{
static void denise_handle_quick_strobe(uae_u16 strobe, int offset, int vpos);
+static void update_overlapped_cycles(int endpos)
+{
+ for (int i = 0; i <= MAX_RGA_OVERLAPPING_CYCLES; i++) {
+ struct denise_rga *rga = &rga_denise[(endpos - i) & DENISE_RGA_SLOT_MASK];
+ rga->line++;
+ }
+}
+
static void read_denise_line_queue(void)
{
while (rga_queue_read == rga_queue_write) {
uae_sem_wait(&write_sem);
}
+ if (!thread_debug_lock) {
+ write_log("read_denise_line_queue: queue processed without lock!\n");
+ }
+
struct denise_rga_queue *q = &rga_queue[rga_queue_read & DENISE_RGA_SLOT_CHUNKS_MASK];
+ this_line = q;
bool next = false;
//evt_t t1 = read_processor_time();
+#if 0
+ sleep_millis(1);
+#endif
+
+
if (q->type == 0) {
draw_denise_line(q->gfx_ypos, q->how, q->linecnt, q->startpos, q->total, q->skip, q->skip2, q->dtotal, q->calib_start, q->calib_len, q->lol, q->ls);
next = true;
//write_log("%lld ", (t2 - t1));
if (next) {
- for (int i = 0; i <= 5; i++) {
- struct denise_rga *rga = &rga_denise[(q->endpos - i) & DENISE_RGA_SLOT_MASK];
- rga->line++;
- }
+ update_overlapped_cycles(q->endpos);
+ }
+
+ if (!thread_debug_lock) {
+ write_log("read_denise_line_queue: queue lock was released during draw!\n");
+ }
+
+#if 0
+ struct vidbuf_description *vidinfo = &adisplays[0].gfxvidinfo;
+ struct vidbuffer *vb = vidinfo->inbuffer;
+ if (!vb->locked || !vb->bufmem || row_map[0] == NULL) {
+ write_log("read_denise_line_queue: buffer cleared!\n");
+ }
+ for (int i = 0; i < vb->inheight; i++) {
+ uae_u8 *p = row_map[i];
+ *p = 0x12;
}
+#endif
atomic_inc(&rga_queue_read);
struct vidbuffer *vb = &vidinfo->drawbuffer;
struct vidbuffer *vbin = &vidinfo->tempbuffer;
- if (vb->inheight < vbin->inheight || vb->inwidth < vbin->inwidth) {
- return false;
- }
-
- if (!lockscr(vb, false, display_reset > 0)) {
- notice_screen_contents_lost(monid);
- return false;
+ if (!vb->locked) {
+ if (!lockscr(vb, false, display_reset > 0)) {
+ notice_screen_contents_lost(monid);
+ return false;
+ }
}
denise_locked = true;
return true;
static uae_u8 *refresh_indicator_changed, *refresh_indicator_changed_prev;
static int refresh_indicator_height;
-uae_u8 *xlinebuffer, *xlinebuffer2;
-uae_u16 *xlinebuffer_genlock;
-
-static int *amiga2aspect_line_map, *native2amiga_line_map;
-static int native2amiga_line_map_height;
-static uae_u8 **row_map;
-static uae_u16 *row_map_genlock_buffer;
-static uae_u8 row_tmp8[MAX_PIXELS_PER_LINE * 32 / 8];
-static uae_u16 row_tmp16[MAX_PIXELS_PER_LINE * 32 / 8];
-static int max_drawn_amiga_line;
-uae_u16 **row_map_genlock;
-uae_u8 *row_map_color_burst_buffer;
-
/* Centering variables. */
static int min_diwstart, max_diwstop;
/* The visible window: VISIBLE_LEFT_BORDER contains the left border of the visible
static int hstrt_offset, hstop_offset;
static int bpl1dat_trigger_offset;
static int internal_pixel_cnt, internal_pixel_start_cnt;
-static bool no_denise_lol, denise_strlong_detected;
+static bool no_denise_lol, denise_strlong_seen;
void set_inhibit_frame(int monid, int bit)
{
return false;
if (vidinfo->outbuffer == &vidinfo->drawbuffer)
return true;
- return vidinfo->outbuffer->nativepositioning;
+ return !vidinfo->outbuffer->hardwiredpositioning;
}
extern int plffirstline_total, plflastline_total;
static void vbcopy(struct vidbuffer *vbout, struct vidbuffer *vbin)
{
-
- for (int h = 0; h < vbout->outheight; h++) {
- memcpy(vbout->bufmem + h * vbout->rowbytes, vbin->bufmem + h * vbin->rowbytes, vbout->outwidth * vbout->pixbytes);
+ if (vbout->locked) {
+ for (int h = 0; h < vbout->height_allocated; h++) {
+ memcpy(vbout->bufmem + h * vbout->rowbytes, vbin->bufmem + h * vbin->rowbytes, vbout->width_allocated * vbout->pixbytes);
+ }
}
}
}
setspecialmonitorpos(m_out);
if (locked && emulate_specialmonitors(m_in, m_out)) {
- if (m_out->nativepositioning) {
+ if (!m_in->hardwiredpositioning) {
setnativeposition(m_out);
}
if (!ad->specialmonitoron) {
need_genlock_data = false;
if (ad->specialmonitoron) {
ad->specialmonitoron = false;
+ m_in->hardwiredpositioning = false;
compute_framesync();
}
vbcopy(vbout, vbin);
lts_request = true;
}
emulate_genlock(vbin, vbout, aga_genlock_features_zdclken);
- if (vbout->nativepositioning) {
+ if (!vbout->hardwiredpositioning) {
setnativeposition(vbout);
}
}
}
setspecialmonitorpos(vbout);
emulate_grayscale(vbin, vbout);
- if (vbout->nativepositioning)
+ if (!vbout->hardwiredpositioning)
setnativeposition(vbout);
}
int monid = 0;
struct amigadisplay *ad = &adisplays[monid];
int changed = check_prefs_changed_gfx();
+ if (changed) {
+ custom_end_drawing();
+ }
if (changed > 0) {
reset_drawing();
notice_screen_contents_lost(monid);
buf->realbufmem = xcalloc(uae_u8, size + 2 * buf->rowbytes);
buf->bufmem_allocated = buf->bufmem = buf->realbufmem + buf->rowbytes;
buf->bufmemend = buf->realbufmem + size - buf->rowbytes;
- buf->bufmem_lockable = true;
}
void freevidbuffer(int monid, struct vidbuffer *buf)
{
- xfree(buf->realbufmem);
- memset(buf, 0, sizeof (struct vidbuffer));
+ if (!buf->vram_buffer) {
+ xfree(buf->realbufmem);
+ memset(buf, 0, sizeof (struct vidbuffer));
+ }
}
void reset_drawing(void)
{
+ custom_end_drawing();
+
int monid = 0;
struct amigadisplay *ad = &adisplays[monid];
struct vidbuf_description *vidinfo = &ad->gfxvidinfo;
#if AUTOSCALE_SPRITES
/* get upper and lower sprite position if brdsprt enabled */
if ((s->dataa64 || s->datab64) && bordersprite) {
- if (linear_vpos < plffirstline_total) {
- plffirstline_total = linear_vpos;
+ if (this_line->linear_vpos < plffirstline_total) {
+ plffirstline_total = this_line->linear_vpos;
}
- if (linear_vpos > plflastline_total) {
- plflastline_total = linear_vpos;
+ if (this_line->linear_vpos > plflastline_total) {
+ plflastline_total = this_line->linear_vpos;
}
int x = s->xpos;;
if (diwfirstword_total > x && x >= (48 << RES_MAX)) {
#if AUTOSCALE_SPRITES
/* get upper and lower sprite position if brdsprt enabled */
if ((s->dataa || s->datab) && bordersprite) {
- if (linear_vpos < plffirstline_total) {
- plffirstline_total = linear_vpos;
+ if (this_line->linear_vpos < plffirstline_total) {
+ plffirstline_total = this_line->linear_vpos;
}
- if (linear_vpos > plflastline_total) {
- plflastline_total = linear_vpos;
+ if (this_line->linear_vpos > plflastline_total) {
+ plflastline_total = this_line->linear_vpos;
}
int x = s->xpos;;
if (diwfirstword_total > x && x >= (48 << RES_MAX)) {
static void set_strlong(void)
{
- denise_strlong_detected = true;
+ denise_strlong_seen = true;
if (no_denise_lol) {
denise_strlong = false;
denise_strlong_fast = true;
static int dummyint = 0;
static struct dma_rec dummydrec = { 0 };
- draw_denise_line_queue_flush();
+ custom_end_drawing();
dummyint = 0;
memset(&dummydrec, 0, sizeof(dummydrec));
memset(chunky_out, 0, sizeof(chunky_out));
}
}
-static void expand_drga_early2x(struct denise_rga* rd)
+static void expand_drga_early2x(struct denise_rga *rd)
{
switch (rd->rga)
{
}
}
-static void expand_drga_early(struct denise_rga* rd)
+static void expand_drga_early(struct denise_rga *rd)
{
if (rd->rga >= 0x180 && rd->rga < 0x180 + 32 * 2) {
int idx = (rd->rga - 0x180) / 2;
}
}
if (rd->rga == 0x03c && previous_strobe != 0x03c) {
- linear_denise_vbstrt = linear_vpos;
+ linear_denise_vbstrt = this_line->linear_vpos;
if (denise_vblank_extra) {
- denise_vblank_extra_vbstrt = linear_vpos + denise_vblank_extra;
+ denise_vblank_extra_vbstrt = this_line->linear_vpos + denise_vblank_extra;
}
} else if (rd->rga != 0x03c && previous_strobe == 0x03c) {
- linear_denise_vbstop = linear_vpos;
+ linear_denise_vbstop = this_line->linear_vpos;
if (denise_vblank_extra) {
- denise_vblank_extra_vbstop = linear_vpos - denise_vblank_extra;
+ denise_vblank_extra_vbstop = this_line->linear_vpos - denise_vblank_extra;
}
denise_visible_lines = 0;
}
expand_fmode(s_fmode);
}
+bool has_draw_denise(void)
+{
+ return thread_debug_lock;
+}
+
bool start_draw_denise(void)
{
struct vidbuf_description *vidinfo = &adisplays[0].gfxvidinfo;
vidinfo->outbuffer = vb;
+ if (thread_debug_lock) {
+ write_log("start_draw_denise: thread_debug_lock already set!");
+ }
+
if (!lockscr(vb, false, display_reset > 0)) {
return false;
}
+ thread_debug_lock = true;
+
if (vidinfo->tempbuffer.bufmem) {
vidinfo->inbuffer = &vidinfo->tempbuffer;
} else {
struct vidbuf_description *vidinfo = &adisplays[0].gfxvidinfo;
struct vidbuffer *vb = &vidinfo->drawbuffer;
+ if (!thread_debug_lock) {
+ write_log("end_draw_denise: thread_debug_lock not set!\n");
+ }
+
draw_denise_line_queue_flush();
denise_mark_last_line();
+ thread_debug_lock = false;
+
unlockscr(vb, denise_y_start, denise_y_end);
if (vidinfo->outbuffer != vidinfo->inbuffer) {
{
*buf_d++ = v;
if (decode_specials_debug > 1) {
- int t = ((inc >> 1) + linear_vpos + 1) & 3;
+ int t = ((inc >> 1) + this_line->linear_vpos + 1) & 3;
if (denise_blank_active2) {
if (t == 0) {
v = 0;
if (gfx_ypos < prevline - 1) {
- if (!denise_strlong_detected && strlong_emulation) {
+ if (!denise_strlong_seen && strlong_emulation) {
strlong_emulation = false;
write_log("STRLONG strobe emulation deactivated.\n");
select_lts();
denise_lol_shift_enable = false;
denise_lol_shift_prev = 0;
}
- denise_strlong_detected = false;
+ denise_strlong_seen = false;
// clear remaining lines if mode height is now smaller than previously
struct vidbuf_description *vidinfo = &adisplays[0].gfxvidinfo;
internal_pixel_cnt = 0;
internal_pixel_start_cnt = 0;
- if (denise_pixtotal_max == -0x7fffffff || ((linear_vpos >= denise_vblank_extra_vbstop || linear_vpos < denise_vblank_extra_vbstrt) && currprefs.gfx_overscanmode < OVERSCANMODE_ULTRA)) {
+ if (denise_pixtotal_max == -0x7fffffff || ((this_line->linear_vpos >= denise_vblank_extra_vbstop || this_line->linear_vpos < denise_vblank_extra_vbstrt) && currprefs.gfx_overscanmode < OVERSCANMODE_ULTRA)) {
// don't draw vertical blanking if not ultra extreme overscan
while (denise_cck < denise_total) {
int rshift = RES_MAX - hresolution;
int hbstrt_offset2 = (hbstrt_offset - internal_pixel_start_cnt) >> rshift;
int hbstop_offset2 = (hbstop_offset - internal_pixel_start_cnt) >> rshift;
- uae_u32 *hbstrt_ptr1 = hbstrt_offset >= 0 ? buf1t + hbstrt_offset2 : NULL;
- uae_u32 *hbstop_ptr1 = hbstop_offset >= 0 ? buf1t + hbstop_offset2 : NULL;
- uae_u32 *hbstrt_ptr2 = buf2 && hbstrt_offset >= 0 ? buf2t + hbstrt_offset2 : NULL;
- uae_u32 *hbstop_ptr2 = buf2 && hbstop_offset >= 0 ? buf2t + hbstop_offset2 : NULL;
+ uae_u32 *hbstrt_ptr1 = hbstrt_offset2 >= 0 ? buf1t + hbstrt_offset2 : NULL;
+ uae_u32 *hbstop_ptr1 = hbstop_offset2 >= 0 ? buf1t + hbstop_offset2 : NULL;
+ uae_u32 *hbstrt_ptr2 = buf2 && hbstrt_offset2 >= 0 ? buf2t + hbstrt_offset2 : NULL;
+ uae_u32 *hbstop_ptr2 = buf2 && hbstop_offset2 >= 0 ? buf2t + hbstop_offset2 : NULL;
// blank last pixel row if normal overscan mode, it might have NTSC artifacts
- if (denise_pixtotal_max != -0x7fffffff && hbstrt_ptr1 && currprefs.gfx_overscanmode <= OVERSCANMODE_OVERSCAN && !ecs_denise) {
+ if (denise_strlong_seen && denise_pixtotal_max != -0x7fffffff && hbstrt_ptr1 && currprefs.gfx_overscanmode <= OVERSCANMODE_OVERSCAN && !ecs_denise) {
int add = 1 << hresolution;
uae_u32 *p1 = hbstrt_ptr1 - denise_lol_shift_prev;
uae_u32 *p2 = hbstrt_ptr2 - denise_lol_shift_prev;
*p2++ = BLANK_COLOR;
}
}
- if (1 && no_denise_lol && denise_pixtotal_max != -0x7fffffff && hbstrt_ptr1 && !lol_fast && denise_strlong_detected) {
+ if (1 && no_denise_lol && denise_pixtotal_max != -0x7fffffff && hbstrt_ptr1 && !lol_fast && denise_strlong_seen) {
int add = 1 << hresolution;
uae_u32 *p1 = hbstrt_ptr1 - 2 * add;
uae_u32 *p2 = hbstrt_ptr2 - 2 * add;
}
w <<= hresolution;
for (int i = 0; i < 4; i++) {
- uae_u32 *ptr, *ptr2;
+ uae_u32 *ptr, *ptrs, *ptre;
int lolshift = 0;
switch (i)
{
case 0:
ptr = hbstrt_ptr1;
- ptr2 = buf1t;
+ ptrs = buf1t;
+ ptre = buf1;
lolshift = lol ? -add : 0;
break;
case 1:
ptr = hbstrt_ptr2;
- ptr2 = buf2t;
+ ptrs = buf2t;
+ ptre = buf2;
lolshift = lol ? -add : 0;
break;
case 2:
ptr = hbstop_ptr1;
- ptr2 = buf1t;
+ ptrs = buf1t;
+ ptre = buf1;
lolshift = lol ? add : 0;
break;
case 3:
ptr = hbstop_ptr2;
- ptr2 = buf2t;
+ ptrs = buf2t;
+ ptre = buf2;
lolshift = lol ? add : 0;
break;
}
if (ptr) {
uae_u32 *p1 = ptr - lolshift;
+ int ww = w;
if (i >= 2) {
- memset(p1, 0, w * sizeof(uae_u32));
+ if (p1 + ww > ptrs && p1 + ww < ptre) {
+ if (p1 < ptrs) {
+ int wadd = addrdiff(p1, ptrs);
+ ww -= wadd;
+ p1 += add;
+ }
+ memset(p1, 0, ww * sizeof(uae_u32));
+ if (bufg) {
+ uae_u16 *gp1 = (p1 - ptrs) + bufg;
+ memset(gp1, 0, ww * sizeof(uae_u16));
+ }
+ }
} else {
- memset(p1 - w, 0, w * sizeof(uae_u32));
- }
- if (bufg) {
- uae_u16 *gp1 = (p1 - ptr2) + bufg;
- if (i >= 2) {
- memset(gp1, 0, w * sizeof(uae_u16));
- } else {
- memset(gp1 - w, 0, w * sizeof(uae_u16));
+ if (p1 < ptre && p1 - w >= ptrs) {
+ memset(p1 - ww, 0, w * sizeof(uae_u32));
+ if (bufg) {
+ uae_u16 *gp1 = (p1 - ptrs) + bufg;
+ memset(gp1 - ww, 0, w * sizeof(uae_u16));
+ }
}
}
}
}
#endif
+static void tvadjust(int *hbstrt_offset, int *hbstop_offset)
+{
+ if (currprefs.gfx_overscanmode < OVERSCANMODE_OVERSCAN) {
+ int add = 1 << hresolution;
+ int w = (OVERSCANMODE_OVERSCAN - currprefs.gfx_overscanmode) * 8;
+ if (currprefs.gfx_overscanmode == 0) {
+ w -= 4;
+ }
+ w <<= hresolution;
+ *hbstrt_offset -= w;
+ *hbstop_offset += w;
+ }
+}
+
static int r_shift(int v, int shift)
{
if (shift >= 0) {
int hbstrt_offset = ls->hbstrt_offset >> rshift;
int hbstop_offset = ls->hbstop_offset >> rshift;
+
+ tvadjust(&hbstrt_offset, &hbstop_offset);
+
int draw_end = ls->internal_pixel_cnt >> rshift;
int draw_startoffset = ls->internal_pixel_start_cnt >> rshift;
int hbstrt_offset = ls->hbstrt_offset >> rshift;
int hbstop_offset = ls->hbstop_offset >> rshift;
+
+ tvadjust(&hbstrt_offset, &hbstop_offset);
+
// negative checks are needed to handle always-on HDIW
- int hstrt_offset = ls->hstrt_offset < 0 || ls->hstop_offset < 0 || ls->hstrt_offset >= ls->hbstrt_offset ? hbstop_offset : ls->hstrt_offset >> rshift;
+ int hstrt_offset = ls->hstrt_offset < 0 || ls->hstop_offset < 0 || (ls->hstrt_offset >> rshift) >= hbstrt_offset ? hbstop_offset : ls->hstrt_offset >> rshift;
int hstop_offset = ls->hstop_offset < 0 ? hbstrt_offset : ls->hstop_offset >> rshift;
int bpl1dat_trigger_offset = (ls->bpl1dat_trigger_offset + (1 << RES_MAX)) >> rshift;
int draw_start = 0;
int draw_end = ls->internal_pixel_cnt >> rshift;
int draw_startoffset = ls->internal_pixel_start_cnt >> rshift;
-
+
//write_log("%03d %03d %03d %03d %03d %03d %03d\n", vpos, hbstop_offset, hbstrt_offset, hstrt_offset, hstop_offset, bpl1dat_trigger_offset, delayoffset);
uae_u8 bxor = ls->bplcon4 >> 8;
buf1 = buf1p;
buf2 = buf2p;
-// int cpadd = doubling < 0 ? (doubling < -1 ? 4 : 2) : 1;
-// int bufadd = doubling > 0 ? (doubling > 1 ? 4 : 2) : 1;
int cpadd = doubling < 0 ? (doubling < -1 ? 2 : 1) : 0;
int bufadd = doubling > 0 ? (doubling > 1 ? 2 : 1) : 0;
-
// subpixel handling
int subpix = (ls->bplcon1 & 0x0300) >> 8;
int cpadds[4] = { 0, 0, 0, 0 };
if (doubling <= 0) {
cpadds[0] = 1 << cpadd;
+ subpix >>= RES_MAX - hresolution;
+ cp -= subpix;
+ cp2 -= subpix;
} else if (doubling == 1) {
if (subpix & 2) {
cp--;
- cpadds[0] = 1 << cpadd;
+ cpadds[1] = 1 << cpadd;
} else {
cpadds[1] = 1 << cpadd;
}
+ if (subpix & 1) {
+ cpadds[0] = 1 << cpadd;
+ cpadds[1] = 0;
+ }
} else {
if (subpix & 2) {
cp--;
- cpadds[0] = 1 << cpadd;
+ cpadds[3] = 1 << cpadd;
} else {
- cpadds[2] = 1 << cpadd;
+ cpadds[3] = 1 << cpadd;
+ }
+ if (subpix & 1) {
+ cpadds[1] = 1 << cpadd;
+ cpadds[3] = 0;
}
}
return src;
}
+static void updatelinedata(void)
+{
+ this_line = &temp_line;
+ this_line->vpos = vpos;
+ this_line->linear_vpos = linear_vpos;
+}
+
static bool waitqueue(void)
{
+ if (!thread_debug_lock) {
+ write_log("Denise queue without lock!\n");
+ return false;
+ }
+
+
while (((rga_queue_write + 1) & DENISE_RGA_SLOT_CHUNKS_MASK) == (rga_queue_read & DENISE_RGA_SLOT_CHUNKS_MASK)) {
uae_sem_trywait_delay(&read_sem, 500);
}
q->ls = ls;
q->type = 2;
q->vpos = vpos;
+ q->linear_vpos = linear_vpos;
addtowritequeue();
} else {
+ updatelinedata();
draw_denise_border_line_fast(gfx_ypos, how, ls);
}
q->ls = ls;
q->type = 1;
q->vpos = vpos;
+ q->linear_vpos = linear_vpos;
addtowritequeue();
} else {
+ updatelinedata();
draw_denise_bitplane_line_fast(gfx_ypos, how, ls);
}
q->endpos = endpos;
q->type = 3;
q->vpos = vpos;
+ q->linear_vpos = linear_vpos;
addtowritequeue();
} else {
+ updatelinedata();
quick_denise_rga(linecnt, startpos, endpos);
}
q->endpos = endpos;
q->type = 4;
q->vpos = vpos;
+ q->linear_vpos = linear_vpos;
addtowritequeue();
} else {
+ updatelinedata();
denise_handle_quick_strobe(strobe, strobe_pos, endpos);
+ update_overlapped_cycles(endpos);
}
}
-
void draw_denise_line_queue(int gfx_ypos, nln_how how, uae_u32 linecnt, int startpos, int endpos, int total, int skip, int skip2, int dtotal, int calib_start, int calib_len, bool lol, struct linestate *ls)
{
if (MULTITHREADED_DENISE) {
q->lol = lol;
q->ls = ls;
q->vpos = vpos;
+ q->linear_vpos = linear_vpos;
addtowritequeue();
} else {
+ updatelinedata();
draw_denise_line(gfx_ypos, how, linecnt, startpos, total, skip, skip2, dtotal, calib_start, calib_len, lol, ls);
+ update_overlapped_cycles(endpos);
}
}
void draw_denise_line_queue_flush(void)
{
if (MULTITHREADED_DENISE) {
+
for (;;) {
if (rga_queue_read == rga_queue_write) {
return;
}
uae_sem_trywait_delay(&read_sem, 500);
}
+
}
}
outf("uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);");
}
- outf("int cnt = draw_start;");
- outf("if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {");
- outf(" cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;");
- outf(" if (cnt > hbstop_offset) {");
- outf(" cnt = hbstop_offset;");
- outf(" }");
- outf("}");
outf("int end = draw_end;");
outf("if (end > hbstrt_offset) {");
outf(" end = hbstrt_offset;");
outf("}");
- outf("if (cnt < draw_startoffset) {");
- outf(" int d = (draw_startoffset - cnt) >> bufadd;");
- outf(" cp += d << cpadd;");
+
+ outf("int cnt = draw_end;");
+ outf("if (cnt > draw_startoffset) {");
outf(" cnt = draw_startoffset;");
outf("}");
-
- outf(" if (cnt < hbstop_offset) {");
- outf(" int d = (hbstop_offset - cnt) >> bufadd;");
- outf(" buf1 += d << bufadd;");
- if (isbuf2) {
- outf(" buf2 += d << bufadd;");
- }
+ outf("if (cnt > hbstop_offset) {");
outf(" cnt = hbstop_offset;");
outf("}");
-
+ outf("if (cnt > bpl1dat_trigger_offset) {");
+ outf(" cnt = bpl1dat_trigger_offset;");
+ outf("}");
outf("while (cnt < end) {");
outf(" bool bpl = false;");
outf(" if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {");
+ outf(" if (cnt >= draw_startoffset) {");
+ outf(" if (cnt < hbstop_offset) {");
+ if (doubling <= 0) {
+ outf("buf1++;");
+ if (isbuf2) {
+ outf("buf2++;");
+ }
+ if (genlock) {
+ outf("gbuf++;");
+ }
+ } else if (doubling == 1) {
+ outf("buf1 += 2;");
+ if (isbuf2) {
+ outf("buf2 += 2;");
+ }
+ if (genlock) {
+ outf("gbuf += 2;");
+ }
+ } else if (doubling == 2) {
+ outf("buf1 += 4;");
+ if (isbuf2) {
+ outf("buf2 += 4;");
+ }
+ if (genlock) {
+ outf("gbuf += 4;");
+ }
+ }
+ outf(" } else {");
if (doubling <= 0) {
outf("*buf1++ = bgcolor;");
if (isbuf2) {
outf("*gbuf++ = gpix;");
}
}
+ outf("}");
+ outf(" }");
outf("} else {");
outf("bpl = true;");
outf("uae_u8 c;");
struct rgabuf *write_rga(int slot, int type, uae_u16 v, uae_u32 *p);
extern uae_u16 clxdat;
+void custom_end_drawing(void);
+
extern int current_linear_vpos, current_linear_hpos;
extern uae_u8 agnus_hpos;
void draw_denise_border_line_fast_queue(int gfx_ypos, enum nln_how how, struct linestate *ls);
bool start_draw_denise(void);
void end_draw_denise(void);
+bool has_draw_denise(void);
void denise_update_reg(uae_u16 reg, uae_u16 v);
void denise_reset(bool);
bool denise_update_reg_queued(uae_u16 reg, uae_u16 v, uae_u32 cycle);
uae_u8 *bufmem, *bufmemend;
uae_u8 *realbufmem;
uae_u8 *bufmem_allocated;
- bool bufmem_lockable;
+ bool initialized;
bool locked;
bool vram_buffer;
int rowbytes; /* Bytes per row in the memory pointed at by bufmem. */
/* same but doublescan multiplier included */
int inwidth2;
int inheight2;
- /* use drawbuffer instead */
- bool nativepositioning;
+ /* static, hardwired screen position and size (A2024) */
+ bool hardwiredpositioning;
/* extra width, chipset hpos extra in right border */
int extrawidth, extraheight;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ buf2 += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ buf2 += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ buf2 += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ buf2 += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ buf2 += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u8 bxor = ls->bplcon4 >> 8;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ gbuf += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ gbuf += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ gbuf += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ gbuf += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ gbuf += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ buf2 += 4;
+ gbuf += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ buf2 += 4;
+ gbuf += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ buf2 += 4;
+ gbuf += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ buf2 += 4;
+ gbuf += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ buf2 += 4;
+ gbuf += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ } else {
+ *buf1++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ buf2 += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ buf2 += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ buf2 += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ buf2 += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ buf2 += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
uae_u16 *colors_ocs = (uae_u16*)ls->linecolorstate;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ gbuf += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ gbuf += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ gbuf += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ gbuf += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ gbuf += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ buf2 += 4;
+ gbuf += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ buf2 += 4;
+ gbuf += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ buf2 += 4;
+ gbuf += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ buf2 += 4;
+ gbuf += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 4;
+ buf2 += 4;
+ gbuf += 4;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1 += 2;
+ buf2 += 2;
+ gbuf += 2;
+ } else {
+ *buf1++ = bgcolor;
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
int bufaddv = 1 << bufadd;
int cpaddv = 1 << cpadd;
uae_u16 gpix = get_genlock_transparency_border_fast(ls->bplcon3);
- int cnt = draw_start;
- if (draw_startoffset > cnt && bpl1dat_trigger_offset > cnt) {
- cnt = draw_startoffset > bpl1dat_trigger_offset ? bpl1dat_trigger_offset : draw_startoffset;
- if (cnt > hbstop_offset) {
- cnt = hbstop_offset;
- }
- }
int end = draw_end;
if (end > hbstrt_offset) {
end = hbstrt_offset;
}
- if (cnt < draw_startoffset) {
- int d = (draw_startoffset - cnt) >> bufadd;
- cp += d << cpadd;
+ int cnt = draw_end;
+ if (cnt > draw_startoffset) {
cnt = draw_startoffset;
}
- if (cnt < hbstop_offset) {
- int d = (hbstop_offset - cnt) >> bufadd;
- buf1 += d << bufadd;
- buf2 += d << bufadd;
+ if (cnt > hbstop_offset) {
cnt = hbstop_offset;
}
+ if (cnt > bpl1dat_trigger_offset) {
+ cnt = bpl1dat_trigger_offset;
+ }
while (cnt < end) {
bool bpl = false;
if (cnt < bpl1dat_trigger_offset || cnt < hstrt_offset || cnt >= hstop_offset) {
- *buf1++ = bgcolor;
- *buf2++ = bgcolor;
- *gbuf++ = gpix;
+ if (cnt >= draw_startoffset) {
+ if (cnt < hbstop_offset) {
+ buf1++;
+ buf2++;
+ gbuf++;
+ } else {
+ *buf1++ = bgcolor;
+ *buf2++ = bgcolor;
+ *gbuf++ = gpix;
+ }
+ }
} else {
bpl = true;
uae_u8 c;
#endif
run_func();
+ custom_end_drawing();
+
if (quit_program < 0) {
quit_program = -quit_program;
}
if (currprefs.leds_on_screen & (STATUSLINE_CHIPSET | STATUSLINE_RTG))
updateleds(d3d);
hr = tex->UnlockRect(0);
- if (y_start >= 0 && !d3d->turbo_skip)
+ if (y_start >= 0 && y_end >= 0 && !d3d->turbo_skip)
xD3D_flushtexture(monid, y_start, y_end);
}
d3d->locked = 0;
//freethread(d3d);
+ if (d3d->texturelocked) {
+ D3D_unlocktexture(monid, -1, -1);
+ }
+
freed3d(d3d);
if (d3d->m_swapChain) {
return false;
}
+ if (d3d->texturelocked) {
+ D3D_unlocktexture(monid, -1, -1);
+ }
+
recheck(d3d, monid);
if (d3d->invalidmode || !d3d->m_device) {
// texture allocation must not cause side-effects
+ if (height)
+ *height = d3d->m_bitmapHeight;
+ if (width)
+ *width = d3d->m_bitmapWidth;
+
+ if (d3d->texturelocked) {
+ write_log("D3D11_locktexture: already locked!\n");
+ return NULL;
+ }
+
if (d3d->invalidmode || !d3d->texture2d)
return NULL;
return NULL;
}
*pitch = map.RowPitch;
- if (height)
- *height = d3d->m_bitmapHeight;
- if (width)
- *width = d3d->m_bitmapWidth;
d3d->texturelocked++;
return (uae_u8*)map.pData;
}
struct AmigaMonitor *mon = &AMonitors[monid];
struct d3d11struct *d3d = &d3d11data[monid];
- if (!d3d->texturelocked || d3d->invalidmode)
+ if (!d3d->texturelocked || d3d->invalidmode || !d3d->texture2dstaging) {
+ d3d->texturelocked = 0;
return;
+ }
d3d->texturelocked--;
d3d->m_deviceContext->Unmap(d3d->texture2dstaging, 0);
} else {
d3d->osd.enabled = false;
}
- if (y_start < 0) {
+ if (y_start < 0 || y_end < 0) {
d3d->m_deviceContext->CopyResource(d3d->texture2d, d3d->texture2dstaging);
} else {
D3D11_BOX box = { 0 };
*errp = 2;
return _T("GDI fullscreen not supported");
}
-
+ gdi_free(monid, true);
gdi->hwnd = ahwnd;
gdi->depth = depth;
gdi->wwidth = w_w;
}
gfx_lock();
if (vb->vram_buffer) {
- D3D_unlocktexture(vb->monitor_id, -1, -1);
- vb->bufmem = D3D_locktexture(vb->monitor_id, &vb->rowbytes, NULL, NULL, skip ? -1 : (fullupdate ? 1 : 0));
+ vb->bufmem = D3D_locktexture(vb->monitor_id, &vb->rowbytes, &vb->width_allocated, &vb->height_allocated, skip ? -1 : (fullupdate ? 1 : 0));
if (vb->bufmem) {
ret = 1;
}
- vb->width_allocated = mon->currentmode.native_width;
- vb->height_allocated = mon->currentmode.native_height;
} else {
ret = 1;
}
{
struct AmigaMonitor *mon = &AMonitors[vb->monitor_id];
gfx_lock();
+ vb->locked = false;
if (vb->vram_buffer) {
vb->bufmem = NULL;
D3D_unlocktexture(vb->monitor_id, y_start, y_end);
}
- vb->locked = false;
gfx_unlock();
}
mon->currentmode.current_height != wc->current_height ||
mon->currentmode.current_depth != wc->current_depth)
return -1;
- if (!avidinfo->outbuffer->bufmem_lockable)
- return -1;
}
} else if (isfullscreen () == 0) {
/* windowed to windowed */
{
struct vidbuf_description *vidinfo = &adisplays[monid].gfxvidinfo;
+ if (buf->initialized && buf->vram_buffer) {
+ return;
+ }
+
buf->monitor_id = monid;
buf->pixbytes = (depth + 7) / 8;
buf->width_allocated = (width + 7) & ~7;
buf->height_allocated = height;
+ buf->initialized = true;
+ buf->hardwiredpositioning = false;
if (buf == &vidinfo->drawbuffer) {
buf->bufmemend = NULL;
buf->realbufmem = NULL;
buf->bufmem_allocated = NULL;
- buf->bufmem_lockable = true;
buf->vram_buffer = true;
write_log(_T("Mon %d reserved %s draw buffer (%d*%d*%d)\n"), monid, name, width, height, depth);
} else {
+ xfree(buf->realbufmem);
int w = buf->width_allocated;
int h = buf->height_allocated;
int size = (w * 2) * (h * 2) * buf->pixbytes;
buf->realbufmem = xcalloc(uae_u8, size);
buf->bufmem_allocated = buf->bufmem = buf->realbufmem + (h / 2) * buf->rowbytes + (w / 2) * buf->pixbytes;
buf->bufmemend = buf->realbufmem + size - buf->rowbytes;
- buf->bufmem_lockable = true;
write_log(_T("Mon %d allocated %s temp buffer (%d*%d*%d) = %p\n"), monid, name, width, height, depth, buf->realbufmem);
- return;
+
}
}
regqueryint(NULL, wasfsname[1], &wasfs[1]);
gfxmode_reset(mon->monitor_id);
- freevidbuffer(mon->monitor_id, &avidinfo->drawbuffer);
- freevidbuffer(mon->monitor_id, &avidinfo->tempbuffer);
+ //freevidbuffer(mon->monitor_id, &avidinfo->drawbuffer);
+ //freevidbuffer(mon->monitor_id, &avidinfo->tempbuffer);
for (;;) {
updatemodes(mon);
struct picasso_vidbuf_description *vidinfo = &picasso_vidinfo[monid];
struct vidbuf_description *avidinfo = &adisplays[monid].gfxvidinfo;
struct picasso96_state_struct *state = &picasso96_state[monid];
+ struct vidbuffer *vb = NULL, *vbout = NULL;
+
+ gfx_lock();
static bool graphicsbuffer_retry;
int w, h;
w = state->Width;
h = state->Height;
} else {
- struct vidbuffer *vb = avidinfo->inbuffer;
+ vb = avidinfo->inbuffer;
+ vbout = avidinfo->outbuffer;
if (!vb) {
+ gfx_unlock();
return false;
}
w = vb->outwidth;
h = vb->outheight;
}
- if (!force && oldtex_w[monid] == w && oldtex_h[monid] == h && oldtex_rtg[monid] == mon->screen_is_picasso && D3D_alloctexture(mon->monitor_id, -w, -h)) {
- osk_setup(monid, -2);
- return false;
+ if (!force && oldtex_w[monid] == w && oldtex_h[monid] == h && oldtex_rtg[monid] == mon->screen_is_picasso) {
+ if (D3D_alloctexture(mon->monitor_id, -w, -h)) {
+ osk_setup(monid, -2);
+ if (vbout) {
+ vbout->width_allocated = w;
+ vbout->height_allocated = h;
+ }
+ gfx_unlock();
+ return false;
+ }
}
if (!w || !h) {
oldtex_w[monid] = w;
oldtex_h[monid] = h;
oldtex_rtg[monid] = mon->screen_is_picasso;
+ gfx_unlock();
return false;
}
-#if 0
- S2X_free(mon->monitor_id);
-#endif
if (!D3D_alloctexture(mon->monitor_id, w, h)) {
graphicsbuffer_retry = true;
+ gfx_unlock();
return false;
}
+ if (vbout) {
+ vbout->width_allocated = w;
+ vbout->height_allocated = h;
+ }
+
if (avidinfo->inbuffer != avidinfo->outbuffer) {
avidinfo->outbuffer->inwidth = w;
avidinfo->outbuffer->inheight = h;
write_log (_T("Buffer %d size (%d*%d) %s\n"), monid, w, h, mon->screen_is_picasso ? _T("RTG") : _T("Native"));
-#if 0
- if ((mon->currentmode.flags & DM_SWSCALE) && !mon->screen_is_picasso) {
- if (!S2X_init(mon->monitor_id, mon->currentmode.native_width, mon->currentmode.native_height, mon->currentmode.native_depth))
- return false;
- }
-#endif
+ gfx_unlock();
+
return true;
}
static uae_u8 graffiti_palette[256 * 4];
+static bool specialmonitor_setresolution(struct vidbuffer *src, struct vidbuffer *dst, int width, int height, bool nativeposition)
+{
+ src->outwidth = width;
+ src->outheight = height;
+ dst->outwidth = width;
+ dst->outheight = height;
+ dst->inwidth = width;
+ dst->inheight = height;
+ dst->inwidth2 = width;
+ dst->inheight2 = height;
+ src->hardwiredpositioning = !nativeposition;
+ dst->hardwiredpositioning = !nativeposition;
+
+ if (dst->width_allocated != width || dst->height_allocated != height) {
+ bool locked = dst->locked;
+ if (dst->locked) {
+ unlockscr(dst, false, false);
+ }
+ if (!target_graphics_buffer_update(dst->monitor_id, false)) {
+ return false;
+ }
+ if (locked) {
+ if (!lockscr(dst, false, false)) {
+ return false;
+ }
+ }
+ }
+ return true;
+}
+
STATIC_INLINE bool is_transparent(uae_u16 v)
{
return v == 0;
}
if (dctv_enabled) {
- dst->nativepositioning = true;
if (monitor != MONITOREMU_DCTV) {
monitor = MONITOREMU_DCTV;
write_log(_T("DCTV mode\n"));
fc24_y += 2;
}
- dst->nativepositioning = true;
if (monitor != MONITOREMU_FIRECRACKER24) {
monitor = MONITOREMU_FIRECRACKER24;
write_log(_T("FireCracker mode\n"));
}
}
- dst->nativepositioning = true;
if (monitor != MONITOREMU_AVIDEO12 && monitor != MONITOREMU_AVIDEO24) {
monitor = av24 ? MONITOREMU_AVIDEO24 : MONITOREMU_AVIDEO12;
write_log (_T("AVIDEO%d mode\n"), av24 ? 24 : 12);
}
}
- dst->nativepositioning = true;
if (monitor != MONITOREMU_VIDEODAC18) {
monitor = MONITOREMU_VIDEODAC18;
write_log (_T("Video DAC 18 mode\n"));
}
if (was_active) {
- dst->nativepositioning = true;
if (monitor != MONITOREMU_HAM_E) {
monitor = MONITOREMU_HAM_E;
write_log (_T("HAM-E mode, %s\n"), was_active == ham_e_magic_cookie_reg ? _T("REG") : _T("HAM"));
waitline--;
}
- dst->nativepositioning = true;
-
if (monitor != MONITOREMU_GRAFFITI) {
monitor = MONITOREMU_GRAFFITI;
write_log (_T("GRAFFITI %s mode\n"), hires ? _T("hires") : _T("lores"));
}
total_height = panel_height * dbl;
+ if (!specialmonitor_setresolution(src, dst, (total_width / 2) << currprefs.gfx_resolution, total_height, false)) {
+ return false;
+ }
+
srcbuf = src->bufmem + (((44 << VRES_MAX) - src->yoffset) / avidinfo->ychange) * src->rowbytes + (((srcxoffset << RES_MAX) - src->xoffset) / avidinfo->xchange) * src->pixbytes;
dstbuf = dst->bufmem + py * (panel_height / avidinfo->ychange) * dst->rowbytes + px * ((panel_width * 2) / avidinfo->xchange) * dst->pixbytes;
dstbuf += dst->rowbytes * dbl;
}
- total_width /= 2;
- total_width <<= currprefs.gfx_resolution;
-
- dst->outwidth = total_width;
- dst->outheight = total_height;
- dst->inwidth = total_width;
- dst->inheight = total_height;
- dst->inwidth2 = total_width;
- dst->inheight2 = total_height;
- dst->nativepositioning = false;
-
if (monitor != MONITOREMU_A2024) {
monitor = MONITOREMU_A2024;
write_log (_T("A2024 %dHz %s mode\n"), hires ? 15 : 10, ntsc ? _T("NTSC") : _T("PAL"));
genlock_infotext(firstdstline, dst);
}
- dst->nativepositioning = true;
return true;
}
}
}
- dst->nativepositioning = true;
return true;
}
monitor = MONITOREMU_COLORBURST;
write_log(_T("Colorburst control line detected\n"));
}
- dst->nativepositioning = true;
return true;
}