diff --git a/src/device.c b/src/device.c
index c258369b4..0e057cd53 100644
--- a/src/device.c
+++ b/src/device.c
@@ -9,7 +9,7 @@
* Implementation of the generic device interface to handle
* all devices attached to the emulator.
*
- * Version: @(#)device.c 1.0.8 2018/02/18
+ * Version: @(#)device.c 1.0.9 2018/03/02
*
* Authors: Sarah Walker,
* Miran Grca,
@@ -64,8 +64,12 @@ device_add(device_t *d)
if (d->init != NULL) {
priv = d->init(d);
- if (priv == NULL)
- fatal("device_add: device init failed\n");
+ if (priv == NULL) {
+ if (d->name)
+ fatal("device_add: device init failed (%s)\n", d->name);
+ else
+ fatal("device_add: device init failed\n");
+ }
}
devices[c] = d;
diff --git a/src/machine/m_xt_xi8088.c b/src/machine/m_xt_xi8088.c
index 966d4fdd5..bf06bb572 100644
--- a/src/machine/m_xt_xi8088.c
+++ b/src/machine/m_xt_xi8088.c
@@ -131,5 +131,6 @@ void machine_xt_xi8088_init(machine_t *model)
nmi_init();
nvr_at_init(8);
pic2_init();
- device_add(&gameport_device);
+ if (joystick_type != 7)
+ device_add(&gameport_device);
}
diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c
index bdf5f38b2..2248db772 100644
--- a/src/machine/machine_table.c
+++ b/src/machine/machine_table.c
@@ -51,7 +51,7 @@ machine_t machines[] = {
#if defined(DEV_BRANCH) && defined(USE_LASERXT)
{ "[8088] VTech Laser Turbo XT", ROM_LTXT, "ltxt", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA, 512, 512, 256, 0, machine_xt_laserxt_init, NULL, NULL },
#endif
- { "[8088] Xi8088", ROM_XI8088, "xi8088", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 1, MACHINE_ISA | MACHINE_PS2, 64, 1024, 128, 127, machine_xt_xi8088_init, xi8088_get_device, nvr_at_close },
+ { "[8088] Xi8088", ROM_XI8088, "xi8088", {{"", cpus_8088}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA | MACHINE_PS2, 64, 1024, 128, 127, machine_xt_xi8088_init, xi8088_get_device, nvr_at_close },
{ "[8086] Amstrad PC1512", ROM_PC1512, "pc1512", {{"", cpus_pc1512}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA | MACHINE_VIDEO | MACHINE_MOUSE, 512, 640, 128, 63, machine_amstrad_init, NULL, nvr_at_close },
{ "[8086] Amstrad PC1640", ROM_PC1640, "pc1640", {{"", cpus_8086}, {"", NULL}, {"", NULL}, {"", NULL}, {"", NULL}}, 0, MACHINE_ISA | MACHINE_VIDEO | MACHINE_MOUSE, 640, 640, 0, 63, machine_amstrad_init, NULL, nvr_at_close },
diff --git a/src/rom.c b/src/rom.c
index 363bfbc37..3deb35c6a 100644
--- a/src/rom.c
+++ b/src/rom.c
@@ -13,7 +13,7 @@
* - c386sx16 BIOS fails checksum
* - the loadfont() calls should be done elsewhere
*
- * Version: @(#)rom.c 1.0.33 2018/03/02
+ * Version: @(#)rom.c 1.0.34 2018/03/02
*
* Authors: Sarah Walker,
* Miran Grca,
@@ -354,14 +354,14 @@ rom_load_bios(int rom_id)
case ROM_XI8088:
if (rom_load_linear_inverted(
L"roms/machines/xi8088/bios-xi8088.bin",
- 0x000000, 131072, 128, rom)) {
+ 0x000000, 131072, 0, rom)) {
biosmask = 0x1ffff;
xi8088_bios_128kb_set(1);
return(1);
} else {
if (rom_load_linear(
L"roms/machines/xi8088/bios-xi8088.bin",
- 0x000000, 65536, 128, rom)) {
+ 0x000000, 65536, 0, rom)) {
xi8088_bios_128kb_set(0);
return(1);
}
@@ -904,19 +904,21 @@ rom_load_bios(int rom_id)
case ROM_T1000:
loadfont(L"roms/machines/t1000/t1000font.bin", 2);
- if (rom_load_linear(
+ if (!rom_load_linear(
L"roms/machines/t1000/t1000.rom",
- 0x000000, 32768, 0, rom)) return(1);
+ 0x000000, 32768, 0, rom)) break;
memcpy(rom + 0x8000, rom, 0x8000);
- break;
+ biosmask = 0x7fff;
+ return(1);
case ROM_T1200:
loadfont(L"roms/machines/t1200/t1000font.bin", 2);
- if (rom_load_linear(
+ if (!rom_load_linear(
L"roms/machines/t1200/t1200_019e.ic15.bin",
- 0x000000, 32768, 0, rom)) return(1);
+ 0x000000, 32768, 0, rom)) break;
memcpy(rom + 0x8000, rom, 0x8000);
- break;
+ biosmask = 0x7fff;
+ return(1);
case ROM_T3100E:
loadfont(L"roms/machines/t3100e/t3100e_font.bin", 5);
diff --git a/src/video/vid_ati_mach64.c b/src/video/vid_ati_mach64.c
index 2a01b8016..9c431a7fd 100644
--- a/src/video/vid_ati_mach64.c
+++ b/src/video/vid_ati_mach64.c
@@ -8,7 +8,7 @@
*
* ATi Mach64 graphics card emulation.
*
- * Version: @(#)vid_ati_mach64.c 1.0.12 2018/01/31
+ * Version: @(#)vid_ati_mach64.c 1.0.13 2018/03/02
*
* Authors: Sarah Walker,
* Miran Grca,
@@ -3600,7 +3600,7 @@ static device_config_t mach64vt2_config[] =
device_t mach64gx_isa_device =
{
"ATI Mach64GX ISA",
- DEVICE_ISA,
+ DEVICE_AT | DEVICE_ISA,
0,
mach64gx_init, mach64_close, NULL,
mach64gx_isa_available,
diff --git a/src/video/vid_cl54xx.c b/src/video/vid_cl54xx.c
index 5d8694ba2..ca48ed4ef 100644
--- a/src/video/vid_cl54xx.c
+++ b/src/video/vid_cl54xx.c
@@ -9,7 +9,7 @@
* Emulation of select Cirrus Logic cards (CL-GD 5428,
* CL-GD 5429, 5430, 5434 and 5436 are supported).
*
- * Version: @(#)vid_cl_54xx.c 1.0.8 2018/03/01
+ * Version: @(#)vid_cl_54xx.c 1.0.9 2018/03/02
*
* Authors: Sarah Walker,
* Barry Rodewald,
@@ -2488,7 +2488,7 @@ static device_config_t gd5434_config[] =
device_t gd5428_isa_device =
{
"Cirrus Logic CL-GD 5428 (ISA)",
- DEVICE_AT | DEVICE_ISA,
+ DEVICE_ISA,
CIRRUS_ID_CLGD5428,
gd54xx_init,
gd54xx_close,
@@ -2518,7 +2518,7 @@ device_t gd5428_vlb_device =
device_t gd5429_isa_device =
{
"Cirrus Logic CL-GD 5429 (ISA)",
- DEVICE_AT | DEVICE_ISA,
+ DEVICE_ISA,
CIRRUS_ID_CLGD5429,
gd54xx_init,
gd54xx_close,
diff --git a/src/video/vid_oak_oti.c b/src/video/vid_oak_oti.c
index b7c7425a2..027e93b95 100644
--- a/src/video/vid_oak_oti.c
+++ b/src/video/vid_oak_oti.c
@@ -8,7 +8,7 @@
*
* Oak OTI037C/67/077 emulation.
*
- * Version: @(#)vid_oak_oti.c 1.0.7 2018/03/02
+ * Version: @(#)vid_oak_oti.c 1.0.8 2018/03/02
*
* Authors: Sarah Walker,
* Miran Grca,
@@ -30,7 +30,7 @@
#include "vid_oak_oti.h"
#include "vid_svga.h"
-#define BIOS_37C_PATH L"roms/video/oti/oti037c/bios.bin"
+#define BIOS_37C_PATH L"roms/video/oti/bios.bin"
#define BIOS_77_PATH L"roms/video/oti/oti077.vbi"