Merge pull request #6709 from MaxwellS04/MS6117

MS-6117 corrections + onboard device overhaul
This commit is contained in:
Miran Grča
2026-01-13 22:44:45 +01:00
committed by GitHub
18 changed files with 81 additions and 80 deletions

View File

@@ -784,7 +784,7 @@ const device_config_t vid_1512_config[] = {
};
const device_t vid_1512_device = {
.name = "Amstrad PC1512 (video)",
.name = "Amstrad PC1512 (Video)",
.internal_name = "vid_1512",
.flags = 0,
.local = 0,
@@ -985,7 +985,7 @@ const device_config_t vid_1640_config[] = {
};
const device_t vid_1640_device = {
.name = "Amstrad PC1640 (video)",
.name = "Amstrad PC1640 (Video)",
.internal_name = "vid_1640",
.flags = 0,
.local = 0,
@@ -1911,7 +1911,7 @@ const device_config_t vid_200_config[] = {
};
const device_t vid_200_device = {
.name = "Amstrad PC200 (video)",
.name = "Amstrad PC200 (Video)",
.internal_name = "vid_200",
.flags = 0,
.local = 0,
@@ -2019,7 +2019,7 @@ const device_config_t vid_ppc512_config[] = {
};
const device_t vid_ppc512_device = {
.name = "Amstrad PPC512 (video)",
.name = "Amstrad PPC512 (Video)",
.internal_name = "vid_ppc512",
.flags = 0,
.local = 0,
@@ -2036,7 +2036,7 @@ const device_config_t vid_pc2086_config[] = {
// clang-format off
{
.name = "language",
.description = "BIOS language",
.description = "BIOS Language",
.type = CONFIG_SELECTION,
.default_string = NULL,
.default_int = 7,
@@ -2054,7 +2054,7 @@ const device_config_t vid_pc2086_config[] = {
};
const device_t vid_pc2086_device = {
.name = "Amstrad PC2086",
.name = "Amstrad PC2086 (Video)",
.internal_name = "vid_pc2086",
.flags = 0,
.local = 0,
@@ -2071,7 +2071,7 @@ const device_config_t vid_pc3086_config[] = {
// clang-format off
{
.name = "language",
.description = "BIOS language",
.description = "BIOS Language",
.type = CONFIG_SELECTION,
.default_string = NULL,
.default_int = 7,
@@ -2089,7 +2089,7 @@ const device_config_t vid_pc3086_config[] = {
};
const device_t vid_pc3086_device = {
.name = "Amstrad PC3086",
.name = "Amstrad PC3086 (Video)",
.internal_name = "vid_pc3086",
.flags = 0,
.local = 0,

View File

@@ -938,7 +938,7 @@ machine_at_pc7286_init(const machine_t *model)
machine_at_common_init_ex(model, 2);
if (gfxcard[0] == VID_INTERNAL)
device_add(&gd5401_onboard_device);
device_add(machine_get_vid_device(machine));
device_add_params(&dw90c50_device, (void *) DW90C50_IDE);
device_add(&vl82c113_device); /* The keyboard controller is part of the VL82c113. */
@@ -1161,7 +1161,7 @@ machine_at_spc4620p_init(const machine_t *model)
return ret;
if (gfxcard[0] == VID_INTERNAL)
device_add(&ati28800k_spc4620p_device);
device_add(machine_get_vid_device(machine));
machine_at_scat_init(model, 1, 1);

View File

@@ -750,7 +750,7 @@ machine_at_wd76c10_init(const machine_t *model)
machine_at_common_init_ex(model, 2);
if (gfxcard[0] == VID_INTERNAL)
device_add(&paradise_wd90c11_megapc_device);
device_add(machine_get_vid_device(machine));
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);

View File

@@ -320,7 +320,7 @@ static const device_config_t ms6117_config[] = {
.selection = { { 0 } },
.bios = {
{
.name = "AMIBIOS 6 (071595) - Revision 2.0 (latest)",
.name = "AMIBIOS 6 (071595) - Revision 2.0",
.internal_name = "ms6117a",
.bios_type = BIOS_NORMAL,
.files_no = 1,
@@ -328,24 +328,6 @@ static const device_config_t ms6117_config[] = {
.size = 131072,
.files = { "roms/machines/ms6117/A617MS20.ROM", "" }
},
{
.name = "AMIBIOS 6 (071595) - Revision 4.10tc (Traditional Chinese)",
.internal_name = "ms6117atc",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/ms6117/A617C410.ROM", "" }
},
{
.name = "AMIBIOS 6 (071595) - Revision 3.11sc (Simplified Chinese)",
.internal_name = "ms6117asc",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/ms6117/A617C311.ROM", "" }
},
{
.name = "AMIBIOS 6 (071595) - Revision 1.10j (Japanese)",
.internal_name = "ms6117aj",
@@ -356,7 +338,25 @@ static const device_config_t ms6117_config[] = {
.files = { "roms/machines/ms6117/A617J110.ROM", "" }
},
{
.name = "Award Modular BIOS v4.51PG - Revision 3.2 (Latest)",
.name = "AMIBIOS 6 (071595) - Revision 3.11sc (Simplified Chinese)",
.internal_name = "ms6117asc",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/ms6117/A617C311.ROM", "" }
},
{
.name = "AMIBIOS 6 (071595) - Revision 4.10tc (Traditional Chinese)",
.internal_name = "ms6117atc",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/ms6117/A617C410.ROM", "" }
},
{
.name = "Award Modular BIOS v4.51PG - Revision 3.2",
.internal_name = "ms6117w",
.bios_type = BIOS_NORMAL,
.files_no = 1,
@@ -373,15 +373,6 @@ static const device_config_t ms6117_config[] = {
.size = 262144,
.files = { "roms/machines/ms6117/611732x_patched.BIN", "" }
},
{
.name = "Award Modular BIOS v4.51PG - Revision 1.5 (Viglen Vig67M)",
.internal_name = "ms6117wvi",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/ms6117/w617v115.BIN", "" }
},
{
.name = "Award Modular BIOS v4.51PG - Revision 1.4 (Fujitsu-Siemens OEM)",
.internal_name = "ms6117wfs",
@@ -400,6 +391,15 @@ static const device_config_t ms6117_config[] = {
.size = 262144,
.files = { "roms/machines/ms6117/BIOS.BIN", "" }
},
{
.name = "Award Modular BIOS v4.51PG - Revision 1.5 (Viglen Vig67M)",
.internal_name = "ms6117wvi",
.bios_type = BIOS_NORMAL,
.files_no = 1,
.local = 0,
.size = 131072,
.files = { "roms/machines/ms6117/w617v115.BIN", "" }
},
{ .files_no = 0 }
}
},
@@ -951,7 +951,7 @@ static const device_config_t ga686_config[] = {
.files = { "roms/machines/686bx/31nologo.bin", "" }
},
{
.name = "Award Modular BIOS v4.51PG - Revision F1 (Latest)",
.name = "Award Modular BIOS v4.51PG - Revision F1",
.internal_name = "686bx_f1",
.bios_type = BIOS_NORMAL,
.files_no = 1,

View File

@@ -92,7 +92,7 @@ machine_at_acera1g_init(const machine_t *model)
device_add(&ali1429g_device);
if (gfxcard[0] == VID_INTERNAL)
device_add(&gd5428_onboard_device);
device_add(machine_get_vid_device(machine));
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
@@ -343,6 +343,7 @@ machine_at_valuepoint433_init(const machine_t *model) // hangs without the PS/2
machine_at_common_ide_init(model);
device_add(&sis_85c461_device);
if (gfxcard[0] == VID_INTERNAL)
device_add(&et4000w32_onboard_device);

View File

@@ -1211,7 +1211,7 @@ machine_at_pb810_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
if (sound_card_current[0] == SOUND_INTERNAL)
device_add(&cs4237b_device);
machine_snd = device_add(machine_get_snd_device(machine));
device_add(&i430vx_device);
device_add(&piix3_device);

View File

@@ -2119,7 +2119,7 @@ const device_config_t m19_vid_config[] = {
};
const device_t m19_vid_device = {
.name = "Olivetti M19 graphics card",
.name = "Olivetti M19 (Video)",
.internal_name = "m19_vid",
.flags = 0,
.local = 0,

View File

@@ -2685,7 +2685,7 @@ const machine_t machines[] = {
.kbd_device = &keyboard_pc_xt_device,
.fdc_device = NULL,
.sio_device = NULL,
.vid_device = NULL,
.vid_device = NULL, /* Discrete onboard video card? */
.snd_device = NULL,
.net_device = NULL
},
@@ -4442,7 +4442,7 @@ const machine_t machines[] = {
.kbd_device = NULL,
.fdc_device = NULL,
.sio_device = NULL,
.vid_device = NULL,
.vid_device = &gd5401_onboard_device,
.snd_device = NULL,
.net_device = NULL
},
@@ -4884,7 +4884,7 @@ const machine_t machines[] = {
.kbd_device = NULL,
.fdc_device = NULL,
.sio_device = NULL,
.vid_device = NULL,
.vid_device = &ati28800k_spc4620p_device,
.snd_device = NULL,
.net_device = NULL
},
@@ -5373,7 +5373,7 @@ const machine_t machines[] = {
.kbd_device = NULL,
.fdc_device = NULL,
.sio_device = NULL,
.vid_device = &tvga8900d_device,
.vid_device = &tvga8900d_device, /* Onboard variant not yet emulated */
.snd_device = NULL,
.net_device = NULL
},
@@ -5684,7 +5684,7 @@ const machine_t machines[] = {
.kbd_device = NULL,
.fdc_device = NULL,
.sio_device = NULL,
.vid_device = NULL,
.vid_device = &if386jega_device,
.snd_device = NULL,
.net_device = NULL
},
@@ -6043,7 +6043,7 @@ const machine_t machines[] = {
.kbd_device = NULL,
.fdc_device = NULL,
.sio_device = NULL,
.vid_device = NULL,
.vid_device = &paradise_wd90c11_megapc_device,
.snd_device = NULL,
.net_device = NULL
},
@@ -8445,7 +8445,7 @@ const machine_t machines[] = {
.kbd_device = NULL,
.fdc_device = NULL,
.sio_device = NULL,
.vid_device = NULL,
.vid_device = &et4000w32_onboard_device,
.snd_device = NULL,
.net_device = NULL
},
@@ -10632,7 +10632,7 @@ const machine_t machines[] = {
.fdc_device = NULL,
.sio_device = NULL,
.vid_device = &gd5430_onboard_pci_device,
.snd_device = &ess_1688_device,
.snd_device = &ess_1688_device, /* Onboard variant not yet emulated */
.net_device = NULL
},
/* This has an AMIKey-2, which is an updated version of type 'H'. */
@@ -12069,7 +12069,7 @@ const machine_t machines[] = {
.kbd_device = NULL,
.fdc_device = NULL,
.sio_device = NULL,
.vid_device = &s3_phoenix_vision864_pci_device,
.vid_device = &s3_phoenix_vision864_pci_device, /* Onboard variant not yet emulated */
.snd_device = NULL,
.net_device = NULL
},
@@ -15721,7 +15721,7 @@ const machine_t machines[] = {
.fdc_device = NULL,
.sio_device = NULL,
.vid_device = NULL,
.snd_device = NULL,
.snd_device = &cs4237b_device,
.net_device = NULL
},
/* This has the AMIKey 'H' firmware, possibly AMIKey-2. Photos show it with a BestKey, so it
@@ -16044,7 +16044,7 @@ const machine_t machines[] = {
.fdc_device = NULL,
.sio_device = NULL,
.vid_device = &s3_trio64v2_dx_onboard_pci_device,
.snd_device = &cs4236b_device,
.snd_device = &cs4236b_onboard_device,
.net_device = &pcnet_am79c973_onboard_device
},
/* This has the Phoenix MultiKey KBC firmware on the NSC Super I/O chip. */
@@ -18233,18 +18233,18 @@ const machine_t machines[] = {
.cpu = {
.package = CPU_PKG_SLOT1,
.block = CPU_BLOCK_NONE,
.min_bus = 60000000,
.max_bus = 83333333,
.min_voltage = 1500,
.min_bus = 66666667,
.max_bus = 75000000,
.min_voltage = 1800,
.max_voltage = 3500,
.min_multi = 2.0,
.max_multi = 5.5
.max_multi = 8.0
},
.bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB,
.flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB,
.ram = {
.min = 8192,
.max = 786432,
.max = 1048576,
.step = 8192
},
.nvrmask = 255,

View File

@@ -3317,7 +3317,7 @@ const device_t pcnet_am79c973_device = {
};
const device_t pcnet_am79c973_onboard_device = {
.name = "AMD PCnet-FAST III",
.name = "AMD PCnet-FAST III (On-Board)",
.internal_name = "pcnetfast_onboard",
.flags = DEVICE_PCI,
.local = DEV_AM79C973 | 0x0100,

View File

@@ -1203,7 +1203,7 @@ const device_t cs4236b_device = {
};
const device_t cs4236b_onboard_device = {
.name = "Crystal CS4236B",
.name = "Crystal CS4236B (On-Board)",
.internal_name = "cs4236b",
.flags = DEVICE_ISA16,
.local = CRYSTAL_CS4236B | CRYSTAL_NOEEPROM,

View File

@@ -838,7 +838,7 @@ const device_t ati28800k_device = {
};
const device_t ati28800k_spc4620p_device = {
.name = "ATI Korean VGA On-Board SPC-4620P",
.name = "ATI Korean VGA On-Board (Samsung SPC-4620P)",
.internal_name = "ati28800k_spc4620p",
.flags = DEVICE_ISA,
.local = 1,
@@ -852,7 +852,7 @@ const device_t ati28800k_spc4620p_device = {
};
const device_t ati28800k_spc6033p_device = {
.name = "ATI Korean VGA On-Board SPC-6033P",
.name = "ATI Korean VGA On-Board (Samsung SPC-6033P)",
.internal_name = "ati28800k_spc6033p",
.flags = DEVICE_ISA,
.local = 2,

View File

@@ -5809,7 +5809,7 @@ const device_t mach64vt2_device = {
};
const device_t mach64vt3_onboard_device = {
.name = "ATI Mach64VT3 (Onboard)",
.name = "ATI Mach64VT3 (On-Board)",
.internal_name = "mach64vt3_onboard",
.flags = DEVICE_PCI,
.local = MACH64_VT3 | (1 << 19),

View File

@@ -664,7 +664,7 @@ const device_config_t ogc_m24_config[] = {
};
const device_t ogc_m24_device = {
.name = "Olivetti M21/M24/M28 (GO317/318/380/709) video card",
.name = "Olivetti M21/M24/M28 (GO317/318/380/709)",
.internal_name = "ogc_m24",
.flags = DEVICE_ISA,
.local = 0,

View File

@@ -1917,7 +1917,7 @@ const device_t v7_vga_1024i_device = {
};
const device_t ht216_32_pb410a_device = {
.name = "Headland HT216-32 (Packard Bell PB410A)",
.name = "Headland HT216-32 On-Board (Packard Bell PB410A)",
.internal_name = "ht216_32_pb410a",
.flags = DEVICE_VLB,
.local = 0x7861, /*HT216-32*/

View File

@@ -1042,7 +1042,7 @@ if386jega_available(void)
}
const device_t if386jega_device = {
.name = "JEGA (if386AX)",
.name = "JEGA On-Board (OKI if386AX30L)",
.internal_name = "if386jega",
.flags = DEVICE_ISA,
.local = 0,

View File

@@ -702,7 +702,7 @@ const device_t oti037c_device = {
};
const device_t oti037_pbl300sx_device = {
.name = "Oak OTI-037 (Packard Bell Legend 300SX)",
.name = "Oak OTI-037 On-Board (Packard Bell PB300/PB320)",
.internal_name = "oti037_pbl300sx",
.flags = DEVICE_ISA,
.local = 1,
@@ -730,7 +730,7 @@ const device_t oti067_device = {
};
const device_t oti067_ama932j_device = {
.name = "Oak OTI-067 (AMA-932J)",
.name = "Oak OTI-067 On-Board (Arche AMA-932J)",
.internal_name = "oti067_ama932j",
.flags = DEVICE_ISA,
.local = 3,
@@ -744,7 +744,7 @@ const device_t oti067_ama932j_device = {
};
const device_t oti067_m300_device = {
.name = "Oak OTI-067 (Olivetti M300-08/15)",
.name = "Oak OTI-067 On-Board (Olivetti M300-08/15)",
.internal_name = "oti067_m300",
.flags = DEVICE_ISA,
.local = 4,
@@ -772,7 +772,7 @@ const device_t oti077_device = {
};
const device_t oti077_acer100t_device = {
.name = "Oak OTI-077 (Acer 100T)",
.name = "Oak OTI-077 On-Board (Acer 100T)",
.internal_name = "oti077_acer100t",
.flags = DEVICE_ISA,
.local = 6,
@@ -785,7 +785,7 @@ const device_t oti077_acer100t_device = {
.config = oti077_acer100t_config
};
const device_t oti077_pcs44c_device = {
.name = "Oak OTI-077 (Olivetti PCS 44/C)",
.name = "Oak OTI-077 On-Board (Olivetti PCS 44/C)",
.internal_name = "oti077_pcs44c",
.flags = DEVICE_ISA,
.local = 7,

View File

@@ -964,7 +964,7 @@ paradise_force_redraw(void *priv)
}
const device_t paradise_pvga1a_pc2086_device = {
.name = "Paradise PVGA1A (Amstrad PC2086)",
.name = "Paradise PVGA1A On-Board (Amstrad PC2086)",
.internal_name = "pvga1a_pc2086",
.flags = 0,
.local = PVGA1A,
@@ -978,7 +978,7 @@ const device_t paradise_pvga1a_pc2086_device = {
};
const device_t paradise_pvga1a_pc3086_device = {
.name = "Paradise PVGA1A (Amstrad PC3086)",
.name = "Paradise PVGA1A On-Board (Amstrad PC3086)",
.internal_name = "pvga1a_pc3086",
.flags = 0,
.local = PVGA1A,
@@ -1013,7 +1013,7 @@ static const device_config_t paradise_pvga1a_config[] = {
};
const device_t paradise_pvga1a_ncr3302_device = {
.name = "Paradise PVGA1A (NCR 3302)",
.name = "Paradise PVGA1A On-Board (NCR 3302)",
.internal_name = "pvga1a_ncr3302",
.flags = 0,
.local = PVGA1A,
@@ -1041,7 +1041,7 @@ const device_t paradise_pvga1a_device = {
};
const device_t paradise_wd90c11_megapc_device = {
.name = "Paradise WD90C11 (Amstrad MegaPC)",
.name = "Paradise WD90C11 On-Board (Amstrad MegaPC)",
.internal_name = "wd90c11_megapc",
.flags = 0,
.local = WD90C11,

View File

@@ -1029,7 +1029,7 @@ const device_config_t sl_vid_config[] = {
};
const device_t tandy_1000_video_device = {
.name = "Tandy 1000",
.name = "Tandy 1000 SX (Video)",
.internal_name = "tandy1000_video",
.flags = 0,
.local = 0,
@@ -1043,7 +1043,7 @@ const device_t tandy_1000_video_device = {
};
const device_t tandy_1000hx_video_device = {
.name = "Tandy 1000 HX",
.name = "Tandy 1000 HX (Video)",
.internal_name = "tandy1000_hx_video",
.flags = 0,
.local = 0,
@@ -1057,7 +1057,7 @@ const device_t tandy_1000hx_video_device = {
};
const device_t tandy_1000sl_video_device = {
.name = "Tandy 1000SL2",
.name = "Tandy 1000SL2 (Video)",
.internal_name = "tandy1000_sl_video",
.flags = 0,
.local = 1,