Merge pull request #5188 from 86Box/tc1995
Video changes of the night (January 29th, 2025)
This commit is contained in:
@@ -5558,6 +5558,7 @@ blit_bitblt(mystique_t *mystique)
|
||||
mystique->dwgreg.ar[0] += mystique->dwgreg.ar[5];
|
||||
mystique->dwgreg.ar[3] += mystique->dwgreg.ar[5];
|
||||
src_addr = mystique->dwgreg.ar[3];
|
||||
break;
|
||||
} else
|
||||
src_addr += x_dir;
|
||||
|
||||
@@ -5670,6 +5671,7 @@ blit_bitblt(mystique_t *mystique)
|
||||
mystique->dwgreg.ar[0] += mystique->dwgreg.ar[5];
|
||||
mystique->dwgreg.ar[3] += mystique->dwgreg.ar[5];
|
||||
src_addr = mystique->dwgreg.ar[3];
|
||||
break;
|
||||
} else
|
||||
src_addr += x_dir;
|
||||
|
||||
@@ -5756,6 +5758,7 @@ blit_bitblt(mystique_t *mystique)
|
||||
mystique->dwgreg.ar[0] += mystique->dwgreg.ar[5];
|
||||
mystique->dwgreg.ar[3] += mystique->dwgreg.ar[5];
|
||||
src_addr = mystique->dwgreg.ar[3];
|
||||
break;
|
||||
} else
|
||||
src_addr += x_dir;
|
||||
|
||||
@@ -5852,6 +5855,7 @@ blit_bitblt(mystique_t *mystique)
|
||||
mystique->dwgreg.ar[0] += mystique->dwgreg.ar[5];
|
||||
mystique->dwgreg.ar[3] += mystique->dwgreg.ar[5];
|
||||
src_addr = mystique->dwgreg.ar[3];
|
||||
break;
|
||||
} else
|
||||
src_addr += x_dir;
|
||||
|
||||
@@ -6521,6 +6525,7 @@ mystique_pci_write(UNUSED(int func), int addr, uint8_t val, void *priv)
|
||||
mystique->pci_regs[addr] = val;
|
||||
if (addr == 0x30)
|
||||
mystique->pci_regs[addr] &= 1;
|
||||
|
||||
if (mystique->pci_regs[0x30] & 0x01) {
|
||||
uint32_t biosaddr = (mystique->pci_regs[0x32] << 16) | (mystique->pci_regs[0x33] << 24);
|
||||
mem_mapping_set_addr(&mystique->bios_rom.mapping, biosaddr, (mystique->type == MGA_G100) ? 0x10000 : 0x8000);
|
||||
@@ -6533,26 +6538,24 @@ mystique_pci_write(UNUSED(int func), int addr, uint8_t val, void *priv)
|
||||
return;
|
||||
|
||||
case 0x40:
|
||||
mystique->pci_regs[addr] = val & 0x3f;
|
||||
mystique->pci_regs[0x40] = val & 0x3f;
|
||||
break;
|
||||
case 0x41:
|
||||
mystique->pci_regs[addr] = val;
|
||||
mystique->pci_regs[0x41] = val;
|
||||
break;
|
||||
case 0x42:
|
||||
mystique->pci_regs[addr] = val & 0x1f;
|
||||
mystique->pci_regs[0x42] = val & 0x1f;
|
||||
break;
|
||||
case 0x43:
|
||||
mystique->pci_regs[addr] = val;
|
||||
if (addr == 0x43) {
|
||||
if (val & 0x40) {
|
||||
if (mystique->pci_regs[0x30] & 0x01) {
|
||||
uint32_t biosaddr = (mystique->pci_regs[0x32] << 16) | (mystique->pci_regs[0x33] << 24);
|
||||
mem_mapping_set_addr(&mystique->bios_rom.mapping, biosaddr, (mystique->type == MGA_G100) ? 0x10000 : 0x8000);
|
||||
} else
|
||||
mem_mapping_disable(&mystique->bios_rom.mapping);
|
||||
mystique->pci_regs[0x43] = val;
|
||||
if (val & 0x40) {
|
||||
if (mystique->pci_regs[0x30] & 0x01) {
|
||||
uint32_t biosaddr = (mystique->pci_regs[0x32] << 16) | (mystique->pci_regs[0x33] << 24);
|
||||
mem_mapping_set_addr(&mystique->bios_rom.mapping, biosaddr, (mystique->type == MGA_G100) ? 0x10000 : 0x8000);
|
||||
} else
|
||||
mem_mapping_set_addr(&mystique->bios_rom.mapping, 0x000c0000, (mystique->type == MGA_G100) ? 0x10000 : 0x8000);
|
||||
}
|
||||
mem_mapping_disable(&mystique->bios_rom.mapping);
|
||||
} else
|
||||
mem_mapping_set_addr(&mystique->bios_rom.mapping, 0x000c0000, (mystique->type == MGA_G100) ? 0x10000 : 0x8000);
|
||||
break;
|
||||
|
||||
case 0x4c:
|
||||
@@ -6580,17 +6583,17 @@ mystique_pci_write(UNUSED(int func), int addr, uint8_t val, void *priv)
|
||||
mystique_ctrl_write_b(addr, val, mystique);
|
||||
break;
|
||||
|
||||
case 0xf8:
|
||||
mystique->pci_regs[0xf8] = val & 0x7;
|
||||
break;
|
||||
case 0xf8:
|
||||
mystique->pci_regs[0xf8] = val & 0x7;
|
||||
break;
|
||||
|
||||
case 0xf9:
|
||||
mystique->pci_regs[0xf9] = val & 0x3;
|
||||
break;
|
||||
case 0xf9:
|
||||
mystique->pci_regs[0xf9] = val & 0x3;
|
||||
break;
|
||||
|
||||
case 0xfb:
|
||||
mystique->pci_regs[0xfb] = val;
|
||||
break;
|
||||
case 0xfb:
|
||||
mystique->pci_regs[0xfb] = val;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
@@ -6677,6 +6680,7 @@ mystique_init(const device_t *info)
|
||||
mystique->svga.conv_16to32 = tvp3026_conv_16to32;
|
||||
if (mystique->type == MGA_2164W)
|
||||
mystique->svga.decode_mask = 0xffffff;
|
||||
|
||||
tvp3026_gpio(mystique_tvp3026_gpio_read, mystique_tvp3026_gpio_write, mystique, mystique->svga.ramdac);
|
||||
} else {
|
||||
video_inform(VIDEO_FLAG_TYPE_SPECIAL, &timing_matrox_mystique);
|
||||
|
||||
Reference in New Issue
Block a user