summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/mess/drivers/msx.c1096
-rw-r--r--src/mess/includes/msx.h7
-rw-r--r--src/mess/includes/msx_slot.h15
-rw-r--r--src/mess/machine/msx.c21
4 files changed, 785 insertions, 354 deletions
diff --git a/src/mess/drivers/msx.c b/src/mess/drivers/msx.c
index 1c8aa6d1266..cba950ede8b 100644
--- a/src/mess/drivers/msx.c
+++ b/src/mess/drivers/msx.c
@@ -1336,6 +1336,10 @@ MSX_LAYOUT_INIT (msx)
MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( msx_gen, msx_pal )
+ MCFG_MSX_LAYOUT(msx)
+MACHINE_CONFIG_END
+
/* MSX - Al Alamiah AX-170 */
ROM_START (ax170)
@@ -1352,6 +1356,10 @@ MSX_LAYOUT_INIT (ax170)
MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( ax170, msx_pal )
+ MCFG_MSX_LAYOUT(ax170)
+MACHINE_CONFIG_END
+
/* MSX - Canon V-10 */
ROM_START (canonv10)
@@ -1366,6 +1374,10 @@ MSX_LAYOUT_INIT (canonv10)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( canonv10, msx_pal )
+ MCFG_MSX_LAYOUT(canonv10)
+MACHINE_CONFIG_END
+
/* MSX - Canon V-20 */
ROM_START (canonv20)
ROM_REGION (0x8000, "maincpu", 0)
@@ -1379,6 +1391,10 @@ MSX_LAYOUT_INIT (canonv20)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( canonv20, msx_pal )
+ MCFG_MSX_LAYOUT(canonv20)
+MACHINE_CONFIG_END
+
/* MSX - Casio PV-16 */
ROM_START (pv16)
@@ -1394,6 +1410,10 @@ MSX_LAYOUT_INIT(pv16)
MSX_LAYOUT_SLOT(2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( pv16, msx_ntsc )
+ MCFG_MSX_LAYOUT(pv16)
+MACHINE_CONFIG_END
+
/* MSX - Daewoo DPC-100 */
ROM_START (dpc100)
@@ -1410,6 +1430,10 @@ MSX_LAYOUT_INIT (dpc100)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( dpc100, msx_ntsc )
+ MCFG_MSX_LAYOUT(dpc100)
+MACHINE_CONFIG_END
+
/* MSX - Daewoo DPC-180 */
ROM_START (dpc180)
@@ -1426,6 +1450,10 @@ MSX_LAYOUT_INIT (dpc180)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( dpc180, msx_ntsc )
+ MCFG_MSX_LAYOUT(dpc180)
+MACHINE_CONFIG_END
+
/* MSX - Daewoo DPC-200 */
ROM_START (dpc200)
@@ -1442,6 +1470,10 @@ MSX_LAYOUT_INIT (dpc200)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( dpc200, msx_ntsc )
+ MCFG_MSX_LAYOUT(dpc200)
+MACHINE_CONFIG_END
+
/* MSX - Goldstar FC-200 */
ROM_START (gsfc200)
@@ -1457,6 +1489,10 @@ MSX_LAYOUT_INIT (gsfc200)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( gsfc200, msx_pal )
+ MCFG_MSX_LAYOUT(gsfc200)
+MACHINE_CONFIG_END
+
/* MSX - Gradiente Expert 1.0 */
ROM_START (expert10)
@@ -1471,6 +1507,10 @@ MSX_LAYOUT_INIT (expert10)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( expert10, msx_ntsc )
+ MCFG_MSX_LAYOUT(expert10)
+MACHINE_CONFIG_END
+
/* MSX - Gradiente Expert 1.1 */
ROM_START (expert11)
ROM_REGION (0xc000, "maincpu",0)
@@ -1484,6 +1524,10 @@ MSX_LAYOUT_INIT (expert11)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( expert11, msx_ntsc )
+ MCFG_MSX_LAYOUT(expert11)
+MACHINE_CONFIG_END
+
/* MSX - Gradiente Expert 1.3 */
ROM_START (expert13)
ROM_REGION (0x8000, "maincpu",0)
@@ -1497,6 +1541,10 @@ MSX_LAYOUT_INIT (expert13)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( expert13, msx_ntsc )
+ MCFG_MSX_LAYOUT(expert13)
+MACHINE_CONFIG_END
+
/* MSX - Gradiente Expert DDPlus */
ROM_START (expertdp)
ROM_REGION (0xc000, "maincpu",0)
@@ -1512,6 +1560,10 @@ MSX_LAYOUT_INIT (expertdp)
MSX_LAYOUT_SLOT (3, 3, 1, 1, DISK_ROM2, 0x4000, 0x8000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( expertdp, msx_ntsc )
+ MCFG_MSX_LAYOUT(expertdp)
+MACHINE_CONFIG_END
+
/* MSX - Gradiente Expert Plus */
ROM_START (expertpl)
@@ -1528,6 +1580,10 @@ MSX_LAYOUT_INIT (expertpl)
MSX_LAYOUT_SLOT (3, 3, 2, 1, ROM, 0x4000, 0x8000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( expertpl, msx_ntsc )
+ MCFG_MSX_LAYOUT(expertpl)
+MACHINE_CONFIG_END
+
/* MSX - JVC HC-7GB */
ROM_START (jvchc7gb)
@@ -1542,6 +1598,10 @@ MSX_LAYOUT_INIT (jvchc7gb)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( jvchc7gb, msx_pal )
+ MCFG_MSX_LAYOUT(jvchc7gb)
+MACHINE_CONFIG_END
+
/* MSX - Mitsubishi ML-F80 */
ROM_START (mlf80)
@@ -1556,6 +1616,10 @@ MSX_LAYOUT_INIT (mlf80)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( mlf80, msx_pal )
+ MCFG_MSX_LAYOUT(mlf80)
+MACHINE_CONFIG_END
+
/* MSX - Mitsubishi ML-FX1 */
ROM_START (mlfx1)
@@ -1570,6 +1634,10 @@ MSX_LAYOUT_INIT (mlfx1)
MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( mlfx1, msx_pal )
+ MCFG_MSX_LAYOUT(mlfx1)
+MACHINE_CONFIG_END
+
/* MSX - National CF-1200 */
ROM_START (cf1200)
@@ -1584,6 +1652,10 @@ MSX_LAYOUT_INIT (cf1200)
MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( cf1200, msx_ntsc )
+ MCFG_MSX_LAYOUT(cf1200)
+MACHINE_CONFIG_END
+
/* MSX - National CF-2000 */
ROM_START (cf2000)
@@ -1598,6 +1670,10 @@ MSX_LAYOUT_INIT (cf2000)
MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( cf2000, msx_ntsc )
+ MCFG_MSX_LAYOUT(cf2000)
+MACHINE_CONFIG_END
+
/* MSX - National CF-2700 */
ROM_START (cf2700)
ROM_REGION (0x8000, "maincpu", 0)
@@ -1611,6 +1687,10 @@ MSX_LAYOUT_INIT (cf2700)
MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( cf2700, msx_ntsc )
+ MCFG_MSX_LAYOUT(cf2700)
+MACHINE_CONFIG_END
+
/* MSX - National CF-3000 */
ROM_START (cf3000)
@@ -1625,6 +1705,10 @@ MSX_LAYOUT_INIT (cf3000)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( cf3000, msx_ntsc )
+ MCFG_MSX_LAYOUT(cf3000)
+MACHINE_CONFIG_END
+
/* MSX - National CF-3300 */
ROM_START (cf3300)
ROM_REGION (0xc000, "maincpu", 0)
@@ -1640,6 +1724,10 @@ MSX_LAYOUT_INIT (cf3300)
MSX_LAYOUT_SLOT (3, 1, 1, 1, DISK_ROM2, 0x4000, 0x8000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( cf3300, msx_ntsc )
+ MCFG_MSX_LAYOUT(cf3300)
+MACHINE_CONFIG_END
+
/* MSX - National FS-1300 */
ROM_START (fs1300)
@@ -1654,6 +1742,10 @@ MSX_LAYOUT_INIT (fs1300)
MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( fs1300, msx_ntsc )
+ MCFG_MSX_LAYOUT(fs1300)
+MACHINE_CONFIG_END
+
/* MSX - National FS-4000 */
ROM_START (fs4000)
ROM_REGION (0x38000 ,"maincpu", 0)
@@ -1673,6 +1765,10 @@ MSX_LAYOUT_INIT (fs4000)
MSX_LAYOUT_KANJI (0x18000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( fs4000, msx_ntsc )
+ MCFG_MSX_LAYOUT(fs4000)
+MACHINE_CONFIG_END
+
/*MSX - Olympia PHC-2*/
ROM_START (phc2)
@@ -1687,6 +1783,10 @@ MSX_LAYOUT_INIT (phc2)
MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( phc2, msx_pal )
+ MCFG_MSX_LAYOUT(phc2)
+MACHINE_CONFIG_END
+
/* MSX - Olympia PHC-28 */
ROM_START (phc28)
@@ -1701,6 +1801,10 @@ MSX_LAYOUT_INIT (phc28)
MSX_LAYOUT_SLOT (3, 0, 2, 2, RAM, 0x8000, 0x0000) /* 32KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( phc28, msx_pal )
+ MCFG_MSX_LAYOUT(phc28)
+MACHINE_CONFIG_END
+
/* MSX - Panasonic CF-2700G */
ROM_START (cf2700g)
@@ -1715,6 +1819,10 @@ MSX_LAYOUT_INIT (cf2700g)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( cf2700g, msx_pal )
+ MCFG_MSX_LAYOUT(cf2700g)
+MACHINE_CONFIG_END
+
/* MSX - Philips NMS-801 */
ROM_START (nms801)
@@ -1729,6 +1837,10 @@ MSX_LAYOUT_INIT (nms801)
MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( nms801, msx_pal )
+ MCFG_MSX_LAYOUT(nms801)
+MACHINE_CONFIG_END
+
/* MSX - Philips VG-8000 */
ROM_START (vg8000)
@@ -1743,6 +1855,9 @@ MSX_LAYOUT_INIT (vg8000)
MSX_LAYOUT_SLOT (3, 0, 3, 1, RAM, 0x4000, 0x0000) /* 16KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( vg8000, msx_pal )
+ MCFG_MSX_LAYOUT(vg8000)
+MACHINE_CONFIG_END
/* MSX - Philips VG-8010 */
@@ -1758,6 +1873,10 @@ MSX_LAYOUT_INIT (vg8010)
MSX_LAYOUT_SLOT (3, 0, 2, 2, RAM, 0x8000, 0x0000) /* 32KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( vg8010, msx_pal )
+ MCFG_MSX_LAYOUT(vg8010)
+MACHINE_CONFIG_END
+
/* MSX - Philips VG-8010F */
ROM_START (vg8010f)
@@ -1772,6 +1891,10 @@ MSX_LAYOUT_INIT (vg8010f)
MSX_LAYOUT_SLOT (3, 0, 2, 2, RAM, 0x8000, 0x0000) /* 32KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( vg8010f, msx_pal )
+ MCFG_MSX_LAYOUT(vg8010f)
+MACHINE_CONFIG_END
+
/* MSX - Philips VG-8020-00 */
ROM_START (vg802000)
@@ -1786,6 +1909,10 @@ MSX_LAYOUT_INIT (vg802000)
MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( vg802000, msx_pal )
+ MCFG_MSX_LAYOUT(vg802000)
+MACHINE_CONFIG_END
+
/* MSX - Philips VG-8020-20 */
ROM_START (vg802020)
@@ -1800,6 +1927,10 @@ MSX_LAYOUT_INIT (vg802020)
MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( vg802020, msx_pal )
+ MCFG_MSX_LAYOUT(vg802020)
+MACHINE_CONFIG_END
+
/* MSX - Philips VG-8020F */
ROM_START (vg8020f)
@@ -1814,6 +1945,10 @@ MSX_LAYOUT_INIT (vg8020f)
MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM, 0x10000, 0x0000) /* 64KB?? RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( vg8020f, msx_pal )
+ MCFG_MSX_LAYOUT(vg8020f)
+MACHINE_CONFIG_END
+
/* MSX - Pioneer PX-7 */
ROM_START (piopx7)
@@ -1831,6 +1966,10 @@ MSX_LAYOUT_INIT (piopx7)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( piopx7, msx_pal )
+ MCFG_MSX_LAYOUT(piopx7)
+MACHINE_CONFIG_END
+
/* MSX - Samsung SPC-800 */
ROM_START (spc800)
@@ -1847,6 +1986,10 @@ MSX_LAYOUT_INIT (spc800)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( spc800, msx_ntsc )
+ MCFG_MSX_LAYOUT(spc800)
+MACHINE_CONFIG_END
+
/* MSX - Sanyo MPC-64 */
ROM_START (mpc64)
@@ -1861,6 +2004,10 @@ MSX_LAYOUT_INIT (mpc64)
MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( mpc64, msx_ntsc )
+ MCFG_MSX_LAYOUT(mpc64)
+MACHINE_CONFIG_END
+
/* MSX - Sanyo MPC-100 */
ROM_START (mpc100)
@@ -1875,6 +2022,10 @@ MSX_LAYOUT_INIT (mpc100)
MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( mpc100, msx_pal )
+ MCFG_MSX_LAYOUT(mpc100)
+MACHINE_CONFIG_END
+
/* MSX - Sanyo PHC-28L */
ROM_START (phc28l)
@@ -1889,6 +2040,10 @@ MSX_LAYOUT_INIT (phc28l)
MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( phc28l, msx_pal )
+ MCFG_MSX_LAYOUT(phc28l)
+MACHINE_CONFIG_END
+
/* MSX - Sanyo PHC-28S */
ROM_START (phc28s)
@@ -1903,6 +2058,10 @@ MSX_LAYOUT_INIT (phc28s)
MSX_LAYOUT_SLOT (3, 0, 2, 2, RAM, 0x8000, 0x0000) /* 32KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( phc28s, msx_pal )
+ MCFG_MSX_LAYOUT(phc28s)
+MACHINE_CONFIG_END
+
/* MSX - Sanyo Wavy MPC-10 */
ROM_START (mpc10)
@@ -1917,6 +2076,10 @@ MSX_LAYOUT_INIT (mpc10)
MSX_LAYOUT_SLOT (3, 0, 2, 2, RAM, 0x8000, 0x0000) /* 32KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( mpc10, msx_pal )
+ MCFG_MSX_LAYOUT(mpc10)
+MACHINE_CONFIG_END
+
/* MSX - Sharp Epcom HotBit 1.1 */
ROM_START (hotbit11)
@@ -1931,6 +2094,10 @@ MSX_LAYOUT_INIT (hotbit11)
MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hotbit11, msx_ntsc )
+ MCFG_MSX_LAYOUT(hotbit11)
+MACHINE_CONFIG_END
+
/* MSX - Sharp Epcom HotBit 1.2 */
ROM_START (hotbit12)
@@ -1945,6 +2112,10 @@ MSX_LAYOUT_INIT (hotbit12)
MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hotbit12, msx_ntsc )
+ MCFG_MSX_LAYOUT(hotbit12)
+MACHINE_CONFIG_END
+
/* MSX - Sharp Epcom HotBit 1.3b */
ROM_START (hotbi13b)
@@ -1959,6 +2130,10 @@ MSX_LAYOUT_INIT (hotbi13b)
MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hotbi13b, msx_ntsc )
+ MCFG_MSX_LAYOUT(hotbi13b)
+MACHINE_CONFIG_END
+
/* MSX - Sharp Epcom HotBit 1.3p */
ROM_START (hotbi13p)
@@ -1973,6 +2148,10 @@ MSX_LAYOUT_INIT (hotbi13p)
MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hotbi13p, msx_ntsc )
+ MCFG_MSX_LAYOUT(hotbi13p)
+MACHINE_CONFIG_END
+
/* MSX - Sony HB-10P */
ROM_START (hb10p)
@@ -1987,6 +2166,10 @@ MSX_LAYOUT_INIT (hb10p)
MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hb10p, msx_pal )
+ MCFG_MSX_LAYOUT(hb10p)
+MACHINE_CONFIG_END
+
/* MSX - Sony HB-20P */
ROM_START (hb20p)
@@ -2001,6 +2184,10 @@ MSX_LAYOUT_INIT (hb20p)
MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hb20p, msx_pal )
+ MCFG_MSX_LAYOUT(hb20p)
+MACHINE_CONFIG_END
+
/* MSX - Sony HB-201 */
ROM_START (hb201)
@@ -2018,6 +2205,10 @@ MSX_LAYOUT_INIT (hb201)
MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hb201, msx_ntsc )
+ MCFG_MSX_LAYOUT(hb201)
+MACHINE_CONFIG_END
+
/* MSX - Sony HB-201P */
ROM_START (hb201p)
@@ -2034,6 +2225,10 @@ MSX_LAYOUT_INIT (hb201p)
MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hb201p, msx_pal )
+ MCFG_MSX_LAYOUT(hb201p)
+MACHINE_CONFIG_END
+
/* MSX - Sony HB-501P */
ROM_START (hb501p)
@@ -2048,6 +2243,10 @@ MSX_LAYOUT_INIT (hb501p)
MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hb501p, msx_pal )
+ MCFG_MSX_LAYOUT(hb501p)
+MACHINE_CONFIG_END
+
/* MSX - Sony HB-55D */
ROM_START (hb55d)
@@ -2064,6 +2263,10 @@ MSX_LAYOUT_INIT (hb55d)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hb55d, msx_pal )
+ MCFG_MSX_LAYOUT(hb55d)
+MACHINE_CONFIG_END
+
/* MSX - Sony HB-55P */
ROM_START (hb55p)
@@ -2081,6 +2284,10 @@ MSX_LAYOUT_INIT (hb55p)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hb55p, msx_pal )
+ MCFG_MSX_LAYOUT(hb55p)
+MACHINE_CONFIG_END
+
/* MSX - Sony HB-75D */
ROM_START (hb75d)
@@ -2097,6 +2304,10 @@ MSX_LAYOUT_INIT (hb75d)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hb75d, msx_pal )
+ MCFG_MSX_LAYOUT(hb75d)
+MACHINE_CONFIG_END
+
/* MSX - Sony HB-75P */
ROM_START (hb75p)
@@ -2114,6 +2325,10 @@ MSX_LAYOUT_INIT (hb75p)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hb75p, msx_pal )
+ MCFG_MSX_LAYOUT(hb75p)
+MACHINE_CONFIG_END
+
/* MSX - Spectravideo SVI-728 */
ROM_START (svi728)
@@ -2130,6 +2345,10 @@ MSX_LAYOUT_INIT (svi728)
MSX_LAYOUT_SLOT (3, 1, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( svi728, msx_pal )
+ MCFG_MSX_LAYOUT(svi728)
+MACHINE_CONFIG_END
+
/* MSX - Spectravideo SVI-738 */
ROM_START (svi738)
@@ -2149,6 +2368,10 @@ MSX_LAYOUT_INIT (svi738)
MSX_LAYOUT_SLOT (3, 2, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( svi738, msx_pal )
+ MCFG_MSX_LAYOUT(svi738)
+MACHINE_CONFIG_END
+
/* MSX - Spectravideo SVI-738 Swedish */
ROM_START (svi738sw)
@@ -2168,6 +2391,10 @@ MSX_LAYOUT_INIT (svi738sw)
MSX_LAYOUT_SLOT (3, 2, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( svi738sw, msx_pal )
+ MCFG_MSX_LAYOUT(svi738sw)
+MACHINE_CONFIG_END
+
/* MSX - Spectravideo SVI-738 Poland*/
ROM_START (svi738pl)
@@ -2187,6 +2414,10 @@ MSX_LAYOUT_INIT (svi738pl)
MSX_LAYOUT_SLOT (3, 2, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( svi738pl, msx_pal )
+ MCFG_MSX_LAYOUT(svi738pl)
+MACHINE_CONFIG_END
+
/* MSX - Talent DPC-200 / Daewoo DPC-200E */
ROM_START (tadpc200)
@@ -2201,6 +2432,9 @@ MSX_LAYOUT_INIT (tadpc200)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( tadpc200, msx_pal )
+ MCFG_MSX_LAYOUT(tadpc200)
+MACHINE_CONFIG_END
/* MSX - Talent DPC-200A */
@@ -2216,6 +2450,10 @@ MSX_LAYOUT_INIT (tadpc20a)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( tadpc20a, msx_pal )
+ MCFG_MSX_LAYOUT(tadpc20a)
+MACHINE_CONFIG_END
+
/* MSX - Toshiba HX-10 */
/* The BIOS on the Toshiba HX-10 is inside a big 64pin Toshiba chip label TCX-1007 */
@@ -2231,6 +2469,10 @@ MSX_LAYOUT_INIT (hx10)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hx10, msx_pal )
+ MCFG_MSX_LAYOUT(hx10)
+MACHINE_CONFIG_END
+
/* MSX - Toshiba HX-10S */
ROM_START (hx10s)
@@ -2245,6 +2487,10 @@ MSX_LAYOUT_INIT (hx10s)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hx10s, msx_pal )
+ MCFG_MSX_LAYOUT(hx10s)
+MACHINE_CONFIG_END
+
/* MSX - Toshiba HX-20 */
ROM_START (hx20)
@@ -2262,6 +2508,10 @@ MSX_LAYOUT_INIT (hx20)
MSX_LAYOUT_SLOT (3, 3, 1, 2, ROM, 0x8000, 0x8000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hx20, msx_pal )
+ MCFG_MSX_LAYOUT(hx20)
+MACHINE_CONFIG_END
+
/* MSX - Yamaha CX5M / Yamaha CX5M-2 */
ROM_START (cx5m)
@@ -2278,6 +2528,10 @@ MSX_LAYOUT_INIT (cx5m)
MSX_LAYOUT_SLOT (3, 0, 2, 2, RAM, 0x8000, 0x0000) /* 32KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( cx5m, msx_pal )
+ MCFG_MSX_LAYOUT(cx5m)
+MACHINE_CONFIG_END
+
/* MSX - Yamaha CX5M-128 */
ROM_START (cx5m128)
@@ -2298,6 +2552,10 @@ MSX_LAYOUT_INIT (cx5m128)
MSX_LAYOUT_SLOT (3, 3, 0, 2, ROM, 0x8000, 0xc000) /* SFG-05 */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( cx5m128, msx_pal )
+ MCFG_MSX_LAYOUT(cx5m128)
+MACHINE_CONFIG_END
+
/* MSX - Yamaha CX5MII */
ROM_START (cx5m2)
@@ -2316,6 +2574,10 @@ MSX_LAYOUT_INIT (cx5m2)
MSX_LAYOUT_SLOT (3, 3, 0, 2, ROM, 0x8000, 0xc000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( cx5m2, msx_pal )
+ MCFG_MSX_LAYOUT(cx5m2)
+MACHINE_CONFIG_END
+
/* MSX - Yamaha YIS303 */
ROM_START (yis303)
@@ -2332,6 +2594,10 @@ MSX_LAYOUT_INIT (yis303)
MSX_LAYOUT_SLOT (3, 0, 3, 1, RAM, 0x4000, 0xC000) /* 16KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( yis303, msx_pal )
+ MCFG_MSX_LAYOUT(yis303)
+MACHINE_CONFIG_END
+
/* MSX - Yamaha YIS503 */
ROM_START (yis503)
@@ -2348,6 +2614,10 @@ MSX_LAYOUT_INIT (yis503)
MSX_LAYOUT_SLOT (3, 0, 2, 2, RAM, 0x8000, 0x0000) /* 32KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( yis503, msx_pal )
+ MCFG_MSX_LAYOUT(yis503)
+MACHINE_CONFIG_END
+
/* MSX - Yamaha YIS503F */
ROM_START (yis503f)
@@ -2362,6 +2632,10 @@ MSX_LAYOUT_INIT (yis503f)
MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB?? RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( yis503f, msx_pal )
+ MCFG_MSX_LAYOUT(yis503f)
+MACHINE_CONFIG_END
+
/* MSX - Yamaha YIS503II */
ROM_START (yis503ii)
@@ -2376,6 +2650,10 @@ MSX_LAYOUT_INIT (yis503ii)
MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( yis503ii, msx_pal )
+ MCFG_MSX_LAYOUT(yis503ii)
+MACHINE_CONFIG_END
+
/* MSX - Yamaha YIS503IIR Russian */
ROM_START (y503iir)
@@ -2394,6 +2672,10 @@ MSX_LAYOUT_INIT (y503iir)
MSX_LAYOUT_SLOT (3, 3, 1, 1, ROM, 0x2000, 0xc000) /* Net */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( y503iir, msx_pal )
+ MCFG_MSX_LAYOUT(y503iir)
+MACHINE_CONFIG_END
+
/* MSX - Yamaha YIS503IIR Estonian */
ROM_START (y503iir2)
@@ -2412,6 +2694,10 @@ MSX_LAYOUT_INIT (y503iir2)
MSX_LAYOUT_SLOT (3, 3, 1, 1, ROM, 0x2000, 0xc000) /* Net */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( y503iir2, msx_pal )
+ MCFG_MSX_LAYOUT(y503iir2)
+MACHINE_CONFIG_END
+
/* MSX - Yamaha YIS503M */
ROM_START (yis503m)
@@ -2428,6 +2714,10 @@ MSX_LAYOUT_INIT (yis503m)
MSX_LAYOUT_SLOT (3, 0, 2, 2, RAM, 0x8000, 0x0000) /* 32KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( yis503m, msx_pal )
+ MCFG_MSX_LAYOUT(yis503m)
+MACHINE_CONFIG_END
+
/* MSX - Yashica YC-64 */
ROM_START (yc64)
@@ -2442,6 +2732,10 @@ MSX_LAYOUT_INIT (yc64)
MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( yc64, msx_pal )
+ MCFG_MSX_LAYOUT(yc64)
+MACHINE_CONFIG_END
+
/* MSX - Yeno MX64 */
ROM_START (mx64)
@@ -2456,6 +2750,10 @@ MSX_LAYOUT_INIT (mx64)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( mx64, msx_ntsc )
+ MCFG_MSX_LAYOUT(mx64)
+MACHINE_CONFIG_END
+
/* MSX - Frael Bruc 100-1 */
ROM_START (bruc100)
@@ -2470,6 +2768,10 @@ MSX_LAYOUT_INIT (bruc100)
MSX_LAYOUT_SLOT (3, 0, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( bruc100, msx_pal )
+ MCFG_MSX_LAYOUT(bruc100)
+MACHINE_CONFIG_END
+
/******************************** MSX 2 **********************************/
@@ -2493,6 +2795,10 @@ MSX_LAYOUT_INIT (msx2)
MSX_LAYOUT_RAMIO_SET_BITS (0xf8)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( msx2_gen, msx2_pal )
+ MCFG_MSX_LAYOUT(msx2)
+MACHINE_CONFIG_END
+
/* MSX2 - Al Alamiah AX-350 */
ROM_START (ax350)
@@ -2520,6 +2826,10 @@ MSX_LAYOUT_INIT (ax350)
MSX_LAYOUT_RAMIO_SET_BITS (0xf8)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( ax350, msx2_pal )
+ MCFG_MSX_LAYOUT(ax350)
+MACHINE_CONFIG_END
+
/* MSX2 - Al Alamiah AX-370 */
ROM_START (ax370)
@@ -2547,6 +2857,10 @@ MSX_LAYOUT_INIT (ax370)
MSX_LAYOUT_RAMIO_SET_BITS (0xf8)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( ax370, msx2_pal )
+ MCFG_MSX_LAYOUT(ax370)
+MACHINE_CONFIG_END
+
/* MSX2 - Daewoo CPC-300 */
ROM_START (cpc300)
@@ -2568,6 +2882,10 @@ MSX_LAYOUT_INIT (cpc300)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( cpc300, msx2 )
+ MCFG_MSX_LAYOUT(cpc300)
+MACHINE_CONFIG_END
+
/* MSX2 - Daewoo CPC-300E */
// These roms apparently came from a hacked set, see: http://www.vik.cc/bluemsx/blueforum/viewtopic.php?t=1569&start=75
@@ -2590,6 +2908,10 @@ MSX_LAYOUT_INIT (cpc300e)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( cpc300e, msx2 )
+ MCFG_MSX_LAYOUT(cpc300e)
+MACHINE_CONFIG_END
+
/* MSX2 - Daewoo CPC-400 */
ROM_START (cpc400)
ROM_REGION (0x50000, "maincpu", 0)
@@ -2614,6 +2936,10 @@ MSX_LAYOUT_INIT (cpc400)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( cpc400, msx2 )
+ MCFG_MSX_LAYOUT(cpc400)
+MACHINE_CONFIG_END
+
/* MSX2 - Daewoo CPC-400S */
ROM_START (cpc400s)
@@ -2639,6 +2965,10 @@ MSX_LAYOUT_INIT (cpc400s)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( cpc400s, msx2 )
+ MCFG_MSX_LAYOUT(cpc400s)
+MACHINE_CONFIG_END
+
/* MSX2 - Gradiente Expert 2.0 */
ROM_START (expert20)
@@ -2662,6 +2992,10 @@ MSX_LAYOUT_INIT (expert20)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( expert20, msx2_pal )
+ MCFG_MSX_LAYOUT(expert20)
+MACHINE_CONFIG_END
+
/* MSX2 - Mitsubishi ML-G30 Model 1/Model 2 */
ROM_START (mlg30)
@@ -2681,6 +3015,10 @@ MSX_LAYOUT_INIT (mlg30)
MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB Mapper RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( mlg30, msx2 )
+ MCFG_MSX_LAYOUT(mlg30)
+MACHINE_CONFIG_END
+
/* MSX2 - National FS-4500 */
ROM_START (fs4500)
@@ -2716,6 +3054,10 @@ MSX_LAYOUT_INIT (fs4500)
/* MSX_LAYOUT_BUNSETSU (0x74000) */ /* Matsushita Bunsetsu Henkan ROM must be emulated */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( fs4500, msx2 )
+ MCFG_MSX_LAYOUT(fs4500)
+MACHINE_CONFIG_END
+
/* MSX2 - National FS-4600 */
ROM_START (fs4600)
@@ -2749,6 +3091,10 @@ MSX_LAYOUT_INIT (fs4600)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( fs4600, msx2 )
+ MCFG_MSX_LAYOUT(fs4600)
+MACHINE_CONFIG_END
+
/* MSX2 - National FS-4700 */
ROM_START (fs4700)
@@ -2786,6 +3132,10 @@ MSX_LAYOUT_INIT (fs4700)
/* MSX_LAYOUT_BUNSETSU (0x74000) */ /* Matsushita Bunsetsu Henkan ROM must be emulated */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( fs4700, msx2 )
+ MCFG_MSX_LAYOUT(fs4700)
+MACHINE_CONFIG_END
+
/* MSX2 - National FS-5000 */
ROM_START (fs5000)
@@ -2816,6 +3166,10 @@ MSX_LAYOUT_INIT (fs5000)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( fs5000, msx2 )
+ MCFG_MSX_LAYOUT(fs5000)
+MACHINE_CONFIG_END
+
/* MSX2 - National FS-5500F1/F2*/
ROM_START (fs5500)
@@ -2845,6 +3199,9 @@ MSX_LAYOUT_INIT (fs5500)
MSX_LAYOUT_KANJI (0x30000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( fs5500, msx2 )
+ MCFG_MSX_LAYOUT(fs5500)
+MACHINE_CONFIG_END
/* MSX2 - Panasonic FS-A1 */
@@ -2868,6 +3225,10 @@ MSX_LAYOUT_INIT (fsa1)
MSX_LAYOUT_SLOT (3, 3, 1, 2, ROM, 0x8000, 0x28000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( fsa1, msx2 )
+ MCFG_MSX_LAYOUT(fsa1)
+MACHINE_CONFIG_END
+
/* MSX2 - Panasonic FS-A1 (a) */
ROM_START (fsa1a)
@@ -2890,6 +3251,10 @@ MSX_LAYOUT_INIT (fsa1a)
MSX_LAYOUT_SLOT (3, 3, 1, 2, ROM, 0x8000, 0x28000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( fsa1a, msx2 )
+ MCFG_MSX_LAYOUT(fsa1a)
+MACHINE_CONFIG_END
+
/* MSX2 - Panasonic FS-A1F */
ROM_START (fsa1f)
@@ -2917,6 +3282,10 @@ MSX_LAYOUT_INIT (fsa1f)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( fsa1f, msx2 )
+ MCFG_MSX_LAYOUT(fsa1f)
+MACHINE_CONFIG_END
+
/* MSX2 - Panasonic FS-A1FM */
ROM_START (fsa1fm)
@@ -2945,6 +3314,10 @@ MSX_LAYOUT_INIT (fsa1fm)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( fsa1fm, msx2 )
+ MCFG_MSX_LAYOUT(fsa1fm)
+MACHINE_CONFIG_END
+
/* MSX2 - Panasonic FS-A1MK2 */
ROM_START (fsa1mk2)
@@ -2970,6 +3343,10 @@ MSX_LAYOUT_INIT (fsa1mk2)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( fsa1mk2, msx2 )
+ MCFG_MSX_LAYOUT(fsa1mk2)
+MACHINE_CONFIG_END
+
/* MSX2 - Philips NMS-8220 - 2 possible sets (/00 /16) */
ROM_START (nms8220)
@@ -2991,6 +3368,10 @@ MSX_LAYOUT_INIT (nms8220)
MSX_LAYOUT_RAMIO_SET_BITS (0xf8)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( nms8220, msx2_pal )
+ MCFG_MSX_LAYOUT(nms8220)
+MACHINE_CONFIG_END
+
/* MSX2 - Philips NMS-8220 (a) */
ROM_START (nms8220a)
@@ -3012,6 +3393,10 @@ MSX_LAYOUT_INIT (nms8220a)
MSX_LAYOUT_RAMIO_SET_BITS (0xf8)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( nms8220a, msx2_pal )
+ MCFG_MSX_LAYOUT(nms8220a)
+MACHINE_CONFIG_END
+
/* MSX2 - Philips NMS-8245 - 2 possible sets (/00 /16) */
ROM_START (nms8245)
@@ -3031,6 +3416,10 @@ MSX_LAYOUT_INIT (nms8245)
MSX_LAYOUT_RAMIO_SET_BITS (0xf8)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( nms8245, msx2_pal )
+ MCFG_MSX_LAYOUT(nms8245)
+MACHINE_CONFIG_END
+
/* MSX2 - Philips NMS-8245F */
ROM_START (nms8245f)
@@ -3050,6 +3439,10 @@ MSX_LAYOUT_INIT (nms8245f)
MSX_LAYOUT_RAMIO_SET_BITS (0xf8)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( nms8245f, msx2_pal )
+ MCFG_MSX_LAYOUT(nms8245f)
+MACHINE_CONFIG_END
+
/* MSX2 - Philips NMS-8250 */
/* Labels taken from an NMS-8250/00 */
@@ -3072,6 +3465,10 @@ MSX_LAYOUT_INIT (nms8250)
MSX_LAYOUT_RAMIO_SET_BITS (0xf8)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( nms8250, msx2_pal )
+ MCFG_MSX_LAYOUT(nms8250)
+MACHINE_CONFIG_END
+
/* MSX2 - Philips NMS-8250J */
ROM_START (nms8250j)
@@ -3091,6 +3488,10 @@ MSX_LAYOUT_INIT (nms8250j)
MSX_LAYOUT_SLOT (3, 3, 1, 1, DISK_ROM, 0x4000, 0xc000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( nms8250j, msx2 )
+ MCFG_MSX_LAYOUT(nms8250j)
+MACHINE_CONFIG_END
+
/* MSX2 - Philips NMS-8255 */
ROM_START (nms8255)
@@ -3112,6 +3513,10 @@ MSX_LAYOUT_INIT (nms8255)
MSX_LAYOUT_RAMIO_SET_BITS (0xf8)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( nms8255, msx2_pal )
+ MCFG_MSX_LAYOUT(nms8255)
+MACHINE_CONFIG_END
+
/* MSX2 - Philips NMS-8280 - 2 possible sets (/00 /16) */
ROM_START (nms8280)
@@ -3133,6 +3538,10 @@ MSX_LAYOUT_INIT (nms8280)
MSX_LAYOUT_RAMIO_SET_BITS (0xf8)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( nms8280, msx2_pal )
+ MCFG_MSX_LAYOUT(nms8280)
+MACHINE_CONFIG_END
+
/* MSX2 - Philips NMS-8280G */
ROM_START (nms8280g)
@@ -3154,6 +3563,10 @@ MSX_LAYOUT_INIT (nms8280g)
MSX_LAYOUT_RAMIO_SET_BITS (0xf8)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( nms8280g, msx2_pal )
+ MCFG_MSX_LAYOUT(nms8280g)
+MACHINE_CONFIG_END
+
/* MSX2 - Philips VG-8230 (u11 - exp, u12 - basic, u13 - disk */
ROM_START (vg8230)
@@ -3175,6 +3588,10 @@ MSX_LAYOUT_INIT (vg8230)
MSX_LAYOUT_RAMIO_SET_BITS (0xf8)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( vg8230, msx2_pal )
+ MCFG_MSX_LAYOUT(vg8230)
+MACHINE_CONFIG_END
+
/* MSX2 - Philips VG-8230J */
ROM_START (vg8230j)
@@ -3196,6 +3613,10 @@ MSX_LAYOUT_INIT (vg8230j)
MSX_LAYOUT_SLOT (3, 3, 1, 1, DISK_ROM, 0x4000, 0xc000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( vg8230j, msx2 )
+ MCFG_MSX_LAYOUT(vg8230j)
+MACHINE_CONFIG_END
+
/* MSX2 - Philips VG-8235 3 psosible basic and ext roms (/00 /02 /19) */
ROM_START (vg8235)
@@ -3217,6 +3638,10 @@ MSX_LAYOUT_INIT (vg8235)
MSX_LAYOUT_RAMIO_SET_BITS (0xf8)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( vg8235, msx2_pal )
+ MCFG_MSX_LAYOUT(vg8235)
+MACHINE_CONFIG_END
+
/* MSX2 - Philips VG-8235F */
ROM_START (vg8235f)
@@ -3238,6 +3663,10 @@ MSX_LAYOUT_INIT (vg8235f)
MSX_LAYOUT_RAMIO_SET_BITS (0xf8)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( vg8235f, msx2_pal )
+ MCFG_MSX_LAYOUT(vg8235f)
+MACHINE_CONFIG_END
+
/* MSX2 - Philips VG-8240 */
ROM_START (vg8240)
@@ -3259,6 +3688,10 @@ MSX_LAYOUT_INIT (vg8240)
MSX_LAYOUT_RAMIO_SET_BITS (0xf8)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( vg8240, msx2_pal )
+ MCFG_MSX_LAYOUT(vg8240)
+MACHINE_CONFIG_END
+
/* MSX2 - Sanyo MPC-2300 */
ROM_START (mpc2300)
@@ -3277,6 +3710,10 @@ MSX_LAYOUT_INIT (mpc2300)
MSX_LAYOUT_SLOT (3, 1, 0, 1, ROM, 0x4000, 0x8000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( mpc2300, msx2 )
+ MCFG_MSX_LAYOUT(mpc2300)
+MACHINE_CONFIG_END
+
/* MSX2 - Sanyo Wavy MPC-25FD */
ROM_START (mpc25fd)
@@ -3295,6 +3732,10 @@ MSX_LAYOUT_INIT (mpc25fd)
MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x10000, 0x0000) /* 128KB?? RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( mpc25fd, msx2 )
+ MCFG_MSX_LAYOUT(mpc25fd)
+MACHINE_CONFIG_END
+
/* MSX2 - Sanyo Wavy PHC-23 */
ROM_START (phc23)
@@ -3313,6 +3754,10 @@ MSX_LAYOUT_INIT (phc23)
MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( phc23, msx2 )
+ MCFG_MSX_LAYOUT(phc23)
+MACHINE_CONFIG_END
+
/* MSX2 - Sharp Epcom HotBit 2.0 */
ROM_START (hotbit20)
@@ -3336,6 +3781,10 @@ MSX_LAYOUT_INIT (hotbit20)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hotbit20, msx2_pal )
+ MCFG_MSX_LAYOUT(hotbit20)
+MACHINE_CONFIG_END
+
/* MSX2 - Sony HB-F1 */
ROM_START (hbf1)
@@ -3360,6 +3809,10 @@ MSX_LAYOUT_INIT (hbf1)
MSX_LAYOUT_SLOT (3, 3, 0, 4, RAM, 0x10000, 0x0000) /* 64KB RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hbf1, msx2 )
+ MCFG_MSX_LAYOUT(hbf1)
+MACHINE_CONFIG_END
+
/* MSX2 - Sony HB-F1II */
ROM_START (hbf12)
@@ -3385,6 +3838,10 @@ MSX_LAYOUT_INIT (hbf12)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hbf12, msx2 )
+ MCFG_MSX_LAYOUT(hbf12)
+MACHINE_CONFIG_END
+
/* MSX2 - Sony HB-F1XD */
ROM_START (hbf1xd)
@@ -3406,6 +3863,10 @@ MSX_LAYOUT_INIT (hbf1xd)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hbf1xd, msx2 )
+ MCFG_MSX_LAYOUT(hbf1xd)
+MACHINE_CONFIG_END
+
/* MSX2 - Sony HB-F1XDMK2 */
ROM_START (hbf1xdm2)
@@ -3427,6 +3888,10 @@ MSX_LAYOUT_INIT (hbf1xdm2)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hbf1xdm2, msx2 )
+ MCFG_MSX_LAYOUT(hbf1xdm2)
+MACHINE_CONFIG_END
+
/* MSX2 - Sony HB-F5 */
ROM_START (hbf5)
@@ -3445,6 +3910,10 @@ MSX_LAYOUT_INIT (hbf5)
MSX_LAYOUT_SLOT (2, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hbf5, msx2_pal )
+ MCFG_MSX_LAYOUT(hbf5)
+MACHINE_CONFIG_END
+
/* MSX2 - Sony HB-F500 */
ROM_START (hbf500)
@@ -3468,6 +3937,10 @@ MSX_LAYOUT_INIT (hbf500)
MSX_LAYOUT_KANJI (0x20000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hbf500, msx2 )
+ MCFG_MSX_LAYOUT(hbf500)
+MACHINE_CONFIG_END
+
/* MSX2 - Sony HB-F500P */
ROM_START (hbf500p)
@@ -3489,6 +3962,10 @@ MSX_LAYOUT_INIT (hbf500p)
MSX_LAYOUT_SLOT (3, 0, 0, 4, ROM, 0x10000, 0x10000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hbf500p, msx2_pal )
+ MCFG_MSX_LAYOUT(hbf500p)
+MACHINE_CONFIG_END
+
/* MSX2 - Sony HB-F700D */
ROM_START (hbf700d)
@@ -3509,6 +3986,10 @@ MSX_LAYOUT_INIT (hbf700d)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hbf700d, msx2_pal )
+ MCFG_MSX_LAYOUT(hbf700d)
+MACHINE_CONFIG_END
+
/* MSX2 - Sony HB-F700F */
ROM_START (hbf700f)
@@ -3529,6 +4010,10 @@ MSX_LAYOUT_INIT (hbf700f)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hbf700f, msx2_pal )
+ MCFG_MSX_LAYOUT(hbf700f)
+MACHINE_CONFIG_END
+
/* MSX2 - Sony HB-F700P */
ROM_START (hbf700p)
@@ -3549,6 +4034,10 @@ MSX_LAYOUT_INIT (hbf700p)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hbf700p, msx2_pal )
+ MCFG_MSX_LAYOUT(hbf700p)
+MACHINE_CONFIG_END
+
/* MSX2 - Sony HB-F700S */
ROM_START (hbf700s)
@@ -3569,6 +4058,10 @@ MSX_LAYOUT_INIT (hbf700s)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hbf700s, msx2_pal )
+ MCFG_MSX_LAYOUT(hbf700s)
+MACHINE_CONFIG_END
+
/* MSX2 - Sony HB-F900 */
ROM_START (hbf900)
ROM_REGION (0x44000, "maincpu", 0)
@@ -3593,6 +4086,10 @@ MSX_LAYOUT_INIT (hbf900)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hbf900, msx2 )
+ MCFG_MSX_LAYOUT(hbf900)
+MACHINE_CONFIG_END
+
/* MSX2 - Sony HB-F900 (a) */
ROM_START (hbf900a)
ROM_REGION (0x44000, "maincpu", 0)
@@ -3617,6 +4114,10 @@ MSX_LAYOUT_INIT (hbf900a)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hbf900a, msx2 )
+ MCFG_MSX_LAYOUT(hbf900a)
+MACHINE_CONFIG_END
+
/* MSX2 - Sony HB-F9P */
ROM_START (hbf9p)
@@ -3639,6 +4140,10 @@ MSX_LAYOUT_INIT (hbf9p)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hbf9p, msx2_pal )
+ MCFG_MSX_LAYOUT(hbf9p)
+MACHINE_CONFIG_END
+
/* MSX2 - Sony HB-F9P Russian */
ROM_START (hbf9pr)
@@ -3655,6 +4160,10 @@ MSX_LAYOUT_INIT (hbf9pr)
MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB?? Mapper RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hbf9pr, msx2_pal )
+ MCFG_MSX_LAYOUT(hbf9pr)
+MACHINE_CONFIG_END
+
/* MSX2 - Sony HB-F9S */
ROM_START (hbf9s)
@@ -3677,6 +4186,10 @@ MSX_LAYOUT_INIT (hbf9s)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hbf9s, msx2_pal )
+ MCFG_MSX_LAYOUT(hbf9s)
+MACHINE_CONFIG_END
+
/* MSX2 - Sony HB-G900AP */
/* IC109 - 32KB Basic ROM SLOT#00 0000-7FFF */
@@ -3708,6 +4221,9 @@ MSX_LAYOUT_INIT (hbg900ap)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hbg900ap, msx2_pal )
+ MCFG_MSX_LAYOUT(hbg900ap)
+MACHINE_CONFIG_END
/* MSX2 - Sony HB-G900P - 3x 32KB ROMs */
@@ -3734,6 +4250,10 @@ MSX_LAYOUT_INIT (hbg900p)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hbg900p, msx2_pal )
+ MCFG_MSX_LAYOUT(hbg900p)
+MACHINE_CONFIG_END
+
/* MSX2 - Talent TPC-310 */
ROM_START (tpc310)
ROM_REGION (0x2c000, "maincpu", 0)
@@ -3758,6 +4278,10 @@ MSX_LAYOUT_INIT (tpc310)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( tpc310, msx2_pal )
+ MCFG_MSX_LAYOUT(tpc310)
+MACHINE_CONFIG_END
+
/* MSX2 - Talent TPP-311 */
ROM_START (tpp311)
@@ -3774,6 +4298,10 @@ MSX_LAYOUT_INIT (tpp311)
MSX_LAYOUT_SLOT (3, 0, 0, 1, ROM, 0x4000, 0x8000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( tpp311, msx2_pal )
+ MCFG_MSX_LAYOUT(tpp311)
+MACHINE_CONFIG_END
+
/* MSX2 - Talent TPS-312 */
ROM_START (tps312)
@@ -3794,6 +4322,10 @@ MSX_LAYOUT_INIT (tps312)
MSX_LAYOUT_SLOT (3, 3, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( tps312, msx2_pal )
+ MCFG_MSX_LAYOUT(tps312)
+MACHINE_CONFIG_END
+
/* MSX2 - Toshiba HX-23 */
ROM_START (hx23)
@@ -3817,6 +4349,10 @@ MSX_LAYOUT_INIT (hx23)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hx23, msx2_pal )
+ MCFG_MSX_LAYOUT(hx23)
+MACHINE_CONFIG_END
+
/* MSX2 - Toshiba HX-23F */
ROM_START (hx23f)
@@ -3839,6 +4375,10 @@ MSX_LAYOUT_INIT (hx23f)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hx23f, msx2_pal )
+ MCFG_MSX_LAYOUT(hx23f)
+MACHINE_CONFIG_END
+
/* MSX2 - Yamaha CX7M */
ROM_START (cx7m)
@@ -3860,6 +4400,10 @@ MSX_LAYOUT_INIT (cx7m)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( cx7m, msx2_pal )
+ MCFG_MSX_LAYOUT(cx7m)
+MACHINE_CONFIG_END
+
/* MSX2 - Yamaha CX7M-128 */
ROM_START (cx7m128)
@@ -3883,6 +4427,10 @@ MSX_LAYOUT_INIT (cx7m128)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( cx7m128, msx2_pal )
+ MCFG_MSX_LAYOUT(cx7m128)
+MACHINE_CONFIG_END
+
/******************************** MSX 2+ **********************************/
/* MSX2+ */
@@ -3909,6 +4457,10 @@ MSX_LAYOUT_INIT (msx2p)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( msx2pgen, msx2p )
+ MCFG_MSX_LAYOUT(msx2p)
+MACHINE_CONFIG_END
+
/* MSX2+ - Ciel Expert 3 IDE */
ROM_START (expert3i )
@@ -3931,6 +4483,10 @@ MSX_LAYOUT_INIT (expert3i)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( expert3i, msx2p )
+ MCFG_MSX_LAYOUT(expert3i)
+MACHINE_CONFIG_END
+
/* MSX2+ - Ciel Expert 3 Turbo */
/* Uses a Z84C0010 - CMOS processor working at 7 MHz */
@@ -3954,6 +4510,10 @@ MSX_LAYOUT_INIT (expert3t)
MSX_LAYOUT_SLOT (3, 0, 0, 4, CARTRIDGE2, 0x0000, 0x0000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( expert3t, msx2p )
+ MCFG_MSX_LAYOUT(expert3t)
+MACHINE_CONFIG_END
+
/* MSX2+ - Gradiente Expert AC88+ */
ROM_START (expertac)
@@ -3976,6 +4536,10 @@ MSX_LAYOUT_INIT (expertac)
MSX_LAYOUT_SLOT (3, 3, 1, 1, ROM, 0x4000, 0x24000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( expertac, msx2p )
+ MCFG_MSX_LAYOUT(expertac)
+MACHINE_CONFIG_END
+
/* MSX2+ - Gradiente Expert DDX+ */
ROM_START (expertdx)
@@ -3998,6 +4562,10 @@ MSX_LAYOUT_INIT (expertdx)
/* Kanji? */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( expertdx, msx2p )
+ MCFG_MSX_LAYOUT(expertdx)
+MACHINE_CONFIG_END
+
/* MSX2+ - Panasonic FS-A1FX */
ROM_START (fsa1fx)
@@ -4025,6 +4593,10 @@ MSX_LAYOUT_INIT (fsa1fx)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( fsa1fx, msx2p )
+ MCFG_MSX_LAYOUT(fsa1fx)
+MACHINE_CONFIG_END
+
/* MSX2+ - Panasonic FS-A1WSX */
ROM_START (fsa1wsx)
@@ -4055,6 +4627,10 @@ MSX_LAYOUT_INIT (fsa1wsx)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( fsa1wsx, msx2p )
+ MCFG_MSX_LAYOUT(fsa1wsx)
+MACHINE_CONFIG_END
+
/* MSX2+ - Panasonic FS-A1WX */
ROM_START (fsa1wx)
@@ -4085,6 +4661,10 @@ MSX_LAYOUT_INIT (fsa1wx)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( fsa1wx, msx2p )
+ MCFG_MSX_LAYOUT(fsa1wx)
+MACHINE_CONFIG_END
+
/* MSX2+ - Panasonic FS-A1WX (a) */
ROM_START (fsa1wxa)
ROM_REGION (0x270000, "maincpu",0)
@@ -4114,6 +4694,10 @@ MSX_LAYOUT_INIT (fsa1wxa)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( fsa1wxa, msx2p )
+ MCFG_MSX_LAYOUT(fsa1wxa)
+MACHINE_CONFIG_END
+
/* MSX2+ - Sanyo Wavy PHC-35J */
ROM_START (phc35j)
@@ -4137,6 +4721,10 @@ MSX_LAYOUT_INIT (phc35j)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( phc35j, msx2p )
+ MCFG_MSX_LAYOUT(phc35j)
+MACHINE_CONFIG_END
+
/* MSX2+ - Sanyo Wavy PHC-70FD1 */
ROM_START (phc70fd)
@@ -4166,6 +4754,10 @@ MSX_LAYOUT_INIT (phc70fd)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( phc70fd, msx2p )
+ MCFG_MSX_LAYOUT(phc70fd)
+MACHINE_CONFIG_END
+
/* MSX2+ - Sanyo Wavy PHC-70FD2 */
ROM_START (phc70fd2)
ROM_REGION (0x70000, "maincpu",0)
@@ -4194,6 +4786,10 @@ MSX_LAYOUT_INIT (phc70fd2)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( phc70fd2, msx2p )
+ MCFG_MSX_LAYOUT(phc70fd2)
+MACHINE_CONFIG_END
+
/* MSX2+ - Sony HB-F1XDJ */
ROM_START (hbf1xdj)
@@ -4224,6 +4820,10 @@ MSX_LAYOUT_INIT (hbf1xdj)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hbf1xdj, msx2p )
+ MCFG_MSX_LAYOUT(hbf1xdj)
+MACHINE_CONFIG_END
+
/* MSX2+ - Sony HB-F1XV */
ROM_START (hbf1xv)
@@ -4254,6 +4854,10 @@ MSX_LAYOUT_INIT (hbf1xv)
MSX_LAYOUT_RAMIO_SET_BITS (0x80)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hbf1xv, msx2p )
+ MCFG_MSX_LAYOUT(hbf1xv)
+MACHINE_CONFIG_END
+
/* MSX2+ - Sony HB-F9S+ */
ROM_START (hbf9sp)
@@ -4274,6 +4878,10 @@ MSX_LAYOUT_INIT (hbf9sp)
MSX_LAYOUT_SLOT (3, 2, 0, 4, RAM_MM, 0x10000, 0x0000) /* 64KB?? Mapper RAM */
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( hbf9sp, msx2p )
+ MCFG_MSX_LAYOUT(hbf9sp)
+MACHINE_CONFIG_END
+
/* MSX Turbo-R - Panasonic FS-A1GT */
ROM_START (fsa1gt)
@@ -4301,6 +4909,10 @@ MSX_LAYOUT_INIT (fsa1gt)
MSX_LAYOUT_SLOT (3, 3, 0, 4, ROM, 0x10000, 0x80000)
MSX_LAYOUT_END
+static MACHINE_CONFIG_DERIVED( fsa1gt, msx2 )
+ MCFG_MSX_LAYOUT(fsa1gt)
+MACHINE_CONFIG_END
+
/* MSX Turbo-R - Panasonic FS-A1ST */
ROM_START (fsa1st)
@@ -4328,331 +4940,169 @@ MSX_LAYOUT_INIT (fsa1st)
MSX_LAYOUT_SLOT (3, 3, 0, 4, ROM, 0x10000, 0x80000)
MSX_LAYOUT_END
-
-MSX_DRIVER_LIST
- /* MSX 1 */
- MSX_DRIVER (msx)
- MSX_DRIVER (ax170)
- MSX_DRIVER (canonv10)
- MSX_DRIVER (canonv20)
- MSX_DRIVER (pv16)
- MSX_DRIVER (dpc100)
- MSX_DRIVER (dpc180)
- MSX_DRIVER (dpc200)
- MSX_DRIVER (gsfc200)
- MSX_DRIVER (expert10)
- MSX_DRIVER (expert11)
- MSX_DRIVER (expert13)
- MSX_DRIVER (expert20)
- MSX_DRIVER (expertdp)
- MSX_DRIVER (expertpl)
- MSX_DRIVER (jvchc7gb)
- MSX_DRIVER (mlf80)
- MSX_DRIVER (mlfx1)
- MSX_DRIVER (cf1200)
- MSX_DRIVER (cf2000)
- MSX_DRIVER (cf2700)
- MSX_DRIVER (cf3000)
- MSX_DRIVER (cf3300)
- MSX_DRIVER (fs1300)
- MSX_DRIVER (fs4000)
- MSX_DRIVER (phc2)
- MSX_DRIVER (phc28)
- MSX_DRIVER (cf2700g)
- MSX_DRIVER (nms801)
- MSX_DRIVER (vg8000)
- MSX_DRIVER (vg8010)
- MSX_DRIVER (vg8010f)
- MSX_DRIVER (vg802000)
- MSX_DRIVER (vg802020)
- MSX_DRIVER (vg8020f)
- MSX_DRIVER (piopx7)
- MSX_DRIVER (spc800)
- MSX_DRIVER (mpc64)
- MSX_DRIVER (mpc100)
- MSX_DRIVER (phc28l)
- MSX_DRIVER (phc28s)
- MSX_DRIVER (mpc10)
- MSX_DRIVER (hotbit11)
- MSX_DRIVER (hotbit12)
- MSX_DRIVER (hotbi13b)
- MSX_DRIVER (hotbi13p)
- MSX_DRIVER (hotbit20)
- MSX_DRIVER (hb10p)
- MSX_DRIVER (hb20p)
- MSX_DRIVER (hb201)
- MSX_DRIVER (hb201p)
- MSX_DRIVER (hb501p)
- MSX_DRIVER (hb55d)
- MSX_DRIVER (hb55p)
- MSX_DRIVER (hb75d)
- MSX_DRIVER (hb75p)
- MSX_DRIVER (svi728)
- MSX_DRIVER (svi738)
- MSX_DRIVER (svi738sw)
- MSX_DRIVER (svi738pl)
- MSX_DRIVER (tadpc200)
- MSX_DRIVER (tadpc20a)
- MSX_DRIVER (hx10)
- MSX_DRIVER (hx10s)
- MSX_DRIVER (hx20)
- MSX_DRIVER (cx5m)
- MSX_DRIVER (cx5m128)
- MSX_DRIVER (cx5m2)
- MSX_DRIVER (yis303)
- MSX_DRIVER (yis503)
- MSX_DRIVER (yis503f)
- MSX_DRIVER (yis503ii)
- MSX_DRIVER (y503iir)
- MSX_DRIVER (y503iir2)
- MSX_DRIVER (yis503m)
- MSX_DRIVER (yc64)
- MSX_DRIVER (mx64)
- MSX_DRIVER (bruc100)
-
-
-
- MSX_DRIVER (msx2)
- MSX_DRIVER (ax350)
- MSX_DRIVER (ax370)
- MSX_DRIVER (nms8220)
- MSX_DRIVER (nms8220a)
- MSX_DRIVER (vg8230)
- MSX_DRIVER (vg8230j)
- MSX_DRIVER (vg8235)
- MSX_DRIVER (vg8235f)
- MSX_DRIVER (vg8240)
- MSX_DRIVER (nms8245)
- MSX_DRIVER (nms8245f)
- MSX_DRIVER (nms8250)
- MSX_DRIVER (nms8250j)
- MSX_DRIVER (nms8255)
- MSX_DRIVER (nms8280)
- MSX_DRIVER (nms8280g)
- MSX_DRIVER (hbf5)
- MSX_DRIVER (hbf9p)
- MSX_DRIVER (hbf9pr)
- MSX_DRIVER (hbf9s)
- MSX_DRIVER (hbf500p)
- MSX_DRIVER (hbf700d)
- MSX_DRIVER (hbf700f)
- MSX_DRIVER (hbf700p)
- MSX_DRIVER (hbf700s)
- MSX_DRIVER (hbg900ap)
- MSX_DRIVER (hbg900p)
- MSX_DRIVER (mlg30)
- MSX_DRIVER (fs5500)
- MSX_DRIVER (fs4500)
- MSX_DRIVER (fs4700)
- MSX_DRIVER (fs5000)
- MSX_DRIVER (fs4600)
- MSX_DRIVER (fsa1)
- MSX_DRIVER (fsa1a)
- MSX_DRIVER (fsa1mk2)
- MSX_DRIVER (fsa1f)
- MSX_DRIVER (fsa1fm)
- MSX_DRIVER (hbf500)
- MSX_DRIVER (hbf900)
- MSX_DRIVER (hbf900a)
- MSX_DRIVER (hbf1)
- MSX_DRIVER (hbf12)
- MSX_DRIVER (hbf1xd)
- MSX_DRIVER (hbf1xdm2)
- MSX_DRIVER (mpc2300)
- MSX_DRIVER (mpc25fd)
- MSX_DRIVER (phc23)
- MSX_DRIVER (cpc300)
- MSX_DRIVER (cpc300e)
- MSX_DRIVER (cpc400)
- MSX_DRIVER (cpc400s)
-
- MSX_DRIVER (msx2p)
- MSX_DRIVER (expert3i)
- MSX_DRIVER (expert3t)
- MSX_DRIVER (expertac)
- MSX_DRIVER (expertdx)
- MSX_DRIVER (fsa1fx)
- MSX_DRIVER (fsa1wx)
- MSX_DRIVER (fsa1wxa)
- MSX_DRIVER (fsa1wsx)
- MSX_DRIVER (hbf1xdj)
- MSX_DRIVER (hbf1xv)
- MSX_DRIVER (phc70fd)
- MSX_DRIVER (phc70fd2)
- MSX_DRIVER (phc35j)
- MSX_DRIVER (hbf9sp)
-
- MSX_DRIVER (tpc310)
- MSX_DRIVER (tpp311)
- MSX_DRIVER (tps312)
- MSX_DRIVER (hx23)
- MSX_DRIVER (hx23f)
- MSX_DRIVER (cx7m)
- MSX_DRIVER (cx7m128)
-
- MSX_DRIVER (fsa1gt)
- MSX_DRIVER (fsa1st)
-MSX_DRIVER_END
+static MACHINE_CONFIG_DERIVED( fsa1st, msx2 )
+ MCFG_MSX_LAYOUT(fsa1st)
+MACHINE_CONFIG_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
-COMP(1983, msx, 0, 0, msx_pal, msx, msx_state, msx, "ASCII & Microsoft", "MSX" , 0)
-
-COMP(1983, ax170, msx, 0, msx_pal, msx, msx_state, msx, "Al Alamiah", "AX-170" , 0)
-COMP(1983, canonv10, msx, 0, msx_pal, msx, msx_state, msx, "Canon", "V-10" , 0)
-COMP(1983, canonv20, msx, 0, msx_pal, msx, msx_state, msx, "Canon", "V-20" , 0)
-COMP(1984, pv16, msx, 0, msx_ntsc, msx, msx_state, msx, "Casio", "PV-16", 0)
-COMP(1984, dpc100, msx, 0, msx_ntsc, msxkr, msx_state, msx, "Daewoo", "IQ-1000 DPC-100 (Korea)" , 0)
-COMP(1984, dpc180, msx, 0, msx_ntsc, msxkr, msx_state, msx, "Daewoo", "IQ-1000 DPC-180 (Korea)" , 0)
-COMP(1984, dpc200, msx, 0, msx_ntsc, msxkr, msx_state, msx, "Daewoo", "IQ-1000 DPC-200 (Korea)" , 0)
-COMP(1983, gsfc200, msx, 0, msx_pal, msx, msx_state, msx, "Goldstar", "FC-200" , 0)
-COMP(1983, expert10, msx, 0, msx_ntsc, expert10, msx_state, msx, "Gradiente", "Expert 1.0 (Brazil)" , 0)
-COMP(1984, expert11, msx, 0, msx_ntsc, expert11, msx_state, msx, "Gradiente", "Expert 1.1 (Brazil)" , 0)
-COMP(1984, expert13, msx, 0, msx_ntsc, expert11, msx_state, msx, "Gradiente", "Expert 1.3 (Brazil)" , 0)
-COMP(1985, expertdp, msx, 0, msx_ntsc, expert11, msx_state, msx, "Gradiente", "Expert DDPlus (Brazil)", 0)
-COMP(1984, expertpl, msx, 0, msx_ntsc, expert11, msx_state, msx, "Gradiente", "Expert Plus (Brazil)" , 0)
-COMP(1983, jvchc7gb, msx, 0, msx_pal, msx, msx_state, msx, "JVC", "HC-7GB" , 0)
-COMP(1983, mlf80, msx, 0, msx_pal, msx, msx_state, msx, "Mitsubishi", "ML-F80" , 0)
-COMP(1983, mlfx1, msx, 0, msx_pal, msx, msx_state, msx, "Mitsubishi", "ML-FX1" , 0)
-COMP(1984, cf1200, msx, 0, msx_ntsc, msxjp, msx_state, msx, "National / Matsushita", "CF-1200 (Japan)" , 0)
-COMP(1983, cf2000, msx, 0, msx_ntsc, msxjp, msx_state, msx, "National / Matsushita", "CF-2000 (Japan)" , 0)
-COMP(1984, cf2700, msx, 0, msx_ntsc, msxjp, msx_state, msx, "National / Matsushita", "CF-2700 (Japan)" , 0)
-COMP(1984, cf3000, msx, 0, msx_ntsc, msxjp, msx_state, msx, "National / Matsushita", "CF-3000 (Japan)" , 0)
-COMP(1985, cf3300, msx, 0, msx_ntsc, msxjp, msx_state, msx, "National / Matsushita", "CF-3300 (Japan)", 0)
-COMP(1985, fs1300, msx, 0, msx_ntsc, msxjp, msx_state, msx, "National / Matsushita", "FS-1300 (Japan)" , 0)
-COMP(1985, fs4000, msx, 0, msx_ntsc, msxjp, msx_state, msx, "National / Matsushita", "FS-4000 (Japan)" , 0)
-COMP(1983, phc2, msx, 0, msx_pal, msx, msx_state, msx, "Olympia", "PHC-2" , 0)
-COMP(19??, phc28, msx, 0, msx_pal, msx, msx_state, msx, "Olympia", "PHC-28", 0)
-COMP(1984, cf2700g, msx, 0, msx_pal, msx, msx_state, msx, "Panasonic", "CF-2700G (Germany)", 0)
-COMP(1983, nms801, msx, 0, msx_pal, msx, msx_state, msx, "Philips", "NMS-801" , 0)
-COMP(1984, vg8000, msx, 0, msx_pal, msx, msx_state, msx, "Philips", "VG-8000" , 0)
-COMP(1984, vg8010, msx, 0, msx_pal, msx, msx_state, msx, "Philips", "VG-8010" , 0)
-COMP(1984, vg8010f, msx, 0, msx_pal, msx, msx_state, msx, "Philips", "VG-8010F" , 0)
-COMP(1985, vg802000, msx, 0, msx_pal, msx, msx_state, msx, "Philips", "VG-8020-00" , 0)
-COMP(1985, vg802020, msx, 0, msx_pal, msx, msx_state, msx, "Philips", "VG-8020-20" , 0)
-COMP(19??, vg8020f, msx, 0, msx_pal, msx, msx_state, msx, "Philips", "VG-8020F", 0)
-COMP(1985, piopx7, msx, 0, msx_pal, msx, msx_state, msx, "Pioneer", "PX-07" , 0)
-COMP(19??, spc800, msx, 0, msx_ntsc, msx, msx_state, msx, "Samsung", "SPC-800", 0)
-COMP(1985, mpc64, msx, 0, msx_ntsc, msxjp, msx_state, msx, "Sanyo", "MPC-64" , 0)
-COMP(1985, mpc100, msx, 0, msx_pal, msx, msx_state, msx, "Sanyo", "MPC-100" , 0)
-COMP(1983, phc28l, msx, 0, msx_pal, msx, msx_state, msx, "Sanyo", "PHC-28L", 0)
-COMP(1983, phc28s, msx, 0, msx_pal, msx, msx_state, msx, "Sanyo", "PHC-28S", 0)
-COMP(19??, mpc10, msx, 0, msx_pal, msx, msx_state, msx, "Sanyo", "Wavy MPC-10", 0)
-COMP(1985, hotbit11, msx, 0, msx_ntsc, hotbit, msx_state, msx, "Sharp / Epcom", "HB-8000 Hotbit 1.1" , 0)
-COMP(1985, hotbit12, msx, 0, msx_ntsc, hotbit, msx_state, msx, "Sharp / Epcom", "HB-8000 Hotbit 1.2" , 0)
-COMP(1985, hotbi13b, msx, 0, msx_ntsc, hotbit, msx_state, msx, "Sharp / Epcom", "HB-8000 Hotbit 1.3b" , 0)
-COMP(1985, hotbi13p, msx, 0, msx_ntsc, hotbit, msx_state, msx, "Sharp / Epcom", "HB-8000 Hotbit 1.3p" , 0)
-COMP(1985, hb10p, msx, 0, msx_pal, msx, msx_state, msx, "Sony", "HB-10P" , 0)
-COMP(1985, hb20p, msx, 0, msx_pal, msx, msx_state, msx, "Sony", "HB-20P (Spanish)" , 0)
-COMP(1985, hb201, msx, 0, msx_ntsc, msxjp, msx_state, msx, "Sony", "HB-201 (Japan)" , 0)
-COMP(1985, hb201p, msx, 0, msx_pal, msx, msx_state, msx, "Sony", "HB-201P" , 0)
-COMP(1984, hb501p, msx, 0, msx_pal, msx, msx_state, msx, "Sony", "HB-501P" , 0)
-COMP(1983, hb55d, msx, 0, msx_pal, msx, msx_state, msx, "Sony", "HB-55D (Germany)" , 0)
-COMP(1983, hb55p, msx, 0, msx_pal, msx, msx_state, msx, "Sony", "HB-55P" , 0)
-COMP(1983, hb75d, msx, 0, msx_pal, msx, msx_state, msx, "Sony", "HB-75D (Germany)" , 0)
-COMP(1983, hb75p, msx, 0, msx_pal, msx, msx_state, msx, "Sony", "HB-75P" , 0)
-COMP(1985, svi728, msx, 0, msx_pal, msx, msx_state, msx, "Spectravideo", "SVI-728", 0)
-COMP(1985, svi738, msx, 0, msx_pal, msx, msx_state, msx, "Spectravideo", "SVI-738", 0)
-COMP(1985, svi738sw, msx, 0, msx_pal, msx, msx_state, msx, "Spectravideo", "SVI-738 (Swedish)", 0)
-COMP(1985, svi738pl, msx, 0, msx_pal, msx, msx_state, msx, "Spectravideo", "SVI-738 (Poland)", 0)
-COMP(1983, tadpc200, msx, 0, msx_pal, msx, msx_state, msx, "Talent", "DPC-200" , 0)
-COMP(1983, tadpc20a, msx, 0, msx_pal, msx, msx_state, msx, "Talent", "DPC-200A" , 0)
-COMP(1984, hx10, msx, 0, msx_pal, msx, msx_state, msx, "Toshiba", "HX-10" , 0)
-COMP(1984, hx10s, msx, 0, msx_pal, msx, msx_state, msx, "Toshiba", "HX-10S" , 0)
-COMP(1984, hx20, msx, 0, msx_pal, msx, msx_state, msx, "Toshiba", "HX-20" , 0)
-COMP(1984, cx5m, msx, 0, msx_pal, msx, msx_state, msx, "Yamaha", "CX5M" , 0)
-COMP(1984, cx5m128, msx, 0, msx_pal, msx, msx_state, msx, "Yamaha", "CX5M-128" , 0)
-COMP(1984, cx5m2, msx, 0, msx_pal, msx, msx_state, msx, "Yamaha", "CX5MII" , 0)
-COMP(1984, yis303, msx, 0, msx_pal, msx, msx_state, msx, "Yamaha", "YIS303" , 0)
-COMP(1984, yis503, msx, 0, msx_pal, msx, msx_state, msx, "Yamaha", "YIS503" , 0)
-COMP(19??, yis503f, msx, 0, msx_pal, msx, msx_state, msx, "Yamaha", "YIS503F", 0)
-COMP(1984, yis503ii, msx, 0, msx_pal, msx, msx_state, msx, "Yamaha", "YIS503II" , 0)
-COMP(1986, y503iir, msx, 0, msx_pal, msx, msx_state, msx, "Yamaha", "YIS503IIR (Russian)" , 0)
-COMP(1986, y503iir2, msx, 0, msx_pal, msx, msx_state, msx, "Yamaha", "YIS503IIR (Estonian)" , 0)
-COMP(1984, yis503m, msx, 0, msx_pal, msx, msx_state, msx, "Yamaha", "YIS503M", 0)
-COMP(1984, yc64, msx, 0, msx_pal, msx, msx_state, msx, "Yashica", "YC-64" , 0)
-COMP(1984, mx64, msx, 0, msx_ntsc, msxkr, msx_state, msx, "Yeno", "MX64" , 0)
-COMP(1984, bruc100, msx, 0, msx_pal, msx, msx_state, msx, "Frael", "Bruc 100-1" , 0)
-
-COMP(1985, msx2, 0, msx, msx2_pal, msx2, msx_state, msx, "ASCII & Microsoft", "MSX2", 0)
-COMP(1986, ax350, msx2, 0, msx2_pal, msx2, msx_state, msx, "Al Alamiah", "AX-350", 0)
-COMP(1986, ax370, msx2, 0, msx2_pal, msx2, msx_state, msx, "Al Alamiah", "AX-370", 0)
-COMP(1986, expert20, msx2, 0, msx2_pal, msx2, msx_state, msx, "Gradiente", "Expert 2.0 (Brazil)" , GAME_NOT_WORKING) // Black screen
-COMP(1986, nms8220, msx2, 0, msx2_pal, msx2, msx_state, msx, "Philips", "NMS-8220 (12-jun-1986)", 0)
-COMP(1986, nms8220a, msx2, 0, msx2_pal, msx2, msx_state, msx, "Philips", "NMS-8220 (13-aug-1986)", 0)
-COMP(1986, vg8230, msx2, 0, msx2_pal, msx2, msx_state, msx, "Philips", "VG-8230", 0)
-COMP(1986, vg8235, msx2, 0, msx2_pal, msx2, msx_state, msx, "Philips", "VG-8235", 0)
-COMP(1986, vg8235f, msx2, 0, msx2_pal, msx2, msx_state, msx, "Philips", "VG-8235F", 0)
-COMP(1986, vg8240, msx2, 0, msx2_pal, msx2, msx_state, msx, "Philips", "VG-8240", 0)
-COMP(1986, nms8245, msx2, 0, msx2_pal, msx2, msx_state, msx, "Philips", "NMS-8245", 0)
-COMP(1986, nms8245f, msx2, 0, msx2_pal, msx2, msx_state, msx, "Philips", "NMS-8245F", 0)
-COMP(1986, nms8250, msx2, 0, msx2_pal, msx2, msx_state, msx, "Philips", "NMS-8250", 0)
-COMP(1986, nms8255, msx2, 0, msx2_pal, msx2, msx_state, msx, "Philips", "NMS-8255", 0)
-COMP(1986, nms8280, msx2, 0, msx2_pal, msx2, msx_state, msx, "Philips", "NMS-8280", 0)
-COMP(1986, nms8280g, msx2, 0, msx2_pal, msx2, msx_state, msx, "Philips", "NMS-8280G", 0)
-COMP(19??, hbf5, msx2, 0, msx2_pal, msx2, msx_state, msx, "Sony", "HB-F5", GAME_NOT_WORKING) // Will not go into basic
-COMP(1985, hbf9p, msx2, 0, msx2_pal, msx2, msx_state, msx, "Sony", "HB-F9P" , 0)
-COMP(19??, hbf9pr, msx2, 0, msx2_pal, msx2, msx_state, msx, "Sony", "HB-F9P Russion", GAME_NOT_WORKING) // Keyboard responds differently
-COMP(1985, hbf9s, msx2, 0, msx2_pal, msx2, msx_state, msx, "Sony", "HB-F9S" , 0)
-COMP(1985, hbf500p, msx2, 0, msx2_pal, msx2, msx_state, msx, "Sony", "HB-F500P", 0)
-COMP(1985, hbf700d, msx2, 0, msx2_pal, msx2, msx_state, msx, "Sony", "HB-F700D (Germany)" , 0)
-COMP(1985, hbf700f, msx2, 0, msx2_pal, msx2, msx_state, msx, "Sony", "HB-F700F" , 0)
-COMP(1985, hbf700p, msx2, 0, msx2_pal, msx2, msx_state, msx, "Sony", "HB-F700P" , 0)
-COMP(1985, hbf700s, msx2, 0, msx2_pal, msx2, msx_state, msx, "Sony", "HB-F700S (Spain)", 0)
-COMP(1986, hbg900ap, msx2, 0, msx2_pal, msx2, msx_state, msx, "Sony", "HB-G900AP", 0 )
-COMP(1986, hbg900p, msx2, 0, msx2_pal, msx2, msx_state, msx, "Sony", "HB-G900P", 0 )
-COMP(1986, hotbit20, msx2, 0, msx2_pal, msx2, msx_state, msx, "Sharp / Epcom", "HB-8000 Hotbit 2.0" , GAME_NOT_WORKING) // Black screen
-COMP(1986, tpc310, msx2, 0, msx2_pal, msx2, msx_state, msx, "Talent", "TPC-310", 0)
-COMP(19??, tpp311, msx2, 0, msx2_pal, msx2, msx_state, msx, "Talent", "TPP-311", 0)
-COMP(19??, tps312, msx2, 0, msx2_pal, msx2, msx_state, msx, "Talent", "TPS-312", 0)
-COMP(1986, hx23, msx2, 0, msx2_pal, msx2, msx_state, msx, "Toshiba", "HX-23", 0)
-COMP(1986, hx23f, msx2, 0, msx2_pal, msx2, msx_state, msx, "Toshiba", "HX-23F", 0)
-COMP(1986, cx7m, msx2, 0, msx2_pal, msx2, msx_state, msx, "Yamaha", "CX7M" , 0)
-COMP(1986, cx7m128, msx2, 0, msx2_pal, msx2, msx_state, msx, "Yamaha", "CX7M-128", 0)
-COMP(1983, mlg30, msx2, 0, msx2, msx2, msx_state, msx, "Mistubishi", "ML-G30", GAME_NOT_WORKING) // Screen flashes a few times before going into basic
-COMP(1985, fs5500, msx2, 0, msx2, msx2jp, msx_state, msx, "National / Matsushita", "FS-5500F1/F2 (Japan)", 0 )
-COMP(1986, fs4500, msx2, 0, msx2, msx2jp, msx_state, msx, "National / Matsushita", "FS-4500 (Japan)", 0 )
-COMP(1986, fs4700, msx2, 0, msx2, msx2jp, msx_state, msx, "National / Matsushita", "FS-4700 (Japan)", 0 )
-COMP(1986, fs5000, msx2, 0, msx2, msx2jp, msx_state, msx, "National / Matsushita", "FS-5000F2 (Japan)", 0 )
-COMP(1986, fs4600, msx2, 0, msx2, msx2jp, msx_state, msx, "National / Matsushita", "FS-4600 (Japan)", 0 )
-COMP(1986, fsa1, msx2, 0, msx2, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1 / 1st released version (Japan)", 0)
-COMP(1986, fsa1a, msx2, 0, msx2, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1 / 2nd released version (Japan)", 0)
-COMP(1987, fsa1mk2, msx2, 0, msx2, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1MK2 (Japan)", 0)
-COMP(1987, fsa1f, msx2, 0, msx2, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1F (Japan)", 0 )
-COMP(1987, fsa1fm, msx2, 0, msx2, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1FM (Japan)", 0 )
-COMP(19??, nms8250j, msx2, 0, msx2, msx2jp, msx_state, msx, "Philips", "NMS-8250J", GAME_NOT_WORKING) // Screen flashes a few times before going into basic
-COMP(19??, vg8230j, msx2, 0, msx2, msx2jp, msx_state, msx, "Philips", "VG-8230J", GAME_NOT_WORKING) // Screen flashes a few times before going into basic
-COMP(1986, hbf500, msx2, 0, msx2, msx2jp, msx_state, msx, "Sony", "HB-F500 (Japan)", 0)
-COMP(1986, hbf900, msx2, 0, msx2, msx2jp, msx_state, msx, "Sony", "HB-F900 / 1st released version (Japan)", 0)
-COMP(1986, hbf900a, msx2, 0, msx2, msx2jp, msx_state, msx, "Sony", "HB-F900 / 2nd released version (Japan)", 0)
-COMP(1986, hbf1, msx2, 0, msx2, msx2jp, msx_state, msx, "Sony", "HB-F1 (Japan)", GAME_NOT_WORKING ) // Screen stays a single color after a while
-COMP(1987, hbf12, msx2, 0, msx2, msx2jp, msx_state, msx, "Sony", "HB-F1II (Japan)", GAME_NOT_WORKING ) // Screen stays a single color after a while
-COMP(1987, hbf1xd, msx2, 0, msx2, msx2jp, msx_state, msx, "Sony", "HB-F1XD (Japan)", 0)
-COMP(1988, hbf1xdm2, msx2, 0, msx2, msx2jp, msx_state, msx, "Sony", "HB-F1XDMK2 (Japan)", 0)
-COMP(19??, mpc2300, msx2, 0, msx2, msx2, msx_state, msx, "Sanyo", "MPC-2300", GAME_NOT_WORKING) // Keyboard responds differently
-COMP(19??, mpc25fd, msx2, 0, msx2, msx2, msx_state, msx, "Sanyo", "Wavy MPC-25FD", GAME_NOT_WORKING) // Screen stays black
-COMP(1988, phc23, msx2, 0, msx2, msx2jp, msx_state, msx, "Sanyo", "Wavy PHC-23 (Japan)", 0)
-COMP(1986, cpc300, msx2, 0, msx2, msx2kr, msx_state, msx, "Daewoo", "IQ-2000 CPC-300 (Korea)", 0)
-COMP(1986, cpc300e, msx2, 0, msx2, msx2kr, msx_state, msx, "Daewoo", "IQ-2000 CPC-300E (Korea)", 0)
-COMP(1988, cpc400, msx2, 0, msx2, msx2kr, msx_state, msx, "Daewoo", "X-II CPC-400 (Korea)", 0 )
-COMP(1988, cpc400s, msx2, 0, msx2, msx2kr, msx_state, msx, "Daewoo", "X-II CPC-400S (Korea)", 0 )
-
-COMP(1988, msx2p, 0, msx, msx2p, msx2jp, msx_state, msx, "ASCII & Microsoft", "MSX2+", 0)
-COMP(19??, expert3i, msx2p, 0, msx2p, msx2, msx_state, msx, "Ciel", "Expert 3 IDE", GAME_NOT_WORKING ) // Some hardware not emulated
-COMP(1996, expert3t, msx2p, 0, msx2p, msx2, msx_state, msx, "Ciel", "Expert 3 Turbo", GAME_NOT_WORKING ) // Some hardware not emulated
-COMP(19??, expertac, msx2p, 0, msx2p, msx2, msx_state, msx, "Gradiente", "Expert AC88+", GAME_NOT_WORKING ) // Some hardware not emulated
-COMP(19??, expertdx, msx2p, 0, msx2p, msx2, msx_state, msx, "Gradiente", "Expert DDX+", GAME_NOT_WORKING ) // Some hardware not emulated
-COMP(1988, fsa1fx, msx2p, 0, msx2p, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1FX (Japan)", 0 )
-COMP(1988, fsa1wx, msx2p, 0, msx2p, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1WX / 1st released version (Japan)", 0 )
-COMP(1988, fsa1wxa, msx2p, 0, msx2p, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1WX / 2nd released version (Japan)", 0 )
-COMP(1989, fsa1wsx, msx2p, 0, msx2p, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1WSX (Japan)", 0 )
-COMP(1988, hbf1xdj, msx2p, 0, msx2p, msx2jp, msx_state, msx, "Sony", "HB-F1XDJ (Japan)", 0 )
-COMP(1989, hbf1xv, msx2p, 0, msx2p, msx2jp, msx_state, msx, "Sony", "HB-F1XV (Japan)", 0 )
-COMP(1988, phc70fd, msx2p, 0, msx2p, msx2jp, msx_state, msx, "Sanyo", "WAVY PHC-70FD (Japan)", 0 )
-COMP(1988, phc70fd2, msx2p, 0, msx2p, msx2jp, msx_state, msx, "Sanyo", "WAVY PHC-70FD2 (Japan)", 0 )
-COMP(1989, phc35j, msx2p, 0, msx2p, msx2jp, msx_state, msx, "Sanyo", "WAVY PHC-35J (Japan)", 0)
-COMP(19??, hbf9sp, msx2p, 0, msx2p, msx2jp, msx_state, msx, "Sony", "HB-F9S+", GAME_NOT_WORKING) // No MSX animation, screen switches between 2 single colors
+COMP(1983, msx, 0, 0, msx_gen, msx, msx_state, msx, "ASCII & Microsoft", "MSX" , 0)
+
+COMP(1983, ax170, msx, 0, ax170, msx, msx_state, msx, "Al Alamiah", "AX-170" , 0)
+COMP(1983, canonv10, msx, 0, canonv10, msx, msx_state, msx, "Canon", "V-10" , 0)
+COMP(1983, canonv20, msx, 0, canonv20, msx, msx_state, msx, "Canon", "V-20" , 0)
+COMP(1984, pv16, msx, 0, pv16, msx, msx_state, msx, "Casio", "PV-16", 0)
+COMP(1984, dpc100, msx, 0, dpc100, msxkr, msx_state, msx, "Daewoo", "IQ-1000 DPC-100 (Korea)" , 0)
+COMP(1984, dpc180, msx, 0, dpc180, msxkr, msx_state, msx, "Daewoo", "IQ-1000 DPC-180 (Korea)" , 0)
+COMP(1984, dpc200, msx, 0, dpc200, msxkr, msx_state, msx, "Daewoo", "IQ-1000 DPC-200 (Korea)" , 0)
+COMP(1983, gsfc200, msx, 0, gsfc200, msx, msx_state, msx, "Goldstar", "FC-200" , 0)
+COMP(1983, expert10, msx, 0, expert10, expert10, msx_state, msx, "Gradiente", "Expert 1.0 (Brazil)" , 0)
+COMP(1984, expert11, msx, 0, expert11, expert11, msx_state, msx, "Gradiente", "Expert 1.1 (Brazil)" , 0)
+COMP(1984, expert13, msx, 0, expert13, expert11, msx_state, msx, "Gradiente", "Expert 1.3 (Brazil)" , 0)
+COMP(1985, expertdp, msx, 0, expertdp, expert11, msx_state, msx, "Gradiente", "Expert DDPlus (Brazil)", 0)
+COMP(1984, expertpl, msx, 0, expertpl, expert11, msx_state, msx, "Gradiente", "Expert Plus (Brazil)" , 0)
+COMP(1983, jvchc7gb, msx, 0, jvchc7gb, msx, msx_state, msx, "JVC", "HC-7GB" , 0)
+COMP(1983, mlf80, msx, 0, mlf80, msx, msx_state, msx, "Mitsubishi", "ML-F80" , 0)
+COMP(1983, mlfx1, msx, 0, mlfx1, msx, msx_state, msx, "Mitsubishi", "ML-FX1" , 0)
+COMP(1984, cf1200, msx, 0, cf1200, msxjp, msx_state, msx, "National / Matsushita", "CF-1200 (Japan)" , 0)
+COMP(1983, cf2000, msx, 0, cf2000, msxjp, msx_state, msx, "National / Matsushita", "CF-2000 (Japan)" , 0)
+COMP(1984, cf2700, msx, 0, cf2700, msxjp, msx_state, msx, "National / Matsushita", "CF-2700 (Japan)" , 0)
+COMP(1984, cf3000, msx, 0, cf3000, msxjp, msx_state, msx, "National / Matsushita", "CF-3000 (Japan)" , 0)
+COMP(1985, cf3300, msx, 0, cf3300, msxjp, msx_state, msx, "National / Matsushita", "CF-3300 (Japan)", 0)
+COMP(1985, fs1300, msx, 0, fs1300, msxjp, msx_state, msx, "National / Matsushita", "FS-1300 (Japan)" , 0)
+COMP(1985, fs4000, msx, 0, fs4000, msxjp, msx_state, msx, "National / Matsushita", "FS-4000 (Japan)" , 0)
+COMP(1983, phc2, msx, 0, phc2, msx, msx_state, msx, "Olympia", "PHC-2" , 0)
+COMP(19??, phc28, msx, 0, phc28, msx, msx_state, msx, "Olympia", "PHC-28", 0)
+COMP(1984, cf2700g, msx, 0, cf2700g, msx, msx_state, msx, "Panasonic", "CF-2700G (Germany)", 0)
+COMP(1983, nms801, msx, 0, nms801, msx, msx_state, msx, "Philips", "NMS-801" , 0)
+COMP(1984, vg8000, msx, 0, vg8000, msx, msx_state, msx, "Philips", "VG-8000" , 0)
+COMP(1984, vg8010, msx, 0, vg8010, msx, msx_state, msx, "Philips", "VG-8010" , 0)
+COMP(1984, vg8010f, msx, 0, vg8010f, msx, msx_state, msx, "Philips", "VG-8010F" , 0)
+COMP(1985, vg802000, msx, 0, vg802000, msx, msx_state, msx, "Philips", "VG-8020-00" , 0)
+COMP(1985, vg802020, msx, 0, vg802020, msx, msx_state, msx, "Philips", "VG-8020-20" , 0)
+COMP(19??, vg8020f, msx, 0, vg8020f, msx, msx_state, msx, "Philips", "VG-8020F", 0)
+COMP(1985, piopx7, msx, 0, piopx7, msx, msx_state, msx, "Pioneer", "PX-07" , 0)
+COMP(19??, spc800, msx, 0, spc800, msx, msx_state, msx, "Samsung", "SPC-800", 0)
+COMP(1985, mpc64, msx, 0, mpc64, msxjp, msx_state, msx, "Sanyo", "MPC-64" , 0)
+COMP(1985, mpc100, msx, 0, mpc100, msx, msx_state, msx, "Sanyo", "MPC-100" , 0)
+COMP(1983, phc28l, msx, 0, phc28l, msx, msx_state, msx, "Sanyo", "PHC-28L", 0)
+COMP(1983, phc28s, msx, 0, phc28s, msx, msx_state, msx, "Sanyo", "PHC-28S", 0)
+COMP(19??, mpc10, msx, 0, mpc10, msx, msx_state, msx, "Sanyo", "Wavy MPC-10", 0)
+COMP(1985, hotbit11, msx, 0, hotbit11, hotbit, msx_state, msx, "Sharp / Epcom", "HB-8000 Hotbit 1.1" , 0)
+COMP(1985, hotbit12, msx, 0, hotbit12, hotbit, msx_state, msx, "Sharp / Epcom", "HB-8000 Hotbit 1.2" , 0)
+COMP(1985, hotbi13b, msx, 0, hotbi13b, hotbit, msx_state, msx, "Sharp / Epcom", "HB-8000 Hotbit 1.3b" , 0)
+COMP(1985, hotbi13p, msx, 0, hotbi13p, hotbit, msx_state, msx, "Sharp / Epcom", "HB-8000 Hotbit 1.3p" , 0)
+COMP(1985, hb10p, msx, 0, hb10p, msx, msx_state, msx, "Sony", "HB-10P" , 0)
+COMP(1985, hb20p, msx, 0, hb20p, msx, msx_state, msx, "Sony", "HB-20P (Spanish)" , 0)
+COMP(1985, hb201, msx, 0, hb201, msxjp, msx_state, msx, "Sony", "HB-201 (Japan)" , 0)
+COMP(1985, hb201p, msx, 0, hb201p, msx, msx_state, msx, "Sony", "HB-201P" , 0)
+COMP(1984, hb501p, msx, 0, hb501p, msx, msx_state, msx, "Sony", "HB-501P" , 0)
+COMP(1983, hb55d, msx, 0, hb55d, msx, msx_state, msx, "Sony", "HB-55D (Germany)" , 0)
+COMP(1983, hb55p, msx, 0, hb55p, msx, msx_state, msx, "Sony", "HB-55P" , 0)
+COMP(1983, hb75d, msx, 0, hb75d, msx, msx_state, msx, "Sony", "HB-75D (Germany)" , 0)
+COMP(1983, hb75p, msx, 0, hb75p, msx, msx_state, msx, "Sony", "HB-75P" , 0)
+COMP(1985, svi728, msx, 0, svi728, msx, msx_state, msx, "Spectravideo", "SVI-728", 0)
+COMP(1985, svi738, msx, 0, svi738, msx, msx_state, msx, "Spectravideo", "SVI-738", 0)
+COMP(1985, svi738sw, msx, 0, svi738sw, msx, msx_state, msx, "Spectravideo", "SVI-738 (Swedish)", 0)
+COMP(1985, svi738pl, msx, 0, svi738pl, msx, msx_state, msx, "Spectravideo", "SVI-738 (Poland)", 0)
+COMP(1983, tadpc200, msx, 0, tadpc200, msx, msx_state, msx, "Talent", "DPC-200" , 0)
+COMP(1983, tadpc20a, msx, 0, tadpc20a, msx, msx_state, msx, "Talent", "DPC-200A" , 0)
+COMP(1984, hx10, msx, 0, hx10, msx, msx_state, msx, "Toshiba", "HX-10" , 0)
+COMP(1984, hx10s, msx, 0, hx10s, msx, msx_state, msx, "Toshiba", "HX-10S" , 0)
+COMP(1984, hx20, msx, 0, hx20, msx, msx_state, msx, "Toshiba", "HX-20" , 0)
+COMP(1984, cx5m, msx, 0, cx5m, msx, msx_state, msx, "Yamaha", "CX5M" , 0)
+COMP(1984, cx5m128, msx, 0, cx5m128, msx, msx_state, msx, "Yamaha", "CX5M-128" , 0)
+COMP(1984, cx5m2, msx, 0, cx5m2, msx, msx_state, msx, "Yamaha", "CX5MII" , 0)
+COMP(1984, yis303, msx, 0, yis303, msx, msx_state, msx, "Yamaha", "YIS303" , 0)
+COMP(1984, yis503, msx, 0, yis503, msx, msx_state, msx, "Yamaha", "YIS503" , 0)
+COMP(19??, yis503f, msx, 0, yis503f, msx, msx_state, msx, "Yamaha", "YIS503F", 0)
+COMP(1984, yis503ii, msx, 0, yis503ii, msx, msx_state, msx, "Yamaha", "YIS503II" , 0)
+COMP(1986, y503iir, msx, 0, y503iir, msx, msx_state, msx, "Yamaha", "YIS503IIR (Russian)" , 0)
+COMP(1986, y503iir2, msx, 0, y503iir2, msx, msx_state, msx, "Yamaha", "YIS503IIR (Estonian)" , 0)
+COMP(1984, yis503m, msx, 0, yis503m, msx, msx_state, msx, "Yamaha", "YIS503M", 0)
+COMP(1984, yc64, msx, 0, yc64, msx, msx_state, msx, "Yashica", "YC-64" , 0)
+COMP(1984, mx64, msx, 0, mx64, msxkr, msx_state, msx, "Yeno", "MX64" , 0)
+COMP(1984, bruc100, msx, 0, bruc100, msx, msx_state, msx, "Frael", "Bruc 100-1" , 0)
+
+COMP(1985, msx2, 0, msx, msx2_gen, msx2, msx_state, msx, "ASCII & Microsoft", "MSX2", 0)
+COMP(1986, ax350, msx2, 0, ax350, msx2, msx_state, msx, "Al Alamiah", "AX-350", 0)
+COMP(1986, ax370, msx2, 0, ax370, msx2, msx_state, msx, "Al Alamiah", "AX-370", 0)
+COMP(1986, expert20, msx2, 0, expert20, msx2, msx_state, msx, "Gradiente", "Expert 2.0 (Brazil)" , GAME_NOT_WORKING) // Black screen
+COMP(1986, nms8220, msx2, 0, nms8220, msx2, msx_state, msx, "Philips", "NMS-8220 (12-jun-1986)", 0)
+COMP(1986, nms8220a, msx2, 0, nms8220a, msx2, msx_state, msx, "Philips", "NMS-8220 (13-aug-1986)", 0)
+COMP(1986, vg8230, msx2, 0, vg8230, msx2, msx_state, msx, "Philips", "VG-8230", 0)
+COMP(1986, vg8235, msx2, 0, vg8235, msx2, msx_state, msx, "Philips", "VG-8235", 0)
+COMP(1986, vg8235f, msx2, 0, vg8235f, msx2, msx_state, msx, "Philips", "VG-8235F", 0)
+COMP(1986, vg8240, msx2, 0, vg8240, msx2, msx_state, msx, "Philips", "VG-8240", 0)
+COMP(1986, nms8245, msx2, 0, nms8245, msx2, msx_state, msx, "Philips", "NMS-8245", 0)
+COMP(1986, nms8245f, msx2, 0, nms8245f, msx2, msx_state, msx, "Philips", "NMS-8245F", 0)
+COMP(1986, nms8250, msx2, 0, nms8250, msx2, msx_state, msx, "Philips", "NMS-8250", 0)
+COMP(1986, nms8255, msx2, 0, nms8255, msx2, msx_state, msx, "Philips", "NMS-8255", 0)
+COMP(1986, nms8280, msx2, 0, nms8280, msx2, msx_state, msx, "Philips", "NMS-8280", 0)
+COMP(1986, nms8280g, msx2, 0, nms8280g, msx2, msx_state, msx, "Philips", "NMS-8280G", 0)
+COMP(19??, hbf5, msx2, 0, hbf5, msx2, msx_state, msx, "Sony", "HB-F5", GAME_NOT_WORKING) // Will not go into basic
+COMP(1985, hbf9p, msx2, 0, hbf9p, msx2, msx_state, msx, "Sony", "HB-F9P" , 0)
+COMP(19??, hbf9pr, msx2, 0, hbf9pr, msx2, msx_state, msx, "Sony", "HB-F9P Russion", GAME_NOT_WORKING) // Keyboard responds differently
+COMP(1985, hbf9s, msx2, 0, hbf9s, msx2, msx_state, msx, "Sony", "HB-F9S" , 0)
+COMP(1985, hbf500p, msx2, 0, hbf500p, msx2, msx_state, msx, "Sony", "HB-F500P", 0)
+COMP(1985, hbf700d, msx2, 0, hbf700d, msx2, msx_state, msx, "Sony", "HB-F700D (Germany)" , 0)
+COMP(1985, hbf700f, msx2, 0, hbf700f, msx2, msx_state, msx, "Sony", "HB-F700F" , 0)
+COMP(1985, hbf700p, msx2, 0, hbf700p, msx2, msx_state, msx, "Sony", "HB-F700P" , 0)
+COMP(1985, hbf700s, msx2, 0, hbf700s, msx2, msx_state, msx, "Sony", "HB-F700S (Spain)", 0)
+COMP(1986, hbg900ap, msx2, 0, hbg900ap, msx2, msx_state, msx, "Sony", "HB-G900AP", 0 )
+COMP(1986, hbg900p, msx2, 0, hbg900p, msx2, msx_state, msx, "Sony", "HB-G900P", 0 )
+COMP(1986, hotbit20, msx2, 0, hotbit20, msx2, msx_state, msx, "Sharp / Epcom", "HB-8000 Hotbit 2.0" , GAME_NOT_WORKING) // Black screen
+COMP(1986, tpc310, msx2, 0, tpc310, msx2, msx_state, msx, "Talent", "TPC-310", 0)
+COMP(19??, tpp311, msx2, 0, tpp311, msx2, msx_state, msx, "Talent", "TPP-311", 0)
+COMP(19??, tps312, msx2, 0, tps312, msx2, msx_state, msx, "Talent", "TPS-312", 0)
+COMP(1986, hx23, msx2, 0, hx23, msx2, msx_state, msx, "Toshiba", "HX-23", 0)
+COMP(1986, hx23f, msx2, 0, hx23f, msx2, msx_state, msx, "Toshiba", "HX-23F", 0)
+COMP(1986, cx7m, msx2, 0, cx7m, msx2, msx_state, msx, "Yamaha", "CX7M" , 0)
+COMP(1986, cx7m128, msx2, 0, cx7m128, msx2, msx_state, msx, "Yamaha", "CX7M-128", 0)
+COMP(1983, mlg30, msx2, 0, mlg30, msx2, msx_state, msx, "Mistubishi", "ML-G30", GAME_NOT_WORKING) // Screen flashes a few times before going into basic
+COMP(1985, fs5500, msx2, 0, fs5500, msx2jp, msx_state, msx, "National / Matsushita", "FS-5500F1/F2 (Japan)", 0 )
+COMP(1986, fs4500, msx2, 0, fs4500, msx2jp, msx_state, msx, "National / Matsushita", "FS-4500 (Japan)", 0 )
+COMP(1986, fs4700, msx2, 0, fs4700, msx2jp, msx_state, msx, "National / Matsushita", "FS-4700 (Japan)", 0 )
+COMP(1986, fs5000, msx2, 0, fs5000, msx2jp, msx_state, msx, "National / Matsushita", "FS-5000F2 (Japan)", 0 )
+COMP(1986, fs4600, msx2, 0, fs4600, msx2jp, msx_state, msx, "National / Matsushita", "FS-4600 (Japan)", 0 )
+COMP(1986, fsa1, msx2, 0, fsa1, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1 / 1st released version (Japan)", 0)
+COMP(1986, fsa1a, msx2, 0, fsa1a, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1 / 2nd released version (Japan)", 0)
+COMP(1987, fsa1mk2, msx2, 0, fsa1mk2, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1MK2 (Japan)", 0)
+COMP(1987, fsa1f, msx2, 0, fsa1f, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1F (Japan)", 0 )
+COMP(1987, fsa1fm, msx2, 0, fsa1fm, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1FM (Japan)", 0 )
+COMP(19??, nms8250j, msx2, 0, nms8250j, msx2jp, msx_state, msx, "Philips", "NMS-8250J", GAME_NOT_WORKING) // Screen flashes a few times before going into basic
+COMP(19??, vg8230j, msx2, 0, vg8230j, msx2jp, msx_state, msx, "Philips", "VG-8230J", GAME_NOT_WORKING) // Screen flashes a few times before going into basic
+COMP(1986, hbf500, msx2, 0, hbf500, msx2jp, msx_state, msx, "Sony", "HB-F500 (Japan)", 0)
+COMP(1986, hbf900, msx2, 0, hbf900, msx2jp, msx_state, msx, "Sony", "HB-F900 / 1st released version (Japan)", 0)
+COMP(1986, hbf900a, msx2, 0, hbf900a, msx2jp, msx_state, msx, "Sony", "HB-F900 / 2nd released version (Japan)", 0)
+COMP(1986, hbf1, msx2, 0, hbf1, msx2jp, msx_state, msx, "Sony", "HB-F1 (Japan)", GAME_NOT_WORKING ) // Screen stays a single color after a while
+COMP(1987, hbf12, msx2, 0, hbf12, msx2jp, msx_state, msx, "Sony", "HB-F1II (Japan)", GAME_NOT_WORKING ) // Screen stays a single color after a while
+COMP(1987, hbf1xd, msx2, 0, hbf1xd, msx2jp, msx_state, msx, "Sony", "HB-F1XD (Japan)", 0)
+COMP(1988, hbf1xdm2, msx2, 0, hbf1xdm2, msx2jp, msx_state, msx, "Sony", "HB-F1XDMK2 (Japan)", 0)
+COMP(19??, mpc2300, msx2, 0, mpc2300, msx2, msx_state, msx, "Sanyo", "MPC-2300", GAME_NOT_WORKING) // Keyboard responds differently
+COMP(19??, mpc25fd, msx2, 0, mpc25fd, msx2, msx_state, msx, "Sanyo", "Wavy MPC-25FD", GAME_NOT_WORKING) // Screen stays black
+COMP(1988, phc23, msx2, 0, phc23, msx2jp, msx_state, msx, "Sanyo", "Wavy PHC-23 (Japan)", 0)
+COMP(1986, cpc300, msx2, 0, cpc300, msx2kr, msx_state, msx, "Daewoo", "IQ-2000 CPC-300 (Korea)", 0)
+COMP(1986, cpc300e, msx2, 0, cpc300e, msx2kr, msx_state, msx, "Daewoo", "IQ-2000 CPC-300E (Korea)", 0)
+COMP(1988, cpc400, msx2, 0, cpc400, msx2kr, msx_state, msx, "Daewoo", "X-II CPC-400 (Korea)", 0 )
+COMP(1988, cpc400s, msx2, 0, cpc400s, msx2kr, msx_state, msx, "Daewoo", "X-II CPC-400S (Korea)", 0 )
+
+COMP(1988, msx2p, 0, msx, msx2pgen, msx2jp, msx_state, msx, "ASCII & Microsoft", "MSX2+", 0)
+COMP(19??, expert3i, msx2p, 0, expert3i, msx2, msx_state, msx, "Ciel", "Expert 3 IDE", GAME_NOT_WORKING ) // Some hardware not emulated
+COMP(1996, expert3t, msx2p, 0, expert3t, msx2, msx_state, msx, "Ciel", "Expert 3 Turbo", GAME_NOT_WORKING ) // Some hardware not emulated
+COMP(19??, expertac, msx2p, 0, expertac, msx2, msx_state, msx, "Gradiente", "Expert AC88+", GAME_NOT_WORKING ) // Some hardware not emulated
+COMP(19??, expertdx, msx2p, 0, expertdx, msx2, msx_state, msx, "Gradiente", "Expert DDX+", GAME_NOT_WORKING ) // Some hardware not emulated
+COMP(1988, fsa1fx, msx2p, 0, fsa1fx, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1FX (Japan)", 0 )
+COMP(1988, fsa1wx, msx2p, 0, fsa1wx, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1WX / 1st released version (Japan)", 0 )
+COMP(1988, fsa1wxa, msx2p, 0, fsa1wxa, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1WX / 2nd released version (Japan)", 0 )
+COMP(1989, fsa1wsx, msx2p, 0, fsa1wsx, msx2jp, msx_state, msx, "Panasonic / Matsushita", "FS-A1WSX (Japan)", 0 )
+COMP(1988, hbf1xdj, msx2p, 0, hbf1xdj, msx2jp, msx_state, msx, "Sony", "HB-F1XDJ (Japan)", 0 )
+COMP(1989, hbf1xv, msx2p, 0, hbf1xv, msx2jp, msx_state, msx, "Sony", "HB-F1XV (Japan)", 0 )
+COMP(1988, phc70fd, msx2p, 0, phc70fd, msx2jp, msx_state, msx, "Sanyo", "WAVY PHC-70FD (Japan)", 0 )
+COMP(1988, phc70fd2, msx2p, 0, phc70fd2, msx2jp, msx_state, msx, "Sanyo", "WAVY PHC-70FD2 (Japan)", 0 )
+COMP(1989, phc35j, msx2p, 0, phc35j, msx2jp, msx_state, msx, "Sanyo", "WAVY PHC-35J (Japan)", 0)
+COMP(19??, hbf9sp, msx2p, 0, hbf9sp, msx2jp, msx_state, msx, "Sony", "HB-F9S+", GAME_NOT_WORKING) // No MSX animation, screen switches between 2 single colors
/* Temporary placeholders */
-COMP(19??, fsa1gt, msx2p, 0, msx2, msx2jp, msx_state, msx, "Panasonic", "FS-A1GT", GAME_NOT_WORKING)
-COMP(19??, fsa1st, msx2p, 0, msx2, msx2jp, msx_state, msx, "Panasonic", "FS-A1ST", GAME_NOT_WORKING)
+COMP(19??, fsa1gt, msx2p, 0, fsa1gt, msx2jp, msx_state, msx, "Panasonic", "FS-A1GT", GAME_NOT_WORKING)
+COMP(19??, fsa1st, msx2p, 0, fsa1st, msx2jp, msx_state, msx, "Panasonic", "FS-A1ST", GAME_NOT_WORKING)
diff --git a/src/mess/includes/msx.h b/src/mess/includes/msx.h
index 6532ce4f29d..0bb28a7dd52 100644
--- a/src/mess/includes/msx.h
+++ b/src/mess/includes/msx.h
@@ -35,11 +35,15 @@
#define TC8521_TAG "rtc"
+#define MCFG_MSX_LAYOUT(_layout) \
+ msx_state::set_layout(*owner, msx_slot_layout_##_layout);
+
class msx_state : public driver_device
{
public:
msx_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
+ m_layout(NULL),
m_maincpu(*this, "maincpu"),
m_v9938(*this, "v9938"),
m_v9958(*this, "v9958"),
@@ -74,6 +78,9 @@ public:
m_io_key4(*this, "KEY4"),
m_io_key5(*this, "KEY5") { }
+ // static configuration helpers
+ static void set_layout(device_t &device, const msx_slot_layout *layout) { downcast<msx_state &>(device).m_layout = layout; }
+
DECLARE_WRITE8_MEMBER(msx_page0_w);
DECLARE_WRITE8_MEMBER(msx_page0_1_w);
DECLARE_WRITE8_MEMBER(msx_page1_w);
diff --git a/src/mess/includes/msx_slot.h b/src/mess/includes/msx_slot.h
index 5c7b8dfc21f..1479504fc4f 100644
--- a/src/mess/includes/msx_slot.h
+++ b/src/mess/includes/msx_slot.h
@@ -237,20 +237,5 @@ const msx_slot msx_slot_list[] = {
#define MSX_SLOT_SAVESRAM(nm) \
static int slot_##nm##_savesram (running_machine &machine, slot_state *state)
-struct msx_driver_struct {
- char name[9];
- const msx_slot_layout *layout;
-};
-
-extern const msx_driver_struct msx_driver_list[];
-
-#define MSX_DRIVER_LIST \
-const msx_driver_struct msx_driver_list[] = {
-#define MSX_DRIVER(foo) \
- { #foo, msx_slot_layout_##foo },
-#define MSX_DRIVER_END \
- { "", NULL } \
-};
-
#endif /* MSX_SLOT_H_ */
diff --git a/src/mess/machine/msx.c b/src/mess/machine/msx.c
index 222d20627c2..f65ef0b6628 100644
--- a/src/mess/machine/msx.c
+++ b/src/mess/machine/msx.c
@@ -788,10 +788,13 @@ void msx_state::msx_memory_init()
int size = 0;
const msx_slot_layout *layout= (msx_slot_layout*)NULL;
const msx_slot *slot;
- const msx_driver_struct *driver;
slot_state *st;
UINT8 *mem = NULL;
+ if ( m_layout == NULL ) {
+ fatalerror("No msx slot layout defined for this system!\n");
+ }
+
m_empty = auto_alloc_array(machine(), UINT8, 0x4000);
memset (m_empty, 0xff, 0x4000);
@@ -803,21 +806,7 @@ void msx_state::msx_memory_init()
}
}
- for (driver = msx_driver_list; driver->name[0]; driver++) {
- if (!strcmp (driver->name, machine().system().name)) {
- layout = driver->layout;
- }
- }
-
- if (!layout) {
- logerror ("msx_memory_init: error: missing layout definition in "
- "msx_driver_list\n");
- return;
- }
-
- m_layout = layout;
-
- for (; layout->entry != MSX_LAYOUT_LAST; layout++) {
+ for (layout = m_layout; layout->entry != MSX_LAYOUT_LAST; layout++) {
switch (layout->entry) {
case MSX_LAYOUT_SLOT_ENTRY:
prim = layout->slot_primary;