Make picture bouncing effect work on Copper demo

This commit is contained in:
Cacodemon345
2025-07-01 12:51:01 +06:00
parent c537e61453
commit ccf43f62f9
2 changed files with 25 additions and 0 deletions

View File

@@ -481,6 +481,17 @@ et3000_recalctimings(svga_t *svga)
svga->render = svga_render_4bpp_tseng_highres;
}
static int
et3000_line_compare(svga_t* svga)
{
if (svga->split > svga->vsyncstart) {
/* Don't do line compare if we're already in vertical retrace. */
/* This makes picture bouncing effect work on Copper demo. */
return 0;
}
return 1;
}
static void *
et3000_init(const device_t *info)
{
@@ -514,6 +525,7 @@ et3000_init(const device_t *info)
dev->svga.miscout = 1;
dev->svga.packed_chain4 = 1;
dev->svga.line_compare = et3000_line_compare;
return dev;
}

View File

@@ -784,6 +784,17 @@ et4000_mca_feedb(UNUSED(void *priv))
return et4000->pos_regs[2] & 1;
}
static int
et4000_line_compare(svga_t* svga)
{
if (svga->split > svga->vsyncstart) {
/* Don't do line compare if we're already in vertical retrace. */
/* This makes picture bouncing effect work on Copper demo. */
return 0;
}
return 1;
}
static void *
et4000_init(const device_t *info)
{
@@ -897,6 +908,8 @@ et4000_init(const device_t *info)
dev->vram_mask = dev->vram_size - 1;
dev->svga.line_compare = et4000_line_compare;
rom_init(&dev->bios_rom, fn,
0xc0000, 0x8000, 0x7fff, 0, MEM_MAPPING_EXTERNAL);