summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2021-09-07 23:15:50 +1000
committer Vas Crabb <vas@vastheman.com>2021-09-07 23:15:50 +1000
commit142f96023889fc2c09a01318947f81cdb0e0f424 (patch)
tree39135ee898b7213937dbc779528f3550982b6a5a
parentd6873bfaccee1b1c5bb8e6ec9127c4ed860d8564 (diff)
-Reworked device type definition macros a little and added more Doxygen.
* Reworked device type definition macros to eliminate one level of indirection when using device types by name. * Fixed a potential initialisation order issue that could affect device parent ROMs. * Eliminated the need for DEFINE_DEVICE_TYPE_NS - just use DEFINE_DEVICE_TYPE or DEFINE_DEVICE_TYPE_PRIVATE with fully-qualified names. * Changed device type aliases to static auto references in the headers. * Added Doxygen comments for system/device definition macros and system flags. -Added ROM parents for m68705u3 and a2diskiing.
-rw-r--r--src/devices/bus/a2bus/a2diskiing.h8
-rw-r--r--src/devices/bus/amiga/keyboard/a1200.cpp2
-rw-r--r--src/devices/bus/amiga/keyboard/a2000.cpp10
-rw-r--r--src/devices/bus/amiga/zorro/a2052.cpp2
-rw-r--r--src/devices/bus/amiga/zorro/a2058.cpp2
-rw-r--r--src/devices/bus/amiga/zorro/a2065.cpp2
-rw-r--r--src/devices/bus/amiga/zorro/a2232.cpp2
-rw-r--r--src/devices/bus/amiga/zorro/a590.cpp4
-rw-r--r--src/devices/bus/amiga/zorro/action_replay.cpp6
-rw-r--r--src/devices/bus/amiga/zorro/buddha.cpp2
-rw-r--r--src/devices/bus/hexbus/hexbus.cpp2
-rw-r--r--src/devices/bus/hexbus/hx5102.cpp2
-rw-r--r--src/devices/bus/hexbus/tp0370.cpp2
-rw-r--r--src/devices/bus/hp_dio/hp98265a.cpp2
-rw-r--r--src/devices/bus/hp_dio/hp98543.cpp2
-rw-r--r--src/devices/bus/hp_dio/hp98544.cpp2
-rw-r--r--src/devices/bus/hp_dio/hp98550.cpp2
-rw-r--r--src/devices/bus/hp_dio/hp98603a.cpp2
-rw-r--r--src/devices/bus/hp_dio/hp98603b.cpp2
-rw-r--r--src/devices/bus/hp_dio/hp98620.cpp2
-rw-r--r--src/devices/bus/hp_dio/hp98643.cpp2
-rw-r--r--src/devices/bus/hp_dio/hp98644.cpp2
-rw-r--r--src/devices/bus/hp_dio/hp_dio.cpp8
-rw-r--r--src/devices/bus/hp_dio/human_interface.cpp2
-rw-r--r--src/devices/bus/hp_hil/hlekbd.cpp4
-rw-r--r--src/devices/bus/hp_hil/hlemouse.cpp2
-rw-r--r--src/devices/bus/intellec4/insdatastor.cpp2
-rw-r--r--src/devices/bus/intellec4/intellec4.cpp4
-rw-r--r--src/devices/bus/intellec4/prommemory.cpp2
-rw-r--r--src/devices/bus/intellec4/tapereader.cpp2
-rw-r--r--src/devices/bus/interpro/keyboard/hle.cpp2
-rw-r--r--src/devices/bus/interpro/keyboard/lle.cpp2
-rw-r--r--src/devices/bus/nubus/nubus_image.cpp2
-rw-r--r--src/devices/bus/rs232/hlemouse.cpp12
-rw-r--r--src/devices/bus/sgikbd/hlekbd.cpp2
-rw-r--r--src/devices/bus/sunkbd/hlekbd.cpp12
-rw-r--r--src/devices/bus/sunmouse/hlemouse.cpp4
-rw-r--r--src/devices/bus/ti8x/bitsocket.cpp2
-rw-r--r--src/devices/bus/ti8x/graphlinkhle.cpp2
-rw-r--r--src/devices/bus/ti8x/teeconn.cpp2
-rw-r--r--src/devices/bus/ti8x/tispeaker.cpp4
-rw-r--r--src/devices/bus/ti99/colorbus/busmouse.cpp2
-rw-r--r--src/devices/bus/ti99/colorbus/colorbus.cpp2
-rw-r--r--src/devices/bus/ti99/gromport/cartridges.cpp2
-rw-r--r--src/devices/bus/ti99/gromport/gkracker.cpp2
-rw-r--r--src/devices/bus/ti99/gromport/gromport.cpp2
-rw-r--r--src/devices/bus/ti99/gromport/multiconn.cpp2
-rw-r--r--src/devices/bus/ti99/gromport/singleconn.cpp2
-rw-r--r--src/devices/bus/ti99/internal/992board.cpp12
-rw-r--r--src/devices/bus/ti99/internal/998board.cpp10
-rw-r--r--src/devices/bus/ti99/internal/buffram.cpp2
-rw-r--r--src/devices/bus/ti99/internal/datamux.cpp2
-rw-r--r--src/devices/bus/ti99/internal/evpcconn.cpp2
-rw-r--r--src/devices/bus/ti99/internal/genboard.cpp6
-rw-r--r--src/devices/bus/ti99/internal/ioport.cpp2
-rw-r--r--src/devices/bus/ti99/joyport/handset.cpp4
-rw-r--r--src/devices/bus/ti99/joyport/joyport.cpp2
-rw-r--r--src/devices/bus/ti99/joyport/mecmouse.cpp2
-rw-r--r--src/devices/bus/ti99/peb/bwg.cpp2
-rw-r--r--src/devices/bus/ti99/peb/cc_fdc.cpp12
-rw-r--r--src/devices/bus/ti99/peb/evpc.cpp2
-rw-r--r--src/devices/bus/ti99/peb/forti.cpp2
-rw-r--r--src/devices/bus/ti99/peb/hfdc.cpp2
-rw-r--r--src/devices/bus/ti99/peb/horizon.cpp2
-rw-r--r--src/devices/bus/ti99/peb/hsgpl.cpp2
-rw-r--r--src/devices/bus/ti99/peb/memex.cpp2
-rw-r--r--src/devices/bus/ti99/peb/myarcfdc.cpp4
-rw-r--r--src/devices/bus/ti99/peb/myarcmem.cpp2
-rw-r--r--src/devices/bus/ti99/peb/pcode.cpp2
-rw-r--r--src/devices/bus/ti99/peb/peribox.cpp12
-rw-r--r--src/devices/bus/ti99/peb/pgram.cpp2
-rw-r--r--src/devices/bus/ti99/peb/samsmem.cpp2
-rw-r--r--src/devices/bus/ti99/peb/sidmaster.cpp2
-rw-r--r--src/devices/bus/ti99/peb/spchsyn.cpp2
-rw-r--r--src/devices/bus/ti99/peb/ti_32kmem.cpp2
-rw-r--r--src/devices/bus/ti99/peb/ti_fdc.cpp2
-rw-r--r--src/devices/bus/ti99/peb/ti_rs232.cpp6
-rw-r--r--src/devices/bus/ti99/peb/tn_ide.cpp2
-rw-r--r--src/devices/bus/ti99/peb/tn_usbsm.cpp2
-rw-r--r--src/devices/cpu/dsp56156/dsp56156.cpp2
-rw-r--r--src/devices/cpu/m6805/m68705.h2
-rw-r--r--src/devices/machine/i8255.cpp1
-rw-r--r--src/devices/machine/i8255.h2
-rw-r--r--src/devices/video/hd61830.cpp1
-rw-r--r--src/devices/video/hd61830.h2
-rw-r--r--src/emu/device.h120
-rw-r--r--src/emu/driver.h16
-rw-r--r--src/emu/emucore.h18
-rw-r--r--src/emu/gamedrv.h354
-rw-r--r--src/mame/video/k053244_k053245.cpp1
-rw-r--r--src/mame/video/k053244_k053245.h2
-rw-r--r--src/mame/video/k053246_k053247_k055673.cpp1
-rw-r--r--src/mame/video/k053246_k053247_k055673.h2
93 files changed, 584 insertions, 202 deletions
diff --git a/src/devices/bus/a2bus/a2diskiing.h b/src/devices/bus/a2bus/a2diskiing.h
index 94025b0854f..a3b07e78063 100644
--- a/src/devices/bus/a2bus/a2diskiing.h
+++ b/src/devices/bus/a2bus/a2diskiing.h
@@ -14,9 +14,13 @@
#pragma once
#include "a2bus.h"
+#include "a2diskii.h"
+
+#include "machine/wozfdc.h"
#include "imagedev/floppy.h"
+
#include "formats/flopimg.h"
-#include "machine/wozfdc.h"
+
//**************************************************************************
// TYPE DEFINITIONS
@@ -54,6 +58,8 @@ class a2bus_diskiing_device: public diskiing_device
{
public:
a2bus_diskiing_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ static auto parent_rom_device_type() { return &A2BUS_DISKII; }
};
class a2bus_diskiing13_device: public diskiing_device
diff --git a/src/devices/bus/amiga/keyboard/a1200.cpp b/src/devices/bus/amiga/keyboard/a1200.cpp
index e9107fbe5be..4877903d73a 100644
--- a/src/devices/bus/amiga/keyboard/a1200.cpp
+++ b/src/devices/bus/amiga/keyboard/a1200.cpp
@@ -57,7 +57,7 @@
// GLOBAL VARIABLES
//**************************************************************************
-DEFINE_DEVICE_TYPE_NS(A1200_KBD, bus::amiga::keyboard, a1200_kbd_device, "a1200kbd_rb", "Amiga 1200 Keyboard Rev B")
+DEFINE_DEVICE_TYPE(A1200_KBD, bus::amiga::keyboard::a1200_kbd_device, "a1200kbd_rb", "Amiga 1200 Keyboard Rev B")
diff --git a/src/devices/bus/amiga/keyboard/a2000.cpp b/src/devices/bus/amiga/keyboard/a2000.cpp
index b9728ca7f26..eb0ab7c5058 100644
--- a/src/devices/bus/amiga/keyboard/a2000.cpp
+++ b/src/devices/bus/amiga/keyboard/a2000.cpp
@@ -74,11 +74,11 @@
// GLOBAL VARIABLES
//**************************************************************************
-DEFINE_DEVICE_TYPE_NS(A2000_KBD_G80_US, bus::amiga::keyboard, a2000_kbd_g80_us_device, "a2000kbd_g80_us", "Amiga 2000 Keyboard (Cherry - U.S./Canada)")
-DEFINE_DEVICE_TYPE_NS(A2000_KBD_G80_DE, bus::amiga::keyboard, a2000_kbd_g80_de_device, "a2000kbd_g80_de", "Amiga 2000 Keyboard (Cherry - Germany/Austria)")
-DEFINE_DEVICE_TYPE_NS(A2000_KBD_G80_SE, bus::amiga::keyboard, a2000_kbd_g80_se_device, "a2000kbd_g80_se", "Amiga 2000 Keyboard (Cherry - Sweden/Finland)")
-DEFINE_DEVICE_TYPE_NS(A2000_KBD_G80_DK, bus::amiga::keyboard, a2000_kbd_g80_dk_device, "a2000kbd_g80_dk", "Amiga 2000 Keyboard (Cherry - Denmark)")
-DEFINE_DEVICE_TYPE_NS(A2000_KBD_G80_GB, bus::amiga::keyboard, a2000_kbd_g80_gb_device, "a2000kbd_g80_gb", "Amiga 2000 Keyboard (Cherry - UK)")
+DEFINE_DEVICE_TYPE(A2000_KBD_G80_US, bus::amiga::keyboard::a2000_kbd_g80_us_device, "a2000kbd_g80_us", "Amiga 2000 Keyboard (Cherry - U.S./Canada)")
+DEFINE_DEVICE_TYPE(A2000_KBD_G80_DE, bus::amiga::keyboard::a2000_kbd_g80_de_device, "a2000kbd_g80_de", "Amiga 2000 Keyboard (Cherry - Germany/Austria)")
+DEFINE_DEVICE_TYPE(A2000_KBD_G80_SE, bus::amiga::keyboard::a2000_kbd_g80_se_device, "a2000kbd_g80_se", "Amiga 2000 Keyboard (Cherry - Sweden/Finland)")
+DEFINE_DEVICE_TYPE(A2000_KBD_G80_DK, bus::amiga::keyboard::a2000_kbd_g80_dk_device, "a2000kbd_g80_dk", "Amiga 2000 Keyboard (Cherry - Denmark)")
+DEFINE_DEVICE_TYPE(A2000_KBD_G80_GB, bus::amiga::keyboard::a2000_kbd_g80_gb_device, "a2000kbd_g80_gb", "Amiga 2000 Keyboard (Cherry - UK)")
diff --git a/src/devices/bus/amiga/zorro/a2052.cpp b/src/devices/bus/amiga/zorro/a2052.cpp
index 69b5f324d18..379a75270c5 100644
--- a/src/devices/bus/amiga/zorro/a2052.cpp
+++ b/src/devices/bus/amiga/zorro/a2052.cpp
@@ -19,7 +19,7 @@
// DEVICE DEFINITIONS
//**************************************************************************
-DEFINE_DEVICE_TYPE_NS(ZORRO_A2052, bus::amiga::zorro, a2052_device, "zorro_a2052", "CBM A2052 Fast Memory")
+DEFINE_DEVICE_TYPE(ZORRO_A2052, bus::amiga::zorro::a2052_device, "zorro_a2052", "CBM A2052 Fast Memory")
namespace bus::amiga::zorro {
diff --git a/src/devices/bus/amiga/zorro/a2058.cpp b/src/devices/bus/amiga/zorro/a2058.cpp
index 34a587454d8..26d5f393222 100644
--- a/src/devices/bus/amiga/zorro/a2058.cpp
+++ b/src/devices/bus/amiga/zorro/a2058.cpp
@@ -19,7 +19,7 @@
// DEVICE DEFINITIONS
//**************************************************************************
-DEFINE_DEVICE_TYPE_NS(ZORRO_A2058, bus::amiga::zorro, a2058_device, "zorro_a2058", "CBM A2058 Fast Memory")
+DEFINE_DEVICE_TYPE(ZORRO_A2058, bus::amiga::zorro::a2058_device, "zorro_a2058", "CBM A2058 Fast Memory")
namespace bus::amiga::zorro {
diff --git a/src/devices/bus/amiga/zorro/a2065.cpp b/src/devices/bus/amiga/zorro/a2065.cpp
index b99eb51ebfb..a76b289bb7f 100644
--- a/src/devices/bus/amiga/zorro/a2065.cpp
+++ b/src/devices/bus/amiga/zorro/a2065.cpp
@@ -24,7 +24,7 @@
// DEVICE DEFINITIONS
//**************************************************************************
-DEFINE_DEVICE_TYPE_NS(ZORRO_A2065, bus::amiga::zorro, a2065_device, "zorro_a2065", "CBM A2065 Ethernet Card")
+DEFINE_DEVICE_TYPE(ZORRO_A2065, bus::amiga::zorro::a2065_device, "zorro_a2065", "CBM A2065 Ethernet Card")
namespace bus::amiga::zorro {
diff --git a/src/devices/bus/amiga/zorro/a2232.cpp b/src/devices/bus/amiga/zorro/a2232.cpp
index 938b60ffb63..b9d6726bc7e 100644
--- a/src/devices/bus/amiga/zorro/a2232.cpp
+++ b/src/devices/bus/amiga/zorro/a2232.cpp
@@ -21,7 +21,7 @@
// DEVICE DEFINITIONS
//**************************************************************************
-DEFINE_DEVICE_TYPE_NS(ZORRO_A2232, bus::amiga::zorro, a2232_device, "zorro_a2232", "CBM A2232 Serial Card")
+DEFINE_DEVICE_TYPE(ZORRO_A2232, bus::amiga::zorro::a2232_device, "zorro_a2232", "CBM A2232 Serial Card")
namespace bus::amiga::zorro {
diff --git a/src/devices/bus/amiga/zorro/a590.cpp b/src/devices/bus/amiga/zorro/a590.cpp
index a956e845b90..3fe72c69a42 100644
--- a/src/devices/bus/amiga/zorro/a590.cpp
+++ b/src/devices/bus/amiga/zorro/a590.cpp
@@ -18,8 +18,8 @@
// DEVICE DEFINITIONS
//**************************************************************************
-DEFINE_DEVICE_TYPE_NS(ZORRO_A590, bus::amiga::zorro, a590_device, "zorro_a590", "CBM A590 HD Controller")
-DEFINE_DEVICE_TYPE_NS(ZORRO_A2091, bus::amiga::zorro, a2091_device, "zorro_a2091", "CBM A2091 HD Controller")
+DEFINE_DEVICE_TYPE(ZORRO_A590, bus::amiga::zorro::a590_device, "zorro_a590", "CBM A590 HD Controller")
+DEFINE_DEVICE_TYPE(ZORRO_A2091, bus::amiga::zorro::a2091_device, "zorro_a2091", "CBM A2091 HD Controller")
namespace bus::amiga::zorro {
diff --git a/src/devices/bus/amiga/zorro/action_replay.cpp b/src/devices/bus/amiga/zorro/action_replay.cpp
index 6fe65413709..9466305049d 100644
--- a/src/devices/bus/amiga/zorro/action_replay.cpp
+++ b/src/devices/bus/amiga/zorro/action_replay.cpp
@@ -22,9 +22,9 @@
// DEVICE DEFINITIONS
//**************************************************************************
-DEFINE_DEVICE_TYPE_NS(ZORRO_ACTION_REPLAY_MK1, bus::amiga::zorro, action_replay_mk1_device, "zorro_ar1", "Datel Action Replay MK-I")
-DEFINE_DEVICE_TYPE_NS(ZORRO_ACTION_REPLAY_MK2, bus::amiga::zorro, action_replay_mk2_device, "zorro_ar2", "Datel Action Replay MK-II")
-DEFINE_DEVICE_TYPE_NS(ZORRO_ACTION_REPLAY_MK3, bus::amiga::zorro, action_replay_mk3_device, "zorro_ar3", "Datel Action Replay MK-III")
+DEFINE_DEVICE_TYPE(ZORRO_ACTION_REPLAY_MK1, bus::amiga::zorro::action_replay_mk1_device, "zorro_ar1", "Datel Action Replay MK-I")
+DEFINE_DEVICE_TYPE(ZORRO_ACTION_REPLAY_MK2, bus::amiga::zorro::action_replay_mk2_device, "zorro_ar2", "Datel Action Replay MK-II")
+DEFINE_DEVICE_TYPE(ZORRO_ACTION_REPLAY_MK3, bus::amiga::zorro::action_replay_mk3_device, "zorro_ar3", "Datel Action Replay MK-III")
namespace bus::amiga::zorro {
diff --git a/src/devices/bus/amiga/zorro/buddha.cpp b/src/devices/bus/amiga/zorro/buddha.cpp
index 08e7df229ec..16a27d07ff2 100644
--- a/src/devices/bus/amiga/zorro/buddha.cpp
+++ b/src/devices/bus/amiga/zorro/buddha.cpp
@@ -33,7 +33,7 @@
// DEVICE DEFINITIONS
//**************************************************************************
-DEFINE_DEVICE_TYPE_NS(ZORRO_BUDDHA, bus::amiga::zorro, buddha_device, "zorro_buddha", "Buddha IDE controller")
+DEFINE_DEVICE_TYPE(ZORRO_BUDDHA, bus::amiga::zorro::buddha_device, "zorro_buddha", "Buddha IDE controller")
namespace bus::amiga::zorro {
diff --git a/src/devices/bus/hexbus/hexbus.cpp b/src/devices/bus/hexbus/hexbus.cpp
index b9dcfd29ef8..40189262457 100644
--- a/src/devices/bus/hexbus/hexbus.cpp
+++ b/src/devices/bus/hexbus/hexbus.cpp
@@ -158,7 +158,7 @@
#include "logmacro.h"
// Hexbus instance
-DEFINE_DEVICE_TYPE_NS(HEXBUS, bus::hexbus, hexbus_device, "hexbus", "Hexbus connector")
+DEFINE_DEVICE_TYPE(HEXBUS, bus::hexbus::hexbus_device, "hexbus", "Hexbus connector")
namespace bus::hexbus {
diff --git a/src/devices/bus/hexbus/hx5102.cpp b/src/devices/bus/hexbus/hx5102.cpp
index 69bfaf3dfaf..740b5f93f4c 100644
--- a/src/devices/bus/hexbus/hx5102.cpp
+++ b/src/devices/bus/hexbus/hx5102.cpp
@@ -107,7 +107,7 @@
#define MOTOR_TIMER 1
#define UNDEF -1
-DEFINE_DEVICE_TYPE_NS(HX5102, bus::hexbus, hx5102_device, "ti_hx5102", "TI Hexbus Floppy Drive")
+DEFINE_DEVICE_TYPE(HX5102, bus::hexbus::hx5102_device, "ti_hx5102", "TI Hexbus Floppy Drive")
namespace bus::hexbus {
diff --git a/src/devices/bus/hexbus/tp0370.cpp b/src/devices/bus/hexbus/tp0370.cpp
index 739d7c4a685..e4d1ac50863 100644
--- a/src/devices/bus/hexbus/tp0370.cpp
+++ b/src/devices/bus/hexbus/tp0370.cpp
@@ -128,7 +128,7 @@ enum
#include "logmacro.h"
// Hexbus instance
-DEFINE_DEVICE_TYPE_NS(IBC, bus::hexbus, ibc_device, "ibc", "Intelligent Peripheral Bus Controller")
+DEFINE_DEVICE_TYPE(IBC, bus::hexbus::ibc_device, "hexbus_ibc", "Intelligent Peripheral Bus Controller")
namespace bus::hexbus {
diff --git a/src/devices/bus/hp_dio/hp98265a.cpp b/src/devices/bus/hp_dio/hp98265a.cpp
index 97f6b9bc945..b215a4c1152 100644
--- a/src/devices/bus/hp_dio/hp98265a.cpp
+++ b/src/devices/bus/hp_dio/hp98265a.cpp
@@ -17,7 +17,7 @@
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(HPDIO_98265A, bus::hp_dio, dio16_98265a_device, "hp98265a", "HP98265A SCSI S16 Interface")
+DEFINE_DEVICE_TYPE(HPDIO_98265A, bus::hp_dio::dio16_98265a_device, "hp98265a", "HP98265A SCSI S16 Interface")
namespace bus::hp_dio {
diff --git a/src/devices/bus/hp_dio/hp98543.cpp b/src/devices/bus/hp_dio/hp98543.cpp
index 6df0757f04f..a2bfb82f5ee 100644
--- a/src/devices/bus/hp_dio/hp98543.cpp
+++ b/src/devices/bus/hp_dio/hp98543.cpp
@@ -21,7 +21,7 @@ ROM_START(hp98543)
ROM_LOAD("1818-3907.bin", 0x000000, 0x002000, CRC(5e2bf02a) SHA1(9ba9391cf39624ef8027ce42c84e100344b2a2b8))
ROM_END
-DEFINE_DEVICE_TYPE_NS(HPDIO_98543, bus::hp_dio, dio16_98543_device, "dio98543", "HP98543 medium-res color DIO video card")
+DEFINE_DEVICE_TYPE(HPDIO_98543, bus::hp_dio::dio16_98543_device, "dio98543", "HP98543 medium-res color DIO video card")
namespace bus::hp_dio {
diff --git a/src/devices/bus/hp_dio/hp98544.cpp b/src/devices/bus/hp_dio/hp98544.cpp
index 040e36637aa..420dc93919f 100644
--- a/src/devices/bus/hp_dio/hp98544.cpp
+++ b/src/devices/bus/hp_dio/hp98544.cpp
@@ -19,7 +19,7 @@
// GLOBAL VARIABLES
//**************************************************************************
-DEFINE_DEVICE_TYPE_NS(HPDIO_98544, bus::hp_dio, dio16_98544_device, "dio98544", "HP98544 high-res monochrome DIO video card")
+DEFINE_DEVICE_TYPE(HPDIO_98544, bus::hp_dio::dio16_98544_device, "dio98544", "HP98544 high-res monochrome DIO video card")
namespace bus::hp_dio {
diff --git a/src/devices/bus/hp_dio/hp98550.cpp b/src/devices/bus/hp_dio/hp98550.cpp
index b4a9af05a73..54b89418680 100644
--- a/src/devices/bus/hp_dio/hp98550.cpp
+++ b/src/devices/bus/hp_dio/hp98550.cpp
@@ -23,7 +23,7 @@ ROM_START(hp98550)
ROM_LOAD("98550a.bin", 0x000000, 0x008000, CRC(9d639233) SHA1(d6b23a34850f24525ca5fb36de3deb91196d2dc5))
ROM_END
-DEFINE_DEVICE_TYPE_NS(HPDIO_98550, bus::hp_dio, dio32_98550_device, "dio98550", "HP98550A high-res color DIO video card")
+DEFINE_DEVICE_TYPE(HPDIO_98550, bus::hp_dio::dio32_98550_device, "dio98550", "HP98550A high-res color DIO video card")
namespace bus::hp_dio {
diff --git a/src/devices/bus/hp_dio/hp98603a.cpp b/src/devices/bus/hp_dio/hp98603a.cpp
index 791366d7639..37458c43c36 100644
--- a/src/devices/bus/hp_dio/hp98603a.cpp
+++ b/src/devices/bus/hp_dio/hp98603a.cpp
@@ -9,7 +9,7 @@
#include "emu.h"
#include "hp98603a.h"
-DEFINE_DEVICE_TYPE_NS(HPDIO_98603A, bus::hp_dio, dio16_98603a_device, "dio98603a", "HP98603A BASIC 4.0 ROM card")
+DEFINE_DEVICE_TYPE(HPDIO_98603A, bus::hp_dio::dio16_98603a_device, "dio98603a", "HP98603A BASIC 4.0 ROM card")
#define HP98603A_ROM_REGION "98603a_rom"
diff --git a/src/devices/bus/hp_dio/hp98603b.cpp b/src/devices/bus/hp_dio/hp98603b.cpp
index e9ab716f30f..6210b3b0178 100644
--- a/src/devices/bus/hp_dio/hp98603b.cpp
+++ b/src/devices/bus/hp_dio/hp98603b.cpp
@@ -9,7 +9,7 @@
#include "emu.h"
#include "hp98603b.h"
-DEFINE_DEVICE_TYPE_NS(HPDIO_98603B, bus::hp_dio, dio16_98603b_device, "dio98603b", "HP98603 BASIC ROM card")
+DEFINE_DEVICE_TYPE(HPDIO_98603B, bus::hp_dio::dio16_98603b_device, "dio98603b", "HP98603 BASIC ROM card")
#define HP98603B_ROM_REGION "98603b_rom"
diff --git a/src/devices/bus/hp_dio/hp98620.cpp b/src/devices/bus/hp_dio/hp98620.cpp
index 6a58ef2af78..88a8491fae8 100644
--- a/src/devices/bus/hp_dio/hp98620.cpp
+++ b/src/devices/bus/hp_dio/hp98620.cpp
@@ -13,7 +13,7 @@
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(HPDIO_98620, bus::hp_dio, dio16_98620_device, "hp98620", "HP98620 DMA Controller")
+DEFINE_DEVICE_TYPE(HPDIO_98620, bus::hp_dio::dio16_98620_device, "hp98620", "HP98620 DMA Controller")
namespace bus::hp_dio {
diff --git a/src/devices/bus/hp_dio/hp98643.cpp b/src/devices/bus/hp_dio/hp98643.cpp
index bba7cefebb5..f665303097a 100644
--- a/src/devices/bus/hp_dio/hp98643.cpp
+++ b/src/devices/bus/hp_dio/hp98643.cpp
@@ -13,7 +13,7 @@
//#define VERBOSE 1
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(HPDIO_98643, bus::hp_dio, dio16_98643_device, "dio98643", "HP98643A LANIC Ethernet card")
+DEFINE_DEVICE_TYPE(HPDIO_98643, bus::hp_dio::dio16_98643_device, "dio98643", "HP98643A LANIC Ethernet card")
namespace bus::hp_dio {
diff --git a/src/devices/bus/hp_dio/hp98644.cpp b/src/devices/bus/hp_dio/hp98644.cpp
index 2896076d01f..d74b8c02fea 100644
--- a/src/devices/bus/hp_dio/hp98644.cpp
+++ b/src/devices/bus/hp_dio/hp98644.cpp
@@ -15,7 +15,7 @@
// GLOBAL VARIABLES
//**************************************************************************
-DEFINE_DEVICE_TYPE_NS(HPDIO_98644, bus::hp_dio, dio16_98644_device, "dio98644", "HP98644A Asynchronous Serial Interface")
+DEFINE_DEVICE_TYPE(HPDIO_98644, bus::hp_dio::dio16_98644_device, "dio98644", "HP98644A Asynchronous Serial Interface")
namespace bus::hp_dio {
diff --git a/src/devices/bus/hp_dio/hp_dio.cpp b/src/devices/bus/hp_dio/hp_dio.cpp
index 75102828b01..647b28f83c9 100644
--- a/src/devices/bus/hp_dio/hp_dio.cpp
+++ b/src/devices/bus/hp_dio/hp_dio.cpp
@@ -23,10 +23,10 @@
// GLOBAL VARIABLES
//**************************************************************************
-DEFINE_DEVICE_TYPE_NS(DIO16_SLOT, bus::hp_dio, dio16_slot_device, "dio16_slot", "16-bit DIO slot")
-DEFINE_DEVICE_TYPE_NS(DIO32_SLOT, bus::hp_dio, dio32_slot_device, "dio32_slot", "32-bit DIO-II slot")
-DEFINE_DEVICE_TYPE_NS(DIO16, bus::hp_dio, dio16_device, "dio16", "16-bit DIO bus")
-DEFINE_DEVICE_TYPE_NS(DIO32, bus::hp_dio, dio32_device, "dio32", "32-bit DIO-II bus")
+DEFINE_DEVICE_TYPE(DIO16_SLOT, bus::hp_dio::dio16_slot_device, "dio16_slot", "16-bit DIO slot")
+DEFINE_DEVICE_TYPE(DIO32_SLOT, bus::hp_dio::dio32_slot_device, "dio32_slot", "32-bit DIO-II slot")
+DEFINE_DEVICE_TYPE(DIO16, bus::hp_dio::dio16_device, "dio16", "16-bit DIO bus")
+DEFINE_DEVICE_TYPE(DIO32, bus::hp_dio::dio32_device, "dio32", "32-bit DIO-II bus")
namespace bus::hp_dio {
diff --git a/src/devices/bus/hp_dio/human_interface.cpp b/src/devices/bus/hp_dio/human_interface.cpp
index b084ac47e24..a0957977f10 100644
--- a/src/devices/bus/hp_dio/human_interface.cpp
+++ b/src/devices/bus/hp_dio/human_interface.cpp
@@ -19,7 +19,7 @@
//#define VERBOSE 1
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(HPDIO_HUMAN_INTERFACE, bus::hp_dio, human_interface_device, "human_interface", "HP human interface card")
+DEFINE_DEVICE_TYPE(HPDIO_HUMAN_INTERFACE, bus::hp_dio::human_interface_device, "human_interface", "HP human interface card")
namespace bus::hp_dio {
diff --git a/src/devices/bus/hp_hil/hlekbd.cpp b/src/devices/bus/hp_hil/hlekbd.cpp
index 2a07bc083df..62278a45a7f 100644
--- a/src/devices/bus/hp_hil/hlekbd.cpp
+++ b/src/devices/bus/hp_hil/hlekbd.cpp
@@ -11,8 +11,8 @@
DEVICE TYPE GLOBALS
***************************************************************************/
-DEFINE_DEVICE_TYPE_NS(HP_IPC_HLE_KEYBOARD, bus::hp_hil, hle_hp_ipc_device, "hp_ipc_hle_kbd", "HP Integral Keyboard (HLE)")
-DEFINE_DEVICE_TYPE_NS(HP_ITF_HLE_KEYBOARD, bus::hp_hil, hle_hp_itf_device, "hp_itf_hle_kbd", "HP ITF Keyboard")
+DEFINE_DEVICE_TYPE(HP_IPC_HLE_KEYBOARD, bus::hp_hil::hle_hp_ipc_device, "hp_ipc_hle_kbd", "HP Integral Keyboard (HLE)")
+DEFINE_DEVICE_TYPE(HP_ITF_HLE_KEYBOARD, bus::hp_hil::hle_hp_itf_device, "hp_itf_hle_kbd", "HP ITF Keyboard")
namespace bus::hp_hil {
diff --git a/src/devices/bus/hp_hil/hlemouse.cpp b/src/devices/bus/hp_hil/hlemouse.cpp
index 76a1cbf7ef5..215912b5cc6 100644
--- a/src/devices/bus/hp_hil/hlemouse.cpp
+++ b/src/devices/bus/hp_hil/hlemouse.cpp
@@ -10,7 +10,7 @@
DEVICE TYPE GLOBALS
***************************************************************************/
-DEFINE_DEVICE_TYPE_NS(HP_46060B_MOUSE, bus::hp_hil, hle_hp_46060b_device, "hp_46060b", "HP 46060B Mouse")
+DEFINE_DEVICE_TYPE(HP_46060B_MOUSE, bus::hp_hil::hle_hp_46060b_device, "hp_46060b", "HP 46060B Mouse")
namespace bus::hp_hil {
diff --git a/src/devices/bus/intellec4/insdatastor.cpp b/src/devices/bus/intellec4/insdatastor.cpp
index 30a7554d1ab..55086054dcb 100644
--- a/src/devices/bus/intellec4/insdatastor.cpp
+++ b/src/devices/bus/intellec4/insdatastor.cpp
@@ -5,7 +5,7 @@
#include "insdatastor.h"
-DEFINE_DEVICE_TYPE_NS(INTELLEC4_INST_DATA_STORAGE, bus::intellec4, imm4_22_device, "intlc4_imm4_22", "Intel imm4-22 Instruction/Data Storage Module")
+DEFINE_DEVICE_TYPE(INTELLEC4_INST_DATA_STORAGE, bus::intellec4::imm4_22_device, "intlc4_imm4_22", "Intel imm4-22 Instruction/Data Storage Module")
namespace bus::intellec4 {
diff --git a/src/devices/bus/intellec4/intellec4.cpp b/src/devices/bus/intellec4/intellec4.cpp
index c70c25b31c3..66807166782 100644
--- a/src/devices/bus/intellec4/intellec4.cpp
+++ b/src/devices/bus/intellec4/intellec4.cpp
@@ -7,8 +7,8 @@
#include <algorithm>
-DEFINE_DEVICE_TYPE_NS(INTELLEC4_UNIV_SLOT, bus::intellec4, univ_slot_device, "intlc4univslot", "INTELLEC 4 Universal Slot")
-DEFINE_DEVICE_TYPE_NS(INTELLEC4_UNIV_BUS, bus::intellec4, univ_bus_device, "intlc4univbus", "INTELLEC 4 Universal Bus")
+DEFINE_DEVICE_TYPE(INTELLEC4_UNIV_SLOT, bus::intellec4::univ_slot_device, "intlc4univslot", "INTELLEC 4 Universal Slot")
+DEFINE_DEVICE_TYPE(INTELLEC4_UNIV_BUS, bus::intellec4::univ_bus_device, "intlc4univbus", "INTELLEC 4 Universal Bus")
namespace bus::intellec4 {
diff --git a/src/devices/bus/intellec4/prommemory.cpp b/src/devices/bus/intellec4/prommemory.cpp
index 7ce7dd962fd..e297006f241 100644
--- a/src/devices/bus/intellec4/prommemory.cpp
+++ b/src/devices/bus/intellec4/prommemory.cpp
@@ -5,7 +5,7 @@
#include "prommemory.h"
-DEFINE_DEVICE_TYPE_NS(INTELLEC4_PROM_MEMORY, bus::intellec4, imm6_26_device, "intlc4_imm6_26", "Intel imm6-26 PROM Memory Module")
+DEFINE_DEVICE_TYPE(INTELLEC4_PROM_MEMORY, bus::intellec4::imm6_26_device, "intlc4_imm6_26", "Intel imm6-26 PROM Memory Module")
namespace bus::intellec4 {
diff --git a/src/devices/bus/intellec4/tapereader.cpp b/src/devices/bus/intellec4/tapereader.cpp
index 1f32815fbd5..52685bdf032 100644
--- a/src/devices/bus/intellec4/tapereader.cpp
+++ b/src/devices/bus/intellec4/tapereader.cpp
@@ -5,7 +5,7 @@
#include "tapereader.h"
-DEFINE_DEVICE_TYPE_NS(INTELLEC4_TAPE_READER, bus::intellec4, imm4_90_device, "intlc4_imm4_90", "Intel imm4-90 High-Speed Paper Tape Reader")
+DEFINE_DEVICE_TYPE(INTELLEC4_TAPE_READER, bus::intellec4::imm4_90_device, "intlc4_imm4_90", "Intel imm4-90 High-Speed Paper Tape Reader")
namespace bus::intellec4 {
diff --git a/src/devices/bus/interpro/keyboard/hle.cpp b/src/devices/bus/interpro/keyboard/hle.cpp
index 66fa8e44a30..89217cc10ad 100644
--- a/src/devices/bus/interpro/keyboard/hle.cpp
+++ b/src/devices/bus/interpro/keyboard/hle.cpp
@@ -120,7 +120,7 @@
#define VERBOSE 0
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(INTERPRO_HLE_EN_US_KEYBOARD, bus::interpro::keyboard, hle_en_us_device, "kbd_hle_en_us", "InterPro Keyboard (HLE, US English)")
+DEFINE_DEVICE_TYPE(INTERPRO_HLE_EN_US_KEYBOARD, bus::interpro::keyboard::hle_en_us_device, "kbd_hle_en_us", "InterPro Keyboard (HLE, US English)")
namespace bus::interpro::keyboard {
diff --git a/src/devices/bus/interpro/keyboard/lle.cpp b/src/devices/bus/interpro/keyboard/lle.cpp
index 7151f1e0fc0..1556a3f4779 100644
--- a/src/devices/bus/interpro/keyboard/lle.cpp
+++ b/src/devices/bus/interpro/keyboard/lle.cpp
@@ -155,7 +155,7 @@
#define VERBOSE (0)
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(INTERPRO_LLE_EN_US_KEYBOARD, bus::interpro::keyboard, lle_en_us_device, "kbd_lle_en_us", "InterPro Keyboard (LLE, US English)")
+DEFINE_DEVICE_TYPE(INTERPRO_LLE_EN_US_KEYBOARD, bus::interpro::keyboard::lle_en_us_device, "kbd_lle_en_us", "InterPro Keyboard (LLE, US English)")
namespace bus::interpro::keyboard {
diff --git a/src/devices/bus/nubus/nubus_image.cpp b/src/devices/bus/nubus/nubus_image.cpp
index 80875c6bd41..f017b9cc5a1 100644
--- a/src/devices/bus/nubus/nubus_image.cpp
+++ b/src/devices/bus/nubus/nubus_image.cpp
@@ -68,7 +68,7 @@ public:
// device type definition
-DEFINE_DEVICE_TYPE_NS(MESSIMG_DISK, nubus_image_device, messimg_disk_image_device, "messimg_disk_image", "Mac image")
+DEFINE_DEVICE_TYPE(MESSIMG_DISK, nubus_image_device::messimg_disk_image_device, "messimg_disk_image", "Mac image")
nubus_image_device::messimg_disk_image_device::messimg_disk_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, MESSIMG_DISK, tag, owner, clock),
diff --git a/src/devices/bus/rs232/hlemouse.cpp b/src/devices/bus/rs232/hlemouse.cpp
index 599e0d77d14..7b25b1e327b 100644
--- a/src/devices/bus/rs232/hlemouse.cpp
+++ b/src/devices/bus/rs232/hlemouse.cpp
@@ -74,12 +74,12 @@
// Device type globals
//**************************************************
-DEFINE_DEVICE_TYPE_NS(MSFT_HLE_SERIAL_MOUSE, bus::rs232, hle_msft_mouse_device, "rs232_mouse_hle_msft", "Microsoft 2-Button Serial Mouse (HLE)")
-DEFINE_DEVICE_TYPE_NS(LOGITECH_HLE_SERIAL_MOUSE, bus::rs232, hle_logitech_mouse_device, "rs232_mouse_hle_logitech", "Logitech 3-Button Serial Mouse (HLE)")
-DEFINE_DEVICE_TYPE_NS(WHEEL_HLE_SERIAL_MOUSE, bus::rs232, hle_wheel_mouse_device, "rs232_mouse_hle_wheel", "Microsoft Serial Mouse with Wheel (HLE)")
-DEFINE_DEVICE_TYPE_NS(MSYSTEMS_HLE_SERIAL_MOUSE, bus::rs232, hle_msystems_mouse_device, "rs232_mouse_hle_msystems", "Mouse Systems Non-rotatable Mouse (HLE)")
-DEFINE_DEVICE_TYPE_NS(ROTATABLE_HLE_SERIAL_MOUSE, bus::rs232, hle_rotatable_mouse_device, "rs232_mouse_hle_rotatable", "Mouse Systems Rotatable Mouse (HLE)")
-DEFINE_DEVICE_TYPE_NS(SGI_HLE_SERIAL_MOUSE, bus::rs232, hle_sgi_mouse_device, "rs232_mouse_hle_sgi", "SGI IRIS Indigo Mouse (HLE)")
+DEFINE_DEVICE_TYPE(MSFT_HLE_SERIAL_MOUSE, bus::rs232::hle_msft_mouse_device, "rs232_mouse_hle_msft", "Microsoft 2-Button Serial Mouse (HLE)")
+DEFINE_DEVICE_TYPE(LOGITECH_HLE_SERIAL_MOUSE, bus::rs232::hle_logitech_mouse_device, "rs232_mouse_hle_logitech", "Logitech 3-Button Serial Mouse (HLE)")
+DEFINE_DEVICE_TYPE(WHEEL_HLE_SERIAL_MOUSE, bus::rs232::hle_wheel_mouse_device, "rs232_mouse_hle_wheel", "Microsoft Serial Mouse with Wheel (HLE)")
+DEFINE_DEVICE_TYPE(MSYSTEMS_HLE_SERIAL_MOUSE, bus::rs232::hle_msystems_mouse_device, "rs232_mouse_hle_msystems", "Mouse Systems Non-rotatable Mouse (HLE)")
+DEFINE_DEVICE_TYPE(ROTATABLE_HLE_SERIAL_MOUSE, bus::rs232::hle_rotatable_mouse_device, "rs232_mouse_hle_rotatable", "Mouse Systems Rotatable Mouse (HLE)")
+DEFINE_DEVICE_TYPE(SGI_HLE_SERIAL_MOUSE, bus::rs232::hle_sgi_mouse_device, "rs232_mouse_hle_sgi", "SGI IRIS Indigo Mouse (HLE)")
namespace bus::rs232 {
diff --git a/src/devices/bus/sgikbd/hlekbd.cpp b/src/devices/bus/sgikbd/hlekbd.cpp
index c5f0b8c4c83..dc3c5f39ec3 100644
--- a/src/devices/bus/sgikbd/hlekbd.cpp
+++ b/src/devices/bus/sgikbd/hlekbd.cpp
@@ -6,7 +6,7 @@
#include "machine/keyboard.ipp"
#include "speaker.h"
-DEFINE_DEVICE_TYPE_NS(SGI_HLE_KEYBOARD, bus::sgikbd, hle_device, "hlekbd", "SGI Indigo Keyboard (HLE)")
+DEFINE_DEVICE_TYPE(SGI_HLE_KEYBOARD, bus::sgikbd::hle_device, "hlekbd", "SGI Indigo Keyboard (HLE)")
namespace bus::sgikbd {
diff --git a/src/devices/bus/sunkbd/hlekbd.cpp b/src/devices/bus/sunkbd/hlekbd.cpp
index 305d09ef3e2..593d6cb3eb2 100644
--- a/src/devices/bus/sunkbd/hlekbd.cpp
+++ b/src/devices/bus/sunkbd/hlekbd.cpp
@@ -136,12 +136,12 @@
DEVICE TYPE GLOBALS
***************************************************************************/
-DEFINE_DEVICE_TYPE_NS(SUN_TYPE3_HLE_KEYBOARD, bus::sunkbd, hle_type3_device, "kbd_type3_hle", "Sun Type 3 Keyboard (HLE)")
-DEFINE_DEVICE_TYPE_NS(SUN_TYPE4_HLE_KEYBOARD, bus::sunkbd, hle_type4_device, "kbd_type4_hle", "Sun Type 4 Keyboard (HLE)")
-DEFINE_DEVICE_TYPE_NS(SUN_TYPE5_HLE_KEYBOARD, bus::sunkbd, hle_type5_device, "kbd_type5_hle_us", "Sun Type 5 Keyboard (U.S.A. - HLE)")
-DEFINE_DEVICE_TYPE_NS(SUN_TYPE5_GB_HLE_KEYBOARD, bus::sunkbd, hle_type5_gb_device, "kbd_type5_hle_gb", "Sun Type 5 Keyboard (Great Britain - HLE)")
-DEFINE_DEVICE_TYPE_NS(SUN_TYPE5_SE_HLE_KEYBOARD, bus::sunkbd, hle_type5_se_device, "kbd_type5_hle_se", "Sun Type 5 Keyboard (Sweden - HLE)")
-DEFINE_DEVICE_TYPE_NS(SUN_TYPE5_JP_HLE_KEYBOARD, bus::sunkbd, hle_type5_jp_device, "kbd_type5_hle_jp", "Sun Type 5 Keyboard (Japan - HLE)")
+DEFINE_DEVICE_TYPE(SUN_TYPE3_HLE_KEYBOARD, bus::sunkbd::hle_type3_device, "kbd_type3_hle", "Sun Type 3 Keyboard (HLE)")
+DEFINE_DEVICE_TYPE(SUN_TYPE4_HLE_KEYBOARD, bus::sunkbd::hle_type4_device, "kbd_type4_hle", "Sun Type 4 Keyboard (HLE)")
+DEFINE_DEVICE_TYPE(SUN_TYPE5_HLE_KEYBOARD, bus::sunkbd::hle_type5_device, "kbd_type5_hle_us", "Sun Type 5 Keyboard (U.S.A. - HLE)")
+DEFINE_DEVICE_TYPE(SUN_TYPE5_GB_HLE_KEYBOARD, bus::sunkbd::hle_type5_gb_device, "kbd_type5_hle_gb", "Sun Type 5 Keyboard (Great Britain - HLE)")
+DEFINE_DEVICE_TYPE(SUN_TYPE5_SE_HLE_KEYBOARD, bus::sunkbd::hle_type5_se_device, "kbd_type5_hle_se", "Sun Type 5 Keyboard (Sweden - HLE)")
+DEFINE_DEVICE_TYPE(SUN_TYPE5_JP_HLE_KEYBOARD, bus::sunkbd::hle_type5_jp_device, "kbd_type5_hle_jp", "Sun Type 5 Keyboard (Japan - HLE)")
diff --git a/src/devices/bus/sunmouse/hlemouse.cpp b/src/devices/bus/sunmouse/hlemouse.cpp
index 97bae888600..3256f171aee 100644
--- a/src/devices/bus/sunmouse/hlemouse.cpp
+++ b/src/devices/bus/sunmouse/hlemouse.cpp
@@ -27,8 +27,8 @@
DEVICE TYPE GLOBALS
***************************************************************************/
-DEFINE_DEVICE_TYPE_NS(SUN_1200BAUD_HLE_MOUSE, bus::sunmouse, hle_1200baud_device, "sunmouse_hle1200", "Sun Mouse (1200 Baud, HLE)")
-DEFINE_DEVICE_TYPE_NS(SUN_4800BAUD_HLE_MOUSE, bus::sunmouse, hle_4800baud_device, "sunmouse_hle4800", "Sun Mouse (4800 Baud, HLE)")
+DEFINE_DEVICE_TYPE(SUN_1200BAUD_HLE_MOUSE, bus::sunmouse::hle_1200baud_device, "sunmouse_hle1200", "Sun Mouse (1200 Baud, HLE)")
+DEFINE_DEVICE_TYPE(SUN_4800BAUD_HLE_MOUSE, bus::sunmouse::hle_4800baud_device, "sunmouse_hle4800", "Sun Mouse (4800 Baud, HLE)")
namespace bus::sunmouse {
diff --git a/src/devices/bus/ti8x/bitsocket.cpp b/src/devices/bus/ti8x/bitsocket.cpp
index 00f0e1b4b8d..4168c09af91 100644
--- a/src/devices/bus/ti8x/bitsocket.cpp
+++ b/src/devices/bus/ti8x/bitsocket.cpp
@@ -5,7 +5,7 @@
#include "bitsocket.h"
-DEFINE_DEVICE_TYPE_NS(TI8X_BIT_SOCKET, bus::ti8x, bit_socket_device, "ti8x_bitsock", "TI-8x Bit Socket")
+DEFINE_DEVICE_TYPE(TI8X_BIT_SOCKET, bus::ti8x::bit_socket_device, "ti8x_bitsock", "TI-8x Bit Socket")
namespace bus::ti8x {
diff --git a/src/devices/bus/ti8x/graphlinkhle.cpp b/src/devices/bus/ti8x/graphlinkhle.cpp
index 9368b2ec0bc..b41d67ca50b 100644
--- a/src/devices/bus/ti8x/graphlinkhle.cpp
+++ b/src/devices/bus/ti8x/graphlinkhle.cpp
@@ -5,7 +5,7 @@
#include "graphlinkhle.h"
-DEFINE_DEVICE_TYPE_NS(TI8X_GRAPH_LINK_HLE, bus::ti8x, graph_link_hle_device, "ti8x_glinkhle", "TI-Graph Link (grey, HLE)")
+DEFINE_DEVICE_TYPE(TI8X_GRAPH_LINK_HLE, bus::ti8x::graph_link_hle_device, "ti8x_glinkhle", "TI-Graph Link (grey, HLE)")
namespace bus::ti8x {
diff --git a/src/devices/bus/ti8x/teeconn.cpp b/src/devices/bus/ti8x/teeconn.cpp
index 92b2048a486..9325816735b 100644
--- a/src/devices/bus/ti8x/teeconn.cpp
+++ b/src/devices/bus/ti8x/teeconn.cpp
@@ -5,7 +5,7 @@
#include "teeconn.h"
-DEFINE_DEVICE_TYPE_NS(TI8X_TEE_CONNECTOR, bus::ti8x, tee_connector_device, "ti8x_tconn", "TI-8x T-connector")
+DEFINE_DEVICE_TYPE(TI8X_TEE_CONNECTOR, bus::ti8x::tee_connector_device, "ti8x_tconn", "TI-8x T-connector")
namespace bus::ti8x {
diff --git a/src/devices/bus/ti8x/tispeaker.cpp b/src/devices/bus/ti8x/tispeaker.cpp
index ec0e9865a57..a3fe86d76fd 100644
--- a/src/devices/bus/ti8x/tispeaker.cpp
+++ b/src/devices/bus/ti8x/tispeaker.cpp
@@ -7,8 +7,8 @@
#include "speaker.h"
-DEFINE_DEVICE_TYPE_NS(TI8X_SPEAKER_STEREO, bus::ti8x, stereo_speaker_device, "ti8x_stspkr", "TI-8x Speaker (Stereo)")
-DEFINE_DEVICE_TYPE_NS(TI8X_SPEAKER_MONO, bus::ti8x, mono_speaker_device, "ti8x_mspkr", "TI-8x Speaker (Mono)")
+DEFINE_DEVICE_TYPE(TI8X_SPEAKER_STEREO, bus::ti8x::stereo_speaker_device, "ti8x_stspkr", "TI-8x Speaker (Stereo)")
+DEFINE_DEVICE_TYPE(TI8X_SPEAKER_MONO, bus::ti8x::mono_speaker_device, "ti8x_mspkr", "TI-8x Speaker (Mono)")
namespace bus::ti8x {
diff --git a/src/devices/bus/ti99/colorbus/busmouse.cpp b/src/devices/bus/ti99/colorbus/busmouse.cpp
index 1c3e1dcbac2..ccaf9c66f25 100644
--- a/src/devices/bus/ti99/colorbus/busmouse.cpp
+++ b/src/devices/bus/ti99/colorbus/busmouse.cpp
@@ -23,7 +23,7 @@
#define VERBOSE ( LOG_GENERAL )
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(V9938_BUSMOUSE, bus::ti99::colorbus, v9938_busmouse_device, "v9938_busmouse", "V9938 Bus Mouse")
+DEFINE_DEVICE_TYPE(V9938_BUSMOUSE, bus::ti99::colorbus::v9938_busmouse_device, "v9938_busmouse", "V9938 Bus Mouse")
namespace bus::ti99::colorbus {
diff --git a/src/devices/bus/ti99/colorbus/colorbus.cpp b/src/devices/bus/ti99/colorbus/colorbus.cpp
index 8d3dbf23071..e3decb6ba61 100644
--- a/src/devices/bus/ti99/colorbus/colorbus.cpp
+++ b/src/devices/bus/ti99/colorbus/colorbus.cpp
@@ -21,7 +21,7 @@
#include "colorbus.h"
#include "busmouse.h"
-DEFINE_DEVICE_TYPE_NS(V9938_COLORBUS, bus::ti99::colorbus, v9938_colorbus_device, "v9938_colorbus", "V9938 Color bus")
+DEFINE_DEVICE_TYPE(V9938_COLORBUS, bus::ti99::colorbus::v9938_colorbus_device, "v9938_colorbus", "V9938 Color bus")
namespace bus::ti99::colorbus {
diff --git a/src/devices/bus/ti99/gromport/cartridges.cpp b/src/devices/bus/ti99/gromport/cartridges.cpp
index 78c0231c9a7..7a9ccb95a6d 100644
--- a/src/devices/bus/ti99/gromport/cartridges.cpp
+++ b/src/devices/bus/ti99/gromport/cartridges.cpp
@@ -32,7 +32,7 @@
#define VERBOSE ( LOG_GENERAL | LOG_WARN )
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(TI99_CART, bus::ti99::gromport, ti99_cartridge_device, "ti99cart", "TI-99 cartridge")
+DEFINE_DEVICE_TYPE(TI99_CART, bus::ti99::gromport::ti99_cartridge_device, "ti99cart", "TI-99 cartridge")
namespace bus::ti99::gromport {
diff --git a/src/devices/bus/ti99/gromport/gkracker.cpp b/src/devices/bus/ti99/gromport/gkracker.cpp
index 91544460541..37f13623575 100644
--- a/src/devices/bus/ti99/gromport/gkracker.cpp
+++ b/src/devices/bus/ti99/gromport/gkracker.cpp
@@ -104,7 +104,7 @@
#define VERBOSE ( LOG_WARN )
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(TI99_GROMPORT_GK, bus::ti99::gromport, ti99_gkracker_device, "ti99_gkracker", "Miller's Graphics GRAM Kracker")
+DEFINE_DEVICE_TYPE(TI99_GROMPORT_GK, bus::ti99::gromport::ti99_gkracker_device, "ti99_gkracker", "Miller's Graphics GRAM Kracker")
namespace bus::ti99::gromport {
diff --git a/src/devices/bus/ti99/gromport/gromport.cpp b/src/devices/bus/ti99/gromport/gromport.cpp
index 0fb1ff03e65..1a53362416c 100644
--- a/src/devices/bus/ti99/gromport/gromport.cpp
+++ b/src/devices/bus/ti99/gromport/gromport.cpp
@@ -121,7 +121,7 @@
#define VERBOSE ( LOG_WARN )
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(TI99_GROMPORT, bus::ti99::gromport, gromport_device, "gromport", "TI-99 Cartridge port")
+DEFINE_DEVICE_TYPE(TI99_GROMPORT, bus::ti99::gromport::gromport_device, "gromport", "TI-99 Cartridge port")
namespace bus::ti99::gromport {
diff --git a/src/devices/bus/ti99/gromport/multiconn.cpp b/src/devices/bus/ti99/gromport/multiconn.cpp
index f5b948143b0..595a6ab1a29 100644
--- a/src/devices/bus/ti99/gromport/multiconn.cpp
+++ b/src/devices/bus/ti99/gromport/multiconn.cpp
@@ -49,7 +49,7 @@
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(TI99_GROMPORT_MULTI, bus::ti99::gromport, ti99_multi_cart_conn_device, "ti99_mcartconn", "TI-99 Multi-cartridge extender")
+DEFINE_DEVICE_TYPE(TI99_GROMPORT_MULTI, bus::ti99::gromport::ti99_multi_cart_conn_device, "ti99_mcartconn", "TI-99 Multi-cartridge extender")
namespace bus::ti99::gromport {
diff --git a/src/devices/bus/ti99/gromport/singleconn.cpp b/src/devices/bus/ti99/gromport/singleconn.cpp
index ce07dba59f5..e24a3ba416a 100644
--- a/src/devices/bus/ti99/gromport/singleconn.cpp
+++ b/src/devices/bus/ti99/gromport/singleconn.cpp
@@ -9,7 +9,7 @@
#include "emu.h"
#include "singleconn.h"
-DEFINE_DEVICE_TYPE_NS(TI99_GROMPORT_SINGLE, bus::ti99::gromport, ti99_single_cart_conn_device, "ti99_scartconn", "TI-99 Standard cartridge connector")
+DEFINE_DEVICE_TYPE(TI99_GROMPORT_SINGLE, bus::ti99::gromport::ti99_single_cart_conn_device, "ti99_scartconn", "TI-99 Standard cartridge connector")
namespace bus::ti99::gromport {
diff --git a/src/devices/bus/ti99/internal/992board.cpp b/src/devices/bus/ti99/internal/992board.cpp
index 10c065ed7ac..bb13a379475 100644
--- a/src/devices/bus/ti99/internal/992board.cpp
+++ b/src/devices/bus/ti99/internal/992board.cpp
@@ -129,13 +129,13 @@
[2] VDC Controller CF40052
*/
-DEFINE_DEVICE_TYPE_NS(VIDEO99224, bus::ti99::internal, video992_24_device, "video992_24", "TI-99/2 CRT Controller 24K version")
-DEFINE_DEVICE_TYPE_NS(VIDEO99232, bus::ti99::internal, video992_32_device, "video992_32", "TI-99/2 CRT Controller 32K version")
-DEFINE_DEVICE_TYPE_NS(IO99224, bus::ti99::internal, io992_24_device, "io992_24", "TI-99/2 I/O controller 24K version")
-DEFINE_DEVICE_TYPE_NS(IO99232, bus::ti99::internal, io992_32_device, "io992_32", "TI-99/2 I/O controller 32K version")
+DEFINE_DEVICE_TYPE(VIDEO99224, bus::ti99::internal::video992_24_device, "video992_24", "TI-99/2 CRT Controller 24K version")
+DEFINE_DEVICE_TYPE(VIDEO99232, bus::ti99::internal::video992_32_device, "video992_32", "TI-99/2 CRT Controller 32K version")
+DEFINE_DEVICE_TYPE(IO99224, bus::ti99::internal::io992_24_device, "io992_24", "TI-99/2 I/O controller 24K version")
+DEFINE_DEVICE_TYPE(IO99232, bus::ti99::internal::io992_32_device, "io992_32", "TI-99/2 I/O controller 32K version")
-DEFINE_DEVICE_TYPE_NS(TI992_EXPPORT, bus::ti99::internal, ti992_expport_device, "ti992_expport", "TI-99/2 Expansion Port")
-DEFINE_DEVICE_TYPE_NS(TI992_RAM32K, bus::ti99::internal, ti992_expram_device, "ti992_ram32k", "TI-99/2 RAM Expansion 32K")
+DEFINE_DEVICE_TYPE(TI992_EXPPORT, bus::ti99::internal::ti992_expport_device, "ti992_expport", "TI-99/2 Expansion Port")
+DEFINE_DEVICE_TYPE(TI992_RAM32K, bus::ti99::internal::ti992_expram_device, "ti992_ram32k", "TI-99/2 RAM Expansion 32K")
namespace bus::ti99::internal {
diff --git a/src/devices/bus/ti99/internal/998board.cpp b/src/devices/bus/ti99/internal/998board.cpp
index 32a018b540c..49533d97c29 100644
--- a/src/devices/bus/ti99/internal/998board.cpp
+++ b/src/devices/bus/ti99/internal/998board.cpp
@@ -128,11 +128,11 @@
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(TI99_MAINBOARD8, bus::ti99::internal, mainboard8_device, "ti998_mainboard", "TI-99/8 Mainboard")
-DEFINE_DEVICE_TYPE_NS(TI99_VAQUERRO, bus::ti99::internal, vaquerro_device, "ti998_vaquerro", "TI-99/8 Logical Address Space Decoder")
-DEFINE_DEVICE_TYPE_NS(TI99_MOFETTA, bus::ti99::internal, mofetta_device, "ti998_mofetta", "TI-99/8 Physical Address Space Decoder")
-DEFINE_DEVICE_TYPE_NS(TI99_OSO, bus::ti99::internal, oso_device, "ti998_oso", "TI-99/8 Hexbus interface")
-DEFINE_DEVICE_TYPE_NS(TI99_AMIGO, bus::ti99::internal, amigo_device, "ti998_amigo", "TI-99/8 Address space mapper")
+DEFINE_DEVICE_TYPE(TI99_MAINBOARD8, bus::ti99::internal::mainboard8_device, "ti998_mainboard", "TI-99/8 Mainboard")
+DEFINE_DEVICE_TYPE(TI99_VAQUERRO, bus::ti99::internal::vaquerro_device, "ti998_vaquerro", "TI-99/8 Logical Address Space Decoder")
+DEFINE_DEVICE_TYPE(TI99_MOFETTA, bus::ti99::internal::mofetta_device, "ti998_mofetta", "TI-99/8 Physical Address Space Decoder")
+DEFINE_DEVICE_TYPE(TI99_OSO, bus::ti99::internal::oso_device, "ti998_oso", "TI-99/8 Hexbus interface")
+DEFINE_DEVICE_TYPE(TI99_AMIGO, bus::ti99::internal::amigo_device, "ti998_amigo", "TI-99/8 Address space mapper")
namespace bus::ti99::internal {
diff --git a/src/devices/bus/ti99/internal/buffram.cpp b/src/devices/bus/ti99/internal/buffram.cpp
index 338313d4733..1677e2ede8d 100644
--- a/src/devices/bus/ti99/internal/buffram.cpp
+++ b/src/devices/bus/ti99/internal/buffram.cpp
@@ -16,7 +16,7 @@
#define BUFFRAM_TAG "buffered_ram"
-DEFINE_DEVICE_TYPE_NS(BUFF_RAM, bus::ti99::internal, buffered_ram_device, BUFFRAM_TAG, "Buffered SRAM")
+DEFINE_DEVICE_TYPE(BUFF_RAM, bus::ti99::internal::buffered_ram_device, BUFFRAM_TAG, "Buffered SRAM")
namespace bus::ti99::internal {
diff --git a/src/devices/bus/ti99/internal/datamux.cpp b/src/devices/bus/ti99/internal/datamux.cpp
index 53092cf187e..d56d8573822 100644
--- a/src/devices/bus/ti99/internal/datamux.cpp
+++ b/src/devices/bus/ti99/internal/datamux.cpp
@@ -82,7 +82,7 @@
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(TI99_DATAMUX, bus::ti99::internal, datamux_device, "ti99_datamux", "TI-99 Databus multiplexer")
+DEFINE_DEVICE_TYPE(TI99_DATAMUX, bus::ti99::internal::datamux_device, "ti99_datamux", "TI-99 Databus multiplexer")
namespace bus::ti99::internal {
diff --git a/src/devices/bus/ti99/internal/evpcconn.cpp b/src/devices/bus/ti99/internal/evpcconn.cpp
index 366a3ad4c94..2b7647d52dd 100644
--- a/src/devices/bus/ti99/internal/evpcconn.cpp
+++ b/src/devices/bus/ti99/internal/evpcconn.cpp
@@ -22,7 +22,7 @@
#include "emu.h"
#include "evpcconn.h"
-DEFINE_DEVICE_TYPE_NS(TI99_EVPCCONN, bus::ti99::internal, evpc_clock_connector, "ti99_evpc_clock", "EVPC clock connector")
+DEFINE_DEVICE_TYPE(TI99_EVPCCONN, bus::ti99::internal::evpc_clock_connector, "ti99_evpc_clock", "EVPC clock connector")
namespace bus::ti99::internal {
diff --git a/src/devices/bus/ti99/internal/genboard.cpp b/src/devices/bus/ti99/internal/genboard.cpp
index dbe4664e997..10813d9d32e 100644
--- a/src/devices/bus/ti99/internal/genboard.cpp
+++ b/src/devices/bus/ti99/internal/genboard.cpp
@@ -434,9 +434,9 @@
#include "genboard.h"
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(GENEVE_GATE_ARRAY, bus::ti99::internal, geneve_gate_array_device, "geneve_gate_array", "Geneve Gate Array")
-DEFINE_DEVICE_TYPE_NS(GENMOD_DECODER, bus::ti99::internal, genmod_decoder_device, "genmod_decoder", "GenMod decoder circuit")
-DEFINE_DEVICE_TYPE_NS(GENEVE_PAL, bus::ti99::internal, geneve_pal_device, "geneve_pal", "Geneve PAL circuit")
+DEFINE_DEVICE_TYPE(GENEVE_GATE_ARRAY, bus::ti99::internal::geneve_gate_array_device, "geneve_gate_array", "Geneve Gate Array")
+DEFINE_DEVICE_TYPE(GENMOD_DECODER, bus::ti99::internal::genmod_decoder_device, "genmod_decoder", "GenMod decoder circuit")
+DEFINE_DEVICE_TYPE(GENEVE_PAL, bus::ti99::internal::geneve_pal_device, "geneve_pal", "Geneve PAL circuit")
namespace bus::ti99::internal {
diff --git a/src/devices/bus/ti99/internal/ioport.cpp b/src/devices/bus/ti99/internal/ioport.cpp
index a6049e72a6b..4ab42b201b4 100644
--- a/src/devices/bus/ti99/internal/ioport.cpp
+++ b/src/devices/bus/ti99/internal/ioport.cpp
@@ -80,7 +80,7 @@
#include "ioport.h"
#include "bus/ti99/peb/peribox.h"
-DEFINE_DEVICE_TYPE_NS(TI99_IOPORT, bus::ti99::internal, ioport_device, "ti99_ioport", "TI-99 I/O Port")
+DEFINE_DEVICE_TYPE(TI99_IOPORT, bus::ti99::internal::ioport_device, "ti99_ioport", "TI-99 I/O Port")
namespace bus::ti99::internal {
diff --git a/src/devices/bus/ti99/joyport/handset.cpp b/src/devices/bus/ti99/joyport/handset.cpp
index 07a78dab1f2..8805d460200 100644
--- a/src/devices/bus/ti99/joyport/handset.cpp
+++ b/src/devices/bus/ti99/joyport/handset.cpp
@@ -49,8 +49,8 @@
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(TI99_JOYSTICK, bus::ti99::joyport, ti99_twin_joystick_device, "ti99_twinjoy", "TI-99/4(A) Twin Joysticks")
-DEFINE_DEVICE_TYPE_NS(TI99_HANDSET, bus::ti99::joyport, ti99_handset_device, "ti99_handset", "TI-99/4 IR handset")
+DEFINE_DEVICE_TYPE(TI99_JOYSTICK, bus::ti99::joyport::ti99_twin_joystick_device, "ti99_twinjoy", "TI-99/4(A) Twin Joysticks")
+DEFINE_DEVICE_TYPE(TI99_HANDSET, bus::ti99::joyport::ti99_handset_device, "ti99_handset", "TI-99/4 IR handset")
namespace bus::ti99::joyport {
diff --git a/src/devices/bus/ti99/joyport/joyport.cpp b/src/devices/bus/ti99/joyport/joyport.cpp
index 92680ab2c09..77825e85f96 100644
--- a/src/devices/bus/ti99/joyport/joyport.cpp
+++ b/src/devices/bus/ti99/joyport/joyport.cpp
@@ -40,7 +40,7 @@
#include "handset.h"
#include "mecmouse.h"
-DEFINE_DEVICE_TYPE_NS(TI99_JOYPORT, bus::ti99::joyport, joyport_device, "ti99_joyport", "TI-99 Joystick port")
+DEFINE_DEVICE_TYPE(TI99_JOYPORT, bus::ti99::joyport::joyport_device, "ti99_joyport", "TI-99 Joystick port")
namespace bus::ti99::joyport {
diff --git a/src/devices/bus/ti99/joyport/mecmouse.cpp b/src/devices/bus/ti99/joyport/mecmouse.cpp
index e21f3a540a2..76a5a24c413 100644
--- a/src/devices/bus/ti99/joyport/mecmouse.cpp
+++ b/src/devices/bus/ti99/joyport/mecmouse.cpp
@@ -51,7 +51,7 @@
#include "emu.h"
#include "mecmouse.h"
-DEFINE_DEVICE_TYPE_NS(TI99_MECMOUSE, bus::ti99::joyport, mecmouse_device, "ti99_mecmouse", "TI-99 Mechatronics Mouse")
+DEFINE_DEVICE_TYPE(TI99_MECMOUSE, bus::ti99::joyport::mecmouse_device, "ti99_mecmouse", "TI-99 Mechatronics Mouse")
namespace bus::ti99::joyport {
diff --git a/src/devices/bus/ti99/peb/bwg.cpp b/src/devices/bus/ti99/peb/bwg.cpp
index e0373ae2fc6..4950943a8a8 100644
--- a/src/devices/bus/ti99/peb/bwg.cpp
+++ b/src/devices/bus/ti99/peb/bwg.cpp
@@ -63,7 +63,7 @@
#define VERBOSE ( LOG_CONFIG | LOG_WARN )
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(TI99_BWG, bus::ti99::peb, snug_bwg_device, "ti99_bwg", "SNUG BwG Floppy Controller")
+DEFINE_DEVICE_TYPE(TI99_BWG, bus::ti99::peb::snug_bwg_device, "ti99_bwg", "SNUG BwG Floppy Controller")
namespace bus::ti99::peb {
diff --git a/src/devices/bus/ti99/peb/cc_fdc.cpp b/src/devices/bus/ti99/peb/cc_fdc.cpp
index c2b20e778a8..6762dea8a05 100644
--- a/src/devices/bus/ti99/peb/cc_fdc.cpp
+++ b/src/devices/bus/ti99/peb/cc_fdc.cpp
@@ -59,14 +59,14 @@
#define BUFFER "ram"
-DEFINE_DEVICE_TYPE_NS(TI99_CCDCC, bus::ti99::peb, corcomp_dcc_device, CCDCC_TAG, "CorComp Disk Controller Card")
-DEFINE_DEVICE_TYPE_NS(TI99_CCFDC, bus::ti99::peb, corcomp_fdca_device, CCFDC_TAG, "CorComp Floppy Disk Controller Card Rev A")
+DEFINE_DEVICE_TYPE(TI99_CCDCC, bus::ti99::peb::corcomp_dcc_device, CCDCC_TAG, "CorComp Disk Controller Card")
+DEFINE_DEVICE_TYPE(TI99_CCFDC, bus::ti99::peb::corcomp_fdca_device, CCFDC_TAG, "CorComp Floppy Disk Controller Card Rev A")
-DEFINE_DEVICE_TYPE_NS(CCDCC_PALU2, bus::ti99::peb, ccdcc_palu2_device, CCDCC_PALU2_TAG, "CorComp DCC PAL u2")
-DEFINE_DEVICE_TYPE_NS(CCDCC_PALU1, bus::ti99::peb, ccdcc_palu1_device, CCDCC_PALU1_TAG, "CorComp DCC PAL u1")
+DEFINE_DEVICE_TYPE(CCDCC_PALU2, bus::ti99::peb::ccdcc_palu2_device, CCDCC_PALU2_TAG, "CorComp DCC PAL u2")
+DEFINE_DEVICE_TYPE(CCDCC_PALU1, bus::ti99::peb::ccdcc_palu1_device, CCDCC_PALU1_TAG, "CorComp DCC PAL u1")
-DEFINE_DEVICE_TYPE_NS(CCFDC_PALU12, bus::ti99::peb, ccfdc_palu12_device, CCFDC_PALU12_TAG, "CorComp FDC PAL u12")
-DEFINE_DEVICE_TYPE_NS(CCFDC_PALU6, bus::ti99::peb, ccfdc_palu6_device, CCFDC_PALU6_TAG, "CorComp FDC PAL u6")
+DEFINE_DEVICE_TYPE(CCFDC_PALU12, bus::ti99::peb::ccfdc_palu12_device, CCFDC_PALU12_TAG, "CorComp FDC PAL u12")
+DEFINE_DEVICE_TYPE(CCFDC_PALU6, bus::ti99::peb::ccfdc_palu6_device, CCFDC_PALU6_TAG, "CorComp FDC PAL u6")
namespace bus::ti99::peb {
diff --git a/src/devices/bus/ti99/peb/evpc.cpp b/src/devices/bus/ti99/peb/evpc.cpp
index f45c672d00c..b99821baf4a 100644
--- a/src/devices/bus/ti99/peb/evpc.cpp
+++ b/src/devices/bus/ti99/peb/evpc.cpp
@@ -52,7 +52,7 @@
#include "logmacro.h"
#define EVPC_SCREEN_TAG "screen"
-DEFINE_DEVICE_TYPE_NS(TI99_EVPC, bus::ti99::peb, snug_enhanced_video_device, "ti99_evpc", "SNUG Enhanced Video Processor Card")
+DEFINE_DEVICE_TYPE(TI99_EVPC, bus::ti99::peb::snug_enhanced_video_device, "ti99_evpc", "SNUG Enhanced Video Processor Card")
namespace bus::ti99::peb {
diff --git a/src/devices/bus/ti99/peb/forti.cpp b/src/devices/bus/ti99/peb/forti.cpp
index 25b0ce0a3a0..0ee053a740c 100644
--- a/src/devices/bus/ti99/peb/forti.cpp
+++ b/src/devices/bus/ti99/peb/forti.cpp
@@ -41,7 +41,7 @@
#define FORTI_GEN3_TAG "soundchip3"
#define FORTI_GEN4_TAG "soundchip4"
-DEFINE_DEVICE_TYPE_NS(TI99_FORTI, bus::ti99::peb, forti_device, "ti99_forti", "FORTi Sound Card")
+DEFINE_DEVICE_TYPE(TI99_FORTI, bus::ti99::peb::forti_device, "ti99_forti", "FORTi Sound Card")
namespace bus::ti99::peb {
diff --git a/src/devices/bus/ti99/peb/hfdc.cpp b/src/devices/bus/ti99/peb/hfdc.cpp
index 204223fd19c..2e5d7173c44 100644
--- a/src/devices/bus/ti99/peb/hfdc.cpp
+++ b/src/devices/bus/ti99/peb/hfdc.cpp
@@ -74,7 +74,7 @@
#define VERBOSE ( LOG_GENERAL | LOG_CONFIG | LOG_WARN )
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(TI99_HFDC, bus::ti99::peb, myarc_hfdc_device, "ti99_hfdc", "Myarc Hard and Floppy Disk Controller")
+DEFINE_DEVICE_TYPE(TI99_HFDC, bus::ti99::peb::myarc_hfdc_device, "ti99_hfdc", "Myarc Hard and Floppy Disk Controller")
namespace bus::ti99::peb {
diff --git a/src/devices/bus/ti99/peb/horizon.cpp b/src/devices/bus/ti99/peb/horizon.cpp
index e0e226f646b..1be6264189c 100644
--- a/src/devices/bus/ti99/peb/horizon.cpp
+++ b/src/devices/bus/ti99/peb/horizon.cpp
@@ -139,7 +139,7 @@
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(TI99_HORIZON, bus::ti99::peb, horizon_ramdisk_device, "ti99_horizon", "Horizon 4000B RAMdisk")
+DEFINE_DEVICE_TYPE(TI99_HORIZON, bus::ti99::peb::horizon_ramdisk_device, "ti99_horizon", "Horizon 4000B RAMdisk")
namespace bus::ti99::peb {
diff --git a/src/devices/bus/ti99/peb/hsgpl.cpp b/src/devices/bus/ti99/peb/hsgpl.cpp
index cc5f4b0feee..fc687b25785 100644
--- a/src/devices/bus/ti99/peb/hsgpl.cpp
+++ b/src/devices/bus/ti99/peb/hsgpl.cpp
@@ -136,7 +136,7 @@
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(TI99_HSGPL, bus::ti99::peb, snug_high_speed_gpl_device, "ti99_hsgpl", "SNUG High-speed GPL card")
+DEFINE_DEVICE_TYPE(TI99_HSGPL, bus::ti99::peb::snug_high_speed_gpl_device, "ti99_hsgpl", "SNUG High-speed GPL card")
namespace bus::ti99::peb {
diff --git a/src/devices/bus/ti99/peb/memex.cpp b/src/devices/bus/ti99/peb/memex.cpp
index 44db15aa6af..1ee9bf423e1 100644
--- a/src/devices/bus/ti99/peb/memex.cpp
+++ b/src/devices/bus/ti99/peb/memex.cpp
@@ -25,7 +25,7 @@
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(TI99_MEMEX, bus::ti99::peb, geneve_memex_device, "ti99_memex", "Geneve memory expansion card")
+DEFINE_DEVICE_TYPE(TI99_MEMEX, bus::ti99::peb::geneve_memex_device, "ti99_memex", "Geneve memory expansion card")
namespace bus::ti99::peb {
diff --git a/src/devices/bus/ti99/peb/myarcfdc.cpp b/src/devices/bus/ti99/peb/myarcfdc.cpp
index 8c1410bb848..4e85d5be0c0 100644
--- a/src/devices/bus/ti99/peb/myarcfdc.cpp
+++ b/src/devices/bus/ti99/peb/myarcfdc.cpp
@@ -47,8 +47,8 @@
#define WD1772_TAG "wd1772"
#define PAL_TAG "pal"
-DEFINE_DEVICE_TYPE_NS(TI99_DDCC1, bus::ti99::peb, myarc_fdc_device, "ti99_ddcc1", "Myarc Disk Controller Card")
-DEFINE_DEVICE_TYPE_NS(DDCC1_PAL, bus::ti99::peb, ddcc1_pal_device, PAL_TAG, "Myarc DDCC-1 PAL u1")
+DEFINE_DEVICE_TYPE(TI99_DDCC1, bus::ti99::peb::myarc_fdc_device, "ti99_ddcc1", "Myarc Disk Controller Card")
+DEFINE_DEVICE_TYPE(DDCC1_PAL, bus::ti99::peb::ddcc1_pal_device, PAL_TAG, "Myarc DDCC-1 PAL u1")
namespace bus::ti99::peb {
diff --git a/src/devices/bus/ti99/peb/myarcmem.cpp b/src/devices/bus/ti99/peb/myarcmem.cpp
index 20d2bd5af4e..edee7601c80 100644
--- a/src/devices/bus/ti99/peb/myarcmem.cpp
+++ b/src/devices/bus/ti99/peb/myarcmem.cpp
@@ -30,7 +30,7 @@
#include "emu.h"
#include "myarcmem.h"
-DEFINE_DEVICE_TYPE_NS(TI99_MYARCMEM, bus::ti99::peb, myarc_memory_expansion_device, "ti99_myarcmem", "Myarc Memory expansion card MEXP-1")
+DEFINE_DEVICE_TYPE(TI99_MYARCMEM, bus::ti99::peb::myarc_memory_expansion_device, "ti99_myarcmem", "Myarc Memory expansion card MEXP-1")
namespace bus::ti99::peb {
diff --git a/src/devices/bus/ti99/peb/pcode.cpp b/src/devices/bus/ti99/peb/pcode.cpp
index c7f10650995..156d190adc6 100644
--- a/src/devices/bus/ti99/peb/pcode.cpp
+++ b/src/devices/bus/ti99/peb/pcode.cpp
@@ -86,7 +86,7 @@
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(TI99_P_CODE, bus::ti99::peb, ti_pcode_card_device, "ti99_pcode", "TI-99 P-Code Card")
+DEFINE_DEVICE_TYPE(TI99_P_CODE, bus::ti99::peb::ti_pcode_card_device, "ti99_pcode", "TI-99 P-Code Card")
namespace bus::ti99::peb {
diff --git a/src/devices/bus/ti99/peb/peribox.cpp b/src/devices/bus/ti99/peb/peribox.cpp
index 13b58cc36e7..b4e047c9815 100644
--- a/src/devices/bus/ti99/peb/peribox.cpp
+++ b/src/devices/bus/ti99/peb/peribox.cpp
@@ -211,22 +211,22 @@ CRUCLK* 51||52 DBIN
// Peripheral box that is attached to the TI console (also TI with EVPC)
// and has the Flex Cable Interface in slot 1
// This is a device that plugs into the slot "ioport" of the console
-DEFINE_DEVICE_TYPE_NS(TI99_PERIBOX, bus::ti99::peb, peribox_device, "peribox", "Peripheral expansion box")
+DEFINE_DEVICE_TYPE(TI99_PERIBOX, bus::ti99::peb::peribox_device, "peribox", "Peripheral expansion box")
// Peripheral box which has a EVPC card in slot 2 (for use with the ti99_4ev)
-DEFINE_DEVICE_TYPE_NS(TI99_PERIBOX_EV, bus::ti99::peb, peribox_ev_device, "peribox_ev", "Peripheral expansion box with EVPC")
+DEFINE_DEVICE_TYPE(TI99_PERIBOX_EV, bus::ti99::peb::peribox_ev_device, "peribox_ev", "Peripheral expansion box with EVPC")
// Peripheral box which hosts the SGCPU card in slot 1
-DEFINE_DEVICE_TYPE_NS(TI99_PERIBOX_SG, bus::ti99::peb, peribox_sg_device, "peribox_sg", "Peripheral expansion box SGCPU")
+DEFINE_DEVICE_TYPE(TI99_PERIBOX_SG, bus::ti99::peb::peribox_sg_device, "peribox_sg", "Peripheral expansion box SGCPU")
// Peripheral box which hosts the Geneve 9640 in slot 1
-DEFINE_DEVICE_TYPE_NS(TI99_PERIBOX_GEN, bus::ti99::peb, peribox_gen_device, "peribox_gen", "Peripheral expansion box Geneve")
+DEFINE_DEVICE_TYPE(TI99_PERIBOX_GEN, bus::ti99::peb::peribox_gen_device, "peribox_gen", "Peripheral expansion box Geneve")
// Peripheral box which hosts the Geneve 9640 in slot 1 with Genmod
-DEFINE_DEVICE_TYPE_NS(TI99_PERIBOX_GENMOD, bus::ti99::peb, peribox_genmod_device, "peribox_genmod", "Peripheral expansion box Genmod")
+DEFINE_DEVICE_TYPE(TI99_PERIBOX_GENMOD, bus::ti99::peb::peribox_genmod_device, "peribox_genmod", "Peripheral expansion box Genmod")
// Single slot of the PEB
-DEFINE_DEVICE_TYPE_NS(TI99_PERIBOX_SLOT, bus::ti99::peb, peribox_slot_device, "peribox_slot", "TI P-Box slot")
+DEFINE_DEVICE_TYPE(TI99_PERIBOX_SLOT, bus::ti99::peb::peribox_slot_device, "peribox_slot", "TI P-Box slot")
namespace bus::ti99::peb {
diff --git a/src/devices/bus/ti99/peb/pgram.cpp b/src/devices/bus/ti99/peb/pgram.cpp
index 851a7bcee4a..c6ece9407a0 100644
--- a/src/devices/bus/ti99/peb/pgram.cpp
+++ b/src/devices/bus/ti99/peb/pgram.cpp
@@ -141,7 +141,7 @@
#define COUNT2_TAG "u12_counter"
#define COUNT3_TAG "u10_counter"
-DEFINE_DEVICE_TYPE_NS(TI99_PGRAM, bus::ti99::peb, pgram_device, "ti99_pgram", "PGRAM(+) memory card")
+DEFINE_DEVICE_TYPE(TI99_PGRAM, bus::ti99::peb::pgram_device, "ti99_pgram", "PGRAM(+) memory card")
namespace bus::ti99::peb {
diff --git a/src/devices/bus/ti99/peb/samsmem.cpp b/src/devices/bus/ti99/peb/samsmem.cpp
index 2c895e35130..d38f877fc9f 100644
--- a/src/devices/bus/ti99/peb/samsmem.cpp
+++ b/src/devices/bus/ti99/peb/samsmem.cpp
@@ -28,7 +28,7 @@
#include "emu.h"
#include "samsmem.h"
-DEFINE_DEVICE_TYPE_NS(TI99_SAMSMEM, bus::ti99::peb, sams_memory_expansion_device, "ti99_sams", "SuperAMS memory expansion card")
+DEFINE_DEVICE_TYPE(TI99_SAMSMEM, bus::ti99::peb::sams_memory_expansion_device, "ti99_sams", "SuperAMS memory expansion card")
namespace bus::ti99::peb {
diff --git a/src/devices/bus/ti99/peb/sidmaster.cpp b/src/devices/bus/ti99/peb/sidmaster.cpp
index 5d6db281b22..9b6eb0af129 100644
--- a/src/devices/bus/ti99/peb/sidmaster.cpp
+++ b/src/devices/bus/ti99/peb/sidmaster.cpp
@@ -31,7 +31,7 @@
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(TI99_SIDMASTER, bus::ti99::peb, sidmaster_device, "ti99_sidmaster", "SID Master 99")
+DEFINE_DEVICE_TYPE(TI99_SIDMASTER, bus::ti99::peb::sidmaster_device, "ti99_sidmaster", "SID Master 99")
namespace bus::ti99::peb {
diff --git a/src/devices/bus/ti99/peb/spchsyn.cpp b/src/devices/bus/ti99/peb/spchsyn.cpp
index 7c6fd56fbfb..302758f3f4e 100644
--- a/src/devices/bus/ti99/peb/spchsyn.cpp
+++ b/src/devices/bus/ti99/peb/spchsyn.cpp
@@ -36,7 +36,7 @@
#define VERBOSE ( LOG_CONFIG | LOG_WARN )
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(TI99_SPEECH, bus::ti99::peb, ti_speech_synthesizer_device, "ti99_speech", "TI-99 Speech synthesizer (on adapter card)")
+DEFINE_DEVICE_TYPE(TI99_SPEECH, bus::ti99::peb::ti_speech_synthesizer_device, "ti99_speech", "TI-99 Speech synthesizer (on adapter card)")
namespace bus::ti99::peb {
diff --git a/src/devices/bus/ti99/peb/ti_32kmem.cpp b/src/devices/bus/ti99/peb/ti_32kmem.cpp
index ee17e86ba7b..1f9404bd1e1 100644
--- a/src/devices/bus/ti99/peb/ti_32kmem.cpp
+++ b/src/devices/bus/ti99/peb/ti_32kmem.cpp
@@ -31,7 +31,7 @@
#include "emu.h"
#include "ti_32kmem.h"
-DEFINE_DEVICE_TYPE_NS(TI99_32KMEM, bus::ti99::peb, ti_32k_expcard_device, "ti99_32kmem", "TI-99 32KiB memory expansion card")
+DEFINE_DEVICE_TYPE(TI99_32KMEM, bus::ti99::peb::ti_32k_expcard_device, "ti99_32kmem", "TI-99 32KiB memory expansion card")
namespace bus::ti99::peb {
diff --git a/src/devices/bus/ti99/peb/ti_fdc.cpp b/src/devices/bus/ti99/peb/ti_fdc.cpp
index 15636a7d2cc..b68147a8193 100644
--- a/src/devices/bus/ti99/peb/ti_fdc.cpp
+++ b/src/devices/bus/ti99/peb/ti_fdc.cpp
@@ -32,7 +32,7 @@
#define VERBOSE ( LOG_CONFIG | LOG_WARN )
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(TI99_FDC, bus::ti99::peb, ti_fdc_device, "ti99_fdc", "TI-99 Standard DSSD Floppy Controller")
+DEFINE_DEVICE_TYPE(TI99_FDC, bus::ti99::peb::ti_fdc_device, "ti99_fdc", "TI-99 Standard DSSD Floppy Controller")
namespace bus::ti99::peb {
diff --git a/src/devices/bus/ti99/peb/ti_rs232.cpp b/src/devices/bus/ti99/peb/ti_rs232.cpp
index a88b0124e67..841acf44ac7 100644
--- a/src/devices/bus/ti99/peb/ti_rs232.cpp
+++ b/src/devices/bus/ti99/peb/ti_rs232.cpp
@@ -118,9 +118,9 @@
#define VERBOSE ( LOG_CONFIG | LOG_WARN )
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(TI99_RS232, bus::ti99::peb, ti_rs232_pio_device, "ti99_rs232", "TI-99 RS232/PIO interface")
-DEFINE_DEVICE_TYPE_NS(TI99_RS232_DEV, bus::ti99::peb, ti_rs232_attached_device, "ti99_rs232_atttached", "TI-99 Serial attached device")
-DEFINE_DEVICE_TYPE_NS(TI99_PIO_DEV, bus::ti99::peb, ti_pio_attached_device, "ti99_pio_attached", "TI-99 Parallel attached device")
+DEFINE_DEVICE_TYPE(TI99_RS232, bus::ti99::peb::ti_rs232_pio_device, "ti99_rs232", "TI-99 RS232/PIO interface")
+DEFINE_DEVICE_TYPE(TI99_RS232_DEV, bus::ti99::peb::ti_rs232_attached_device, "ti99_rs232_atttached", "TI-99 Serial attached device")
+DEFINE_DEVICE_TYPE(TI99_PIO_DEV, bus::ti99::peb::ti_pio_attached_device, "ti99_pio_attached", "TI-99 Parallel attached device")
namespace bus::ti99::peb {
diff --git a/src/devices/bus/ti99/peb/tn_ide.cpp b/src/devices/bus/ti99/peb/tn_ide.cpp
index a1f7528940e..2a31a86dd6a 100644
--- a/src/devices/bus/ti99/peb/tn_ide.cpp
+++ b/src/devices/bus/ti99/peb/tn_ide.cpp
@@ -134,7 +134,7 @@
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(TI99_IDE, bus::ti99::peb, nouspikel_ide_card_device, "ti99_ide", "Nouspikel IDE interface card")
+DEFINE_DEVICE_TYPE(TI99_IDE, bus::ti99::peb::nouspikel_ide_card_device, "ti99_ide", "Nouspikel IDE interface card")
#define CLOCK65_TAG "rtc65271"
#define CLOCK47_TAG "bq4847"
diff --git a/src/devices/bus/ti99/peb/tn_usbsm.cpp b/src/devices/bus/ti99/peb/tn_usbsm.cpp
index 3e48e328772..5a2a266661b 100644
--- a/src/devices/bus/ti99/peb/tn_usbsm.cpp
+++ b/src/devices/bus/ti99/peb/tn_usbsm.cpp
@@ -48,7 +48,7 @@
#include "logmacro.h"
-DEFINE_DEVICE_TYPE_NS(TI99_USBSM, bus::ti99::peb, nouspikel_usb_smartmedia_device, "ti99_usbsm", "Nouspikel USB/Smartmedia card")
+DEFINE_DEVICE_TYPE(TI99_USBSM, bus::ti99::peb::nouspikel_usb_smartmedia_device, "ti99_usbsm", "Nouspikel USB/Smartmedia card")
namespace bus::ti99::peb {
diff --git a/src/devices/cpu/dsp56156/dsp56156.cpp b/src/devices/cpu/dsp56156/dsp56156.cpp
index 85f0e4a5333..38ec2039bf5 100644
--- a/src/devices/cpu/dsp56156/dsp56156.cpp
+++ b/src/devices/cpu/dsp56156/dsp56156.cpp
@@ -60,7 +60,7 @@
#include "dsp56mem.h"
-DEFINE_DEVICE_TYPE_NS(DSP56156, DSP_56156, dsp56156_device, "dsp56156", "Motorola DSP56156")
+DEFINE_DEVICE_TYPE(DSP56156, DSP_56156::dsp56156_device, "dsp56156", "Motorola DSP56156")
namespace DSP_56156 {
diff --git a/src/devices/cpu/m6805/m68705.h b/src/devices/cpu/m6805/m68705.h
index f6e02430acc..9f5354f9f6f 100644
--- a/src/devices/cpu/m6805/m68705.h
+++ b/src/devices/cpu/m6805/m68705.h
@@ -425,6 +425,8 @@ class m68705u3_device : public m68705u_device
public:
m68705u3_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock);
+ static auto parent_rom_device_type() { return &M68705R3; }
+
protected:
virtual tiny_rom_entry const *device_rom_region() const override;
diff --git a/src/devices/machine/i8255.cpp b/src/devices/machine/i8255.cpp
index e0e5d8297a6..003734413e4 100644
--- a/src/devices/machine/i8255.cpp
+++ b/src/devices/machine/i8255.cpp
@@ -64,7 +64,6 @@ enum
//**************************************************************************
DEFINE_DEVICE_TYPE(I8255, i8255_device, "i8255", "Intel 8255 PPI")
-decltype(I8255) I8255A = I8255;
DEFINE_DEVICE_TYPE(AMS40489_PPI, ams40489_ppi_device, "ams40489_ppi", "Amstrad AMS40489 PPI")
diff --git a/src/devices/machine/i8255.h b/src/devices/machine/i8255.h
index 44a4dc72e5f..bd74fe2eb6e 100644
--- a/src/devices/machine/i8255.h
+++ b/src/devices/machine/i8255.h
@@ -142,7 +142,7 @@ public:
// device type definition
DECLARE_DEVICE_TYPE(I8255, i8255_device)
-DECLARE_DEVICE_TYPE(I8255A, i8255_device)
+static auto &I8255A = I8255;
DECLARE_DEVICE_TYPE(AMS40489_PPI, ams40489_ppi_device)
#endif // MAME_MACHINE_I8255_H
diff --git a/src/devices/video/hd61830.cpp b/src/devices/video/hd61830.cpp
index 235d250b405..6e36a550153 100644
--- a/src/devices/video/hd61830.cpp
+++ b/src/devices/video/hd61830.cpp
@@ -21,7 +21,6 @@
//**************************************************************************
DEFINE_DEVICE_TYPE(HD61830, hd61830_device, "hd61830", "Hitachi HD61830B LCD Controller")
-decltype(HD61830) HD61830B = HD61830;
// default address map
diff --git a/src/devices/video/hd61830.h b/src/devices/video/hd61830.h
index 56747935587..052335c5e6d 100644
--- a/src/devices/video/hd61830.h
+++ b/src/devices/video/hd61830.h
@@ -108,6 +108,6 @@ private:
// device type definition
DECLARE_DEVICE_TYPE(HD61830, hd61830_device)
-DECLARE_DEVICE_TYPE(HD61830B, hd61830_device)
+static auto &HD61830B = HD61830;
#endif // MAME_VIDEO_HD61830_H
diff --git a/src/emu/device.h b/src/emu/device.h
index 05fa523b6fd..cab07888d35 100644
--- a/src/emu/device.h
+++ b/src/emu/device.h
@@ -335,42 +335,126 @@ template <
emu::detail::device_feature::type Imperfect>
constexpr auto driver_device_creator = &emu::detail::driver_tag_func<DriverClass, ShortName, FullName, Source, Unemulated, Imperfect>;
+
+/// \addtogroup machinedef
+/// \{
+
+/// \brief Declare a device type
+///
+/// Declares a device type where the exposed device class is in the
+/// global namespace. Must be used in the global namespace.
+///
+/// In addition to declaring the device type itself, a forward
+/// declaration for the exposed device class is generated, and automatic
+/// instantiation of device finder templates for the exposed device
+/// class is suppressed.
+/// \param Type The device type name (an identifier). By convention,
+/// these start with an uppercase letter and consist only of uppercase
+/// letters and underscores.
+/// \param Class The exposed device class name. Must be the device
+/// implementation class, or a public base of it, and must be derived
+/// from #device_t.
+/// \sa DECLARE_DEVICE_TYPE_NS DEFINE_DEVICE_TYPE
+/// DEFINE_DEVICE_TYPE_PRIVATE
#define DECLARE_DEVICE_TYPE(Type, Class) \
class Class; \
- extern emu::detail::device_type_impl<Class> const &Type; \
+ extern emu::detail::device_type_impl<Class> const Type; \
extern template class device_finder<Class, false>; \
extern template class device_finder<Class, true>;
+
+/// \brief Declare a device type for a class in a namespace
+///
+/// Declares a device type where the exposed device class is not in the
+/// global namespace. Must be used in the global namespace.
+///
+/// In addition to declaring the device type itself, a forward
+/// declaration for the exposed device class is generated, and automatic
+/// instantiation of device finder templates for the exposed device
+/// class is suppressed.
+/// \param Type The device type name (an identifier). By convention,
+/// these start with an uppercase letter and consist only of uppercase
+/// letters and underscores.
+/// \param Namespace The fully qualified name of the namespace
+/// containing the exposed device class.
+/// \param Class The exposed device class name, without namespace
+/// qualifiers. Must be the device implementation class, or a public
+/// base of it, and must be derived from #device_t.
+/// \sa DECLARE_DEVICE_TYPE DEFINE_DEVICE_TYPE
+/// DEFINE_DEVICE_TYPE_PRIVATE
#define DECLARE_DEVICE_TYPE_NS(Type, Namespace, Class) \
namespace Namespace { class Class; } \
- extern emu::detail::device_type_impl<Namespace::Class> const &Type; \
+ extern emu::detail::device_type_impl<Namespace::Class> const Type; \
extern template class device_finder<Namespace::Class, false>; \
extern template class device_finder<Namespace::Class, true>;
+
+/// \brief Define a device type
+///
+/// Defines a device type where the exposed device class is the same as
+/// the device implementation class. Must be used in the global
+/// namespace.
+///
+/// As well as defining the device type, device finder templates are
+/// instantiated for the device class.
+/// \param Type The device type name (an identifier). By convention,
+/// these start with an uppercase letter and consist only of uppercase
+/// letters and underscores.
+/// \param Class The device implementation class name. Must be the same
+/// as the exposed device class, and must be derived from #device_t.
+/// \param ShortName The short name of the device, used for
+/// identification, and in filesystem paths for assets and data. Must
+/// be a string no longer than thirty-two characters, containing only
+/// ASCII lowercase letters, digits and underscores. Must be globally
+/// unique across systems and devices.
+/// \param FullName Display name for the device. Must be a string, and
+/// must be globally unique across systems and devices.
+/// \sa DECLARE_DEVICE_TYPE DECLARE_DEVICE_TYPE_NS
+/// DEFINE_DEVICE_TYPE_PRIVATE
#define DEFINE_DEVICE_TYPE(Type, Class, ShortName, FullName) \
namespace { \
- struct Class##_device_traits { static constexpr char const shortname[] = ShortName, fullname[] = FullName, source[] = __FILE__; }; \
- constexpr char const Class##_device_traits::shortname[], Class##_device_traits::fullname[], Class##_device_traits::source[]; \
+ struct Type##_device_traits { static constexpr char const shortname[] = ShortName, fullname[] = FullName, source[] = __FILE__; }; \
+ constexpr char const Type##_device_traits::shortname[], Type##_device_traits::fullname[], Type##_device_traits::source[]; \
} \
- emu::detail::device_type_impl<Class> const &Type = device_creator<Class, (Class##_device_traits::shortname), (Class##_device_traits::fullname), (Class##_device_traits::source)>; \
+ emu::detail::device_type_impl<Class> const Type = device_creator<Class, (Type##_device_traits::shortname), (Type##_device_traits::fullname), (Type##_device_traits::source)>; \
template class device_finder<Class, false>; \
template class device_finder<Class, true>;
+
+/// \brief Define a device type with a private implementation class
+///
+/// Defines a device type where the exposed device class is a base of
+/// the device implementation class. Must be used in the global
+/// namespace.
+///
+/// Device finder templates are not instantiated for the exposed device
+/// class. This must be done explicitly in a single location for the
+/// project.
+/// \param Type The device type name (an identifier). By convention,
+/// these start with an uppercase letter and consist only of uppercase
+/// letters and underscores.
+/// \param Base The fully-qualified exposed device class name. Must be
+/// a public base of the device implementation class, and must be
+/// derived from #device_t.
+/// \param Class The fully-qualified device implementation class name.
+/// Must be derived from the exposed device class, and indirectly from
+/// #device_t.
+/// \param ShortName The short name of the device, used for
+/// identification, and in filesystem paths for assets and data. Must
+/// be a string no longer than thirty-two characters, containing only
+/// ASCII lowercase letters, digits and underscores. Must be globally
+/// unique across systems and devices.
+/// \param FullName Display name for the device. Must be a string, and
+/// must be globally unique across systems and devices.
+/// \sa DECLARE_DEVICE_TYPE DECLARE_DEVICE_TYPE_NS DEFINE_DEVICE_TYPE
#define DEFINE_DEVICE_TYPE_PRIVATE(Type, Base, Class, ShortName, FullName) \
namespace { \
- struct Class##_device_traits { static constexpr char const shortname[] = ShortName, fullname[] = FullName, source[] = __FILE__; }; \
- constexpr char const Class##_device_traits::shortname[], Class##_device_traits::fullname[], Class##_device_traits::source[]; \
+ struct Type##_device_traits { static constexpr char const shortname[] = ShortName, fullname[] = FullName, source[] = __FILE__; }; \
+ constexpr char const Type##_device_traits::shortname[], Type##_device_traits::fullname[], Type##_device_traits::source[]; \
} \
- emu::detail::device_type_impl<Base> const &Type = device_creator<Class, (Class##_device_traits::shortname), (Class##_device_traits::fullname), (Class##_device_traits::source)>;
+ emu::detail::device_type_impl<Base> const Type = device_creator<Class, (Type##_device_traits::shortname), (Type##_device_traits::fullname), (Type##_device_traits::source)>;
-#define DEFINE_DEVICE_TYPE_NS(Type, Namespace, Class, ShortName, FullName) \
- namespace { \
- struct Class##_device_traits { static constexpr char const shortname[] = ShortName, fullname[] = FullName, source[] = __FILE__; }; \
- constexpr char const Class##_device_traits::shortname[], Class##_device_traits::fullname[], Class##_device_traits::source[]; \
- } \
- emu::detail::device_type_impl<Namespace::Class> const &Type = device_creator<Namespace::Class, (Class##_device_traits::shortname), (Class##_device_traits::fullname), (Class##_device_traits::source)>; \
- template class device_finder<Namespace::Class, false>; \
- template class device_finder<Namespace::Class, true>;
+/// \}
// exception classes
@@ -526,8 +610,8 @@ public:
///
/// Implement this member in a derived class to declare the parent
/// device type for the purpose of searching for ROMs. Only one
- /// level is allowed. It is an error if the parent device type itself
- /// declares a parent device type.
+ /// level is allowed. It is an error if the parent device type
+ /// itself declares a parent device type.
/// \return Pointer to parent device type, or nullptr.
static auto parent_rom_device_type() { return nullptr; }
diff --git a/src/emu/driver.h b/src/emu/driver.h
index 43697f2d109..0656775ab7b 100644
--- a/src/emu/driver.h
+++ b/src/emu/driver.h
@@ -76,9 +76,14 @@
typedef delegate<void ()> driver_callback_delegate;
-// ======================> driver_device
-
-// base class for machine driver-specific devices
+/// \brief Base class for system device classes
+///
+/// System devices can be used as the root device of a system.
+/// Indirection for metadata, input port definitons, initialisation
+/// functions, ROM definitions, internal artwork and emulation status
+/// flags is provided via the #game_driver structure. This allows
+/// multiple systems to be be implemented using a single
+/// system device class.
class driver_device : public device_t
{
public:
@@ -102,7 +107,10 @@ public:
// inline configuration helpers
static void static_set_callback(device_t &device, callback_type type, driver_callback_delegate callback);
- // dummy driver_init callback
+ /// \brief Empty system initialisation function
+ ///
+ /// Provided as a convenience for systems that have no additional
+ /// initialisation tasks.
void empty_init();
// output heler
diff --git a/src/emu/emucore.h b/src/emu/emucore.h
index 2be0f2f4221..768fa8c7280 100644
--- a/src/emu/emucore.h
+++ b/src/emu/emucore.h
@@ -178,15 +178,19 @@ constexpr endianness_t ENDIANNESS_NATIVE = util::endianness::native;
#endif
-// orientation of bitmaps
-constexpr int ORIENTATION_FLIP_X = 0x0001; // mirror everything in the X direction
-constexpr int ORIENTATION_FLIP_Y = 0x0002; // mirror everything in the Y direction
-constexpr int ORIENTATION_SWAP_XY = 0x0004; // mirror along the top-left/bottom-right diagonal
+/// \name Image orientation flags
+/// \{
+
+constexpr int ORIENTATION_FLIP_X = 0x0001; ///< Mirror horizontally (in the X direction)
+constexpr int ORIENTATION_FLIP_Y = 0x0002; ///< Mirror vertically (in the Y direction)
+constexpr int ORIENTATION_SWAP_XY = 0x0004; ///< Mirror along the top-left/bottom-right diagonal
constexpr int ROT0 = 0;
-constexpr int ROT90 = ORIENTATION_SWAP_XY | ORIENTATION_FLIP_X; // rotate clockwise 90 degrees
-constexpr int ROT180 = ORIENTATION_FLIP_X | ORIENTATION_FLIP_Y; // rotate 180 degrees
-constexpr int ROT270 = ORIENTATION_SWAP_XY | ORIENTATION_FLIP_Y; // rotate counter-clockwise 90 degrees
+constexpr int ROT90 = ORIENTATION_SWAP_XY | ORIENTATION_FLIP_X; ///< Rotate 90 degrees clockwise
+constexpr int ROT180 = ORIENTATION_FLIP_X | ORIENTATION_FLIP_Y; ///< Rotate 180 degrees
+constexpr int ROT270 = ORIENTATION_SWAP_XY | ORIENTATION_FLIP_Y; ///< Rotate 90 degrees anti-clockwise (270 degrees clockwise)
+
+/// \}
// these are UTF-8 encoded strings for common characters
diff --git a/src/emu/gamedrv.h b/src/emu/gamedrv.h
index 2843e7a36c8..eba153e3410 100644
--- a/src/emu/gamedrv.h
+++ b/src/emu/gamedrv.h
@@ -16,6 +16,9 @@
#include <type_traits>
+/// \defgroup machinedef Machine definition macros
+
+
//**************************************************************************
// CONSTANTS
//**************************************************************************
@@ -59,51 +62,76 @@ struct machine_flags
DECLARE_ENUM_BITWISE_OPERATORS(machine_flags::type);
-// flags for machine drivers
constexpr u64 MACHINE_TYPE_ARCADE = machine_flags::TYPE_ARCADE;
constexpr u64 MACHINE_TYPE_CONSOLE = machine_flags::TYPE_CONSOLE;
constexpr u64 MACHINE_TYPE_COMPUTER = machine_flags::TYPE_COMPUTER;
constexpr u64 MACHINE_TYPE_OTHER = machine_flags::TYPE_OTHER;
-constexpr u64 MACHINE_NOT_WORKING = machine_flags::NOT_WORKING;
-constexpr u64 MACHINE_SUPPORTS_SAVE = machine_flags::SUPPORTS_SAVE;
-constexpr u64 MACHINE_NO_COCKTAIL = machine_flags::NO_COCKTAIL;
-constexpr u64 MACHINE_IS_BIOS_ROOT = machine_flags::IS_BIOS_ROOT;
-constexpr u64 MACHINE_REQUIRES_ARTWORK = machine_flags::REQUIRES_ARTWORK;
-constexpr u64 MACHINE_CLICKABLE_ARTWORK = machine_flags::CLICKABLE_ARTWORK;
-constexpr u64 MACHINE_UNOFFICIAL = machine_flags::UNOFFICIAL;
-constexpr u64 MACHINE_NO_SOUND_HW = machine_flags::NO_SOUND_HW;
-constexpr u64 MACHINE_MECHANICAL = machine_flags::MECHANICAL;
-constexpr u64 MACHINE_IS_INCOMPLETE = machine_flags::IS_INCOMPLETE;
+
+
+/// \addtogroup machinedef
+/// \{
+/// \name System emulation status constants
+///
+/// Constants representing system emulation status flags. May be
+/// combined for use as FLAGS arguments to the #GAME, #GAMEL, #CONS,
+/// #COMP and #SYST macros.
+/// \{
+
+// flags for machine drivers
+constexpr u64 MACHINE_NOT_WORKING = machine_flags::NOT_WORKING; ///< Imperfect emulation prevents using the system as intended
+constexpr u64 MACHINE_SUPPORTS_SAVE = machine_flags::SUPPORTS_SAVE; ///< All devices in the system supports save states (enables auto save feature, and won't show a warning on using save states)
+constexpr u64 MACHINE_NO_COCKTAIL = machine_flags::NO_COCKTAIL; ///< The system supports screen flipping for use in a cocktail cabinet, but this feature is not properly emulated
+constexpr u64 MACHINE_IS_BIOS_ROOT = machine_flags::IS_BIOS_ROOT; ///< The system represents an empty system board of some kind - clones are treated as separate systems rather than variants
+constexpr u64 MACHINE_REQUIRES_ARTWORK = machine_flags::REQUIRES_ARTWORK; ///< The system requires external artwork for key functionality
+constexpr u64 MACHINE_CLICKABLE_ARTWORK = machine_flags::CLICKABLE_ARTWORK; ///< Enables pointer display for the system to facilitate using clickable artwork
+constexpr u64 MACHINE_UNOFFICIAL = machine_flags::UNOFFICIAL; ///< The system represents an after-market or end-user modification to a system
+constexpr u64 MACHINE_NO_SOUND_HW = machine_flags::NO_SOUND_HW; ///< The system has no sound output capability
+constexpr u64 MACHINE_MECHANICAL = machine_flags::MECHANICAL; ///< The system depends on mechanical features for key functionality
+constexpr u64 MACHINE_IS_INCOMPLETE = machine_flags::IS_INCOMPLETE; ///< The system represents an incomplete prototype
// flags that map to device feature flags
-constexpr u64 MACHINE_UNEMULATED_PROTECTION = 0x00000001'00000000; // game's protection not fully emulated
-constexpr u64 MACHINE_WRONG_COLORS = 0x00000002'00000000; // colors are totally wrong
-constexpr u64 MACHINE_IMPERFECT_COLORS = 0x00000004'00000000; // colors are not 100% accurate, but close
-constexpr u64 MACHINE_IMPERFECT_GRAPHICS = 0x00000008'00000000; // graphics are wrong/incomplete
-constexpr u64 MACHINE_NO_SOUND = 0x00000010'00000000; // sound is missing
-constexpr u64 MACHINE_IMPERFECT_SOUND = 0x00000020'00000000; // sound is known to be wrong
-constexpr u64 MACHINE_IMPERFECT_CONTROLS = 0x00000040'00000000; // controls are known to be imperfectly emulated
-constexpr u64 MACHINE_NODEVICE_MICROPHONE = 0x00000080'00000000; // any game/system that has unemulated audio capture device
-constexpr u64 MACHINE_NODEVICE_PRINTER = 0x00000100'00000000; // any game/system that has unemulated hardcopy output device
-constexpr u64 MACHINE_NODEVICE_LAN = 0x00000200'00000000; // any game/system that has unemulated local networking
-constexpr u64 MACHINE_IMPERFECT_TIMING = 0x00000400'00000000; // timing is known to be imperfectly emulated
+constexpr u64 MACHINE_UNEMULATED_PROTECTION = 0x00000001'00000000; ///< Some form of protection is imperfectly emulated (e.g. copy protection or anti-tampering)
+constexpr u64 MACHINE_WRONG_COLORS = 0x00000002'00000000; ///< Colours are completely wrong
+constexpr u64 MACHINE_IMPERFECT_COLORS = 0x00000004'00000000; ///< Colours are close but not completely accurate
+constexpr u64 MACHINE_IMPERFECT_GRAPHICS = 0x00000008'00000000; ///< Graphics are emulated incorrectly for the system
+constexpr u64 MACHINE_NO_SOUND = 0x00000010'00000000; ///< The system has sound output, but it is not emulated
+constexpr u64 MACHINE_IMPERFECT_SOUND = 0x00000020'00000000; ///< Sound is known to be imperfectly emulated for the system
+constexpr u64 MACHINE_IMPERFECT_CONTROLS = 0x00000040'00000000; ///< Controls or inputs are emulated imperfectly for the system
+constexpr u64 MACHINE_NODEVICE_MICROPHONE = 0x00000080'00000000; ///< The system has unemulated audio capture functionality
+constexpr u64 MACHINE_NODEVICE_PRINTER = 0x00000100'00000000; ///< The system has unemulated printer functionality
+constexpr u64 MACHINE_NODEVICE_LAN = 0x00000200'00000000; ///< The system has unemulated local area networking
+constexpr u64 MACHINE_IMPERFECT_TIMING = 0x00000400'00000000; ///< Timing is known to be imperfectly emulated for the system
// useful combinations of flags
-constexpr u64 MACHINE_IS_SKELETON = MACHINE_NO_SOUND | MACHINE_NOT_WORKING; // flag combination for skeleton drivers
+constexpr u64 MACHINE_IS_SKELETON = MACHINE_NO_SOUND | MACHINE_NOT_WORKING; ///< Useful combination of flags for preliminary systems
constexpr u64 MACHINE_IS_SKELETON_MECHANICAL = MACHINE_IS_SKELETON | MACHINE_MECHANICAL | MACHINE_REQUIRES_ARTWORK; // flag combination for skeleton mechanical machines
+/// \}
+/// \}
+
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
-// static POD structure describing each game driver entry
+/// \brief Static system description
+///
+/// A plain data structure providing static information about an system.
+/// Used to allow multiple systems to be implemented using a single
+/// system device class (an implementation of #driver_device).
class game_driver
{
public:
typedef void (*machine_creator_wrapper)(machine_config &, device_t &);
typedef void (*driver_init_wrapper)(device_t &);
+ /// \brief Get unemulated system features
+ ///
+ /// Converts system flags corresponding to unemulated device
+ /// features to the a device feature type bit field.
+ /// \param [in] flags A system flags bit field.
+ /// \return A device feature type bit field corresponding to
+ /// unemulated features declared in the \p flags argument.
static constexpr device_t::feature_type unemulated_features(u64 flags)
{
return
@@ -114,6 +142,14 @@ public:
((flags & MACHINE_NODEVICE_LAN) ? device_t::feature::LAN : device_t::feature::NONE);
}
+ /// \brief Get imperfectly emulated system features
+ ///
+ /// Converts system flags corresponding to imperfectly emulated
+ /// device features to the a device feature type bit field.
+ /// \param [in] flags A system flags bit field.
+ /// \return A device feature type bit field corresponding to
+ /// imperfectly emulated features declared in the \p flags
+ /// argument.
static constexpr device_t::feature_type imperfect_features(u64 flags)
{
return
@@ -126,7 +162,7 @@ public:
}
device_type type; // static type info for driver class
- const char * parent; // if this is a clone, the name of the parent
+ const char * parent; // name of the parent or BIOS system if applicable
const char * year; // year the game was released
const char * manufacturer; // manufacturer of the game
machine_creator_wrapper machine_creator; // machine driver tokens
@@ -136,7 +172,7 @@ public:
const char * compatible_with;
const internal_layout * default_layout; // default internally defined layout
machine_flags::type flags; // orientation and other flags; see defines above
- char name[MAX_DRIVER_NAME_CHARS + 1]; // short name of the game
+ char name[MAX_DRIVER_NAME_CHARS + 1]; // short name of the system
};
@@ -164,9 +200,61 @@ driver_device_creator< \
game_driver::unemulated_features(FLAGS), \
game_driver::imperfect_features(FLAGS)>
-// standard GAME() macro
-#define GAME(YEAR,NAME,PARENT,MACHINE,INPUT,CLASS,INIT,MONITOR,COMPANY,FULLNAME,FLAGS) \
-GAME_DRIVER_TRAITS(NAME,FULLNAME) \
+
+/// \addtogroup machinedef
+/// \{
+
+/// \brief Define a "game" system
+///
+/// Use this macro to define most systems intended for public use,
+/// including arcade games, gambling machines, vending machines, and
+/// information kiosks. Muse be used in the global namespace.
+///
+/// Creates an appropriately named and populated #game_driver structure
+/// describing the system.
+/// \param YEAR The year that the system was first made available. Must
+/// be a token containing only the digits zero to nine, question mark
+/// and plus sign.
+/// \param NAME The short name of the system, used for identification,
+/// and in filesystem paths for assets and data. Must be a token no
+/// longer than sixteen characters, containing only ASCII lowercase
+/// letters, digits and underscores. Must be globally unique across
+/// systems and devices.
+/// \param PARENT Short name of the parent or BIOS system if applicable,
+/// or a single digit zero otherwise.
+/// \param MACHINE Function used to buid machine configuration for the
+/// system. Must be a public member function of the system device
+/// class (\p CLASS argument), returning void and taking a reference
+/// to a #machine_config object as a parameter.
+/// \param INPUT Input port definitions for the root device of the
+/// system, usually defined using #INPUT_PORTS_START and associated
+/// macros.
+/// \param CLASS Class to instantiate as the root device of the system.
+/// Must be an implementation of #driver_device.
+/// \param INIT Initialisation function called after all child devices
+/// have started, but before the driver start functions are called.
+/// Often used for tasks like decrypting ROMs. Must be a public
+/// member function of the system device class (\p CLASS argument),
+/// returning void and accepting no parameters. The function
+/// #driver_device::empty_init is supplied for systems that don't need
+/// to perform additional tasks.
+/// \param MONITOR Screen orientation flags applied to all screens in
+/// the system, after the individual screens' orientation flags are
+/// applied. Usually one #ROT0, #ROT90, #ROT180 or #ROT270.
+/// \param COMPANY Name of the developer or distributor of the system.
+/// Must be a string.
+/// \param FULLNAME Display name for the system. Must be a string, and
+/// must be globally unique across systems and devices.
+/// \param FLAGS Bitwise combination of emulation status flags for the
+/// system, in addition to flags supplied by the system device class
+/// (see #device_t::unemulated_features and
+/// #device_t::imperfect_features). It is advisable to supply
+/// unemulated and imperfectly emulated feature flags that apply to
+/// all systems implemented using the class in the class itself to
+/// avoid repetition.
+/// \sa GAMEL CONS COMP SYST
+#define GAME(YEAR, NAME, PARENT, MACHINE, INPUT, CLASS, INIT, MONITOR, COMPANY, FULLNAME, FLAGS) \
+GAME_DRIVER_TRAITS(NAME, FULLNAME) \
extern game_driver const GAME_NAME(NAME) \
{ \
GAME_DRIVER_TYPE(NAME, CLASS, FLAGS), \
@@ -183,9 +271,62 @@ extern game_driver const GAME_NAME(NAME) \
#NAME \
};
-// standard macro with additional layout
-#define GAMEL(YEAR,NAME,PARENT,MACHINE,INPUT,CLASS,INIT,MONITOR,COMPANY,FULLNAME,FLAGS,LAYOUT) \
-GAME_DRIVER_TRAITS(NAME,FULLNAME) \
+
+/// \brief Define a "game" system with an additional internal layout
+///
+/// Equivalent to the #GAME macro, but with the additional ability to
+/// supply system-specific internal artwork layout data. Views from the
+/// system-specific layout are available in addition to any views from
+/// layout data specified in the machine configuration. Must be used in
+/// the global namespace.
+///
+/// Creates an appropriately named and populated #game_driver structure
+/// describing the system.
+/// \param YEAR The year that the system was first made available. Must
+/// be a token containing only the digits zero to nine, question mark
+/// and plus sign.
+/// \param NAME The short name of the system, used for identification,
+/// and in filesystem paths for assets and data. Must be a token no
+/// longer than sixteen characters, containing only ASCII lowercase
+/// letters, digits and underscores. Must be globally unique across
+/// systems and devices.
+/// \param PARENT Short name of the parent or BIOS system if applicable,
+/// or a single digit zero otherwise.
+/// \param MACHINE Function used to buid machine configuration for the
+/// system. Must be a public member function of the system device
+/// class (\p CLASS argument), returning void and taking a reference
+/// to a #machine_config object as a parameter.
+/// \param INPUT Input port definitions for the root device of the
+/// system, usually defined using #INPUT_PORTS_START and associated
+/// macros.
+/// \param CLASS Class to instantiate as the root device of the system.
+/// Must be an implementation of #driver_device.
+/// \param INIT Initialisation function called after all child devices
+/// have started, but before the driver start functions are called.
+/// Often used for tasks like decrypting ROMs. Must be a public
+/// member function of the system device class (\p CLASS argument),
+/// returning void and accepting no parameters. The function
+/// #driver_device::empty_init is supplied for systems that don't need
+/// to perform additional tasks.
+/// \param MONITOR Screen orientation flags applied to all screens in
+/// the system, after the individual screens' orientation flags are
+/// applied. Usually one #ROT0, #ROT90, #ROT180 or #ROT270.
+/// \param COMPANY Name of the developer or distributor of the system.
+/// Must be a string.
+/// \param FULLNAME Display name for the system. Must be a string, and
+/// must be globally unique across systems and devices.
+/// \param FLAGS Bitwise combination of emulation status flags for the
+/// system, in addition to flags supplied by the system device class
+/// (see #device_t::unemulated_features and
+/// #device_t::imperfect_features). It is advisable to supply
+/// unemulated and imperfectly emulated feature flags that apply to
+/// all systems implemented using the class in the class itself to
+/// avoid repetition.
+/// \param LAYOUT An #internal_layout structure providing additional
+/// internal artwork for the system.
+/// \sa GAME CONS COMP SYST
+#define GAMEL(YEAR, NAME, PARENT, MACHINE, INPUT, CLASS, INIT, MONITOR, COMPANY, FULLNAME, FLAGS, LAYOUT) \
+GAME_DRIVER_TRAITS(NAME, FULLNAME) \
extern game_driver const GAME_NAME(NAME) \
{ \
GAME_DRIVER_TYPE(NAME, CLASS, FLAGS), \
@@ -203,8 +344,54 @@ extern game_driver const GAME_NAME(NAME) \
};
-// standard console definition macro
-#define CONS(YEAR,NAME,PARENT,COMPAT,MACHINE,INPUT,CLASS,INIT,COMPANY,FULLNAME,FLAGS) \
+/// \brief Define a "console" system
+///
+/// Use this macro to define appliance-like entertainment systems
+/// designed for domestic use. Must be used in the global namespace.
+///
+/// Creates an appropriately named and populated #game_driver structure
+/// describing the system.
+/// \param YEAR The year that the system was first made available. Must
+/// be a token containing only the digits zero to nine, question mark
+/// and plus sign.
+/// \param NAME The short name of the system, used for identification,
+/// and in filesystem paths for assets and data. Must be a token no
+/// longer than sixteen characters, containing only ASCII lowercase
+/// letters, digits and underscores. Must be globally unique across
+/// systems and devices.
+/// \param PARENT Short name of the parent or BIOS system if applicable,
+/// or a single digit zero otherwise.
+/// \param COMPAT Short name of a system that this system is compatible
+/// with if applicable, or a single digit zero otherwise.
+/// \param MACHINE Function used to buid machine configuration for the
+/// system. Must be a public member function of the system device
+/// class (\p CLASS argument), returning void and taking a reference
+/// to a #machine_config object as a parameter.
+/// \param INPUT Input port definitions for the root device of the
+/// system, usually defined using #INPUT_PORTS_START and associated
+/// macros.
+/// \param CLASS Class to instantiate as the root device of the system.
+/// Must be an implementation of #driver_device.
+/// \param INIT Initialisation function called after all child devices
+/// have started, but before the driver start functions are called.
+/// Often used for tasks like decrypting ROMs. Must be a public
+/// member function of the system device class (\p CLASS argument),
+/// returning void and accepting no parameters. The function
+/// #driver_device::empty_init is supplied for systems that don't need
+/// to perform additional tasks.
+/// \param COMPANY Name of the developer or distributor of the system.
+/// Must be a string.
+/// \param FULLNAME Display name for the system. Must be a string, and
+/// must be globally unique across systems and devices.
+/// \param FLAGS Bitwise combination of emulation status flags for the
+/// system, in addition to flags supplied by the system device class
+/// (see #device_t::unemulated_features and
+/// #device_t::imperfect_features). It is advisable to supply
+/// unemulated and imperfectly emulated feature flags that apply to
+/// all systems implemented using the class in the class itself to
+/// avoid repetition. Screen orientation flags may be included here.
+/// \sa GAME GAMEL COMP SYST
+#define CONS(YEAR, NAME, PARENT, COMPAT, MACHINE, INPUT, CLASS, INIT, COMPANY, FULLNAME, FLAGS) \
GAME_DRIVER_TRAITS(NAME,FULLNAME) \
extern game_driver const GAME_NAME(NAME) \
{ \
@@ -222,7 +409,54 @@ extern game_driver const GAME_NAME(NAME) \
#NAME \
};
-// standard computer definition macro
+
+/// \brief Define a "computer" system
+///
+/// Use this macro to define computer-like systems. Must be used in the
+/// global namespace.
+///
+/// Creates an appropriately named and populated #game_driver structure
+/// describing the system.
+/// \param YEAR The year that the system was first made available. Must
+/// be a token containing only the digits zero to nine, question mark
+/// and plus sign.
+/// \param NAME The short name of the system, used for identification,
+/// and in filesystem paths for assets and data. Must be a token no
+/// longer than sixteen characters, containing only ASCII lowercase
+/// letters, digits and underscores. Must be globally unique across
+/// systems and devices.
+/// \param PARENT Short name of the parent or BIOS system if applicable,
+/// or a single digit zero otherwise.
+/// \param COMPAT Short name of a system that this system is compatible
+/// with if applicable, or a single digit zero otherwise.
+/// \param MACHINE Function used to buid machine configuration for the
+/// system. Must be a public member function of the system device
+/// class (\p CLASS argument), returning void and taking a reference
+/// to a #machine_config object as a parameter.
+/// \param INPUT Input port definitions for the root device of the
+/// system, usually defined using #INPUT_PORTS_START and associated
+/// macros.
+/// \param CLASS Class to instantiate as the root device of the system.
+/// Must be an implementation of #driver_device.
+/// \param INIT Initialisation function called after all child devices
+/// have started, but before the driver start functions are called.
+/// Often used for tasks like decrypting ROMs. Must be a public
+/// member function of the system device class (\p CLASS argument),
+/// returning void and accepting no parameters. The function
+/// #driver_device::empty_init is supplied for systems that don't need
+/// to perform additional tasks.
+/// \param COMPANY Name of the developer or distributor of the system.
+/// Must be a string.
+/// \param FULLNAME Display name for the system. Must be a string, and
+/// must be globally unique across systems and devices.
+/// \param FLAGS Bitwise combination of emulation status flags for the
+/// system, in addition to flags supplied by the system device class
+/// (see #device_t::unemulated_features and
+/// #device_t::imperfect_features). It is advisable to supply
+/// unemulated and imperfectly emulated feature flags that apply to
+/// all systems implemented using the class in the class itself to
+/// avoid repetition. Screen orientation flags may be included here.
+/// \sa GAME GAMEL CONS SYST
#define COMP(YEAR,NAME,PARENT,COMPAT,MACHINE,INPUT,CLASS,INIT,COMPANY,FULLNAME,FLAGS) \
GAME_DRIVER_TRAITS(NAME,FULLNAME) \
extern game_driver const GAME_NAME(NAME) \
@@ -241,7 +475,54 @@ extern game_driver const GAME_NAME(NAME) \
#NAME \
};
-// standard system definition macro
+
+/// \brief Define a generic system
+///
+/// Use this macro to define miscellaneous systems that don't fall into
+/// one of the other categories. Must be used in the global namespace.
+///
+/// Creates an appropriately named and populated #game_driver structure
+/// describing the system.
+/// \param YEAR The year that the system was first made available. Must
+/// be a token containing only the digits zero to nine, question mark
+/// and plus sign.
+/// \param NAME The short name of the system, used for identification,
+/// and in filesystem paths for assets and data. Must be a token no
+/// longer than sixteen characters, containing only ASCII lowercase
+/// letters, digits and underscores. Must be globally unique across
+/// systems and devices.
+/// \param PARENT Short name of the parent or BIOS system if applicable,
+/// or a single digit zero otherwise.
+/// \param COMPAT Short name of a system that this system is compatible
+/// with if applicable, or a single digit zero otherwise.
+/// \param MACHINE Function used to buid machine configuration for the
+/// system. Must be a public member function of the system device
+/// class (\p CLASS argument), returning void and taking a reference
+/// to a #machine_config object as a parameter.
+/// \param INPUT Input port definitions for the root device of the
+/// system, usually defined using #INPUT_PORTS_START and associated
+/// macros.
+/// \param CLASS Class to instantiate as the root device of the system.
+/// Must be an implementation of #driver_device.
+/// \param INIT Initialisation function called after all child devices
+/// have started, but before the driver start functions are called.
+/// Often used for tasks like decrypting ROMs. Must be a public
+/// member function of the system device class (\p CLASS argument),
+/// returning void and accepting no parameters. The function
+/// #driver_device::empty_init is supplied for systems that don't need
+/// to perform additional tasks.
+/// \param COMPANY Name of the developer or distributor of the system.
+/// Must be a string.
+/// \param FULLNAME Display name for the system. Must be a string, and
+/// must be globally unique across systems and devices.
+/// \param FLAGS Bitwise combination of emulation status flags for the
+/// system, in addition to flags supplied by the system device class
+/// (see #device_t::unemulated_features and
+/// #device_t::imperfect_features). It is advisable to supply
+/// unemulated and imperfectly emulated feature flags that apply to
+/// all systems implemented using the class in the class itself to
+/// avoid repetition. Screen orientation flags may be included here.
+/// \sa GAME GAMEL CONS COMP
#define SYST(YEAR,NAME,PARENT,COMPAT,MACHINE,INPUT,CLASS,INIT,COMPANY,FULLNAME,FLAGS) \
GAME_DRIVER_TRAITS(NAME,FULLNAME) \
extern game_driver const GAME_NAME(NAME) \
@@ -260,5 +541,6 @@ extern game_driver const GAME_NAME(NAME) \
#NAME \
};
+/// \}
#endif // MAME_EMU_GAMEDRV_H
diff --git a/src/mame/video/k053244_k053245.cpp b/src/mame/video/k053244_k053245.cpp
index 0ca46f52847..fdd82c3344b 100644
--- a/src/mame/video/k053244_k053245.cpp
+++ b/src/mame/video/k053244_k053245.cpp
@@ -42,7 +42,6 @@ main ram and the buffer.
*****************************************************************************/
DEFINE_DEVICE_TYPE(K053244, k05324x_device, "k05324x", "K053244/053245 Sprite Generator")
-decltype(K053244) K053245 = K053244;
const gfx_layout k05324x_device::spritelayout =
{
diff --git a/src/mame/video/k053244_k053245.h b/src/mame/video/k053244_k053245.h
index 1f01fd71a8a..bc534d7a2df 100644
--- a/src/mame/video/k053244_k053245.h
+++ b/src/mame/video/k053244_k053245.h
@@ -64,6 +64,6 @@ private:
DECLARE_DEVICE_TYPE(K053244, k05324x_device)
-DECLARE_DEVICE_TYPE(K053245, k05324x_device)
+static auto &K053245 = K053244;
#endif // MAME_VIDEO_K053244_K053245_H
diff --git a/src/mame/video/k053246_k053247_k055673.cpp b/src/mame/video/k053246_k053247_k055673.cpp
index fcd27f1f065..a6f0d92748e 100644
--- a/src/mame/video/k053246_k053247_k055673.cpp
+++ b/src/mame/video/k053246_k053247_k055673.cpp
@@ -1045,7 +1045,6 @@ void k055673_device::device_start()
DEFINE_DEVICE_TYPE(K053247, k053247_device, "k053247", "K053246/K053247 Sprite Generator")
-decltype(K053247) K053246 = K053247;
k053247_device::k053247_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: k053247_device(mconfig, K053247, tag, owner, clock)
diff --git a/src/mame/video/k053246_k053247_k055673.h b/src/mame/video/k053246_k053247_k055673.h
index 0be6f634af9..32b866335a8 100644
--- a/src/mame/video/k053246_k053247_k055673.h
+++ b/src/mame/video/k053246_k053247_k055673.h
@@ -449,7 +449,7 @@ protected:
};
DECLARE_DEVICE_TYPE(K053247, k053247_device)
-DECLARE_DEVICE_TYPE(K053246, k053247_device)
+static auto &K053246 = K053247;
class k055673_device : public k053247_device
{