diff options
Diffstat (limited to 'src/mame/video/deco16ic.h')
-rw-r--r-- | src/mame/video/deco16ic.h | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/src/mame/video/deco16ic.h b/src/mame/video/deco16ic.h index 0a93cd6613b..15b1ad92c7d 100644 --- a/src/mame/video/deco16ic.h +++ b/src/mame/video/deco16ic.h @@ -25,7 +25,9 @@ TYPE DEFINITIONS ***************************************************************************/ +typedef device_delegate<void (u32 &tile, u32 &colour, int layer, bool is_8x8)> deco16_tile_cb_delegate; typedef device_delegate<int (int bank)> deco16_bank_cb_delegate; +typedef device_delegate<u16 (u16 p, u16 p2)> deco16_mix_cb_delegate; class deco16ic_device : public device_t, public device_video_interface { @@ -35,12 +37,12 @@ public: // configuration template <typename T> void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward<T>(tag)); } // void set_palette_tag(const char *tag); + template <typename... T> void set_tile_callback(T &&... args) { m_tile_cb.set(std::forward<T>(args)...); } template <typename... T> void set_bank1_callback(T &&... args) { m_bank1_cb.set(std::forward<T>(args)...); } template <typename... T> void set_bank2_callback(T &&... args) { m_bank2_cb.set(std::forward<T>(args)...); } + template <typename... T> void set_mix_callback(T &&... args) { m_mix_cb.set(std::forward<T>(args)...); } void set_pf1_size(int size) { m_pf1_size = size; } void set_pf2_size(int size) { m_pf2_size = size; } - void set_pf1_trans_mask(int mask) { m_pf1_trans_mask = mask; } - void set_pf2_trans_mask(int mask) { m_pf2_trans_mask = mask; } void set_pf1_col_mask(int mask) { m_pf1_colourmask = mask; } void set_pf2_col_mask(int mask) { m_pf2_colourmask = mask; } void set_pf1_col_bank(int bank) { m_pf1_colour_bank = bank; } @@ -48,7 +50,6 @@ public: void set_pf12_8x8_bank(int bank) { m_pf12_8x8_gfx_bank = bank; } void set_pf12_16x16_bank(int bank) { m_pf12_16x16_gfx_bank = bank; } - void pf1_data_w(offs_t offset, u16 data, u16 mem_mask = ~0); void pf2_data_w(offs_t offset, u16 data, u16 mem_mask = ~0); @@ -81,16 +82,13 @@ public: void tilemap_2_draw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int flags, u8 priority, u8 pmask = 0xff); /* used by boogwing, nitrobal */ - void tilemap_12_combine_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, u8 priority, int is_tattoo = false, u8 pmask = 0xff); - void tilemap_12_combine_draw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int flags, u8 priority, int is_tattoo = false, u8 pmask = 0xff); + void tilemap_12_combine_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, u8 priority, u8 pmask = 0xff); + void tilemap_12_combine_draw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int flags, u8 priority, u8 pmask = 0xff); /* used by robocop2 */ void set_tilemap_colour_mask(int tmap, int mask); void pf12_set_gfxbank(int small, int big); - /* used by captaven */ - void set_pf1_8bpp_mode(int mode); - /* used by cninja */ void set_transmask(int tmap, int group, u32 fgmask, u32 bgmask); @@ -119,10 +117,8 @@ public: const u16 control1, int combine_mask, int combine_shift, - int trans_mask, int flags, u8 priority, - int is_tattoo, u8 pmask = 0xff); protected: @@ -141,17 +137,19 @@ private: tilemap_t *m_pf1_tilemap_16x16, *m_pf2_tilemap_16x16; tilemap_t *m_pf1_tilemap_8x8, *m_pf2_tilemap_8x8; + deco16_tile_cb_delegate m_tile_cb; + deco16_bank_cb_delegate m_bank1_cb; deco16_bank_cb_delegate m_bank2_cb; + deco16_mix_cb_delegate m_mix_cb; + int m_use_custom_pf1, m_use_custom_pf2; int m_pf1_bank, m_pf2_bank; int m_pf12_last_small, m_pf12_last_big; - int m_pf1_8bpp_mode; int m_pf1_size; int m_pf2_size; - int m_pf1_trans_mask, m_pf2_trans_mask; int m_pf1_colour_bank, m_pf2_colour_bank; int m_pf1_colourmask, m_pf2_colourmask; int m_pf12_8x8_gfx_bank, m_pf12_16x16_gfx_bank; |