summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video/deco16ic.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/video/deco16ic.h')
-rw-r--r--src/mame/video/deco16ic.h22
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;