diff options
Diffstat (limited to 'src/devices/video/v9938.h')
-rw-r--r-- | src/devices/video/v9938.h | 56 |
1 files changed, 15 insertions, 41 deletions
diff --git a/src/devices/video/v9938.h b/src/devices/video/v9938.h index cdf07dced31..0e1a3640cb9 100644 --- a/src/devices/video/v9938.h +++ b/src/devices/video/v9938.h @@ -15,45 +15,6 @@ //************************************************************************** -// DEVICE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_V9938_ADD(_tag, _screen, _vramsize, _clock) \ - MCFG_DEVICE_ADD(_tag, V9938, _clock) \ - MCFG_VIDEO_SET_SCREEN(_screen) \ - downcast<v99x8_device &>(*device).set_vram_size(_vramsize); -#define MCFG_V9958_ADD(_tag, _screen, _vramsize, _clock) \ - MCFG_DEVICE_ADD(_tag, V9958, _clock) \ - MCFG_VIDEO_SET_SCREEN(_screen) \ - downcast<v99x8_device &>(*device).set_vram_size(_vramsize); - -#define MCFG_V99X8_SCREEN_ADD_NTSC(_screen_tag, _v9938_tag, _clock) \ - MCFG_SCREEN_ADD(_screen_tag, RASTER) \ - MCFG_SCREEN_RAW_PARAMS(_clock, \ - v99x8_device::HTOTAL, \ - 0, \ - v99x8_device::HVISIBLE - 1, \ - v99x8_device::VTOTAL_NTSC * 2, \ - v99x8_device::VERTICAL_ADJUST * 2, \ - v99x8_device::VVISIBLE_NTSC * 2 - 1 - v99x8_device::VERTICAL_ADJUST * 2) \ - MCFG_SCREEN_UPDATE_DEVICE(_v9938_tag, v9938_device, screen_update) - -#define MCFG_V99X8_SCREEN_ADD_PAL(_screen_tag, _v9938_tag, _clock) \ - MCFG_SCREEN_ADD(_screen_tag, RASTER) \ - MCFG_SCREEN_RAW_PARAMS(_clock, \ - v99x8_device::HTOTAL, \ - 0, \ - v99x8_device::HVISIBLE - 1, \ - v99x8_device::VTOTAL_PAL * 2, \ - v99x8_device::VERTICAL_ADJUST * 2, \ - v99x8_device::VVISIBLE_PAL * 2 - 1 - v99x8_device::VERTICAL_ADJUST * 2) \ - MCFG_SCREEN_UPDATE_DEVICE(_v9938_tag, v9938_device, screen_update) - -#define MCFG_V99X8_INTERRUPT_CALLBACK(_irq) \ - downcast<v99x8_device *>(device)->set_interrupt_callback(DEVCB_##_irq); - - -//************************************************************************** // GLOBAL VARIABLES //************************************************************************** @@ -75,6 +36,18 @@ class v99x8_device : public device_t, public device_video_interface { public: + auto int_cb() { return m_int_callback.bind(); } + template <class T> void set_screen_ntsc(T &&screen) + { + set_screen(std::forward<T>(screen)); + m_pal_config = false; + } + template <class T> void set_screen_pal(T &&screen) + { + set_screen(std::forward<T>(screen)); + m_pal_config = true; + } + template <class Object> devcb_base &set_interrupt_callback(Object &&irq) { return m_int_callback.set_callback(std::forward<Object>(irq)); } bitmap_rgb32 &get_bitmap() { return m_bitmap; } void update_mouse_state(int mx_delta, int my_delta, int button_state); @@ -84,8 +57,6 @@ public: DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); - auto int_cb() { return m_int_callback.bind(); } - uint8_t vram_r(); uint8_t status_r(); void palette_w(uint8_t data); @@ -122,7 +93,10 @@ protected: const int m_model; + bool m_pal_config; + // device overrides + virtual void device_config_complete() override; virtual void device_start() override; virtual void device_reset() override; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; |