Previous 199869 Revisions Next

r29420 Monday 7th April, 2014 at 12:22:17 UTC by Fabio Priuli
deco16ic: converted to use devcb2. nw.
[src/mame/drivers]backfire.c boogwing.c cbuster.c cninja.c darkseal.c dblewing.c deco156.c deco32.c dietgo.c dreambal.c funkyjet.c mirage.c pktgaldx.c rohga.c simpl156.c sshangha.c supbtime.c tumblep.c vaportra.c
[src/mame/includes]boogwing.h cbuster.h cninja.h darkseal.h deco32.h dietgo.h pktgaldx.h rohga.h simpl156.h sshangha.h vaportra.h
[src/mame/video]deco16ic.c deco16ic.h

trunk/src/mame/includes/pktgaldx.h
r29419r29420
5858
5959   READ16_MEMBER( pktgaldx_protection_region_f_104_r );
6060   WRITE16_MEMBER( pktgaldx_protection_region_f_104_w );
61
62   int bank_callback(int bank);
6163};
trunk/src/mame/includes/cninja.h
r29419r29420
1717public:
1818   cninja_state(const machine_config &mconfig, device_type type, const char *tag)
1919      : driver_device(mconfig, type, tag),
20         m_maincpu(*this, "maincpu"),
21         m_audiocpu(*this, "audiocpu"),
22         m_deco146(*this, "ioprot"),
23         m_deco104(*this, "ioprot104"),
24         m_decocomn(*this, "deco_common"),
25         m_deco_tilegen1(*this, "tilegen1"),
26         m_deco_tilegen2(*this, "tilegen2"),
27         m_raster_irq_timer(*this, "raster_timer"),
28         m_oki2(*this, "oki2"),
29         m_spriteram(*this, "spriteram"),
30         m_spriteram2(*this, "spriteram2") ,
20      m_maincpu(*this, "maincpu"),
21      m_audiocpu(*this, "audiocpu"),
22      m_deco146(*this, "ioprot"),
23      m_deco104(*this, "ioprot104"),
24      m_decocomn(*this, "deco_common"),
25      m_deco_tilegen1(*this, "tilegen1"),
26      m_deco_tilegen2(*this, "tilegen2"),
27      m_raster_irq_timer(*this, "raster_timer"),
28      m_oki2(*this, "oki2"),
29      m_spriteram(*this, "spriteram"),
30      m_spriteram2(*this, "spriteram2") ,
3131      m_pf1_rowscroll(*this, "pf1_rowscroll"),
3232      m_pf2_rowscroll(*this, "pf2_rowscroll"),
3333      m_pf3_rowscroll(*this, "pf3_rowscroll"),
r29419r29420
9292   TIMER_DEVICE_CALLBACK_MEMBER(interrupt_gen);
9393   void cninjabl_draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect );
9494
95   int cninja_bank_callback(int bank);
96   int robocop2_bank_callback(int bank);
97   int mutantf_1_bank_callback(int bank);
98   int mutantf_2_bank_callback(int bank);
99
95100   DECLARE_READ16_MEMBER( sshangha_protection_region_6_146_r );
96101   DECLARE_WRITE16_MEMBER( sshangha_protection_region_6_146_w );
97102   DECLARE_READ16_MEMBER( sshangha_protection_region_8_146_r );
trunk/src/mame/includes/dietgo.h
r29419r29420
4141   DECLARE_DRIVER_INIT(dietgo);
4242   virtual void machine_start();
4343   UINT32 screen_update_dietgo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
44   int bank_callback(int bank);
4445
4546   DECLARE_READ16_MEMBER( dietgo_protection_region_0_104_r );
4647   DECLARE_WRITE16_MEMBER( dietgo_protection_region_0_104_w );
trunk/src/mame/includes/simpl156.h
r29419r29420
1414public:
1515   simpl156_state(const machine_config &mconfig, device_type type, const char *tag)
1616      : driver_device(mconfig, type, tag),
17         m_maincpu(*this, "maincpu"),
18         m_deco_tilegen1(*this, "tilegen1"),
19         m_eeprom(*this, "eeprom"),
20         m_okimusic(*this, "okimusic") ,
17      m_maincpu(*this, "maincpu"),
18      m_deco_tilegen1(*this, "tilegen1"),
19      m_eeprom(*this, "eeprom"),
20      m_okimusic(*this, "okimusic") ,
2121      m_mainram(*this, "mainram"),
2222      m_systemram(*this, "systemram"),
2323      m_sprgen(*this, "spritegen"),
r29419r29420
3838   required_device<palette_device> m_palette;
3939   UINT16 *m_spriteram;
4040   size_t m_spriteram_size;
41   int bank_callback(int bank);
4142
4243   DECLARE_READ32_MEMBER(simpl156_inputs_read);
4344   DECLARE_READ32_MEMBER(simpl156_palette_r);
trunk/src/mame/includes/cbuster.h
r29419r29420
5757   virtual void video_start();
5858   UINT32 screen_update_twocrude(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
5959   void update_24bitcol( int offset );
60   int bank_callback(int bank);
6061};
trunk/src/mame/includes/darkseal.h
r29419r29420
77public:
88   darkseal_state(const machine_config &mconfig, device_type type, const char *tag)
99      : driver_device(mconfig, type, tag),
10         m_deco_tilegen1(*this, "tilegen1"),
11         m_deco_tilegen2(*this, "tilegen2"),
12         m_spriteram(*this, "spriteram") ,
10      m_deco_tilegen1(*this, "tilegen1"),
11      m_deco_tilegen2(*this, "tilegen2"),
12      m_spriteram(*this, "spriteram") ,
1313      m_ram(*this, "ram"),
1414      m_pf1_rowscroll(*this, "pf1_rowscroll"),
1515      m_pf3_rowscroll(*this, "pf3_rowscroll"),
trunk/src/mame/includes/vaportra.h
r29419r29420
5050   virtual void machine_reset();
5151   UINT32 screen_update_vaportra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5252   void update_24bitcol( int offset );
53   int bank_callback(int bank);
5354};
trunk/src/mame/includes/sshangha.h
r29419r29420
4545   optional_device<decospr_device> m_sprgen2;
4646
4747   int m_video_control;
48   int bank_callback(int bank);
4849
4950   DECLARE_READ16_MEMBER( sshangha_protection_region_8_146_r );
5051   DECLARE_WRITE16_MEMBER( sshangha_protection_region_8_146_w );
trunk/src/mame/includes/deco32.h
r29419r29420
168168   UINT16 port_b_tattass(int unused);
169169   void tattass_sound_cb( address_space &space, UINT16 data, UINT16 mem_mask );
170170
171   int fghthist_bank_callback( int bank );
172   int captaven_bank_callback( int bank );
173   int tattass_bank_callback( int bank );
171174};
172175
173176class dragngun_state : public deco32_state
r29419r29420
202205   void screen_eof_dragngun(screen_device &screen, bool state);
203206   void dragngun_draw_sprites( bitmap_rgb32 &bitmap, const rectangle &cliprect, const UINT32 *spritedata);
204207   READ32_MEMBER( dragngun_unk_video_r );
208   
209   int bank_1_callback( int bank );
210   int bank_2_callback( int bank );
205211};
trunk/src/mame/includes/rohga.h
r29419r29420
1717public:
1818   rohga_state(const machine_config &mconfig, device_type type, const char *tag)
1919      : driver_device(mconfig, type, tag),
20         m_maincpu(*this, "maincpu"),
21         m_audiocpu(*this, "audiocpu"),
22         m_deco146(*this, "ioprot"),
23         m_deco104(*this, "ioprot104"),
24         m_decocomn(*this, "deco_common"),
25         m_deco_tilegen1(*this, "tilegen1"),
26         m_deco_tilegen2(*this, "tilegen2"),
27         m_oki1(*this, "oki1"),
28         m_oki2(*this, "oki2"),
29         m_spriteram(*this, "spriteram"),
30         m_spriteram2(*this, "spriteram2") ,
20      m_maincpu(*this, "maincpu"),
21      m_audiocpu(*this, "audiocpu"),
22      m_deco146(*this, "ioprot"),
23      m_deco104(*this, "ioprot104"),
24      m_decocomn(*this, "deco_common"),
25      m_deco_tilegen1(*this, "tilegen1"),
26      m_deco_tilegen2(*this, "tilegen2"),
27      m_oki1(*this, "oki1"),
28      m_oki2(*this, "oki2"),
29      m_spriteram(*this, "spriteram"),
30      m_spriteram2(*this, "spriteram2") ,
3131      m_pf1_rowscroll(*this, "pf1_rowscroll"),
3232      m_pf2_rowscroll(*this, "pf2_rowscroll"),
3333      m_pf3_rowscroll(*this, "pf3_rowscroll"),
r29419r29420
7676   UINT32 screen_update_wizdfire(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
7777   UINT32 screen_update_nitrobal(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
7878   void mixwizdfirelayer(bitmap_rgb32 &bitmap, const rectangle &cliprect, int gfxregion, UINT16 pri, UINT16 primask);
79   int bank_callback(int bank);
7980
8081   READ16_MEMBER( nb_protection_region_0_146_r );
8182   WRITE16_MEMBER( nb_protection_region_0_146_w );
trunk/src/mame/includes/boogwing.h
r29419r29420
2727         m_oki2(*this, "oki2"),
2828         m_spriteram(*this, "spriteram"),
2929         m_spriteram2(*this, "spriteram2") ,
30      m_pf1_rowscroll(*this, "pf1_rowscroll"),
31      m_pf2_rowscroll(*this, "pf2_rowscroll"),
32      m_pf3_rowscroll(*this, "pf3_rowscroll"),
33      m_pf4_rowscroll(*this, "pf4_rowscroll"),
34      m_sprgen1(*this, "spritegen1"),
35      m_sprgen2(*this, "spritegen2"),
36      m_palette(*this, "palette")
30         m_pf1_rowscroll(*this, "pf1_rowscroll"),
31         m_pf2_rowscroll(*this, "pf2_rowscroll"),
32         m_pf3_rowscroll(*this, "pf3_rowscroll"),
33         m_pf4_rowscroll(*this, "pf4_rowscroll"),
34         m_sprgen1(*this, "spritegen1"),
35         m_sprgen2(*this, "spritegen2"),
36         m_palette(*this, "palette")
3737   { }
3838
3939   /* devices */
r29419r29420
6363   void mix_boogwing(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
6464   DECLARE_READ16_MEMBER( boogwing_protection_region_0_104_r );
6565   DECLARE_WRITE16_MEMBER( boogwing_protection_region_0_104_w );
66
66   
67   int bank_callback(int bank);
68   int bank_callback2(int bank);
6769};
trunk/src/mame/video/deco16ic.c
r29419r29420
169169deco16ic_device::deco16ic_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
170170   : device_t(mconfig, DECO16IC, "Data East IC 55 / 56 / 74 / 141", tag, owner, clock, "deco16ic", __FILE__),
171171      device_video_interface(mconfig, *this),
172   m_pf1_data(NULL),
173   m_pf2_data(NULL),
174   m_pf12_control(NULL),
175   m_pf1_rowscroll_ptr(NULL),
176   m_pf2_rowscroll_ptr(NULL),
177   m_use_custom_pf1(0),
178   m_use_custom_pf2(0),
179   m_pf1_bank(0),
180   m_pf2_bank(0),
181   m_pf12_last_small(0),
182   m_pf12_last_big(0),
183   m_pf1_8bpp_mode(0),
184   m_gfxdecode(*this),
185   m_palette(*this)
172      m_pf1_data(NULL),
173      m_pf2_data(NULL),
174      m_pf12_control(NULL),
175      m_pf1_rowscroll_ptr(NULL),
176      m_pf2_rowscroll_ptr(NULL),
177      m_use_custom_pf1(0),
178      m_use_custom_pf2(0),
179      m_pf1_bank(0),
180      m_pf2_bank(0),
181      m_pf12_last_small(0),
182      m_pf12_last_big(0),
183      m_pf1_8bpp_mode(0),
184      m_split(0),
185      m_full_width12(1),
186      m_pf1_trans_mask(0xf),
187      m_pf2_trans_mask(0xf),
188      m_pf1_colour_bank(0),
189      m_pf2_colour_bank(0),
190      m_pf1_colourmask(0xf),
191      m_pf2_colourmask(0xf),
192      m_pf12_8x8_gfx_bank(0),
193      m_pf12_16x16_gfx_bank(0),
194      m_gfxdecode(*this),
195      m_palette(*this)
186196{
187197}
188198
r29419r29420
197207}
198208
199209//-------------------------------------------------
200//  device_config_complete - perform any
201//  operations now that the configuration is
202//  complete
203//-------------------------------------------------
204
205void deco16ic_device::device_config_complete()
206{
207   // inherit a copy of the static data
208   const deco16ic_interface *intf = reinterpret_cast<const deco16ic_interface *>(static_config());
209   if (intf != NULL)
210   *static_cast<deco16ic_interface *>(this) = *intf;
211
212   // or initialize to defaults if none provided
213   else
214   {
215   m_bank_cb0 = NULL;
216   m_bank_cb1 = NULL;
217   }
218}
219
220//-------------------------------------------------
221210//  device_start - device-specific startup
222211//-------------------------------------------------
223212
r29419r29420
226215   if(!m_gfxdecode->started())
227216      throw device_missing_dependencies();
228217
229   m_bank_cb_func[0] = m_bank_cb0;
230   m_bank_cb_func[1] = m_bank_cb1;
218   m_bank1_cb.bind_relative_to(*owner());
219   m_bank2_cb.bind_relative_to(*owner());
231220
232221   int fullheight = 0;
233222   int fullwidth = 0;
r29419r29420
832821   m_use_custom_pf1 = deco16_pf_update(m_pf1_tilemap_8x8, m_pf1_tilemap_16x16, rowscroll_1_ptr, m_pf12_control[1], m_pf12_control[2], m_pf12_control[5] & 0xff, m_pf12_control[6] & 0xff);
833822
834823   /* Update banking and global flip state */
835   if (m_bank_cb_func[0])
824   if (!m_bank1_cb.isnull())
836825   {
837      bank1 = m_bank_cb_func[0](m_pf12_control[7] & 0xff);
826      bank1 = m_bank1_cb(m_pf12_control[7] & 0xff);
838827
839828      if (bank1 != m_pf1_bank)
840829      {
r29419r29420
847836      }
848837   }
849838
850   if (m_bank_cb_func[1])
839   if (!m_bank2_cb.isnull())
851840   {
852      bank2 = m_bank_cb_func[1](m_pf12_control[7] >> 8);
841      bank2 = m_bank2_cb(m_pf12_control[7] >> 8);
853842
854843      if (bank2 != m_pf2_bank)
855844      {
trunk/src/mame/video/deco16ic.h
r29419r29420
1717    TYPE DEFINITIONS
1818***************************************************************************/
1919
20typedef int (*deco16_bank_cb)( const int bank );
20typedef device_delegate<int (int bank)> deco16_bank_cb_delegate;
2121
22
23struct deco16ic_interface
24{
25   int                m_split;
26   int                m_full_width12;
27
28   int                m_pf1_trans_mask, m_pf2_trans_mask;
29   int                m_pf1_colour_bank, m_pf2_colour_bank;
30   int                m_pf1_colourmask, m_pf2_colourmask;
31   deco16_bank_cb     m_bank_cb0, m_bank_cb1;
32   int                m_pf12_8x8_gfx_bank, m_pf12_16x16_gfx_bank;
33};
34
3522class deco16ic_device : public device_t,
36                  public device_video_interface,
37                  public deco16ic_interface
23                  public device_video_interface
3824{
3925public:
4026   deco16ic_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
r29419r29420
4329   // static configuration
4430   static void static_set_gfxdecode_tag(device_t &device, const char *tag);
4531   static void static_set_palette_tag(device_t &device, const char *tag);
32   static void set_bank1_callback(device_t &device, deco16_bank_cb_delegate callback) { downcast<deco16ic_device &>(device).m_bank1_cb = callback; }
33   static void set_bank2_callback(device_t &device, deco16_bank_cb_delegate callback) { downcast<deco16ic_device &>(device).m_bank2_cb = callback; }
34   static void set_split(device_t &device, int split) { downcast<deco16ic_device &>(device).m_split = split; }
35   static void set_full_width(device_t &device, int width) { downcast<deco16ic_device &>(device).m_full_width12 = width; }
36   static void set_pf1_trans_mask(device_t &device, int mask) { downcast<deco16ic_device &>(device).m_pf1_trans_mask = mask; }
37   static void set_pf2_trans_mask(device_t &device, int mask) { downcast<deco16ic_device &>(device).m_pf2_trans_mask = mask; }
38   static void set_pf1_col_mask(device_t &device, int mask) { downcast<deco16ic_device &>(device).m_pf1_colourmask = mask; }
39   static void set_pf2_col_mask(device_t &device, int mask) { downcast<deco16ic_device &>(device).m_pf2_colourmask = mask; }
40   static void set_pf1_col_bank(device_t &device, int bank) { downcast<deco16ic_device &>(device).m_pf1_colour_bank = bank; }
41   static void set_pf2_col_bank(device_t &device, int bank) { downcast<deco16ic_device &>(device).m_pf2_colour_bank = bank; }
42   static void set_pf12_8x8_bank(device_t &device, int bank) { downcast<deco16ic_device &>(device).m_pf12_8x8_gfx_bank = bank; }
43   static void set_pf12_16x16_bank(device_t &device, int bank) { downcast<deco16ic_device &>(device).m_pf12_16x16_gfx_bank = bank; }
44   
4645
47
4846   DECLARE_WRITE16_MEMBER( pf1_data_w );
4947   DECLARE_WRITE16_MEMBER( pf2_data_w );
5048
r29419r29420
119117
120118protected:
121119   // device-level overrides
122   virtual void device_config_complete();
123120   virtual void device_start();
124121   virtual void device_reset();
125122
r29419r29420
133130   tilemap_t *m_pf1_tilemap_16x16, *m_pf2_tilemap_16x16;
134131   tilemap_t *m_pf1_tilemap_8x8, *m_pf2_tilemap_8x8;
135132
136   deco16_bank_cb  m_bank_cb_func[2];
133   deco16_bank_cb_delegate m_bank1_cb;
134   deco16_bank_cb_delegate m_bank2_cb;
137135
138136   int m_use_custom_pf1, m_use_custom_pf2;
139
140137   int m_pf1_bank, m_pf2_bank;
141
142138   int m_pf12_last_small, m_pf12_last_big;
143
144139   int m_pf1_8bpp_mode;
145140
141   int m_split;
142   int m_full_width12;
143   int m_pf1_trans_mask, m_pf2_trans_mask;
144   int m_pf1_colour_bank, m_pf2_colour_bank;
145   int m_pf1_colourmask, m_pf2_colourmask;
146   int m_pf12_8x8_gfx_bank, m_pf12_16x16_gfx_bank;
147   
146148   TILEMAP_MAPPER_MEMBER(deco16_scan_rows);
147149   TILE_GET_INFO_MEMBER(get_pf2_tile_info);
148150   TILE_GET_INFO_MEMBER(get_pf1_tile_info);
r29419r29420
166168
167169#define MCFG_DECO16IC_SET_SCREEN MCFG_VIDEO_SET_SCREEN
168170
171#define MCFG_DECO16IC_BANK1_CB(_class, _method) \
172   deco16ic_device::set_bank1_callback(*device, deco16_bank_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner)));
173
174#define MCFG_DECO16IC_BANK2_CB(_class, _method) \
175   deco16ic_device::set_bank2_callback(*device, deco16_bank_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner)));
176
177#define MCFG_DECO16IC_SPLIT(_split) \
178   deco16ic_device::set_split(*device, _split);
179
180#define MCFG_DECO16IC_WIDTH12(_width) \
181   deco16ic_device::set_full_width(*device, _width);
182
183#define MCFG_DECO16IC_PF1_TRANS_MASK(_mask) \
184   deco16ic_device::set_pf1_trans_mask(*device, _mask);
185
186#define MCFG_DECO16IC_PF2_TRANS_MASK(_mask) \
187   deco16ic_device::set_pf2_trans_mask(*device, _mask);
188
189#define MCFG_DECO16IC_PF1_COL_MASK(_mask) \
190   deco16ic_device::set_pf1_col_mask(*device, _mask);
191
192#define MCFG_DECO16IC_PF2_COL_MASK(_mask) \
193   deco16ic_device::set_pf2_col_mask(*device, _mask);
194
195#define MCFG_DECO16IC_PF1_COL_BANK(_bank) \
196   deco16ic_device::set_pf1_col_bank(*device, _bank);
197
198#define MCFG_DECO16IC_PF2_COL_BANK(_bank) \
199   deco16ic_device::set_pf2_col_bank(*device, _bank);
200
201#define MCFG_DECO16IC_PF12_8X8_BANK(_bank) \
202   deco16ic_device::set_pf12_8x8_bank(*device, _bank);
203
204#define MCFG_DECO16IC_PF12_16X16_BANK(_bank) \
205   deco16ic_device::set_pf12_16x16_bank(*device, _bank);
206
169207#define MCFG_DECO16IC_GFXDECODE(_gfxtag) \
170208   deco16ic_device::static_set_gfxdecode_tag(*device, "^" _gfxtag);
171209
trunk/src/mame/drivers/supbtime.c
r29419r29420
306306
307307/******************************************************************************/
308308
309static const deco16ic_interface supbtime_deco16ic_tilegen1_intf =
310{
311   0, 1,
312   0x0f, 0x0f, /* trans masks (default values) */
313   0, 16, /* color base (default values) */
314   0x0f, 0x0f, /* color masks (default values) */
315   NULL, NULL,
316   0,1
317};
318
319309void supbtime_state::machine_start()
320310{
321311}
r29419r29420
345335   MCFG_PALETTE_ADD("palette", 1024)
346336   MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
347337
348   MCFG_DECO16IC_ADD("tilegen1", supbtime_deco16ic_tilegen1_intf)
338   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
339   MCFG_DECO16IC_SPLIT(0)
340   MCFG_DECO16IC_WIDTH12(1)
341   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
342   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
343   MCFG_DECO16IC_PF1_COL_BANK(0x00)
344   MCFG_DECO16IC_PF2_COL_BANK(0x10)
345   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
346   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
347   MCFG_DECO16IC_PF12_8X8_BANK(0)
348   MCFG_DECO16IC_PF12_16X16_BANK(1)
349349   MCFG_DECO16IC_GFXDECODE("gfxdecode")
350350   MCFG_DECO16IC_PALETTE("palette")
351351
r29419r29420
377377   MCFG_CPU_ADD("audiocpu", H6280, 32220000/8) /* Custom chip 45, audio section crystal is 32.220 MHz */
378378   MCFG_CPU_PROGRAM_MAP(sound_map)
379379
380
381380   /* video hardware */
382381   MCFG_SCREEN_ADD("screen", RASTER)
383382   MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
r29419r29420
392391   MCFG_PALETTE_ADD("palette", 1024)
393392   MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
394393
395   MCFG_DECO16IC_ADD("tilegen1", supbtime_deco16ic_tilegen1_intf)
394   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
395   MCFG_DECO16IC_SPLIT(0)
396   MCFG_DECO16IC_WIDTH12(1)
397   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
398   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
399   MCFG_DECO16IC_PF1_COL_BANK(0x00)
400   MCFG_DECO16IC_PF2_COL_BANK(0x10)
401   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
402   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
403   MCFG_DECO16IC_PF12_8X8_BANK(0)
404   MCFG_DECO16IC_PF12_16X16_BANK(1)
396405   MCFG_DECO16IC_GFXDECODE("gfxdecode")
397406   MCFG_DECO16IC_PALETTE("palette")
398407
trunk/src/mame/drivers/boogwing.c
r29419r29420
296296}
297297
298298
299static int boogwing_bank_callback( const int bank )
299int boogwing_state::bank_callback( int bank )
300300{
301301   return ((bank >> 4) & 0x7) * 0x1000;
302302}
303303
304static int boogwing_bank_callback2( const int bank )
304int boogwing_state::bank_callback2( int bank )
305305{
306306   int offset = ((bank >> 4) & 0x7) * 0x1000;
307307   if ((bank & 0xf) == 0xa)
r29419r29420
310310   return offset;
311311}
312312
313static const deco16ic_interface boogwing_deco16ic_tilegen1_intf =
314{
315   0, 1,
316   0x0f, 0x1f, /* trans masks (pf2 has 5bpp graphics) */
317   0, 0,  /* color base (pf2 is non default) */
318   0x0f, 0x0f, /* color masks (default values) */
319   NULL,
320   boogwing_bank_callback,
321   0, 1
322};
323
324static const deco16ic_interface boogwing_deco16ic_tilegen2_intf =
325{
326   0, 1,
327   0x0f, 0x0f,
328   0, 16,
329   0x0f, 0x0f,
330   boogwing_bank_callback2,
331   boogwing_bank_callback2,
332   0, 2
333};
334
335
336313static MACHINE_CONFIG_START( boogwing, boogwing_state )
337314
338315   /* basic machine hardware */
r29419r29420
361338   MCFG_DECOCOMN_ADD("deco_common")
362339   MCFG_DECOCOMN_PALETTE("palette")
363340
364   MCFG_DECO16IC_ADD("tilegen1", boogwing_deco16ic_tilegen1_intf)
341   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
342   MCFG_DECO16IC_SPLIT(0)
343   MCFG_DECO16IC_WIDTH12(1)
344   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
345   MCFG_DECO16IC_PF2_TRANS_MASK(0x1f)   // pf2 has 5bpp graphics
346   MCFG_DECO16IC_PF1_COL_BANK(0)
347   MCFG_DECO16IC_PF2_COL_BANK(0)   // pf2 is non default
348   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
349   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
350   // no bank1 callback
351   MCFG_DECO16IC_BANK2_CB(boogwing_state, bank_callback)
352   MCFG_DECO16IC_PF12_8X8_BANK(0)
353   MCFG_DECO16IC_PF12_16X16_BANK(1)
365354   MCFG_DECO16IC_GFXDECODE("gfxdecode")
366355   MCFG_DECO16IC_PALETTE("palette")
367356
368   MCFG_DECO16IC_ADD("tilegen2", boogwing_deco16ic_tilegen2_intf)
357   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
358   MCFG_DECO16IC_SPLIT(0)
359   MCFG_DECO16IC_WIDTH12(1)
360   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
361   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
362   MCFG_DECO16IC_PF1_COL_BANK(0)
363   MCFG_DECO16IC_PF2_COL_BANK(16)
364   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
365   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
366   MCFG_DECO16IC_BANK1_CB(boogwing_state, bank_callback2)
367   MCFG_DECO16IC_BANK2_CB(boogwing_state, bank_callback2)
368   MCFG_DECO16IC_PF12_8X8_BANK(0)
369   MCFG_DECO16IC_PF12_16X16_BANK(2)
369370   MCFG_DECO16IC_GFXDECODE("gfxdecode")
370371   MCFG_DECO16IC_PALETTE("palette")
371372
trunk/src/mame/drivers/cbuster.c
r29419r29420
258258
259259/******************************************************************************/
260260
261static int twocrude_bank_callback( const int bank )
261int cbuster_state::bank_callback( int bank )
262262{
263263   return ((bank >> 4) & 0x7) * 0x1000;
264264}
265265
266static const deco16ic_interface twocrude_deco16ic_tilegen1_intf =
267{
268   0, 1,
269   0x0f, 0x0f, /* trans masks (default values) */
270   0x00, 0x20, /* color base (default values) */
271   0x0f, 0x0f, /* color masks (default values) */
272   twocrude_bank_callback,
273   twocrude_bank_callback,
274   0,1,
275};
276
277static const deco16ic_interface twocrude_deco16ic_tilegen2_intf =
278{
279   0, 1,
280   0x0f, 0x0f, /* trans masks (default values) */
281   0x30, 0x40, /* color base (default values) */
282   0x0f, 0x0f, /* color masks (default values) */
283   twocrude_bank_callback,
284   twocrude_bank_callback,
285   0,2,
286};
287
288266void cbuster_state::machine_start()
289267{
290268   save_item(NAME(m_prot));
r29419r29420
319297   MCFG_GFXDECODE_ADD("gfxdecode", "palette", cbuster)
320298   MCFG_PALETTE_ADD("palette", 2048)
321299
322   MCFG_DECO16IC_ADD("tilegen1", twocrude_deco16ic_tilegen1_intf)
300   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
301   MCFG_DECO16IC_SPLIT(0)
302   MCFG_DECO16IC_WIDTH12(1)
303   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
304   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
305   MCFG_DECO16IC_PF1_COL_BANK(0x00)
306   MCFG_DECO16IC_PF2_COL_BANK(0x20)
307   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
308   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
309   MCFG_DECO16IC_BANK1_CB(cbuster_state, bank_callback)
310   MCFG_DECO16IC_BANK2_CB(cbuster_state, bank_callback)
311   MCFG_DECO16IC_PF12_8X8_BANK(0)
312   MCFG_DECO16IC_PF12_16X16_BANK(1)
323313   MCFG_DECO16IC_GFXDECODE("gfxdecode")
324314   MCFG_DECO16IC_PALETTE("palette")
325315
326   MCFG_DECO16IC_ADD("tilegen2", twocrude_deco16ic_tilegen2_intf)
316   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
317   MCFG_DECO16IC_SPLIT(0)
318   MCFG_DECO16IC_WIDTH12(1)
319   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
320   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
321   MCFG_DECO16IC_PF1_COL_BANK(0x30)
322   MCFG_DECO16IC_PF2_COL_BANK(0x40)
323   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
324   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
325   MCFG_DECO16IC_BANK1_CB(cbuster_state, bank_callback)
326   MCFG_DECO16IC_BANK2_CB(cbuster_state, bank_callback)
327   MCFG_DECO16IC_PF12_8X8_BANK(0)
328   MCFG_DECO16IC_PF12_16X16_BANK(2)
327329   MCFG_DECO16IC_GFXDECODE("gfxdecode")
328330   MCFG_DECO16IC_PALETTE("palette")
329331
trunk/src/mame/drivers/backfire.c
r29419r29420
9696   UINT32 screen_update_backfire_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9797   INTERRUPT_GEN_MEMBER(deco32_vbl_interrupt);
9898   void descramble_sound();
99   int bank_callback(int bank);
99100
100101   required_ioport m_io_in0;
101102   required_ioport m_io_in1;
r29419r29420
447448
448449
449450
450static int backfire_bank_callback( int bank )
451int backfire_state::bank_callback( int bank )
451452{
452453   //  mame_printf_debug("bank callback %04x\n",bank); // bit 1 gets set too?
453454   bank = bank >> 4;
r29419r29420
456457   return bank * 0x1000;
457458}
458459
459static const deco16ic_interface backfire_deco16ic_tilegen1_intf =
460{
461   0, 1,
462   0x0f, 0x0f, /* trans masks (default values) */
463   0x00, 0x40, /* color base */
464   0x0f, 0x0f, /* color masks (default values) */
465   backfire_bank_callback,
466   backfire_bank_callback,
467   0,1
468};
469
470static const deco16ic_interface backfire_deco16ic_tilegen2_intf =
471{
472   0, 1,
473   0x0f, 0x0f, /* trans masks (default values) */
474   0x10, 0x50, /* color base */
475   0x0f, 0x0f, /* color masks (default values) */
476   backfire_bank_callback,
477   backfire_bank_callback,
478   2,3
479};
480
481460void backfire_state::machine_start()
482461{
483462}
r29419r29420
525504   MCFG_SCREEN_UPDATE_DRIVER(backfire_state, screen_update_backfire_right)
526505   MCFG_SCREEN_PALETTE("palette")
527506
528
529   MCFG_DECO16IC_ADD("tilegen1", backfire_deco16ic_tilegen1_intf)
507   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
530508   MCFG_DECO16IC_SET_SCREEN("lscreen")
509   MCFG_DECO16IC_SPLIT(0)
510   MCFG_DECO16IC_WIDTH12(1)
511   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
512   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
513   MCFG_DECO16IC_PF1_COL_BANK(0x00)
514   MCFG_DECO16IC_PF2_COL_BANK(0x40)
515   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
516   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
517   MCFG_DECO16IC_BANK1_CB(backfire_state, bank_callback)
518   MCFG_DECO16IC_BANK2_CB(backfire_state, bank_callback)
519   MCFG_DECO16IC_PF12_8X8_BANK(0)
520   MCFG_DECO16IC_PF12_16X16_BANK(1)
531521   MCFG_DECO16IC_GFXDECODE("gfxdecode")
532522   MCFG_DECO16IC_PALETTE("palette")
533523
534   MCFG_DECO16IC_ADD("tilegen2", backfire_deco16ic_tilegen2_intf)
524   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
535525   MCFG_DECO16IC_SET_SCREEN("lscreen")
526   MCFG_DECO16IC_SPLIT(0)
527   MCFG_DECO16IC_WIDTH12(1)
528   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
529   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
530   MCFG_DECO16IC_PF1_COL_BANK(0x10)
531   MCFG_DECO16IC_PF2_COL_BANK(0x50)
532   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
533   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
534   MCFG_DECO16IC_BANK1_CB(backfire_state, bank_callback)
535   MCFG_DECO16IC_BANK2_CB(backfire_state, bank_callback)
536   MCFG_DECO16IC_PF12_8X8_BANK(2)
537   MCFG_DECO16IC_PF12_16X16_BANK(3)
536538   MCFG_DECO16IC_GFXDECODE("gfxdecode")
537539   MCFG_DECO16IC_PALETTE("palette")
538540
trunk/src/mame/drivers/deco32.c
r29419r29420
238238/**********************************************************************************/
239239
240240
241static int fghthist_bank_callback( int bank )
242{
243   bank = bank >> 4;
244   bank = (bank & 1) | ((bank & 4) >> 1) | ((bank & 2) << 1);
245
246   return bank * 0x1000;
247}
248
249static const deco16ic_interface fghthist_deco16ic_tilegen1_intf =
250{
251   0, 1,
252   0x0f, 0x0f, /* trans masks (default values) */
253   0x00, 0x10, /* color base */
254   0x0f, 0x0f, /* color masks (default values) */
255   fghthist_bank_callback,
256   fghthist_bank_callback,
257   0,1
258};
259
260static const deco16ic_interface fghthist_deco16ic_tilegen2_intf =
261{
262   0, 1,
263   0x0f, 0x0f, /* trans masks (default values) */
264   0x20, 0x30, /* color base */
265   0x0f, 0x0f, /* color masks (default values) */
266   fghthist_bank_callback,
267   fghthist_bank_callback,
268   0,2
269};
270
271
272
273
274
275241TIMER_DEVICE_CALLBACK_MEMBER(deco32_state::interrupt_gen)
276242{
277243   m_maincpu->set_input_line(ARM_IRQ_LINE, HOLD_LINE);
r29419r29420
16991665   }
17001666}
17011667
1702static int captaven_bank_callback( int bank )
1668int deco32_state::captaven_bank_callback( int bank )
17031669{
17041670   bank = bank >> 4;
17051671   bank = (bank & 2) >> 1;
r29419r29420
17071673   return bank * 0x4000;
17081674}
17091675
1710// pf4 not used (pf3 is in 8bpp mode)
1711static const deco16ic_interface captaven_deco16ic_tilegen1_intf =
1712{
1713   0, 1, // pf12only, split, fullwidth12 / fullwidth34
1714   0x0f, 0x0f, /* trans masks (default values) */
1715   0x20, 0x30, /* color base */
1716   0x0f, 0x0f, /* color masks (default values) */
1717   NULL,
1718   NULL,
1719   0,1
1720};
1721
1722static const deco16ic_interface captaven_deco16ic_tilegen2_intf =
1723{
1724   0, 0, // pf12only, split, fullwidth12 / fullwidth34
1725   0xff, 0x00, /* trans masks (default values) */
1726   0x10, 0x00, /* color base */
1727   0x0f, 0x00, /* color masks (default values) */
1728   captaven_bank_callback,
1729   NULL,
1730   0,2,
1731};
1732
1733
17341676static MACHINE_CONFIG_START( captaven, deco32_state )
17351677
17361678   /* basic machine hardware */
r29419r29420
17561698   MCFG_GFXDECODE_ADD("gfxdecode", "palette", captaven)
17571699   MCFG_PALETTE_ADD("palette", 2048)
17581700
1759   MCFG_DECO16IC_ADD("tilegen1", captaven_deco16ic_tilegen1_intf)
1701   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
1702   MCFG_DECO16IC_SPLIT(0)
1703   MCFG_DECO16IC_WIDTH12(1)
1704   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1705   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1706   MCFG_DECO16IC_PF1_COL_BANK(0x20)
1707   MCFG_DECO16IC_PF2_COL_BANK(0x30)
1708   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1709   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1710   MCFG_DECO16IC_PF12_8X8_BANK(0)
1711   MCFG_DECO16IC_PF12_16X16_BANK(1)
17601712   MCFG_DECO16IC_GFXDECODE("gfxdecode")
17611713   MCFG_DECO16IC_PALETTE("palette")
17621714
1763   MCFG_DECO16IC_ADD("tilegen2", captaven_deco16ic_tilegen2_intf)
1715   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)   // pf3 is in 8bpp mode, pf4 is not used
1716   MCFG_DECO16IC_SPLIT(0)
1717   MCFG_DECO16IC_WIDTH12(0)
1718   MCFG_DECO16IC_PF1_TRANS_MASK(0xff)
1719   MCFG_DECO16IC_PF2_TRANS_MASK(0x00)
1720   MCFG_DECO16IC_PF1_COL_BANK(0x10)
1721   MCFG_DECO16IC_PF2_COL_BANK(0x00)
1722   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1723   MCFG_DECO16IC_PF2_COL_MASK(0x00)
1724   MCFG_DECO16IC_BANK1_CB(deco32_state, captaven_bank_callback)
1725   // no bank2 callback
1726   MCFG_DECO16IC_PF12_8X8_BANK(0)
1727   MCFG_DECO16IC_PF12_16X16_BANK(2)
17641728   MCFG_DECO16IC_GFXDECODE("gfxdecode")
17651729   MCFG_DECO16IC_PALETTE("palette")
17661730
r29419r29420
18091773   return machine().root_device().ioport(":IN1")->read();
18101774}
18111775
1776int deco32_state::fghthist_bank_callback( int bank )
1777{
1778   bank = bank >> 4;
1779   bank = (bank & 1) | ((bank & 4) >> 1) | ((bank & 2) << 1);
1780   
1781   return bank * 0x1000;
1782}
1783
18121784static MACHINE_CONFIG_START( fghthist, deco32_state ) /* DE-0380-2 PCB */
18131785
18141786   /* basic machine hardware */
r29419r29420
18211793
18221794   MCFG_EEPROM_SERIAL_93C46_ADD("eeprom")
18231795
1824
18251796   MCFG_SCREEN_ADD("screen", RASTER)
18261797   MCFG_SCREEN_REFRESH_RATE(60)
18271798   MCFG_SCREEN_SIZE(42*8, 32*8)
r29419r29420
18311802   MCFG_GFXDECODE_ADD("gfxdecode", "palette", fghthist)
18321803   MCFG_PALETTE_ADD("palette", 2048)
18331804
1834   MCFG_DECO16IC_ADD("tilegen1", fghthist_deco16ic_tilegen1_intf)
1805   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
1806   MCFG_DECO16IC_SPLIT(0)
1807   MCFG_DECO16IC_WIDTH12(1)
1808   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1809   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1810   MCFG_DECO16IC_PF1_COL_BANK(0x00)
1811   MCFG_DECO16IC_PF2_COL_BANK(0x10)
1812   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1813   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1814   MCFG_DECO16IC_BANK1_CB(deco32_state, fghthist_bank_callback)
1815   MCFG_DECO16IC_BANK2_CB(deco32_state, fghthist_bank_callback)
1816   MCFG_DECO16IC_PF12_8X8_BANK(0)
1817   MCFG_DECO16IC_PF12_16X16_BANK(1)
18351818   MCFG_DECO16IC_GFXDECODE("gfxdecode")
18361819   MCFG_DECO16IC_PALETTE("palette")
18371820
1838   MCFG_DECO16IC_ADD("tilegen2", fghthist_deco16ic_tilegen2_intf)
1821   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
1822   MCFG_DECO16IC_SPLIT(0)
1823   MCFG_DECO16IC_WIDTH12(1)
1824   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1825   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1826   MCFG_DECO16IC_PF1_COL_BANK(0x20)
1827   MCFG_DECO16IC_PF2_COL_BANK(0x30)
1828   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1829   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1830   MCFG_DECO16IC_BANK1_CB(deco32_state, fghthist_bank_callback)
1831   MCFG_DECO16IC_BANK2_CB(deco32_state, fghthist_bank_callback)
1832   MCFG_DECO16IC_PF12_8X8_BANK(0)
1833   MCFG_DECO16IC_PF12_16X16_BANK(2)
18391834   MCFG_DECO16IC_GFXDECODE("gfxdecode")
18401835   MCFG_DECO16IC_PALETTE("palette")
18411836
r29419r29420
18931888   MCFG_GFXDECODE_ADD("gfxdecode", "palette", fghthist)
18941889   MCFG_PALETTE_ADD("palette", 2048)
18951890
1896   MCFG_DECO16IC_ADD("tilegen1", fghthist_deco16ic_tilegen1_intf)
1891   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
1892   MCFG_DECO16IC_SPLIT(0)
1893   MCFG_DECO16IC_WIDTH12(1)
1894   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1895   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1896   MCFG_DECO16IC_PF1_COL_BANK(0x00)
1897   MCFG_DECO16IC_PF2_COL_BANK(0x10)
1898   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1899   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1900   MCFG_DECO16IC_BANK1_CB(deco32_state, fghthist_bank_callback)
1901   MCFG_DECO16IC_BANK2_CB(deco32_state, fghthist_bank_callback)
1902   MCFG_DECO16IC_PF12_8X8_BANK(0)
1903   MCFG_DECO16IC_PF12_16X16_BANK(1)
18971904   MCFG_DECO16IC_GFXDECODE("gfxdecode")
18981905   MCFG_DECO16IC_PALETTE("palette")
18991906
1900   MCFG_DECO16IC_ADD("tilegen2", fghthist_deco16ic_tilegen2_intf)
1907   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
1908   MCFG_DECO16IC_SPLIT(0)
1909   MCFG_DECO16IC_WIDTH12(1)
1910   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1911   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1912   MCFG_DECO16IC_PF1_COL_BANK(0x20)
1913   MCFG_DECO16IC_PF2_COL_BANK(0x30)
1914   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1915   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1916   MCFG_DECO16IC_BANK1_CB(deco32_state, fghthist_bank_callback)
1917   MCFG_DECO16IC_BANK2_CB(deco32_state, fghthist_bank_callback)
1918   MCFG_DECO16IC_PF12_8X8_BANK(0)
1919   MCFG_DECO16IC_PF12_16X16_BANK(2)
19011920   MCFG_DECO16IC_GFXDECODE("gfxdecode")
19021921   MCFG_DECO16IC_PALETTE("palette")
19031922
r29419r29420
19341953MACHINE_CONFIG_END
19351954
19361955
1937static int dragngun_bank_callback( int bank )
1956int dragngun_state::bank_1_callback( int bank )
19381957{
19391958   bank = bank >> 4;
19401959   return bank * 0x1000;
19411960}
19421961
19431962
1944static int dragngun_bank2_callback( int bank )
1963int dragngun_state::bank_2_callback( int bank )
19451964{
19461965   bank = bank >> 5;
19471966   return bank * 0x1000;
19481967}
19491968
1950
1951static const deco16ic_interface dragngun_deco16ic_tilegen1_intf =
1952{
1953   0, 1, // dragon gun definitely needs pf3/4 full width, bgs in 2nd attract demo.
1954   0x0f, 0x0f, /* trans masks (default values) */
1955   0x20, 0x30, /* color base */
1956   0x0f, 0x0f, /* color masks (default values) */
1957   dragngun_bank_callback,
1958   dragngun_bank_callback,
1959   0,1,
1960};
1961
1962static const deco16ic_interface dragngun_deco16ic_tilegen2_intf =
1963{
1964   0, 1, // dragon gun definitely needs pf3/4 full width, bgs in 2nd attract demo.
1965   0xff, 0xff, /* trans masks (default values) */
1966   0x04, 0x04, /* color base */
1967   0x03, 0x03, /* color masks (default values) */
1968   dragngun_bank2_callback,
1969   NULL,
1970   0,2,
1971};
1972
1973static const deco16ic_interface lockload_deco16ic_tilegen1_intf =
1974{
1975   0, 1, // lockload definitely wants pf34 half width..
1976   0x0f, 0x0f, /* trans masks (default values) */
1977   0x20, 0x30, /* color base */
1978   0x0f, 0x0f, /* color masks (default values) */
1979   dragngun_bank_callback,
1980   dragngun_bank_callback,
1981   0,1,
1982};
1983
1984static const deco16ic_interface lockload_deco16ic_tilegen2_intf =
1985{
1986   0, 0, // lockload definitely wants pf34 half width..
1987   0xff, 0xff, /* trans masks (default values) */
1988   0x04, 0x04, /* color base */
1989   0x03, 0x03, /* color masks (default values) */
1990   dragngun_bank2_callback,
1991   NULL,
1992   0,2,
1993};
1994
19951969static MACHINE_CONFIG_START( dragngun, dragngun_state )
19961970
19971971   /* basic machine hardware */
r29419r29420
20181992
20191993   MCFG_BUFFERED_SPRITERAM32_ADD("spriteram")
20201994
2021   MCFG_DECO16IC_ADD("tilegen1", dragngun_deco16ic_tilegen1_intf)
1995   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
1996   MCFG_DECO16IC_SPLIT(0)
1997   MCFG_DECO16IC_WIDTH12(1)
1998   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1999   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
2000   MCFG_DECO16IC_PF1_COL_BANK(0x20)
2001   MCFG_DECO16IC_PF2_COL_BANK(0x30)
2002   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
2003   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
2004   MCFG_DECO16IC_BANK1_CB(dragngun_state, bank_1_callback)
2005   MCFG_DECO16IC_BANK2_CB(dragngun_state, bank_1_callback)
2006   MCFG_DECO16IC_PF12_8X8_BANK(0)
2007   MCFG_DECO16IC_PF12_16X16_BANK(1)
20222008   MCFG_DECO16IC_GFXDECODE("gfxdecode")
20232009   MCFG_DECO16IC_PALETTE("palette")
20242010
2025   MCFG_DECO16IC_ADD("tilegen2", dragngun_deco16ic_tilegen2_intf)
2011   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
2012   MCFG_DECO16IC_SPLIT(0)
2013   MCFG_DECO16IC_WIDTH12(1)
2014   MCFG_DECO16IC_PF1_TRANS_MASK(0xff)
2015   MCFG_DECO16IC_PF2_TRANS_MASK(0xff)
2016   MCFG_DECO16IC_PF1_COL_BANK(0x04)
2017   MCFG_DECO16IC_PF2_COL_BANK(0x04)
2018   MCFG_DECO16IC_PF1_COL_MASK(0x03)
2019   MCFG_DECO16IC_PF2_COL_MASK(0x03)
2020   MCFG_DECO16IC_BANK1_CB(dragngun_state, bank_2_callback)
2021   // no bank2 callback
2022   MCFG_DECO16IC_PF12_8X8_BANK(0)
2023   MCFG_DECO16IC_PF12_16X16_BANK(2)
20262024   MCFG_DECO16IC_GFXDECODE("gfxdecode")
20272025   MCFG_DECO16IC_PALETTE("palette")
20282026
r29419r29420
20352033   MCFG_DECO146_SET_SOUNDLATCH_CALLBACK(deco32_state, deco32_sound_cb)
20362034   MCFG_DECO146_SET_INTERFACE_SCRAMBLE_REVERSE
20372035
2038
2039
20402036   /* sound hardware */
20412037   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
20422038
r29419r29420
20592055   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
20602056MACHINE_CONFIG_END
20612057
2058
20622059TIMER_DEVICE_CALLBACK_MEMBER(deco32_state::lockload_vbl_irq)
20632060{
20642061   int scanline = param;
r29419r29420
21052102
21062103   MCFG_BUFFERED_SPRITERAM32_ADD("spriteram")
21072104
2108   MCFG_DECO16IC_ADD("tilegen1", lockload_deco16ic_tilegen1_intf)
2105   MCFG_GFXDECODE_ADD("gfxdecode", "palette", dragngun)
2106   MCFG_PALETTE_ADD("palette", 2048)
2107
2108   MCFG_VIDEO_START_OVERRIDE(dragngun_state, lockload)
2109
2110   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
2111   MCFG_DECO16IC_SPLIT(0)
2112   MCFG_DECO16IC_WIDTH12(1)
2113   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
2114   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
2115   MCFG_DECO16IC_PF1_COL_BANK(0x20)
2116   MCFG_DECO16IC_PF2_COL_BANK(0x30)
2117   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
2118   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
2119   MCFG_DECO16IC_BANK1_CB(dragngun_state, bank_1_callback)
2120   MCFG_DECO16IC_BANK2_CB(dragngun_state, bank_1_callback)
2121   MCFG_DECO16IC_PF12_8X8_BANK(0)
2122   MCFG_DECO16IC_PF12_16X16_BANK(1)
21092123   MCFG_DECO16IC_GFXDECODE("gfxdecode")
21102124   MCFG_DECO16IC_PALETTE("palette")
21112125
2112   MCFG_DECO16IC_ADD("tilegen2", lockload_deco16ic_tilegen2_intf)
2126   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
2127   MCFG_DECO16IC_SPLIT(0)
2128   MCFG_DECO16IC_WIDTH12(0)   // lockload definitely wants pf34 half width..
2129   MCFG_DECO16IC_PF1_TRANS_MASK(0xff)
2130   MCFG_DECO16IC_PF2_TRANS_MASK(0xff)
2131   MCFG_DECO16IC_PF1_COL_BANK(0x04)
2132   MCFG_DECO16IC_PF2_COL_BANK(0x04)
2133   MCFG_DECO16IC_PF1_COL_MASK(0x03)
2134   MCFG_DECO16IC_PF2_COL_MASK(0x03)
2135   MCFG_DECO16IC_BANK1_CB(dragngun_state, bank_2_callback)
2136   // no bank2 callback
2137   MCFG_DECO16IC_PF12_8X8_BANK(0)
2138   MCFG_DECO16IC_PF12_16X16_BANK(2)
21132139   MCFG_DECO16IC_GFXDECODE("gfxdecode")
21142140   MCFG_DECO16IC_PALETTE("palette")
21152141
2116   MCFG_GFXDECODE_ADD("gfxdecode", "palette", dragngun)
2117   MCFG_PALETTE_ADD("palette", 2048)
2118
2119   MCFG_VIDEO_START_OVERRIDE(dragngun_state,lockload)
2120
21212142   MCFG_DECO146_ADD("ioprot")
21222143   MCFG_DECO146_SET_SOUNDLATCH_CALLBACK(deco32_state, deco32_sound_cb)
21232144   MCFG_DECO146_SET_INTERFACE_SCRAMBLE_REVERSE
r29419r29420
21492170
21502171MACHINE_CONFIG_END
21512172
2152static int tattass_bank_callback( int bank )
2173
2174int deco32_state::tattass_bank_callback( int bank )
21532175{
21542176   bank = bank >> 4;
21552177   return bank * 0x1000;
21562178}
21572179
2158static const deco16ic_interface tattass_deco16ic_tilegen1_intf =
2159{
2160   0, 1,
2161   0x0f, 0x0f, /* trans masks (default values) */
2162   0x00, 0x10, /* color base */
2163   0x0f, 0x0f, /* color masks (default values) */
2164   tattass_bank_callback,
2165   tattass_bank_callback,
2166   0,1,
2167};
2168
2169static const deco16ic_interface tattass_deco16ic_tilegen2_intf =
2170{
2171   0, 1,
2172   0x0f, 0x0f, /* trans masks (default values) */
2173   0x20, 0x30, /* color base */
2174   0x0f, 0x0f, /* color masks (default values) */
2175   tattass_bank_callback,
2176   tattass_bank_callback,
2177   0,2,
2178};
2179
2180
2181
21822180static MACHINE_CONFIG_START( tattass, deco32_state )
21832181
21842182   /* basic machine hardware */
r29419r29420
21942192   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
21952193   MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_nslasher)
21962194
2197   MCFG_DECO16IC_ADD("tilegen1", tattass_deco16ic_tilegen1_intf)
2195   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
2196   MCFG_DECO16IC_SPLIT(0)
2197   MCFG_DECO16IC_WIDTH12(1)
2198   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
2199   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
2200   MCFG_DECO16IC_PF1_COL_BANK(0x00)
2201   MCFG_DECO16IC_PF2_COL_BANK(0x10)
2202   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
2203   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
2204   MCFG_DECO16IC_BANK1_CB(deco32_state, tattass_bank_callback)
2205   MCFG_DECO16IC_BANK2_CB(deco32_state, tattass_bank_callback)
2206   MCFG_DECO16IC_PF12_8X8_BANK(0)
2207   MCFG_DECO16IC_PF12_16X16_BANK(1)
21982208   MCFG_DECO16IC_GFXDECODE("gfxdecode")
21992209   MCFG_DECO16IC_PALETTE("palette")
22002210
2201   MCFG_DECO16IC_ADD("tilegen2", tattass_deco16ic_tilegen2_intf)
2211   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
2212   MCFG_DECO16IC_SPLIT(0)
2213   MCFG_DECO16IC_WIDTH12(1)
2214   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
2215   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
2216   MCFG_DECO16IC_PF1_COL_BANK(0x20)
2217   MCFG_DECO16IC_PF2_COL_BANK(0x30)
2218   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
2219   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
2220   MCFG_DECO16IC_BANK1_CB(deco32_state, tattass_bank_callback)
2221   MCFG_DECO16IC_BANK2_CB(deco32_state, tattass_bank_callback)
2222   MCFG_DECO16IC_PF12_8X8_BANK(0)
2223   MCFG_DECO16IC_PF12_16X16_BANK(2)
22022224   MCFG_DECO16IC_GFXDECODE("gfxdecode")
22032225   MCFG_DECO16IC_PALETTE("palette")
22042226
r29419r29420
22472269   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
22482270   MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_nslasher)
22492271
2250   MCFG_DECO16IC_ADD("tilegen1", tattass_deco16ic_tilegen1_intf)
2272   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
2273   MCFG_DECO16IC_SPLIT(0)
2274   MCFG_DECO16IC_WIDTH12(1)
2275   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
2276   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
2277   MCFG_DECO16IC_PF1_COL_BANK(0x00)
2278   MCFG_DECO16IC_PF2_COL_BANK(0x10)
2279   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
2280   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
2281   MCFG_DECO16IC_BANK1_CB(deco32_state, tattass_bank_callback)
2282   MCFG_DECO16IC_BANK2_CB(deco32_state, tattass_bank_callback)
2283   MCFG_DECO16IC_PF12_8X8_BANK(0)
2284   MCFG_DECO16IC_PF12_16X16_BANK(1)
22512285   MCFG_DECO16IC_GFXDECODE("gfxdecode")
22522286   MCFG_DECO16IC_PALETTE("palette")
22532287
2254   MCFG_DECO16IC_ADD("tilegen2", tattass_deco16ic_tilegen2_intf)
2288   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
2289   MCFG_DECO16IC_SPLIT(0)
2290   MCFG_DECO16IC_WIDTH12(1)
2291   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
2292   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
2293   MCFG_DECO16IC_PF1_COL_BANK(0x20)
2294   MCFG_DECO16IC_PF2_COL_BANK(0x30)
2295   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
2296   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
2297   MCFG_DECO16IC_BANK1_CB(deco32_state, tattass_bank_callback)
2298   MCFG_DECO16IC_BANK2_CB(deco32_state, tattass_bank_callback)
2299   MCFG_DECO16IC_PF12_8X8_BANK(0)
2300   MCFG_DECO16IC_PF12_16X16_BANK(2)
22552301   MCFG_DECO16IC_GFXDECODE("gfxdecode")
22562302   MCFG_DECO16IC_PALETTE("palette")
22572303
trunk/src/mame/drivers/simpl156.c
r29419r29420
387387}
388388
389389
390static int simpl156_bank_callback(const int bank)
390int simpl156_state::bank_callback(int bank)
391391{
392392   return ((bank >> 4) & 0x7) * 0x1000;
393393}
394394
395static const deco16ic_interface simpl156_deco16ic_tilegen1_intf =
396{
397   0, 1,
398   0x0f, 0x0f, /* trans masks (default values) */
399   0, 16,/* color base (default values) */
400   0x0f, 0x0f, /* color masks (default values) */
401   simpl156_bank_callback,
402   simpl156_bank_callback,
403   0,1,
404};
405
406395UINT16 simpl156_pri_callback(UINT16 x)
407396{
408397   switch (x & 0xc000)
r29419r29420
438427   MCFG_PALETTE_ADD("palette", 4096)
439428   MCFG_GFXDECODE_ADD("gfxdecode", "palette", simpl156)
440429
441   MCFG_DECO16IC_ADD("tilegen1", simpl156_deco16ic_tilegen1_intf)
430   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
431   MCFG_DECO16IC_SPLIT(0)
432   MCFG_DECO16IC_WIDTH12(1)
433   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
434   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
435   MCFG_DECO16IC_PF1_COL_BANK(0x00)
436   MCFG_DECO16IC_PF2_COL_BANK(0x10)
437   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
438   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
439   MCFG_DECO16IC_BANK1_CB(simpl156_state, bank_callback)
440   MCFG_DECO16IC_BANK2_CB(simpl156_state, bank_callback)
441   MCFG_DECO16IC_PF12_8X8_BANK(0)
442   MCFG_DECO16IC_PF12_16X16_BANK(1)
442443   MCFG_DECO16IC_GFXDECODE("gfxdecode")
443444   MCFG_DECO16IC_PALETTE("palette")
444445
trunk/src/mame/drivers/tumblep.c
r29419r29420
271271
272272/***************************************************************************/
273273
274static const deco16ic_interface tumblep_deco16ic_tilegen1_intf =
275{
276   0, 1,
277   0x0f, 0x0f, /* trans masks (default values) */
278   0, 16, /* color base (default values) */
279   0x0f, 0x0f, /* color masks (default values) */
280   NULL, NULL,
281   0,1
282};
283
284274void tumblep_state::machine_start()
285275{
286276}
r29419r29420
309299   MCFG_PALETTE_ADD("palette", 1024)
310300   MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
311301
312   MCFG_DECO16IC_ADD("tilegen1", tumblep_deco16ic_tilegen1_intf)
302   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
303   MCFG_DECO16IC_SPLIT(0)
304   MCFG_DECO16IC_WIDTH12(1)
305   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
306   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
307   MCFG_DECO16IC_PF1_COL_BANK(0x00)
308   MCFG_DECO16IC_PF2_COL_BANK(0x10)
309   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
310   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
311   MCFG_DECO16IC_PF12_8X8_BANK(0)
312   MCFG_DECO16IC_PF12_16X16_BANK(1)
313313   MCFG_DECO16IC_GFXDECODE("gfxdecode")
314314   MCFG_DECO16IC_PALETTE("palette")
315315
trunk/src/mame/drivers/funkyjet.c
r29419r29420
300300
301301/******************************************************************************/
302302
303static const deco16ic_interface funkyjet_deco16ic_tilegen1_intf =
304{
305   0, 1,
306   0x0f, 0x0f, /* trans masks (default values) */
307   0, 16, /* color base (default values) */
308   0x0f, 0x0f, /* color masks (default values) */
309   NULL, NULL,
310   0,1,
311};
312
313303void funkyjet_state::machine_start()
314304{
315305}
r29419r29420
342332   MCFG_PALETTE_ADD("palette", 1024)
343333   MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
344334
345   MCFG_DECO16IC_ADD("tilegen1", funkyjet_deco16ic_tilegen1_intf)
335   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
336   MCFG_DECO16IC_SPLIT(0)
337   MCFG_DECO16IC_WIDTH12(1)
338   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
339   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
340   MCFG_DECO16IC_PF1_COL_BANK(0x00)
341   MCFG_DECO16IC_PF2_COL_BANK(0x10)
342   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
343   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
344   MCFG_DECO16IC_PF12_8X8_BANK(0)
345   MCFG_DECO16IC_PF12_16X16_BANK(1)
346346   MCFG_DECO16IC_GFXDECODE("gfxdecode")
347347   MCFG_DECO16IC_PALETTE("palette")
348348
trunk/src/mame/drivers/dreambal.c
r29419r29420
5050   virtual void machine_start();
5151   virtual void machine_reset();
5252   UINT32 screen_update_dreambal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
53   int bank_callback(int bank);
5354
5455   DECLARE_READ16_MEMBER( dreambal_protection_region_0_104_r );
5556   DECLARE_WRITE16_MEMBER( dreambal_protection_region_0_104_w );
r29419r29420
285286   PORT_DIPSETTING(      0x0000, DEF_STR( On ) )
286287INPUT_PORTS_END
287288
288static int dreambal_bank_callback( const int bank )
289int dreambal_state::bank_callback( int bank )
289290{
290291   return ((bank >> 4) & 0x7) * 0x1000;
291292}
292293
293static const deco16ic_interface dreambal_deco16ic_tilegen1_intf =
294{
295   0, 1,
296   0x0f, 0x0f,     /* trans masks (default values) */
297   0, 16, /* color base (default values) */
298   0x0f, 0x0f, /* color masks (default values) */
299   dreambal_bank_callback,
300   dreambal_bank_callback,
301   0,1,
302};
303
304294void dreambal_state::machine_start()
305295{
306296}
r29419r29420
334324
335325   MCFG_DECO104_ADD("ioprot104")
336326
337   MCFG_DECO16IC_ADD("tilegen1", dreambal_deco16ic_tilegen1_intf)
327   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
328   MCFG_DECO16IC_SPLIT(0)
329   MCFG_DECO16IC_WIDTH12(1)
330   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
331   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
332   MCFG_DECO16IC_PF1_COL_BANK(0x00)
333   MCFG_DECO16IC_PF2_COL_BANK(0x10)
334   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
335   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
336   MCFG_DECO16IC_BANK1_CB(dreambal_state, bank_callback)
337   MCFG_DECO16IC_BANK2_CB(dreambal_state, bank_callback)
338   MCFG_DECO16IC_PF12_8X8_BANK(0)
339   MCFG_DECO16IC_PF12_16X16_BANK(1)
338340   MCFG_DECO16IC_GFXDECODE("gfxdecode")
339341   MCFG_DECO16IC_PALETTE("palette")
340342
trunk/src/mame/drivers/cninja.c
r29419r29420
785785
786786/**********************************************************************************/
787787
788static int cninja_bank_callback( const int bank )
788int cninja_state::cninja_bank_callback( int bank )
789789{
790790   if ((bank >> 4) & 0xf)
791791      return 0x0000; /* Only 2 banks */
792792   return 0x1000;
793793}
794794
795static int robocop2_bank_callback( const int bank )
795int cninja_state::robocop2_bank_callback( int bank )
796796{
797797   return (bank & 0x30) << 8;
798798}
799799
800static int mutantf_1_bank_callback( const int bank )
800int cninja_state::mutantf_1_bank_callback( int bank )
801801{
802802   return ((bank >> 4) & 0x3) << 12;
803803}
804804
805static int mutantf_2_bank_callback( const int bank )
805int cninja_state::mutantf_2_bank_callback( int bank )
806806{
807807   return ((bank >> 5) & 0x1) << 14;
808808}
809809
810static const deco16ic_interface cninja_deco16ic_tilegen1_intf =
811{
812   1, 1,
813   0x0f, 0x0f, /* trans masks (default values) */
814   0, 16, /* color base */
815   0x0f, 0x0f, /* color masks (default values) */
816   NULL,
817   NULL,
818   0, 1,
819};
820810
821static const deco16ic_interface cninja_deco16ic_tilegen2_intf =
822{
823   0, 1,
824   0x0f, 0x0f, /* trans masks (default values) */
825   0, 48, /* color base */
826   0x0f, 0x0f, /* color masks (default values) */
827   cninja_bank_callback,
828   cninja_bank_callback,
829   0, 2,
830};
831
832
833
834static const deco16ic_interface edrandy_deco16ic_tilegen1_intf =
835{
836   0, 1,
837   0x0f, 0x0f, /* trans masks (default values) */
838   0, 16, /* color base  */
839   0x0f, 0x0f, /* color masks (default values) */
840   NULL,
841   NULL,
842   0,1,
843};
844
845static const deco16ic_interface edrandy_deco16ic_tilegen2_intf =
846{
847   0, 1,
848   0x0f, 0x0f, /* trans masks (default values) */
849   0, 48, /* color base  */
850   0x0f, 0x0f, /* color masks (default values) */
851   cninja_bank_callback,
852   cninja_bank_callback,
853   0,2,
854};
855
856
857static const deco16ic_interface robocop2_deco16ic_tilegen1_intf =
858{
859   0, 1,
860   0x0f, 0x0f, /* trans masks (default values) */
861   0, 16, /* color base */
862   0x0f, 0x0f, /* color masks (default values) */
863   NULL,
864   robocop2_bank_callback,
865   0,1,
866};
867
868static const deco16ic_interface robocop2_deco16ic_tilegen2_intf =
869{
870   0, 1,
871   0x0f, 0x0f, /* trans masks (default values) */
872   0, 48, /* color base */
873   0x0f, 0x0f, /* color masks (default values) */
874   robocop2_bank_callback,
875   robocop2_bank_callback,
876   0,2,
877};
878
879
880static const deco16ic_interface mutantf_deco16ic_tilegen1_intf =
881{
882   0, 1,
883   0x0f, 0x0f, /* trans masks (default values) */
884   0, 0x30, /* color base */
885   0x0f, 0x0f, /* color masks (default values) */
886   mutantf_1_bank_callback,
887   mutantf_2_bank_callback,
888   0,1,
889};
890
891static const deco16ic_interface mutantf_deco16ic_tilegen2_intf =
892{
893   0, 1,
894   0x0f, 0x0f, /* trans masks (default values) */
895   0x20, 0x40, /* color base */
896   0x0f, 0x0f, /* color masks (default values) */
897   mutantf_1_bank_callback,
898   mutantf_1_bank_callback,
899   0,2,
900};
901
902
903811void cninja_state::machine_start()
904812{
905813   save_item(NAME(m_scanline));
r29419r29420
957865   MCFG_DECOCOMN_ADD("deco_common")
958866   MCFG_DECOCOMN_PALETTE("palette")
959867
960   MCFG_DECO16IC_ADD("tilegen1", cninja_deco16ic_tilegen1_intf)
868   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
869   MCFG_DECO16IC_SPLIT(1)
870   MCFG_DECO16IC_WIDTH12(1)
871   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
872   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
873   MCFG_DECO16IC_PF1_COL_BANK(0x00)
874   MCFG_DECO16IC_PF2_COL_BANK(0x10)
875   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
876   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
877   MCFG_DECO16IC_PF12_8X8_BANK(0)
878   MCFG_DECO16IC_PF12_16X16_BANK(1)
961879   MCFG_DECO16IC_GFXDECODE("gfxdecode")
962880   MCFG_DECO16IC_PALETTE("palette")
963881
964   MCFG_DECO16IC_ADD("tilegen2", cninja_deco16ic_tilegen2_intf)
882   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
883   MCFG_DECO16IC_SPLIT(0)
884   MCFG_DECO16IC_WIDTH12(1)
885   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
886   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
887   MCFG_DECO16IC_PF1_COL_BANK(0x00)
888   MCFG_DECO16IC_PF2_COL_BANK(0x30)
889   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
890   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
891   MCFG_DECO16IC_BANK1_CB(cninja_state, cninja_bank_callback)
892   MCFG_DECO16IC_BANK2_CB(cninja_state, cninja_bank_callback)
893   MCFG_DECO16IC_PF12_8X8_BANK(0)
894   MCFG_DECO16IC_PF12_16X16_BANK(2)
965895   MCFG_DECO16IC_GFXDECODE("gfxdecode")
966896   MCFG_DECO16IC_PALETTE("palette")
967897
r29419r29420
1025955   MCFG_DECOCOMN_ADD("deco_common")
1026956   MCFG_DECOCOMN_PALETTE("palette")
1027957
1028   MCFG_DECO16IC_ADD("tilegen1", cninja_deco16ic_tilegen1_intf)
958   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
959   MCFG_DECO16IC_SPLIT(1)
960   MCFG_DECO16IC_WIDTH12(1)
961   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
962   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
963   MCFG_DECO16IC_PF1_COL_BANK(0x00)
964   MCFG_DECO16IC_PF2_COL_BANK(0x10)
965   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
966   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
967   MCFG_DECO16IC_PF12_8X8_BANK(0)
968   MCFG_DECO16IC_PF12_16X16_BANK(1)
1029969   MCFG_DECO16IC_GFXDECODE("gfxdecode")
1030970   MCFG_DECO16IC_PALETTE("palette")
1031971
1032   MCFG_DECO16IC_ADD("tilegen2", cninja_deco16ic_tilegen2_intf)
972   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
973   MCFG_DECO16IC_SPLIT(0)
974   MCFG_DECO16IC_WIDTH12(1)
975   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
976   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
977   MCFG_DECO16IC_PF1_COL_BANK(0x00)
978   MCFG_DECO16IC_PF2_COL_BANK(0x30)
979   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
980   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
981   MCFG_DECO16IC_BANK1_CB(cninja_state, cninja_bank_callback)
982   MCFG_DECO16IC_BANK2_CB(cninja_state, cninja_bank_callback)
983   MCFG_DECO16IC_PF12_8X8_BANK(0)
984   MCFG_DECO16IC_PF12_16X16_BANK(2)
1033985   MCFG_DECO16IC_GFXDECODE("gfxdecode")
1034986   MCFG_DECO16IC_PALETTE("palette")
1035987
r29419r29420
10881040   MCFG_DECOCOMN_ADD("deco_common")
10891041   MCFG_DECOCOMN_PALETTE("palette")
10901042
1091   MCFG_DECO16IC_ADD("tilegen1", cninja_deco16ic_tilegen1_intf)
1043   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
1044   MCFG_DECO16IC_SPLIT(1)
1045   MCFG_DECO16IC_WIDTH12(1)
1046   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1047   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1048   MCFG_DECO16IC_PF1_COL_BANK(0x00)
1049   MCFG_DECO16IC_PF2_COL_BANK(0x10)
1050   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1051   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1052   MCFG_DECO16IC_PF12_8X8_BANK(0)
1053   MCFG_DECO16IC_PF12_16X16_BANK(1)
10921054   MCFG_DECO16IC_GFXDECODE("gfxdecode")
10931055   MCFG_DECO16IC_PALETTE("palette")
10941056
1095   MCFG_DECO16IC_ADD("tilegen2", cninja_deco16ic_tilegen2_intf)
1057   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
1058   MCFG_DECO16IC_SPLIT(0)
1059   MCFG_DECO16IC_WIDTH12(1)
1060   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1061   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1062   MCFG_DECO16IC_PF1_COL_BANK(0x00)
1063   MCFG_DECO16IC_PF2_COL_BANK(0x30)
1064   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1065   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1066   MCFG_DECO16IC_BANK1_CB(cninja_state, cninja_bank_callback)
1067   MCFG_DECO16IC_BANK2_CB(cninja_state, cninja_bank_callback)
1068   MCFG_DECO16IC_PF12_8X8_BANK(0)
1069   MCFG_DECO16IC_PF12_16X16_BANK(2)
10961070   MCFG_DECO16IC_GFXDECODE("gfxdecode")
10971071   MCFG_DECO16IC_PALETTE("palette")
10981072
r29419r29420
11381112   MCFG_DECOCOMN_ADD("deco_common")
11391113   MCFG_DECOCOMN_PALETTE("palette")
11401114
1141   MCFG_DECO16IC_ADD("tilegen1", edrandy_deco16ic_tilegen1_intf)
1115   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
1116   MCFG_DECO16IC_SPLIT(0)
1117   MCFG_DECO16IC_WIDTH12(1)
1118   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1119   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1120   MCFG_DECO16IC_PF1_COL_BANK(0x00)
1121   MCFG_DECO16IC_PF2_COL_BANK(0x10)
1122   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1123   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1124   MCFG_DECO16IC_PF12_8X8_BANK(0)
1125   MCFG_DECO16IC_PF12_16X16_BANK(1)
11421126   MCFG_DECO16IC_GFXDECODE("gfxdecode")
11431127   MCFG_DECO16IC_PALETTE("palette")
11441128
1145   MCFG_DECO16IC_ADD("tilegen2", edrandy_deco16ic_tilegen2_intf)
1129   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
1130   MCFG_DECO16IC_SPLIT(0)
1131   MCFG_DECO16IC_WIDTH12(1)
1132   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1133   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1134   MCFG_DECO16IC_PF1_COL_BANK(0x00)
1135   MCFG_DECO16IC_PF2_COL_BANK(0x30)
1136   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1137   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1138   MCFG_DECO16IC_BANK1_CB(cninja_state, cninja_bank_callback)
1139   MCFG_DECO16IC_BANK2_CB(cninja_state, cninja_bank_callback)
1140   MCFG_DECO16IC_PF12_8X8_BANK(0)
1141   MCFG_DECO16IC_PF12_16X16_BANK(2)
11461142   MCFG_DECO16IC_GFXDECODE("gfxdecode")
11471143   MCFG_DECO16IC_PALETTE("palette")
11481144
r29419r29420
12031199   MCFG_DECOCOMN_ADD("deco_common")
12041200   MCFG_DECOCOMN_PALETTE("palette")
12051201
1206   MCFG_DECO16IC_ADD("tilegen1", robocop2_deco16ic_tilegen1_intf)
1202   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
1203   MCFG_DECO16IC_SPLIT(0)
1204   MCFG_DECO16IC_WIDTH12(1)
1205   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1206   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1207   MCFG_DECO16IC_PF1_COL_BANK(0x00)
1208   MCFG_DECO16IC_PF2_COL_BANK(0x10)
1209   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1210   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1211   MCFG_DECO16IC_BANK2_CB(cninja_state, robocop2_bank_callback)
1212   MCFG_DECO16IC_PF12_8X8_BANK(0)
1213   MCFG_DECO16IC_PF12_16X16_BANK(1)
12071214   MCFG_DECO16IC_GFXDECODE("gfxdecode")
12081215   MCFG_DECO16IC_PALETTE("palette")
12091216
1210   MCFG_DECO16IC_ADD("tilegen2", robocop2_deco16ic_tilegen2_intf)
1217   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
1218   MCFG_DECO16IC_SPLIT(0)
1219   MCFG_DECO16IC_WIDTH12(1)
1220   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1221   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1222   MCFG_DECO16IC_PF1_COL_BANK(0x00)
1223   MCFG_DECO16IC_PF2_COL_BANK(0x30)
1224   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1225   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1226   MCFG_DECO16IC_BANK1_CB(cninja_state, robocop2_bank_callback)
1227   MCFG_DECO16IC_BANK2_CB(cninja_state, robocop2_bank_callback)
1228   MCFG_DECO16IC_PF12_8X8_BANK(0)
1229   MCFG_DECO16IC_PF12_16X16_BANK(2)
12111230   MCFG_DECO16IC_GFXDECODE("gfxdecode")
12121231   MCFG_DECO16IC_PALETTE("palette")
12131232
r29419r29420
12731292   MCFG_DECOCOMN_ADD("deco_common")
12741293   MCFG_DECOCOMN_PALETTE("palette")
12751294
1276   MCFG_DECO16IC_ADD("tilegen1", mutantf_deco16ic_tilegen1_intf)
1295   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
1296   MCFG_DECO16IC_SPLIT(0)
1297   MCFG_DECO16IC_WIDTH12(1)
1298   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1299   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1300   MCFG_DECO16IC_PF1_COL_BANK(0x00)
1301   MCFG_DECO16IC_PF2_COL_BANK(0x30)
1302   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1303   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1304   MCFG_DECO16IC_BANK1_CB(cninja_state, mutantf_1_bank_callback)
1305   MCFG_DECO16IC_BANK2_CB(cninja_state, mutantf_2_bank_callback)
1306   MCFG_DECO16IC_PF12_8X8_BANK(0)
1307   MCFG_DECO16IC_PF12_16X16_BANK(1)
12771308   MCFG_DECO16IC_GFXDECODE("gfxdecode")
12781309   MCFG_DECO16IC_PALETTE("palette")
12791310
1280   MCFG_DECO16IC_ADD("tilegen2", mutantf_deco16ic_tilegen2_intf)
1311   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
1312   MCFG_DECO16IC_SPLIT(0)
1313   MCFG_DECO16IC_WIDTH12(1)
1314   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1315   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1316   MCFG_DECO16IC_PF1_COL_BANK(0x20)
1317   MCFG_DECO16IC_PF2_COL_BANK(0x40)
1318   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1319   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1320   MCFG_DECO16IC_BANK1_CB(cninja_state, mutantf_1_bank_callback)
1321   MCFG_DECO16IC_BANK2_CB(cninja_state, mutantf_1_bank_callback)
1322   MCFG_DECO16IC_PF12_8X8_BANK(0)
1323   MCFG_DECO16IC_PF12_16X16_BANK(2)
12811324   MCFG_DECO16IC_GFXDECODE("gfxdecode")
12821325   MCFG_DECO16IC_PALETTE("palette")
12831326
trunk/src/mame/drivers/rohga.c
r29419r29420
759759
760760/**********************************************************************************/
761761
762static int rohga_bank_callback( const int bank )
762int rohga_state::bank_callback( int bank )
763763{
764764   return ((bank >> 4) & 0x3) << 12;
765765}
766766
767static const deco16ic_interface rohga_deco16ic_tilegen1_intf =
768{
769   0, 1,
770   0x0f, 0x0f, /* trans masks (default values) */
771   0, 16,/* color base (default values) */
772   0x0f, 0x0f, /* color masks (default values) */
773   rohga_bank_callback,
774   rohga_bank_callback,
775   0, 1,
776};
777
778static const deco16ic_interface rohga_deco16ic_tilegen2_intf =
779{
780   0, 1,
781   0x0f, 0x0f, /* trans masks (default values) */
782   0, 16, /* color base (default values) */
783   0x0f, 0x0f, /* color masks (default values) */
784   rohga_bank_callback,
785   rohga_bank_callback,
786   0, 2,
787};
788
789static const deco16ic_interface nitrobal_deco16ic_tilegen1_intf =
790{
791   0, 0,
792   0x0f, 0x0f, /* trans masks (default values) */
793   0, 16, /* color base (pf4 is not default) */
794   0x0f, 0x0f, /* color masks */
795   rohga_bank_callback,
796   rohga_bank_callback,
797   0, 1,
798};
799
800static const deco16ic_interface nitrobal_deco16ic_tilegen2_intf =
801{
802   0, 0,
803   0x0f, 0x0f, /* trans masks (default values) */
804   0, 0, /* color base (pf4 is not default) */
805   0, 0,   /* color masks */
806   rohga_bank_callback,
807   rohga_bank_callback,
808   0, 2,
809};
810
811767static MACHINE_CONFIG_START( rohga, rohga_state )
812768
813769   /* basic machine hardware */
r29419r29420
837793   MCFG_DECOCOMN_ADD("deco_common")
838794   MCFG_DECOCOMN_PALETTE("palette")
839795
840   MCFG_DECO16IC_ADD("tilegen1", rohga_deco16ic_tilegen1_intf)
796   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
797   MCFG_DECO16IC_SPLIT(0)
798   MCFG_DECO16IC_WIDTH12(1)
799   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
800   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
801   MCFG_DECO16IC_PF1_COL_BANK(0x00)
802   MCFG_DECO16IC_PF2_COL_BANK(0x10)
803   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
804   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
805   MCFG_DECO16IC_BANK1_CB(rohga_state, bank_callback)
806   MCFG_DECO16IC_BANK2_CB(rohga_state, bank_callback)
807   MCFG_DECO16IC_PF12_8X8_BANK(0)
808   MCFG_DECO16IC_PF12_16X16_BANK(1)
841809   MCFG_DECO16IC_GFXDECODE("gfxdecode")
842810   MCFG_DECO16IC_PALETTE("palette")
843811
844   MCFG_DECO16IC_ADD("tilegen2", rohga_deco16ic_tilegen2_intf)
812   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
813   MCFG_DECO16IC_SPLIT(0)
814   MCFG_DECO16IC_WIDTH12(1)
815   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
816   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
817   MCFG_DECO16IC_PF1_COL_BANK(0x00)
818   MCFG_DECO16IC_PF2_COL_BANK(0x10)
819   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
820   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
821   MCFG_DECO16IC_BANK1_CB(rohga_state, bank_callback)
822   MCFG_DECO16IC_BANK2_CB(rohga_state, bank_callback)
823   MCFG_DECO16IC_PF12_8X8_BANK(0)
824   MCFG_DECO16IC_PF12_16X16_BANK(2)
845825   MCFG_DECO16IC_GFXDECODE("gfxdecode")
846826   MCFG_DECO16IC_PALETTE("palette")
847827
r29419r29420
897877   MCFG_DECOCOMN_ADD("deco_common")
898878   MCFG_DECOCOMN_PALETTE("palette")
899879
900   MCFG_DECO16IC_ADD("tilegen1", rohga_deco16ic_tilegen1_intf)
880   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
881   MCFG_DECO16IC_SPLIT(0)
882   MCFG_DECO16IC_WIDTH12(1)
883   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
884   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
885   MCFG_DECO16IC_PF1_COL_BANK(0x00)
886   MCFG_DECO16IC_PF2_COL_BANK(0x10)
887   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
888   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
889   MCFG_DECO16IC_BANK1_CB(rohga_state, bank_callback)
890   MCFG_DECO16IC_BANK2_CB(rohga_state, bank_callback)
891   MCFG_DECO16IC_PF12_8X8_BANK(0)
892   MCFG_DECO16IC_PF12_16X16_BANK(1)
901893   MCFG_DECO16IC_GFXDECODE("gfxdecode")
902894   MCFG_DECO16IC_PALETTE("palette")
903895
904   MCFG_DECO16IC_ADD("tilegen2", rohga_deco16ic_tilegen2_intf)
896   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
897   MCFG_DECO16IC_SPLIT(0)
898   MCFG_DECO16IC_WIDTH12(1)
899   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
900   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
901   MCFG_DECO16IC_PF1_COL_BANK(0x00)
902   MCFG_DECO16IC_PF2_COL_BANK(0x10)
903   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
904   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
905   MCFG_DECO16IC_BANK1_CB(rohga_state, bank_callback)
906   MCFG_DECO16IC_BANK2_CB(rohga_state, bank_callback)
907   MCFG_DECO16IC_PF12_8X8_BANK(0)
908   MCFG_DECO16IC_PF12_16X16_BANK(2)
905909   MCFG_DECO16IC_GFXDECODE("gfxdecode")
906910   MCFG_DECO16IC_PALETTE("palette")
907911
r29419r29420
965969   MCFG_DECOCOMN_ADD("deco_common")
966970   MCFG_DECOCOMN_PALETTE("palette")
967971
968   MCFG_DECO16IC_ADD("tilegen1", nitrobal_deco16ic_tilegen1_intf)
972   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
973   MCFG_DECO16IC_SPLIT(0)
974   MCFG_DECO16IC_WIDTH12(0)
975   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
976   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
977   MCFG_DECO16IC_PF1_COL_BANK(0x00)
978   MCFG_DECO16IC_PF2_COL_BANK(0x10)
979   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
980   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
981   MCFG_DECO16IC_BANK1_CB(rohga_state, bank_callback)
982   MCFG_DECO16IC_BANK2_CB(rohga_state, bank_callback)
983   MCFG_DECO16IC_PF12_8X8_BANK(0)
984   MCFG_DECO16IC_PF12_16X16_BANK(1)
969985   MCFG_DECO16IC_GFXDECODE("gfxdecode")
970986   MCFG_DECO16IC_PALETTE("palette")
971987
972   MCFG_DECO16IC_ADD("tilegen2", nitrobal_deco16ic_tilegen2_intf)
988   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
989   MCFG_DECO16IC_SPLIT(0)
990   MCFG_DECO16IC_WIDTH12(0)
991   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
992   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
993   MCFG_DECO16IC_PF1_COL_BANK(0)
994   MCFG_DECO16IC_PF2_COL_BANK(0)
995   MCFG_DECO16IC_PF1_COL_MASK(0)
996   MCFG_DECO16IC_PF2_COL_MASK(0)
997   MCFG_DECO16IC_BANK1_CB(rohga_state, bank_callback)
998   MCFG_DECO16IC_BANK2_CB(rohga_state, bank_callback)
999   MCFG_DECO16IC_PF12_8X8_BANK(0)
1000   MCFG_DECO16IC_PF12_16X16_BANK(2)
9731001   MCFG_DECO16IC_GFXDECODE("gfxdecode")
9741002   MCFG_DECO16IC_PALETTE("palette")
9751003
r29419r29420
10371065   MCFG_DECOCOMN_ADD("deco_common")
10381066   MCFG_DECOCOMN_PALETTE("palette")
10391067
1040   MCFG_DECO16IC_ADD("tilegen1", rohga_deco16ic_tilegen1_intf)
1068   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
1069   MCFG_DECO16IC_SPLIT(0)
1070   MCFG_DECO16IC_WIDTH12(1)
1071   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1072   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1073   MCFG_DECO16IC_PF1_COL_BANK(0x00)
1074   MCFG_DECO16IC_PF2_COL_BANK(0x10)
1075   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1076   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1077   MCFG_DECO16IC_BANK1_CB(rohga_state, bank_callback)
1078   MCFG_DECO16IC_BANK2_CB(rohga_state, bank_callback)
1079   MCFG_DECO16IC_PF12_8X8_BANK(0)
1080   MCFG_DECO16IC_PF12_16X16_BANK(1)
10411081   MCFG_DECO16IC_GFXDECODE("gfxdecode")
10421082   MCFG_DECO16IC_PALETTE("palette")
10431083
1044   MCFG_DECO16IC_ADD("tilegen2", rohga_deco16ic_tilegen2_intf)
1084   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
1085   MCFG_DECO16IC_SPLIT(0)
1086   MCFG_DECO16IC_WIDTH12(1)
1087   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
1088   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
1089   MCFG_DECO16IC_PF1_COL_BANK(0x00)
1090   MCFG_DECO16IC_PF2_COL_BANK(0x10)
1091   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
1092   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
1093   MCFG_DECO16IC_BANK1_CB(rohga_state, bank_callback)
1094   MCFG_DECO16IC_BANK2_CB(rohga_state, bank_callback)
1095   MCFG_DECO16IC_PF12_8X8_BANK(0)
1096   MCFG_DECO16IC_PF12_16X16_BANK(2)
10451097   MCFG_DECO16IC_GFXDECODE("gfxdecode")
10461098   MCFG_DECO16IC_PALETTE("palette")
10471099
trunk/src/mame/drivers/pktgaldx.c
r29419r29420
303303GFXDECODE_END
304304
305305
306static int pktgaldx_bank_callback( const int bank )
306int pktgaldx_state::bank_callback( int bank )
307307{
308308   return ((bank >> 4) & 0x7) * 0x1000;
309309}
310310
311static const deco16ic_interface pktgaldx_deco16ic_tilegen1_intf =
312{
313   0, 1,
314   0x0f, 0x0f, /* trans masks (default values) */
315   0, 16, /* color base (default values) */
316   0x0f, 0x0f, /* color masks (default values) */
317   NULL,
318   pktgaldx_bank_callback,
319   0,1,
320};
321311
322
323
324312void pktgaldx_state::machine_start()
325313{
326314}
r29419r29420
350338   MCFG_DECOCOMN_ADD("deco_common")
351339   MCFG_DECOCOMN_PALETTE("palette")
352340
353   MCFG_DECO16IC_ADD("tilegen1", pktgaldx_deco16ic_tilegen1_intf)
341   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
342   MCFG_DECO16IC_SPLIT(0)
343   MCFG_DECO16IC_WIDTH12(1)
344   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
345   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
346   MCFG_DECO16IC_PF1_COL_BANK(0x00)
347   MCFG_DECO16IC_PF2_COL_BANK(0x10)
348   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
349   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
350   MCFG_DECO16IC_BANK1_CB(pktgaldx_state, bank_callback)
351   MCFG_DECO16IC_BANK2_CB(pktgaldx_state, bank_callback)
352   MCFG_DECO16IC_PF12_8X8_BANK(0)
353   MCFG_DECO16IC_PF12_16X16_BANK(1)
354354   MCFG_DECO16IC_GFXDECODE("gfxdecode")
355355   MCFG_DECO16IC_PALETTE("palette")
356356
trunk/src/mame/drivers/deco156.c
r29419r29420
6565   INTERRUPT_GEN_MEMBER(deco32_vbl_interrupt);
6666   void descramble_sound( const char *tag );
6767   DECLARE_WRITE_LINE_MEMBER(sound_irq_gen);
68   int bank_callback(int bank);
6869};
6970
7071
r29419r29420
321322   device.execute().set_input_line(ARM_IRQ_LINE, HOLD_LINE);
322323}
323324
324static int deco156_bank_callback(const int bank)
325int deco156_state::bank_callback(int bank)
325326{
326327   return ((bank >> 4) & 0x7) * 0x1000;
327328}
328329
329static const deco16ic_interface deco156_deco16ic_tilegen1_intf =
330{
331   0, 1,
332   0x0f, 0x0f, /* trans masks (default values) */
333   0, 16, /* color base (default values) */
334   0x0f, 0x0f, /* color masks (default values) */
335   deco156_bank_callback,
336   deco156_bank_callback,
337   0,1,
338};
339
340330UINT16 deco156_pri_callback(UINT16 x)
341331{
342332   switch (x & 0xc000)
r29419r29420
370360   MCFG_GFXDECODE_ADD("gfxdecode", "palette", hvysmsh)
371361   MCFG_PALETTE_ADD("palette", 1024)
372362
373
374   MCFG_DECO16IC_ADD("tilegen1", deco156_deco16ic_tilegen1_intf)
363   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
364   MCFG_DECO16IC_SPLIT(0)
365   MCFG_DECO16IC_WIDTH12(1)
366   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
367   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
368   MCFG_DECO16IC_PF1_COL_BANK(0x00)
369   MCFG_DECO16IC_PF2_COL_BANK(0x10)
370   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
371   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
372   MCFG_DECO16IC_BANK1_CB(deco156_state, bank_callback)
373   MCFG_DECO16IC_BANK2_CB(deco156_state, bank_callback)
374   MCFG_DECO16IC_PF12_8X8_BANK(0)
375   MCFG_DECO16IC_PF12_16X16_BANK(1)
375376   MCFG_DECO16IC_GFXDECODE("gfxdecode")
376377   MCFG_DECO16IC_PALETTE("palette")
377378
r29419r29420
412413   MCFG_GFXDECODE_ADD("gfxdecode", "palette", hvysmsh)
413414   MCFG_PALETTE_ADD("palette", 1024)
414415
415
416   MCFG_DECO16IC_ADD("tilegen1", deco156_deco16ic_tilegen1_intf)
416   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
417   MCFG_DECO16IC_SPLIT(0)
418   MCFG_DECO16IC_WIDTH12(1)
419   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
420   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
421   MCFG_DECO16IC_PF1_COL_BANK(0x00)
422   MCFG_DECO16IC_PF2_COL_BANK(0x10)
423   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
424   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
425   MCFG_DECO16IC_BANK1_CB(deco156_state, bank_callback)
426   MCFG_DECO16IC_BANK2_CB(deco156_state, bank_callback)
427   MCFG_DECO16IC_PF12_8X8_BANK(0)
428   MCFG_DECO16IC_PF12_16X16_BANK(1)
417429   MCFG_DECO16IC_GFXDECODE("gfxdecode")
418430   MCFG_DECO16IC_PALETTE("palette")
419431
trunk/src/mame/drivers/dblewing.c
r29419r29420
113113   virtual void machine_reset();
114114   UINT32 screen_update_dblewing(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
115115
116   int bank_callback(int bank);
116117   void dblewing_sound_cb( address_space &space, UINT16 data, UINT16 mem_mask );
117118
118119   READ16_MEMBER( wf_protection_region_0_104_r );
r29419r29420
331332   m_audiocpu->set_input_line(0, (m_sound_irq != 0) ? ASSERT_LINE : CLEAR_LINE);
332333}
333334
334static int dblewing_bank_callback( const int bank )
335int dblewing_state::bank_callback( int bank )
335336{
336337   return ((bank >> 4) & 0x7) * 0x1000;
337338}
338339
339static const deco16ic_interface dblewing_deco16ic_tilegen1_intf =
340{
341   0, 1,
342   0x0f, 0x0f,     /* trans masks (default values) */
343   0, 16, /* color base (default values) */
344   0x0f, 0x0f, /* color masks (default values) */
345   dblewing_bank_callback,
346   dblewing_bank_callback,
347   0,1,
348};
349
350340void dblewing_state::machine_start()
351341{
352342   save_item(NAME(m_sound_irq));
r29419r29420
391381   MCFG_PALETTE_FORMAT(xxxxBBBBGGGGRRRR)
392382   MCFG_GFXDECODE_ADD("gfxdecode", "palette", dblewing)
393383
394   MCFG_DECO16IC_ADD("tilegen1", dblewing_deco16ic_tilegen1_intf)
384   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
385   MCFG_DECO16IC_SPLIT(0)
386   MCFG_DECO16IC_WIDTH12(1)
387   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
388   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
389   MCFG_DECO16IC_PF1_COL_BANK(0x00)
390   MCFG_DECO16IC_PF2_COL_BANK(0x10)
391   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
392   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
393   MCFG_DECO16IC_BANK1_CB(dblewing_state, bank_callback)
394   MCFG_DECO16IC_BANK2_CB(dblewing_state, bank_callback)
395   MCFG_DECO16IC_PF12_8X8_BANK(0)
396   MCFG_DECO16IC_PF12_16X16_BANK(1)
395397   MCFG_DECO16IC_GFXDECODE("gfxdecode")
396398   MCFG_DECO16IC_PALETTE("palette")
397399
trunk/src/mame/drivers/darkseal.c
r29419r29420
220220
221221/******************************************************************************/
222222
223static const deco16ic_interface darkseal_deco16ic_tilegen1_intf =
224{
225   0, 3, // both these tilemaps need to be twice the y size of usual!
226   0x0f, 0x0f, /* trans masks (default values) */
227   0x00, 0x00, /* color base */
228   0x0f, 0x0f, /* color masks (default values) */
229   NULL,
230   NULL,
231   0,1
232};
233
234
235static const deco16ic_interface darkseal_deco16ic_tilegen2_intf =
236{
237   0, 1,
238   0x0f, 0x0f, /* trans masks (default values) */
239   0x00, 0x00, /* color base */
240   0x0f, 0x0f, /* color masks (default values) */
241   NULL,
242   NULL,
243   2,3
244};
245
246
247223static MACHINE_CONFIG_START( darkseal, darkseal_state )
248224
249225   /* basic machine hardware */
r29419r29420
268244
269245   MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
270246
271   MCFG_DECO16IC_ADD("tilegen1", darkseal_deco16ic_tilegen1_intf)
247   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
248   MCFG_DECO16IC_SPLIT(0)
249   MCFG_DECO16IC_WIDTH12(3)    // both these tilemaps need to be twice the y size of usual!
250   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
251   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
252   MCFG_DECO16IC_PF1_COL_BANK(0x00)
253   MCFG_DECO16IC_PF2_COL_BANK(0x00)
254   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
255   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
256   MCFG_DECO16IC_PF12_8X8_BANK(0)
257   MCFG_DECO16IC_PF12_16X16_BANK(1)
272258   MCFG_DECO16IC_GFXDECODE("gfxdecode")
273259   MCFG_DECO16IC_PALETTE("palette")
274260
275   MCFG_DECO16IC_ADD("tilegen2", darkseal_deco16ic_tilegen2_intf)
261   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
262   MCFG_DECO16IC_SPLIT(0)
263   MCFG_DECO16IC_WIDTH12(1)
264   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
265   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
266   MCFG_DECO16IC_PF1_COL_BANK(0x00)
267   MCFG_DECO16IC_PF2_COL_BANK(0x00)
268   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
269   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
270   MCFG_DECO16IC_PF12_8X8_BANK(2)
271   MCFG_DECO16IC_PF12_16X16_BANK(3)
276272   MCFG_DECO16IC_GFXDECODE("gfxdecode")
277273   MCFG_DECO16IC_PALETTE("palette")
278274
r29419r29420
282278   MCFG_DECO_SPRITE_PALETTE("palette")
283279
284280
285
286281   /* sound hardware */
287282   MCFG_SPEAKER_STANDARD_MONO("mono")
288283
trunk/src/mame/drivers/vaportra.c
r29419r29420
196196
197197/******************************************************************************/
198198
199static int vaportra_bank_callback( const int bank )
199int vaportra_state::bank_callback( int bank )
200200{
201201   return ((bank >> 4) & 0x7) * 0x1000;
202202}
203203
204static const deco16ic_interface vaportra_deco16ic_tilegen1_intf =
205{
206   0, 1,
207   0x0f, 0x0f, /* trans masks (default values) */
208   0x00, 0x20, /* color base */
209   0x0f, 0x0f, /* color masks (default values) */
210   vaportra_bank_callback,
211   vaportra_bank_callback,
212   0,1
213};
214
215
216static const deco16ic_interface vaportra_deco16ic_tilegen2_intf =
217{
218   0, 1,
219   0x0f, 0x0f, /* trans masks (default values) */
220   0x30, 0x40, /* color base */
221   0x0f, 0x0f, /* color masks (default values) */
222   vaportra_bank_callback,
223   vaportra_bank_callback,
224   2,3
225};
226
227204void vaportra_state::machine_start()
228205{
229206   save_item(NAME(m_priority));
r29419r29420
261238   MCFG_PALETTE_ADD("palette", 1280)
262239
263240
264   MCFG_DECO16IC_ADD("tilegen1", vaportra_deco16ic_tilegen1_intf)
241   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
242   MCFG_DECO16IC_SPLIT(0)
243   MCFG_DECO16IC_WIDTH12(1)
244   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
245   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
246   MCFG_DECO16IC_PF1_COL_BANK(0x00)
247   MCFG_DECO16IC_PF2_COL_BANK(0x20)
248   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
249   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
250   MCFG_DECO16IC_BANK1_CB(vaportra_state, bank_callback)
251   MCFG_DECO16IC_BANK2_CB(vaportra_state, bank_callback)
252   MCFG_DECO16IC_PF12_8X8_BANK(0)
253   MCFG_DECO16IC_PF12_16X16_BANK(1)
265254   MCFG_DECO16IC_GFXDECODE("gfxdecode")
266255   MCFG_DECO16IC_PALETTE("palette")
267256
268   MCFG_DECO16IC_ADD("tilegen2", vaportra_deco16ic_tilegen2_intf)
257   MCFG_DEVICE_ADD("tilegen2", DECO16IC, 0)
258   MCFG_DECO16IC_SPLIT(0)
259   MCFG_DECO16IC_WIDTH12(1)
260   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
261   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
262   MCFG_DECO16IC_PF1_COL_BANK(0x30)
263   MCFG_DECO16IC_PF2_COL_BANK(0x40)
264   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
265   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
266   MCFG_DECO16IC_BANK1_CB(vaportra_state, bank_callback)
267   MCFG_DECO16IC_BANK2_CB(vaportra_state, bank_callback)
268   MCFG_DECO16IC_PF12_8X8_BANK(2)
269   MCFG_DECO16IC_PF12_16X16_BANK(3)
269270   MCFG_DECO16IC_GFXDECODE("gfxdecode")
270271   MCFG_DECO16IC_PALETTE("palette")
271272
trunk/src/mame/drivers/sshangha.c
r29419r29420
379379   DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
380380};
381381
382static int sshangha_bank_callback( int bank )
382int sshangha_state::bank_callback( int bank )
383383{
384   bank = bank >> 4;
385   return bank * 0x1000;
384   return (bank >> 4) * 0x1000;
386385}
387386
388static const deco16ic_interface sshangha_deco16ic_tilegen1_intf =
389{
390   0, 1,
391   0x0f, 0x0f, /* trans masks (default values) */
392   0x10, 0x00, /* color base */
393   0x0f, 0x0f, /* color masks (default values) */
394   sshangha_bank_callback,
395   sshangha_bank_callback,
396   0,1
397};
398
399
400387static MACHINE_CONFIG_START( sshangha, sshangha_state )
401388
402389   /* basic machine hardware */
r29419r29420
420407   MCFG_GFXDECODE_ADD("gfxdecode", "palette", sshangha)
421408   MCFG_PALETTE_ADD("palette", 0x4000)
422409
423   MCFG_DECO16IC_ADD("tilegen1", sshangha_deco16ic_tilegen1_intf)
410   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
411   MCFG_DECO16IC_SPLIT(0)
412   MCFG_DECO16IC_WIDTH12(1)
413   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
414   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
415   MCFG_DECO16IC_PF1_COL_BANK(0x10)
416   MCFG_DECO16IC_PF2_COL_BANK(0x00)
417   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
418   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
419   MCFG_DECO16IC_BANK1_CB(sshangha_state, bank_callback)
420   MCFG_DECO16IC_BANK2_CB(sshangha_state, bank_callback)
421   MCFG_DECO16IC_PF12_8X8_BANK(0)
422   MCFG_DECO16IC_PF12_16X16_BANK(1)
424423   MCFG_DECO16IC_GFXDECODE("gfxdecode")
425424   MCFG_DECO16IC_PALETTE("palette")
426425
trunk/src/mame/drivers/mirage.c
r29419r29420
4646public:
4747   miragemi_state(const machine_config &mconfig, device_type type, const char *tag)
4848      : driver_device(mconfig, type, tag),
49         m_maincpu(*this, "maincpu"),
50         m_deco_tilegen1(*this, "tilegen1"),
51         m_oki_sfx(*this, "oki_sfx"),
52         m_oki_bgm(*this, "oki_bgm"),
53         m_spriteram(*this, "spriteram") ,
49      m_maincpu(*this, "maincpu"),
50      m_deco_tilegen1(*this, "tilegen1"),
51      m_oki_sfx(*this, "oki_sfx"),
52      m_oki_bgm(*this, "oki_bgm"),
53      m_spriteram(*this, "spriteram") ,
5454      m_pf1_rowscroll(*this, "pf1_rowscroll"),
5555      m_pf2_rowscroll(*this, "pf2_rowscroll"),
5656      m_sprgen(*this, "spritegen")
r29419r29420
8080   virtual void machine_reset();
8181   virtual void video_start();
8282   UINT32 screen_update_mirage(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
83   int bank_callback(int bank);
8384};
8485
8586void miragemi_state::video_start()
r29419r29420
286287GFXDECODE_END
287288
288289
289static int mirage_bank_callback( const int bank )
290int miragemi_state::bank_callback( int bank )
290291{
291292   return ((bank >> 4) & 0x7) * 0x1000;
292293}
293294
294static const deco16ic_interface mirage_deco16ic_tilegen1_intf =
295{
296   0, 1,
297   0x0f, 0x0f, /* trans masks (default values) */
298   0, 16, /* color base (default values) */
299   0x0f, 0x0f, /* color masks (default values) */
300   mirage_bank_callback,
301   mirage_bank_callback,
302   0,1,
303};
304
305
306295void miragemi_state::machine_start()
307296{
308297   save_item(NAME(m_mux_data));
r29419r29420
337326   MCFG_PALETTE_ADD("palette", 1024)
338327   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
339328
340   MCFG_DECO16IC_ADD("tilegen1", mirage_deco16ic_tilegen1_intf)
329   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
330   MCFG_DECO16IC_SPLIT(0)
331   MCFG_DECO16IC_WIDTH12(1)
332   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
333   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
334   MCFG_DECO16IC_PF1_COL_BANK(0x00)
335   MCFG_DECO16IC_PF2_COL_BANK(0x10)
336   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
337   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
338   MCFG_DECO16IC_BANK1_CB(miragemi_state, bank_callback)
339   MCFG_DECO16IC_BANK2_CB(miragemi_state, bank_callback)
340   MCFG_DECO16IC_PF12_8X8_BANK(0)
341   MCFG_DECO16IC_PF12_16X16_BANK(1)
341342   MCFG_DECO16IC_GFXDECODE("gfxdecode")
342343   MCFG_DECO16IC_PALETTE("palette")
343344
trunk/src/mame/drivers/dietgo.c
r29419r29420
189189   GFXDECODE_ENTRY( "gfx2", 0, spritelayout,      512, 16 )    /* Sprites (16x16) */
190190GFXDECODE_END
191191
192static int dietgo_bank_callback(const int bank)
192int dietgo_state::bank_callback(int bank)
193193{
194194   return ((bank >> 4) & 0x7) * 0x1000;
195195}
196196
197static const deco16ic_interface dietgo_deco16ic_tilegen1_intf =
198{
199   0, 1,
200   0x0f, 0x0f, /* trans masks (default values) */
201   0, 16, /* color base (default values) */
202   0x0f, 0x0f, /* color masks (default values) */
203   dietgo_bank_callback,
204   dietgo_bank_callback,
205   0,1,
206};
207
208
209197void dietgo_state::machine_start()
210198{
211199}
r29419r29420
236224   MCFG_DECOCOMN_ADD("deco_common")
237225   MCFG_DECOCOMN_PALETTE("palette")
238226
239   MCFG_DECO16IC_ADD("tilegen1", dietgo_deco16ic_tilegen1_intf)
227   MCFG_DEVICE_ADD("tilegen1", DECO16IC, 0)
228   MCFG_DECO16IC_SPLIT(0)
229   MCFG_DECO16IC_WIDTH12(1)
230   MCFG_DECO16IC_PF1_TRANS_MASK(0x0f)
231   MCFG_DECO16IC_PF2_TRANS_MASK(0x0f)
232   MCFG_DECO16IC_PF1_COL_BANK(0x00)
233   MCFG_DECO16IC_PF2_COL_BANK(0x10)
234   MCFG_DECO16IC_PF1_COL_MASK(0x0f)
235   MCFG_DECO16IC_PF2_COL_MASK(0x0f)
236   MCFG_DECO16IC_BANK1_CB(dietgo_state, bank_callback)
237   MCFG_DECO16IC_BANK2_CB(dietgo_state, bank_callback)
238   MCFG_DECO16IC_PF12_8X8_BANK(0)
239   MCFG_DECO16IC_PF12_16X16_BANK(1)
240240   MCFG_DECO16IC_GFXDECODE("gfxdecode")
241241   MCFG_DECO16IC_PALETTE("palette")
242242

Previous 199869 Revisions Next


© 1997-2024 The MAME Team