Some fixes to fix PIIX3 machines, fatal's on BIOS'es accessing the OPL, and RAM limits on 430TX machines.
This commit is contained in:
@@ -953,10 +953,9 @@ piix_reset_hard(piix_t *dev)
|
||||
nvr_at_handler(0, 0x0072, dev->nvr);
|
||||
nvr_wp_set(0, 0, dev->nvr);
|
||||
nvr_wp_set(0, 1, dev->nvr);
|
||||
} else
|
||||
nvr_at_handler(1, 0x0072, dev->nvr);
|
||||
nvr_at_handler(1, 0x0074, dev->nvr);
|
||||
nvr_at_handler(1, 0x0076, dev->nvr);
|
||||
nvr_at_handler(1, 0x0074, dev->nvr);
|
||||
nvr_at_handler(1, 0x0076, dev->nvr);
|
||||
}
|
||||
|
||||
/* Clear all 4 functions' arrays and set their vendor and device ID's. */
|
||||
for (i = 0; i < 4; i++) {
|
||||
@@ -1078,7 +1077,7 @@ static void
|
||||
dev->bm[1] = device_add_inst(&sff8038i_device, 2);
|
||||
}
|
||||
|
||||
if (dev->type >= 3)
|
||||
if (dev->type > 3)
|
||||
dev->nvr = device_add(&piix4_nvr_device);
|
||||
|
||||
piix_reset_hard(dev);
|
||||
|
@@ -114,7 +114,7 @@ machine_at_6abx3_init(const machine_t *model)
|
||||
if (bios_only || !ret)
|
||||
return ret;
|
||||
|
||||
machine_at_common_init(model);
|
||||
machine_at_common_init_ex(model, 2);
|
||||
|
||||
pci_init(PCI_CONFIG_TYPE_1);
|
||||
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
|
||||
|
@@ -226,10 +226,10 @@ const machine_t machines[] = {
|
||||
{ "[Socket 7 VX] Jetway J656VXD", "j656vxd", MACHINE_CPUS_PENTIUM_S7, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 128, 8, 127, machine_at_j656vxd_init, NULL },
|
||||
{ "[Socket 7 VX] Shuttle HOT-557", "430vx", MACHINE_CPUS_PENTIUM_S7, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 128, 8, 127, machine_at_i430vx_init, NULL },
|
||||
|
||||
{ "[Socket 7 TX] Acorp 5TX52", "5tx52", MACHINE_CPUS_PENTIUM_S7, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 128, 8, 255, machine_at_5tx52_init, NULL },
|
||||
{ "[Socket 7 TX] ASUS TXP4", "txp4", MACHINE_CPUS_PENTIUM_S7, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 128, 8, 255, machine_at_txp4_init, NULL },
|
||||
{ "[Socket 7 TX] Intel YM430TX", "ym430tx", MACHINE_CPUS_PENTIUM_S7, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 128, 8, 255, machine_at_ym430tx_init, NULL },
|
||||
{ "[Socket 7 TX] San-LI/Superpower SP-586TX","sp586tx", MACHINE_CPUS_PENTIUM_S7, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 128, 8, 255, machine_at_sp586tx_init, NULL },
|
||||
{ "[Socket 7 TX] Acorp 5TX52", "5tx52", MACHINE_CPUS_PENTIUM_S7, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 256, 8, 255, machine_at_5tx52_init, NULL },
|
||||
{ "[Socket 7 TX] ASUS TXP4", "txp4", MACHINE_CPUS_PENTIUM_S7, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 256, 8, 255, machine_at_txp4_init, NULL },
|
||||
{ "[Socket 7 TX] Intel YM430TX", "ym430tx", MACHINE_CPUS_PENTIUM_S7, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 256, 8, 255, machine_at_ym430tx_init, NULL },
|
||||
{ "[Socket 7 TX] San-LI/Superpower SP-586TX","sp586tx", MACHINE_CPUS_PENTIUM_S7, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 256, 8, 255, machine_at_sp586tx_init, NULL },
|
||||
|
||||
{ "[Super Socket 7] FIC VA-503+", "ficva503p", MACHINE_CPUS_PENTIUM_SS7, MACHINE_PCI | MACHINE_ISA | MACHINE_VLB | MACHINE_AT | MACHINE_PS2 | MACHINE_HDC, 8, 512, 8, 255, machine_at_mvp3_init, NULL },
|
||||
|
||||
|
@@ -134,21 +134,11 @@ opl_write(int nr, uint16_t addr, uint8_t val)
|
||||
uint8_t
|
||||
opl_read(int nr, uint16_t addr)
|
||||
{
|
||||
FILE *f;
|
||||
int i;
|
||||
|
||||
if (!(addr & 1))
|
||||
return (opl[nr].status & opl[nr].status_mask) | (opl[nr].is_opl3 ? 0 : 0x06);
|
||||
|
||||
if (opl[nr].is_opl3 && ((addr & 3) == 3)) {
|
||||
f = fopen("c:\\emu_dev\\awe32seg.dmp", "wb");
|
||||
for (i = 0; i < 65536; i++)
|
||||
fputc(readmembl(cs + i), f);
|
||||
fclose(f);
|
||||
|
||||
fatal("[%04X:%08X] (%08X) Read 00 from %04X\n", CS, cpu_state.pc, cs + cpu_state.pc, addr);
|
||||
if (opl[nr].is_opl3 && ((addr & 3) == 3))
|
||||
return 0x00;
|
||||
}
|
||||
|
||||
return opl[nr].is_opl3 ? 0 : 0xff;
|
||||
}
|
||||
|
Reference in New Issue
Block a user