summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video/atarivad.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/video/atarivad.h')
-rw-r--r--src/mame/video/atarivad.h52
1 files changed, 7 insertions, 45 deletions
diff --git a/src/mame/video/atarivad.h b/src/mame/video/atarivad.h
index bdfcd7f04c9..01230e5062e 100644
--- a/src/mame/video/atarivad.h
+++ b/src/mame/video/atarivad.h
@@ -15,50 +15,6 @@
//**************************************************************************
-// DEVICE CONFIGURATION MACROS
-//**************************************************************************
-
-#define MCFG_ATARI_VAD_ADD(_tag, _screen, _intcb) \
- MCFG_DEVICE_ADD(_tag, ATARI_VAD, 0) \
- MCFG_VIDEO_SET_SCREEN(_screen) \
- downcast<atari_vad_device &>(*device).set_scanline_int_cb(DEVCB_##_intcb);
-
-#define MCFG_ATARI_VAD_PLAYFIELD(_class, _gfxtag, _getinfo) \
- { std::string fulltag(device->tag()); fulltag.append(":playfield"); device_t *device; \
- MCFG_TILEMAP_ADD(fulltag.c_str()) \
- MCFG_TILEMAP_GFXDECODE(_gfxtag) \
- MCFG_TILEMAP_BYTES_PER_ENTRY(2) \
- MCFG_TILEMAP_INFO_CB_DEVICE(DEVICE_SELF_OWNER, _class, _getinfo) \
- MCFG_TILEMAP_TILE_SIZE(8,8) \
- MCFG_TILEMAP_LAYOUT_STANDARD(SCAN_COLS, 64,64) }
-
-#define MCFG_ATARI_VAD_PLAYFIELD2(_class, _gfxtag, _getinfo) \
- { std::string fulltag(device->tag()); fulltag.append(":playfield2"); device_t *device; \
- MCFG_TILEMAP_ADD(fulltag.c_str()) \
- MCFG_TILEMAP_GFXDECODE(_gfxtag) \
- MCFG_TILEMAP_BYTES_PER_ENTRY(2) \
- MCFG_TILEMAP_INFO_CB_DEVICE(DEVICE_SELF_OWNER, _class, _getinfo) \
- MCFG_TILEMAP_TILE_SIZE(8,8) \
- MCFG_TILEMAP_LAYOUT_STANDARD(SCAN_COLS, 64,64) \
- MCFG_TILEMAP_TRANSPARENT_PEN(0) }
-
-#define MCFG_ATARI_VAD_ALPHA(_class, _gfxtag, _getinfo) \
- { std::string fulltag(device->tag()); fulltag.append(":alpha"); device_t *device; \
- MCFG_TILEMAP_ADD(fulltag.c_str()) \
- MCFG_TILEMAP_GFXDECODE(_gfxtag) \
- MCFG_TILEMAP_BYTES_PER_ENTRY(2) \
- MCFG_TILEMAP_INFO_CB_DEVICE(DEVICE_SELF_OWNER, _class, _getinfo) \
- MCFG_TILEMAP_TILE_SIZE(8,8) \
- MCFG_TILEMAP_LAYOUT_STANDARD(SCAN_ROWS, 64,32) \
- MCFG_TILEMAP_TRANSPARENT_PEN(0) }
-
-#define MCFG_ATARI_VAD_MOB(_config, _gfxtag) \
- { std::string fulltag(device->tag()); fulltag.append(":mob"); \
- ATARI_MOTION_OBJECTS(config, fulltag.c_str(), 0, "screen", _config).set_gfxdecode(_gfxtag); }
-
-
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@@ -71,10 +27,16 @@ class atari_vad_device : public device_t, public device_video_interface
{
public:
// construction/destruction
+ template <typename T>
+ atari_vad_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&screen_tag)
+ : atari_vad_device(mconfig, tag, owner, clock)
+ {
+ set_screen(std::forward<T>(screen_tag));
+ }
atari_vad_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// configuration helpers
- template<class Object> devcb_base &set_scanline_int_cb(Object &&cb) { return m_scanline_int_cb.set_callback(std::forward<Object>(cb)); }
+ auto scanline_int_cb() { return m_scanline_int_cb.bind(); }
// getters
tilemap_device &alpha() const { return *m_alpha_tilemap; }