uae_u8 cycle_line_slot[MAX_CHIPSETSLOTS + RGA_PIPELINE_ADJUST];
uae_u16 cycle_line_pipe[MAX_CHIPSETSLOTS + RGA_PIPELINE_ADJUST];
+static uae_u8 cycle_line_slot_last;
static uae_s16 bpl1mod, bpl2mod, bpl1mod_prev, bpl2mod_prev;
static int bpl1mod_hpos, bpl2mod_hpos;
else
lol = 0;
+ cycle_line_slot_last = cycle_line_slot[maxhpos - 1];
set_hpos();
// to record decisions correctly between end of scanline and start of hsync
// - if last cycle was DMA cycle: DMA cycle data
// - if last cycle was not DMA cycle: FFFF or some ANDed old data.
//
- int hp = (hpos - 1) % maxhpos;
- c = cycle_line_slot[hp] & CYCLE_MASK;
- bmdma = bitplane_dma_access(hp, 0);
+ if (hpos == 0) {
+ int hp = maxhpos - 1;
+ c = cycle_line_slot_last & CYCLE_MASK;
+ bmdma = bitplane_dma_access(hp, 0);
+ } else {
+ int hp = hpos - 1;
+ c = cycle_line_slot[hp] & CYCLE_MASK;
+ bmdma = bitplane_dma_access(hp, 0);
+ }
if (aga_mode) {
if (bmdma || (c > CYCLE_REFRESH && c < CYCLE_CPU)) {
v = regs.chipset_latch_rw;