diff options
Diffstat (limited to 'src/mame/machine/atarigen.h')
-rw-r--r-- | src/mame/machine/atarigen.h | 130 |
1 files changed, 3 insertions, 127 deletions
diff --git a/src/mame/machine/atarigen.h b/src/mame/machine/atarigen.h index 8d0985aa3a9..8201d01ad03 100644 --- a/src/mame/machine/atarigen.h +++ b/src/mame/machine/atarigen.h @@ -13,7 +13,6 @@ #include "includes/slapstic.h" #include "cpu/m6502/m6502.h" -#include "video/atarimo.h" #include "screen.h" @@ -39,50 +38,9 @@ -#define MCFG_ATARI_VAD_ADD(_tag, _screen, _intcb) \ - MCFG_DEVICE_ADD(_tag, ATARI_VAD, 0) \ - MCFG_VIDEO_SET_SCREEN(_screen) \ - devcb = &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"); device_t *device; \ - MCFG_ATARI_MOTION_OBJECTS_ADD(fulltag.c_str(), "^^screen", _config) \ - MCFG_ATARI_MOTION_OBJECTS_GFXDECODE("^" _gfxtag) } - - - -/*************************************************************************** - TYPE DEFINITIONS -***************************************************************************/ +//************************************************************************** +// TYPE DEFINITIONS +//************************************************************************** #define PORT_ATARI_COMM_SOUND_TO_MAIN_READY(_tag) \ PORT_READ_LINE_DEVICE_MEMBER(_tag, atari_sound_comm_device, sound_to_main_ready) @@ -162,88 +120,6 @@ private: }; - -// ======================> atari_vad_device - -// device type definition -DECLARE_DEVICE_TYPE(ATARI_VAD, atari_vad_device) - -class atari_vad_device : public device_t, - public device_video_interface -{ -public: - // construction/destruction - 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)); } - - // getters - tilemap_device &alpha() const { return *m_alpha_tilemap; } - tilemap_device &playfield() const { return *m_playfield_tilemap; } - tilemap_device &playfield2() const { return *m_playfield2_tilemap; } - atari_motion_objects_device &mob() const { return *m_mob; } - - // read/write handlers - DECLARE_READ16_MEMBER(control_read); - DECLARE_WRITE16_MEMBER(control_write); - - // playfield/alpha tilemap helpers - DECLARE_WRITE16_MEMBER(alpha_w); - DECLARE_WRITE16_MEMBER(playfield_upper_w); - DECLARE_WRITE16_MEMBER(playfield_latched_lsb_w); - DECLARE_WRITE16_MEMBER(playfield_latched_msb_w); - DECLARE_WRITE16_MEMBER(playfield2_latched_msb_w); - -protected: - // device-level overrides - 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; - -private: - // timer IDs - enum - { - TID_SCANLINE_INT, - TID_TILEROW_UPDATE, - TID_EOF - }; - - // internal helpers - void internal_control_write(offs_t offset, uint16_t newword); - void update_pf_xscrolls(); - void update_parameter(uint16_t newword); - void update_tilerow(emu_timer &timer, int scanline); - void eof_update(emu_timer &timer); - - // configuration state - devcb_write_line m_scanline_int_cb; - - // internal state - optional_device<tilemap_device> m_alpha_tilemap; - required_device<tilemap_device> m_playfield_tilemap; - optional_device<tilemap_device> m_playfield2_tilemap; - optional_device<atari_motion_objects_device> m_mob; - optional_shared_ptr<uint16_t> m_eof_data; - - emu_timer * m_scanline_int_timer; - emu_timer * m_tilerow_update_timer; - emu_timer * m_eof_timer; - - uint32_t m_palette_bank; // which palette bank is enabled - //uint32_t m_pf0_xscroll; // playfield 1 xscroll - uint32_t m_pf0_xscroll_raw; // playfield 1 xscroll raw value - uint32_t m_pf0_yscroll; // playfield 1 yscroll - uint32_t m_pf1_xscroll_raw; // playfield 2 xscroll raw value - uint32_t m_pf1_yscroll; // playfield 2 yscroll - uint32_t m_mo_xscroll; // sprite xscroll - uint32_t m_mo_yscroll; // sprite xscroll - - uint16_t m_control[0x40/2]; // control data -}; - - /*************************************************************************** TYPES & STRUCTURES ***************************************************************************/ |