SuperEGA: Increase the GDC and CRTC register arrays to 256 elements to prevent overflows and correctly ignore the upper 3 bits of CRTC register 07h in ega_recalctimings(), fixes #4905.

This commit is contained in:
OBattler
2025-03-22 20:44:56 +01:00
parent 2020fd7cbd
commit 5fe9cc76da

View File

@@ -486,19 +486,19 @@ ega_recalctimings(ega_t *ega)
if (ega->crtc[7] & 1)
ega->vtotal |= 0x100;
if (ega->crtc[7] & 32)
if ((ega->actual_type != EGA_SUPEREGA) && (ega->crtc[7] & 32))
ega->vtotal |= 0x200;
ega->vtotal += 2;
if (ega->crtc[7] & 2)
ega->dispend |= 0x100;
if (ega->crtc[7] & 64)
if ((ega->actual_type != EGA_SUPEREGA) && (ega->crtc[7] & 64))
ega->dispend |= 0x200;
ega->dispend++;
if (ega->crtc[7] & 4)
ega->vsyncstart |= 0x100;
if (ega->crtc[7] & 128)
if ((ega->actual_type != EGA_SUPEREGA) && (ega->crtc[7] & 128))
ega->vsyncstart |= 0x200;
ega->vsyncstart++;