uae_u16 v2;
if (fm == 0) {
v = fetch16(px, -1);
- v2 = v;
+ v2 = (uae_u16)v;
} else if (fm == 1) {
v = fetch32(px);
- v2 = v >> 16;
+ v2 = (uae_u16)(v >> 16);
} else {
v = fetch64(px);
v2 = v >> 48;
}
return false;
}
-static void do_copper_fetch(int hpos, uae_u8 id);
-static void do_sprite_fetch(int hpos, uae_u8 dat);
+static void do_copper_fetch(int hpos, uae_u16 id);
+static void do_sprite_fetch(int hpos, uae_u16 dat);
static void scandoubler_bpl_dma_start(void)
{
{
uae_u16 hp = *hpp;
uae_u16 vp = *vpp;
- if (hp == 0) {
- // HP=0: VP = previous line.
+ if (hp <= 1) {
+ // HP=0-1: VP = previous line.
vp = vpos_prev;
}
*hpp = hp;
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
-static void do_copper_fetch(int hpos, uae_u8 id)
+static void do_copper_fetch(int hpos, uae_u16 id)
{
if (scandoubled_line) {
return;
if (!copper_enabled_thisline)
return;
+ // Previous instruction was SKIP that skipped
if (cop_state.ignore_next > 0) {
reg = 0x1fe;
}
*v2 = data322;
}
-static void do_sprite_fetch(int hpos, uae_u8 dat)
+static void do_sprite_fetch(int hpos, uae_u16 dat)
{
int num = dat & 7;
struct sprite *s = &spr[num];
}
if (nosignal_trigger) {
nosignal_trigger = false;
- if (currprefs.monitorblankdelay > 0) {
+ if (currprefs.gfx_monitorblankdelay > 0) {
nosignal_status = 1;
- nosignal_cnt = currprefs.monitorblankdelay / (1000 / vblank_hz);
+ nosignal_cnt = (int)(currprefs.gfx_monitorblankdelay / (1000.0f / vblank_hz));
if (nosignal_cnt <= 0) {
nosignal_cnt = 1;
}
CIA_hsync_posthandler(false, false);
if (currprefs.cs_cd32cd) {
CIA_hsync_posthandler(true, true);
- CIAB_tod_handler(18);
+ CIAB_tod_handler(35);
} else if (ciahsyncs) {
CIA_hsync_posthandler(true, ciahsyncs);
if (beamcon0 & BEAMCON0_VARHSYEN) {
if (hsstop < (maxhpos & ~1) && hsstrt < maxhpos) {
- CIAB_tod_handler(hsstrt);
+ CIAB_tod_handler(hsstop);
}
} else {
- CIAB_tod_handler(18); // hsync start
+ CIAB_tod_handler(35); // hsync end
}
}
#define CE_EXTBLANKSET 3
#define CE_SHRES_DELAY_SHIFT 8
-STATIC_INLINE bool ce_is_borderblank(uae_u8 data)
+STATIC_INLINE bool ce_is_borderblank(uae_u16 data)
{
return (data & (1 << CE_BORDERBLANK)) != 0;
}
-STATIC_INLINE bool ce_is_extblankset(uae_u8 data)
+STATIC_INLINE bool ce_is_extblankset(uae_u16 data)
{
return (data & (1 << CE_EXTBLANKSET)) != 0;
}
-STATIC_INLINE bool ce_is_bordersprite(uae_u8 data)
+STATIC_INLINE bool ce_is_bordersprite(uae_u16 data)
{
return (data & (1 << CE_BORDERSPRITE)) != 0;
}
-STATIC_INLINE bool ce_is_borderntrans(uae_u8 data)
+STATIC_INLINE bool ce_is_borderntrans(uae_u16 data)
{
return (data & (1 << CE_BORDERNTRANS)) != 0;
}