Added a way to force legacy mode as a temporary fix for the Voodoo Banshee/3 until there's a proper fix.

This commit is contained in:
OBattler
2021-06-04 02:41:13 +02:00
parent 9161f9a071
commit eef77b7c86
3 changed files with 7 additions and 2 deletions

View File

@@ -154,6 +154,9 @@ typedef struct svga_t
/*Force CRTC to dword mode, regardless of CR14/CR17. Required for S3 enhanced mode*/
int force_dword_mode;
/*Force CRTC to legacy mode. Required for Voodoo Banshee/3 until there's a proper fix*/
int force_legacy_mode;
int remap_required;
uint32_t (*remap_func)(struct svga_t *svga, uint32_t in_addr);

View File

@@ -101,7 +101,7 @@ void svga_recalc_remap_func(svga_t *svga)
{
int func_nr;
if (svga->fb_only)
if (svga->fb_only || svga->force_legacy_mode)
func_nr = 0;
else {
if (svga->force_dword_mode)

View File

@@ -485,9 +485,11 @@ static void banshee_recalctimings(svga_t *svga)
// banshee_log("svga->hdisp=%i\n", svga->hdisp);
svga->interlace = 0;
svga->force_legacy_mode = 0;
if (banshee->vgaInit0 & VGAINIT0_EXTENDED_SHIFT_OUT)
{
svga->force_legacy_mode = 1;
switch (VIDPROCCFG_DESKTOP_PIX_FORMAT)
{
case PIX_FORMAT_8:
@@ -664,7 +666,7 @@ static void banshee_ext_outl(uint16_t addr, uint32_t val, void *p)
banshee->vgaInit1 = val;
svga->write_bank = (val & 0x3ff) << 15;
svga->read_bank = ((val >> 10) & 0x3ff) << 15;
svga->packed_chain4 = !!(val && 0x00100000);
svga->packed_chain4 = !!(val & 0x00100000);
break;
case PLL_pllCtrl0: