Previous 199869 Revisions Next

r30807 Tuesday 3rd June, 2014 at 13:57:27 UTC by Fabio Priuli
k051316: converted to use device_gfx_interface, inline configs and delegates. nw.
[src/mame/drivers]88games.c ajax.c bottom9.c chqflag.c overdriv.c rollerg.c tail2nos.c ultraman.c wecleman.c
[src/mame/includes]88games.h ajax.h bottom9.h chqflag.h overdriv.h rollerg.h tail2nos.h ultraman.h wecleman.h
[src/mame/video]88games.c ajax.c bottom9.c chqflag.c k051316.c k051316.h overdriv.c rollerg.c tail2nos.c ultraman.c wecleman.c

trunk/src/mame/includes/tail2nos.h
r30806r30807
5252   void tail2nos_postload();
5353   void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect );
5454   DECLARE_WRITE_LINE_MEMBER(irqhandler);
55   K051316_CB_MEMBER(zoom_callback);
5556};
56
57/*----------- defined in video/tail2nos.c -----------*/
58extern void tail2nos_zoom_callback(running_machine &machine, int *code,int *color,int *flags);
trunk/src/mame/includes/overdriv.h
r30806r30807
6969   TIMER_DEVICE_CALLBACK_MEMBER(overdriv_cpuA_scanline);
7070
7171   DECLARE_WRITE16_MEMBER( overdriv_k053246_word_w );
72   K051316_CB_MEMBER(zoom_callback_1);
73   K051316_CB_MEMBER(zoom_callback_2);
7274};
7375
7476/*----------- defined in video/overdriv.c -----------*/
7577extern void overdriv_sprite_callback(running_machine &machine, int *code,int *color,int *priority_mask);
76extern void overdriv_zoom_callback_0(running_machine &machine, int *code,int *color,int *flags);
77extern void overdriv_zoom_callback_1(running_machine &machine, int *code,int *color,int *flags);
trunk/src/mame/includes/chqflag.h
r30806r30807
6262   TIMER_DEVICE_CALLBACK_MEMBER(chqflag_scanline);
6363   DECLARE_WRITE8_MEMBER(volume_callback0);
6464   DECLARE_WRITE8_MEMBER(volume_callback1);
65   K051316_CB_MEMBER(zoom_callback_1);
66   K051316_CB_MEMBER(zoom_callback_2);
6567};
6668
6769/*----------- defined in video/chqflag.c -----------*/
6870
6971extern void chqflag_sprite_callback(running_machine &machine, int *code,int *color,int *priority,int *shadow);
70extern void chqflag_zoom_callback_0(running_machine &machine, int *code,int *color,int *flags);
71extern void chqflag_zoom_callback_1(running_machine &machine, int *code,int *color,int *flags);
trunk/src/mame/includes/rollerg.h
r30806r30807
5656   virtual void video_start();
5757   UINT32 screen_update_rollerg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5858   MCFG_K05324X_CB_MEMBER(sprite_callback);
59   K051316_CB_MEMBER(zoom_callback);
5960
6061protected:
6162   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
6263};
63
64/*----------- defined in video/rollerg.c -----------*/
65extern void rollerg_zoom_callback(running_machine &machine, int *code, int *color, int *flags);
trunk/src/mame/includes/ultraman.h
r30806r30807
4444   virtual void machine_reset();
4545   virtual void video_start();
4646   UINT32 screen_update_ultraman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
47   K051316_CB_MEMBER(zoom_callback_1);
48   K051316_CB_MEMBER(zoom_callback_2);
49   K051316_CB_MEMBER(zoom_callback_3);
4750};
4851
4952/*----------- defined in video/ultraman.c -----------*/
5053extern void ultraman_sprite_callback(running_machine &machine, int *code,int *color,int *priority,int *shadow);
51extern void ultraman_zoom_callback_0(running_machine &machine, int *code,int *color,int *flags);
52extern void ultraman_zoom_callback_1(running_machine &machine, int *code,int *color,int *flags);
53extern void ultraman_zoom_callback_2(running_machine &machine, int *code,int *color,int *flags);
trunk/src/mame/includes/88games.h
r30806r30807
6262   virtual void machine_reset();
6363   UINT32 screen_update_88games(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6464   INTERRUPT_GEN_MEMBER(k88games_interrupt);
65   K051316_CB_MEMBER(zoom_callback);
6566};
6667
6768/*----------- defined in video/88games.c -----------*/
6869void _88games_sprite_callback(running_machine &machine, int *code, int *color, int *priority, int *shadow);
6970void _88games_tile_callback(running_machine &machine, int layer, int bank, int *code, int *color, int *flags, int *priority);
70void _88games_zoom_callback(running_machine &machine, int *code, int *color, int *flags);
trunk/src/mame/includes/ajax.h
r30806r30807
5555   INTERRUPT_GEN_MEMBER(ajax_interrupt);
5656   DECLARE_WRITE8_MEMBER(volume_callback0);
5757   DECLARE_WRITE8_MEMBER(volume_callback1);
58
58   K051316_CB_MEMBER(zoom_callback);
5959};
6060
6161/*----------- defined in video/ajax.c -----------*/
6262extern void ajax_tile_callback(running_machine &machine, int layer,int bank,int *code,int *color,int *flags,int *priority);
6363extern void ajax_sprite_callback(running_machine &machine, int *code,int *color,int *priority,int *shadow);
64extern void ajax_zoom_callback(running_machine &machine, int *code,int *color,int *flags);
trunk/src/mame/includes/wecleman.h
r30806r30807
107107   template<class _BitmapClass> void sprite_draw(_BitmapClass &bitmap, const rectangle &cliprect);
108108   void wecleman_draw_road(bitmap_rgb32 &bitmap, const rectangle &cliprect, int priority);
109109   void hotchase_draw_road(bitmap_ind16 &bitmap, const rectangle &cliprect);
110   K051316_CB_MEMBER(hotchase_zoom_callback_1);
111   K051316_CB_MEMBER(hotchase_zoom_callback_2);
110112
111113   required_device<cpu_device> m_maincpu;
112114   required_device<cpu_device> m_audiocpu;
r30806r30807
122124   required_device<screen_device> m_screen;
123125   required_shared_ptr<UINT16> m_generic_paletteram_16;
124126};
125
126/*----------- defined in video/wecleman.c -----------*/
127void hotchase_zoom_callback_0(running_machine &machine, int *code,int *color,int *flags);
128void hotchase_zoom_callback_1(running_machine &machine, int *code,int *color,int *flags);
trunk/src/mame/includes/bottom9.h
r30806r30807
2323      m_k051316(*this, "k051316"),
2424      m_palette(*this, "palette") { }
2525
26   /* memory pointers */
27//  UINT8 *    m_paletteram;    // currently this uses generic palette handling
28
2926   /* video-related */
3027   int        m_layer_colorbase[3];
3128   int        m_sprite_colorbase;
r30806r30807
6562   INTERRUPT_GEN_MEMBER(bottom9_sound_interrupt);
6663   DECLARE_WRITE8_MEMBER(volume_callback0);
6764   DECLARE_WRITE8_MEMBER(volume_callback1);
65   K051316_CB_MEMBER(zoom_callback);
6866};
6967
7068/*----------- defined in video/bottom9.c -----------*/
7169
7270extern void bottom9_tile_callback(running_machine &machine, int layer,int bank,int *code,int *color,int *flags,int *priority);
7371extern void bottom9_sprite_callback(running_machine &machine, int *code,int *color,int *priority,int *shadow);
74extern void bottom9_zoom_callback(running_machine &machine, int *code,int *color,int *flags);
trunk/src/mame/video/chqflag.c
r30806r30807
3030
3131***************************************************************************/
3232
33void chqflag_zoom_callback_0( running_machine &machine, int *code, int *color, int *flags )
33K051316_CB_MEMBER(chqflag_state::zoom_callback_1)
3434{
35   chqflag_state *state = machine.driver_data<chqflag_state>();
3635   *code |= ((*color & 0x03) << 8);
37   *color = state->m_zoom_colorbase[0] + ((*color & 0x3c) >> 2);
36   *color = m_zoom_colorbase[0] + ((*color & 0x3c) >> 2);
3837}
3938
40void chqflag_zoom_callback_1( running_machine &machine, int *code, int *color, int *flags )
39K051316_CB_MEMBER(chqflag_state::zoom_callback_2)
4140{
42   chqflag_state *state = machine.driver_data<chqflag_state>();
4341   *flags = TILE_FLIPYX((*color & 0xc0) >> 6);
4442   *code |= ((*color & 0x0f) << 8);
45   *color = state->m_zoom_colorbase[1] + ((*color & 0x10) >> 4);
43   *color = m_zoom_colorbase[1] + ((*color & 0x10) >> 4);
4644}
4745
4846/***************************************************************************
trunk/src/mame/video/rollerg.c
r30806r30807
2626
2727***************************************************************************/
2828
29void rollerg_zoom_callback( running_machine &machine, int *code, int *color, int *flags )
29K051316_CB_MEMBER(rollerg_state::zoom_callback)
3030{
31   rollerg_state *state = machine.driver_data<rollerg_state>();
3231   *flags = TILE_FLIPYX((*color & 0xc0) >> 6);
3332   *code |= ((*color & 0x0f) << 8);
34   *color = state->m_zoom_colorbase + ((*color & 0x30) >> 4);
33   *color = m_zoom_colorbase + ((*color & 0x30) >> 4);
3534}
3635
3736
38
3937/***************************************************************************
4038
4139    Start the video hardware emulation.
r30806r30807
4947}
5048
5149
52
5350/***************************************************************************
5451
5552  Display refresh
trunk/src/mame/video/k051316.c
r30806r30807
3636
3737#include "emu.h"
3838#include "k051316.h"
39#include "konami_helper.h"
4039
40
4141#define VERBOSE 0
4242#define LOG(x) do { if (VERBOSE) logerror x; } while (0)
4343
44#define XOR(a) WORD_XOR_BE(a)
45
4644const device_type K051316 = &device_creator<k051316_device>;
4745
48k051316_device::k051316_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
49   : device_t(mconfig, K051316, "K051316 Video Controller", tag, owner, clock, "k051316", __FILE__),
50   m_ram(NULL),
51   //m_tmap,
52   //m_ctrlram[16],
53   m_gfxdecode(*this),
54   m_palette(*this)
46
47const gfx_layout k051316_device::charlayout4 =
5548{
56}
49   16,16,
50   RGN_FRAC(1,1),
51   4,
52   { 0, 1, 2, 3 },
53   { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4,
54      8*4, 9*4, 10*4, 11*4, 12*4, 13*4, 14*4, 15*4 },
55   { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64,
56      8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 },
57   128*8
58};
5759
58//-------------------------------------------------
59//  static_set_gfxdecode_tag: Set the tag of the
60//  gfx decoder
61//-------------------------------------------------
60const gfx_layout k051316_device::charlayout7 =
61{
62   16,16,
63   RGN_FRAC(1,1),
64   7,
65   { 1,2,3,4,5,6,7 },
66   { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
67      8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
68   { 0*128, 1*128, 2*128, 3*128, 4*128, 5*128, 6*128, 7*128,
69      8*128, 9*128, 10*128, 11*128, 12*128, 13*128, 14*128, 15*128 },
70   256*8
71};
6272
63void k051316_device::static_set_gfxdecode_tag(device_t &device, const char *tag)
73const gfx_layout k051316_device::charlayout8 =
6474{
65   downcast<k051316_device &>(device).m_gfxdecode.set_tag(tag);
66}
75   16,16,
76   RGN_FRAC(1,1),
77   8,
78   { 0,1,2,3,4,5,6,7 },
79   { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
80      8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
81   { 0*128, 1*128, 2*128, 3*128, 4*128, 5*128, 6*128, 7*128,
82      8*128, 9*128, 10*128, 11*128, 12*128, 13*128, 14*128, 15*128 },
83   256*8
84};
6785
86const gfx_layout k051316_device::charlayout_tail2nos =
87{
88   16,16,
89   RGN_FRAC(1,1),
90   4,
91   { 0, 1, 2, 3 },
92   { WORD_XOR_BE(0)*4, WORD_XOR_BE(1)*4, WORD_XOR_BE(2)*4, WORD_XOR_BE(3)*4,
93      WORD_XOR_BE(4)*4, WORD_XOR_BE(5)*4, WORD_XOR_BE(6)*4, WORD_XOR_BE(7)*4,
94      WORD_XOR_BE(8)*4, WORD_XOR_BE(9)*4, WORD_XOR_BE(10)*4, WORD_XOR_BE(11)*4,
95      WORD_XOR_BE(12)*4, WORD_XOR_BE(13)*4, WORD_XOR_BE(14)*4, WORD_XOR_BE(15)*4 },
96   { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64,
97      8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 },
98   128*8
99};
68100
69//-------------------------------------------------
70//  static_set_palette_tag: Set the tag of the
71//  palette device
72//-------------------------------------------------
73101
74void k051316_device::static_set_palette_tag(device_t &device, const char *tag)
102GFXDECODE_MEMBER( k051316_device::gfxinfo )
103   GFXDECODE_DEVICE(DEVICE_SELF, 0, charlayout4, 0, 1)
104GFXDECODE_END
105
106GFXDECODE_MEMBER( k051316_device::gfxinfo7 )
107   GFXDECODE_DEVICE(DEVICE_SELF, 0, charlayout7, 0, 1)
108GFXDECODE_END
109
110GFXDECODE_MEMBER( k051316_device::gfxinfo8 )
111   GFXDECODE_DEVICE(DEVICE_SELF, 0, charlayout8, 0, 1)
112GFXDECODE_END
113
114GFXDECODE_MEMBER( k051316_device::gfxinfo4_tail2nos )
115   GFXDECODE_DEVICE(DEVICE_SELF, 0, charlayout_tail2nos, 0, 1)
116GFXDECODE_END
117
118
119k051316_device::k051316_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
120   : device_t(mconfig, K051316, "K051316 Video Controller", tag, owner, clock, "k051316", __FILE__),
121      device_gfx_interface(mconfig, *this, gfxinfo),
122      m_ram(NULL),
123      m_zoom_rom(NULL),
124      m_zoom_size(0),
125      m_dx(0),
126      m_dy(0),
127      m_wrap(0),
128      m_pen_is_mask(false),
129      m_bpp(0),
130      m_transparent_pen(0)
75131{
76   downcast<k051316_device &>(device).m_palette.set_tag(tag);
77132}
78133
79//-------------------------------------------------
80//  device_config_complete - perform any
81//  operations now that the configuration is
82//  complete
83//-------------------------------------------------
84
85void k051316_device::device_config_complete()
134void k051316_device::set_bpp(device_t &device, int bpp)
86135{
87   // inherit a copy of the static data
88   const k051316_interface *intf = reinterpret_cast<const k051316_interface *>(static_config());
89   if (intf != NULL)
90   *static_cast<k051316_interface *>(this) = *intf;
136   k051316_device &dev = downcast<k051316_device &>(device);
137   dev.m_bpp = bpp;
91138
92   // or initialize to defaults if none provided
93   else
139   switch(bpp)
94140   {
95      m_gfx_memory_region_tag = "";
96      m_gfx_num = 0;
97      m_bpp = 0;
98      m_pen_is_mask = 0;
99      m_transparent_pen = 0;
100      m_wrap = 0;
101      m_xoffs = 0;
102      m_yoffs = 0;
103      m_callback = NULL;
141      case 4:
142         device_gfx_interface::static_set_info(dev, gfxinfo);
143         break;
144      case 7:
145         device_gfx_interface::static_set_info(dev, gfxinfo7);
146         break;
147      case 8:
148         device_gfx_interface::static_set_info(dev, gfxinfo8);
149         break;
150      case -4:
151         device_gfx_interface::static_set_info(dev, gfxinfo4_tail2nos);
152         dev.m_bpp = 4;
153         break;
154      default:
155         fatalerror("Unsupported bpp\n");
104156   }
105157}
106158
159
160
107161//-------------------------------------------------
108162//  device_start - device-specific startup
109163//-------------------------------------------------
110164
111165void k051316_device::device_start()
112166{
113   if(!m_gfxdecode->started())
114      throw device_missing_dependencies();
167   m_zoom_rom = region()->base();
168   m_zoom_size = region()->bytes();
115169
116   int is_tail2nos = 0;
117   UINT32 total;
170   decode_gfx();
171   gfx(0)->set_colors(palette()->entries() / gfx(0)->depth());
172   if (m_bpp == 4)
173      gfx(0)->set_source_and_total(m_zoom_rom, m_zoom_size / 128);
174   else
175      gfx(0)->set_source_and_total(m_zoom_rom, m_zoom_size / 256);
118176
119   static const gfx_layout charlayout4 =
120   {
121      16,16,
122      0,
123      4,
124      { 0, 1, 2, 3 },
125      { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4,
126            8*4, 9*4, 10*4, 11*4, 12*4, 13*4, 14*4, 15*4 },
127      { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64,
128            8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 },
129      128*8
130   };
131
132   static const gfx_layout charlayout7 =
133   {
134      16,16,
135      0,
136      7,
137      { 1,2,3,4,5,6,7 },
138      { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
139            8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
140      { 0*128, 1*128, 2*128, 3*128, 4*128, 5*128, 6*128, 7*128,
141            8*128, 9*128, 10*128, 11*128, 12*128, 13*128, 14*128, 15*128 },
142      256*8
143   };
144
145   static const gfx_layout charlayout8 =
146   {
147      16,16,
148      0,
149      8,
150      { 0,1,2,3,4,5,6,7 },
151      { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
152            8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
153      { 0*128, 1*128, 2*128, 3*128, 4*128, 5*128, 6*128, 7*128,
154            8*128, 9*128, 10*128, 11*128, 12*128, 13*128, 14*128, 15*128 },
155      256*8
156   };
157
158   static const gfx_layout charlayout_tail2nos =
159   {
160      16,16,
161      0,
162      4,
163      { 0, 1, 2, 3 },
164      { XOR(0)*4, XOR(1)*4, XOR(2)*4, XOR(3)*4, XOR(4)*4, XOR(5)*4, XOR(6)*4, XOR(7)*4,
165            XOR(8)*4, XOR(9)*4, XOR(10)*4, XOR(11)*4, XOR(12)*4, XOR(13)*4, XOR(14)*4, XOR(15)*4 },
166      { 0*64, 1*64, 2*64, 3*64, 4*64, 5*64, 6*64, 7*64,
167            8*64, 9*64, 10*64, 11*64, 12*64, 13*64, 14*64, 15*64 },
168      128*8
169   };
170
171   /* decode the graphics */
172   switch (m_bpp)
173   {
174   case -4:
175      total = 0x400;
176      is_tail2nos = 1;
177      konami_decode_gfx(machine(), m_gfxdecode, m_palette, m_gfx_num, machine().root_device().memregion(m_gfx_memory_region_tag)->base(), total, &charlayout_tail2nos, 4);
178      break;
179
180   case 4:
181      total = machine().root_device().memregion(m_gfx_memory_region_tag)->bytes() / 128;
182      konami_decode_gfx(machine(), m_gfxdecode, m_palette, m_gfx_num, machine().root_device().memregion(m_gfx_memory_region_tag)->base(), total, &charlayout4, 4);
183      break;
184
185   case 7:
186      total = machine().root_device().memregion(m_gfx_memory_region_tag)->bytes() / 256;
187      konami_decode_gfx(machine(), m_gfxdecode, m_palette, m_gfx_num, machine().root_device().memregion(m_gfx_memory_region_tag)->base(), total, &charlayout7, 7);
188      break;
189
190   case 8:
191      total = machine().root_device().memregion(m_gfx_memory_region_tag)->bytes() / 256;
192      konami_decode_gfx(machine(), m_gfxdecode, m_palette, m_gfx_num, machine().root_device().memregion(m_gfx_memory_region_tag)->base(), total, &charlayout8, 8);
193      break;
194
195   default:
196      fatalerror("Unsupported bpp\n");
197   }
198
199   m_bpp = is_tail2nos ? 4 : m_bpp; // tail2nos is passed with bpp = -4 to setup the custom charlayout!
200
201   m_tmap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(k051316_device::get_tile_info0),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
202
177   m_tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(k051316_device::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
203178   m_ram = auto_alloc_array_clear(machine(), UINT8, 0x800);
204179
205180   if (!m_pen_is_mask)
r30806r30807
210185      m_tmap->map_pens_to_layer(0, m_transparent_pen, m_transparent_pen, TILEMAP_PIXEL_LAYER0);
211186   }
212187
188   // bind callbacks
189   m_k051316_cb.bind_relative_to(*owner());
190
213191   save_pointer(NAME(m_ram), 0x800);
214192   save_item(NAME(m_ctrlram));
215193   save_item(NAME(m_wrap));
r30806r30807
222200
223201void k051316_device::device_reset()
224202{
225   memset(m_ctrlram, 0, 0x10);
203   memset(m_ctrlram, 0, 0x10);
226204}
227205
228206/*****************************************************************************
r30806r30807
248226      int addr = offset + (m_ctrlram[0x0c] << 11) + (m_ctrlram[0x0d] << 19);
249227      if (m_bpp <= 4)
250228         addr /= 2;
251      addr &= space.machine().root_device().memregion(m_gfx_memory_region_tag)->bytes() - 1;
229      addr &= m_zoom_size - 1;
252230
253231      //  popmessage("%s: offset %04x addr %04x", space.machine().describe_context(), offset, addr);
254232
255      return space.machine().root_device().memregion(m_gfx_memory_region_tag)->base()[addr];
233      return m_zoom_rom[addr];
256234   }
257235   else
258236   {
r30806r30807
279257
280258***************************************************************************/
281259
282void k051316_device::get_tile_info( tile_data &tileinfo, int tile_index )
283{
260TILE_GET_INFO_MEMBER(k051316_device::get_tile_info)
261{
284262   int code = m_ram[tile_index];
285263   int color = m_ram[tile_index + 0x400];
286264   int flags = 0;
287
288   m_callback(machine(), &code, &color, &flags);
289
290   SET_TILE_INFO_MEMBER(m_gfx_num,
291         code,
292         color,
293         flags);
265   
266   m_k051316_cb(&code, &color, &flags);
267   
268   SET_TILE_INFO_MEMBER(0,
269                   code,
270                   color,
271                   flags);   
294272}
295273
296274
297TILE_GET_INFO_MEMBER(k051316_device::get_tile_info0) { get_tile_info(tileinfo, tile_index); }
298
299
300275void k051316_device::zoom_draw( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int flags, UINT32 priority )
301276{
302277   UINT32 startx, starty;
r30806r30807
309284   incxy  =        (INT16)(256 * m_ctrlram[0x08] + m_ctrlram[0x09]);
310285   incyy  =        (INT16)(256 * m_ctrlram[0x0a] + m_ctrlram[0x0b]);
311286
312   startx -= (16 + m_yoffs) * incyx;
313   starty -= (16 + m_yoffs) * incyy;
287   startx -= (16 + m_dy) * incyx;
288   starty -= (16 + m_dy) * incyy;
314289
315   startx -= (89 + m_xoffs) * incxx;
316   starty -= (89 + m_xoffs) * incxy;
290   startx -= (89 + m_dx) * incxx;
291   starty -= (89 + m_dx) * incxy;
317292
318   m_tmap->draw_roz(screen, bitmap, cliprect, startx << 5,starty << 5,
319         incxx << 5,incxy << 5,incyx << 5,incyy << 5,
293   m_tmap->draw_roz(screen, bitmap, cliprect, startx << 5, starty << 5,
294         incxx << 5, incxy << 5, incyx << 5, incyy << 5,
320295         m_wrap,
321         flags,priority);
296         flags, priority);
322297
323298#if 0
324299   popmessage("%02x%02x%02x%02x %02x%02x%02x%02x %02x%02x%02x%02x %02x%02x%02x%02x",
trunk/src/mame/video/k051316.h
r30806r30807
22#ifndef __K051316_H__
33#define __K051316_H__
44
5typedef void (*k051316_callback)(running_machine &machine, int *code, int *color, int *flags);
5typedef device_delegate<void (int *code, int *color, int *flags)> k051316_cb_delegate;
6#define K051316_CB_MEMBER(_name)   void _name(int *code, int *color, int *flags)
67
7struct k051316_interface
8{
9   const char         *m_gfx_memory_region_tag;
10   int                m_gfx_num;
11   int                m_bpp, m_pen_is_mask, m_transparent_pen;
12   int                m_wrap, m_xoffs, m_yoffs;
13   k051316_callback   m_callback;
14};
158
9#define MCFG_K051316_CB(_class, _method) \
10   k051316_device::set_k051316_callback(*device, k051316_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner)));
11
12#define MCFG_K051316_OFFSETS(_xoffs, _yoffs) \
13   k051316_device::set_offsets(*device, _xoffs, _yoffs);
14
15#define MCFG_K051316_BPP(_bpp) \
16   k051316_device::set_bpp(*device, _bpp);
17
18#define MCFG_K051316_SETUP_PENS(_mask, _pen) \
19   k051316_device::set_pens(*device, _mask, _pen);
20
21#define MCFG_K051316_WRAP(_wrap) \
22   k051316_device::set_wrap(*device, _wrap);
23
24
1625class k051316_device : public device_t,
17                              public k051316_interface
26                  public device_gfx_interface
1827{
1928public:
2029   k051316_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
2130   ~k051316_device() {}
2231
32   static const gfx_layout charlayout4;
33   static const gfx_layout charlayout7;
34   static const gfx_layout charlayout8;
35   static const gfx_layout charlayout_tail2nos;
36   DECLARE_GFXDECODE_MEMBER(gfxinfo);
37   DECLARE_GFXDECODE_MEMBER(gfxinfo7);
38   DECLARE_GFXDECODE_MEMBER(gfxinfo8);
39   DECLARE_GFXDECODE_MEMBER(gfxinfo4_tail2nos);
40   
2341   // static configuration
24   static void static_set_gfxdecode_tag(device_t &device, const char *tag);
25   static void static_set_palette_tag(device_t &device, const char *tag);
42   static void set_k051316_callback(device_t &device, k051316_cb_delegate callback) { downcast<k051316_device &>(device).m_k051316_cb = callback; }
43   static void set_wrap(device_t &device, int wrap) { downcast<k051316_device &>(device).m_wrap = wrap; }
44   static void set_bpp(device_t &device, int bpp);
45   static void set_pens(device_t &device, bool mask, int transp)
46   {
47      k051316_device &dev = downcast<k051316_device &>(device);
48      dev.m_pen_is_mask = mask;
49      dev.m_transparent_pen = transp;
50   }
51   static void set_offsets(device_t &device, int x_offset, int y_offset)
52   {
53      k051316_device &dev = downcast<k051316_device &>(device);
54      dev.m_dx = x_offset;
55      dev.m_dy = y_offset;
56   }
2657
2758   /*
2859   The callback is passed:
r30806r30807
4374   void zoom_draw(screen_device &screen, bitmap_ind16 &bitmap,const rectangle &cliprect,int flags,UINT32 priority);
4475   void wraparound_enable(int status);
4576
77   void zoomram_updated(UINT32 offs) { gfx(0)->mark_dirty(offs); }
78
4679protected:
4780   // device-level overrides
48   virtual void device_config_complete();
4981   virtual void device_start();
5082   virtual void device_reset();
83
5184private:
5285   // internal state
53   UINT8    *m_ram;
54   tilemap_t  *m_tmap;
55   UINT8    m_ctrlram[16];
56   required_device<gfxdecode_device> m_gfxdecode;
57   required_device<palette_device> m_palette;
86   UINT8 *m_ram;
87   UINT8 m_ctrlram[16];
88   tilemap_t *m_tmap;
5889
59   TILE_GET_INFO_MEMBER(get_tile_info0);
60   void get_tile_info( tile_data &tileinfo, int tile_index );
90   UINT8 *m_zoom_rom;
91   UINT32 m_zoom_size;
92
93   int m_dx, m_dy;
94   int m_wrap;
95   bool m_pen_is_mask;
96   int m_bpp, m_transparent_pen;
97   k051316_cb_delegate m_k051316_cb;
98
99   TILE_GET_INFO_MEMBER(get_tile_info);
61100};
62101
63102extern const device_type K051316;
64103
65#define MCFG_K051316_ADD(_tag, _interface) \
66   MCFG_DEVICE_ADD(_tag, K051316, 0) \
67   MCFG_DEVICE_CONFIG(_interface)
68
69#define MCFG_K051316_GFXDECODE(_gfxtag) \
70   k051316_device::static_set_gfxdecode_tag(*device, "^" _gfxtag);
71
72#define MCFG_K051316_PALETTE(_palette_tag) \
73   k051316_device::static_set_palette_tag(*device, "^" _palette_tag);
74104#endif
trunk/src/mame/video/wecleman.c
r30806r30807
962962
963963//  Callbacks for the K051316
964964
965void hotchase_zoom_callback_0(running_machine &machine, int *code,int *color,int *flags)
965K051316_CB_MEMBER(wecleman_state::hotchase_zoom_callback_1)
966966{
967967   *code |= (*color & 0x03) << 8;
968968   *color = (*color & 0xfc) >> 2;
969969}
970970
971void hotchase_zoom_callback_1(running_machine &machine, int *code,int *color,int *flags)
971K051316_CB_MEMBER(wecleman_state::hotchase_zoom_callback_2)
972972{
973973   *code |= (*color & 0x01) << 8;
974974   *color = ((*color & 0x3f) << 1) | ((*code & 0x80) >> 7);
975975}
976976
977
977978VIDEO_START_MEMBER(wecleman_state,hotchase)
978979{
979980   /*
trunk/src/mame/video/88games.c
r30806r30807
3838
3939***************************************************************************/
4040
41void _88games_zoom_callback( running_machine &machine, int *code, int *color, int *flags )
41K051316_CB_MEMBER(_88games_state::zoom_callback)
4242{
43   _88games_state *state = machine.driver_data<_88games_state>();
44
4543   *flags = (*color & 0x40) ? TILE_FLIPX : 0;
4644   *code |= ((*color & 0x07) << 8);
47   *color = state->m_zoom_colorbase + ((*color & 0x38) >> 3) + ((*color & 0x80) >> 4);
45   *color = m_zoom_colorbase + ((*color & 0x38) >> 3) + ((*color & 0x80) >> 4);
4846}
4947
5048/***************************************************************************
trunk/src/mame/video/tail2nos.c
r30806r30807
2626
2727***************************************************************************/
2828
29void tail2nos_zoom_callback( running_machine &machine, int *code, int *color, int *flags )
29K051316_CB_MEMBER(tail2nos_state::zoom_callback)
3030{
3131   *code |= ((*color & 0x03) << 8);
3232   *color = 32 + ((*color & 0x38) >> 3);
r30806r30807
5656
5757   m_bg_tilemap->set_transparent_pen(15);
5858
59   m_zoomdata = (UINT16 *)memregion("gfx3")->base();
59   m_zoomdata = (UINT16 *)memregion("k051316")->base();
6060
6161   save_pointer(NAME(m_zoomdata), 0x20000 / 2);
6262   machine().save().register_postload(save_prepost_delegate(FUNC(tail2nos_state::tail2nos_postload), this));
r30806r30807
8686   int oldword = m_zoomdata[offset];
8787
8888   COMBINE_DATA(&m_zoomdata[offset]);
89   // mark dirty the tilemap inside K051316 device
8990   if (oldword != m_zoomdata[offset])
90      m_gfxdecode->gfx(2)->mark_dirty(offset / 64);
91      m_k051316->zoomram_updated(offset / 64);
9192}
9293
9394WRITE16_MEMBER(tail2nos_state::tail2nos_gfxbank_w)
trunk/src/mame/video/overdriv.c
r30806r30807
2626
2727***************************************************************************/
2828
29void overdriv_zoom_callback_0( running_machine &machine, int *code, int *color, int *flags )
29K051316_CB_MEMBER(overdriv_state::zoom_callback_1)
3030{
31   overdriv_state *state = machine.driver_data<overdriv_state>();
3231   *flags = (*color & 0x40) ? TILE_FLIPX : 0;
3332   *code |= ((*color & 0x03) << 8);
34   *color = state->m_zoom_colorbase[0] + ((*color & 0x3c) >> 2);
33   *color = m_zoom_colorbase[0] + ((*color & 0x3c) >> 2);
3534}
3635
37void overdriv_zoom_callback_1( running_machine &machine, int *code, int *color, int *flags )
36K051316_CB_MEMBER(overdriv_state::zoom_callback_2)
3837{
39   overdriv_state *state = machine.driver_data<overdriv_state>();
4038   *flags = (*color & 0x40) ? TILE_FLIPX : 0;
4139   *code |= ((*color & 0x03) << 8);
42   *color = state->m_zoom_colorbase[1] + ((*color & 0x3c) >> 2);
40   *color = m_zoom_colorbase[1] + ((*color & 0x3c) >> 2);
4341}
4442
4543
trunk/src/mame/video/bottom9.c
r30806r30807
3838
3939***************************************************************************/
4040
41void bottom9_zoom_callback( running_machine &machine, int *code, int *color, int *flags )
41K051316_CB_MEMBER(bottom9_state::zoom_callback)
4242{
43   bottom9_state *state = machine.driver_data<bottom9_state>();
4443   *flags = (*color & 0x40) ? TILE_FLIPX : 0;
4544   *code |= ((*color & 0x03) << 8);
46   *color = state->m_zoom_colorbase + ((*color & 0x3c) >> 2);
45   *color = m_zoom_colorbase + ((*color & 0x3c) >> 2);
4746}
4847
4948
trunk/src/mame/video/ultraman.c
r30806r30807
2323
2424***************************************************************************/
2525
26void ultraman_zoom_callback_0(running_machine &machine, int *code, int *color, int *flags )
26K051316_CB_MEMBER(ultraman_state::zoom_callback_1)
2727{
28   ultraman_state *state = machine.driver_data<ultraman_state>();
29   *code |= ((*color & 0x07) << 8) | (state->m_bank0 << 11);
30   *color = state->m_zoom_colorbase[0] + ((*color & 0xf8) >> 3);
28   *code |= ((*color & 0x07) << 8) | (m_bank0 << 11);
29   *color = m_zoom_colorbase[0] + ((*color & 0xf8) >> 3);
3130}
3231
33void ultraman_zoom_callback_1(running_machine &machine, int *code, int *color, int *flags )
32K051316_CB_MEMBER(ultraman_state::zoom_callback_2)
3433{
35   ultraman_state *state = machine.driver_data<ultraman_state>();
36   *code |= ((*color & 0x07) << 8) | (state->m_bank1 << 11);
37   *color = state->m_zoom_colorbase[1] + ((*color & 0xf8) >> 3);
34   *code |= ((*color & 0x07) << 8) | (m_bank1 << 11);
35   *color = m_zoom_colorbase[1] + ((*color & 0xf8) >> 3);
3836}
3937
40void ultraman_zoom_callback_2(running_machine &machine, int *code, int *color, int *flags )
38K051316_CB_MEMBER(ultraman_state::zoom_callback_3)
4139{
42   ultraman_state *state = machine.driver_data<ultraman_state>();
43   *code |= ((*color & 0x07) << 8) | (state->m_bank2 << 11);
44   *color = state->m_zoom_colorbase[2] + ((*color & 0xf8) >> 3);
40   *code |= ((*color & 0x07) << 8) | (m_bank2 << 11);
41   *color = m_zoom_colorbase[2] + ((*color & 0xf8) >> 3);
4542}
4643
4744
trunk/src/mame/video/ajax.c
r30806r30807
5353
5454***************************************************************************/
5555
56void ajax_zoom_callback( running_machine &machine, int *code, int *color, int *flags )
56K051316_CB_MEMBER(ajax_state::zoom_callback)
5757{
58   ajax_state *state = machine.driver_data<ajax_state>();
5958   *code |= ((*color & 0x07) << 8);
60   *color = state->m_zoom_colorbase + ((*color & 0x08) >> 3);
59   *color = m_zoom_colorbase + ((*color & 0x08) >> 3);
6160}
6261
6362
trunk/src/mame/drivers/rollerg.c
r30806r30807
217217
218218***************************************************************************/
219219
220static const k051316_interface rollerg_k051316_intf =
221{
222   "gfx2", 1,
223   4, FALSE, 0,
224   0, 22, 1,
225   rollerg_zoom_callback
226};
227
228220WRITE_LINE_MEMBER(rollerg_state::rollerg_irq_ack_w)
229221{
230222   m_maincpu->set_input_line(0, CLEAR_LINE);
r30806r30807
272264   MCFG_PALETTE_ENABLE_SHADOWS()
273265   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
274266
275   MCFG_GFXDECODE_ADD("gfxdecode", "palette", empty)
276
277267   MCFG_DEVICE_ADD("k053244", K053244, 0)
278268   MCFG_GFX_PALETTE("palette")
279269   MCFG_K05324X_OFFSETS(-3, -1)
280270   MCFG_K05324X_CB(rollerg_state, sprite_callback)
281271
282   MCFG_K051316_ADD("k051316", rollerg_k051316_intf)
283   MCFG_K051316_GFXDECODE("gfxdecode")
284   MCFG_K051316_PALETTE("palette")
272   MCFG_DEVICE_ADD("k051316", K051316, 0)
273   MCFG_GFX_PALETTE("palette")
274   MCFG_K051316_BPP(4)
275   MCFG_K051316_OFFSETS(22, 1)
276   MCFG_K051316_CB(rollerg_state, zoom_callback)
285277
286278   MCFG_DEVICE_ADD("k053252", K053252, 3000000*2)
287279   MCFG_K053252_INT1_ACK_CB(WRITELINE(rollerg_state,rollerg_irq_ack_w))
r30806r30807
313305   ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the sound CPU */
314306   ROM_LOAD( "999m01.e11", 0x0000, 0x8000, CRC(1fcfb22f) SHA1(ef058a7de6ba7cf310b91975345113acc6078f8a) )
315307
316   ROM_REGION( 0x200000, "k053244", 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */
308   ROM_REGION( 0x200000, "k053244", 0 )
317309   ROM_LOAD32_WORD( "999h06.k2", 0x000000, 0x100000, CRC(eda05130) SHA1(b52073a4a4651035d5f1e112601ceb2d004b2143) ) /* sprites */
318310   ROM_LOAD32_WORD( "999h05.k8", 0x000002, 0x100000, CRC(5f321c7d) SHA1(d60a3480891b83ac109f2fecfe2b958bac310c15) )
319311
320   ROM_REGION( 0x080000, "gfx2", 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */
312   ROM_REGION( 0x080000, "k051316", 0 )
321313   ROM_LOAD( "999h03.d23", 0x000000, 0x040000, CRC(ea1edbd2) SHA1(a17d19f873384287e1e47222d46274e7408b40d4) ) /* zoom */
322314   ROM_LOAD( "999h04.f23", 0x040000, 0x040000, CRC(c1a35355) SHA1(615606d30500a8f2be19171893e985b085fff2fc) )
323315
r30806r30807
333325   ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for the sound CPU */
334326   ROM_LOAD( "999m01.e11", 0x0000, 0x8000, CRC(1fcfb22f) SHA1(ef058a7de6ba7cf310b91975345113acc6078f8a) )
335327
336   ROM_REGION( 0x200000, "k053244", 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */
328   ROM_REGION( 0x200000, "k053244", 0 )
337329   ROM_LOAD32_WORD( "999h06.k2", 0x000000, 0x100000, CRC(eda05130) SHA1(b52073a4a4651035d5f1e112601ceb2d004b2143) ) /* sprites */
338330   ROM_LOAD32_WORD( "999h05.k8", 0x000002, 0x100000, CRC(5f321c7d) SHA1(d60a3480891b83ac109f2fecfe2b958bac310c15) )
339331
340   ROM_REGION( 0x080000, "gfx2", 0 ) /* graphics ( don't dispose as the program can read them, 0 ) */
332   ROM_REGION( 0x080000, "k051316", 0 )
341333   ROM_LOAD( "999h03.d23", 0x000000, 0x040000, CRC(ea1edbd2) SHA1(a17d19f873384287e1e47222d46274e7408b40d4) ) /* zoom */
342334   ROM_LOAD( "999h04.f23", 0x040000, 0x040000, CRC(c1a35355) SHA1(615606d30500a8f2be19171893e985b085fff2fc) )
343335
trunk/src/mame/drivers/ajax.c
r30806r30807
183183   ajax_sprite_callback
184184};
185185
186static const k051316_interface ajax_k051316_intf =
187{
188   "gfx3", 2,
189   7, FALSE, 0,
190   0, 0, 0,
191   ajax_zoom_callback
192};
193
194186static MACHINE_CONFIG_START( ajax, ajax_state )
195187
196188   /* basic machine hardware */
r30806r30807
228220   MCFG_K051960_ADD("k051960", ajax_k051960_intf)
229221   MCFG_K051960_GFXDECODE("gfxdecode")
230222   MCFG_K051960_PALETTE("palette")
231   MCFG_K051316_ADD("k051316", ajax_k051316_intf)
232   MCFG_K051316_GFXDECODE("gfxdecode")
233   MCFG_K051316_PALETTE("palette")
234223
224   MCFG_DEVICE_ADD("k051316", K051316, 0)
225   MCFG_GFX_PALETTE("palette")
226   MCFG_K051316_BPP(7)
227   MCFG_K051316_CB(ajax_state, zoom_callback)
228
235229   /* sound hardware */
236230   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
237231
r30806r30807
306300   ROM_LOAD16_BYTE( "770c08-d.c10",    0x0e0000, 0x010000, CRC(91591777) SHA1(53f416a51f7075f070168bced7b6f925f54c7b84) )
307301   ROM_LOAD16_BYTE( "770c08-h.c11",    0x0e0001, 0x010000, CRC(d97d4b15) SHA1(e3d7d7adeec8c8c808acb9f84641fd3a6bf249be) )
308302
309   ROM_REGION( 0x080000, "gfx3", 0 )   /* graphics (addressable by the main CPU) */
303   ROM_REGION( 0x080000, "k051316", 0 )
310304   ROM_LOAD( "770c06",     0x000000, 0x040000, CRC(d0c592ee) SHA1(c1be73dd259f2779d715659b177e47513776a0d4) )  /* zoom/rotate (F4) */
311305   ROM_LOAD( "770c07",     0x040000, 0x040000, CRC(0b399fb1) SHA1(fbe26f9aa9a655d08bebcdd79719d35134ca4dd5) )  /* zoom/rotate (H4) */
312306
r30806r30807
352346   ROM_LOAD( "770c09",     0x000000, 0x080000, CRC(1ab4a7ff) SHA1(fa007b41027f95d29d2a9f931a2fe235844db637) )  /* sprites (N4) */
353347   ROM_LOAD( "770c08",     0x080000, 0x080000, CRC(a8e80586) SHA1(0401f59baa691905287cef94427f39e0c3f0adc6) )  /* sprites (K4) */
354348
355   ROM_REGION( 0x080000, "gfx3", 0 )   /* graphics (addressable by the main CPU) */
349   ROM_REGION( 0x080000, "k051316", 0 )
356350   ROM_LOAD( "770c06",     0x000000, 0x040000, CRC(d0c592ee) SHA1(c1be73dd259f2779d715659b177e47513776a0d4) )  /* zoom/rotate (F4) */
357351   ROM_LOAD( "770c07",     0x040000, 0x040000, CRC(0b399fb1) SHA1(fbe26f9aa9a655d08bebcdd79719d35134ca4dd5) )  /* zoom/rotate (H4) */
358352
r30806r30807
388382   ROM_LOAD( "770c09",     0x000000, 0x080000, CRC(1ab4a7ff) SHA1(fa007b41027f95d29d2a9f931a2fe235844db637) )  /* sprites (N4) */
389383   ROM_LOAD( "770c08",     0x080000, 0x080000, CRC(a8e80586) SHA1(0401f59baa691905287cef94427f39e0c3f0adc6) )  /* sprites (K4) */
390384
391   ROM_REGION( 0x080000, "gfx3", 0 )   /* graphics (addressable by the main CPU) */
385   ROM_REGION( 0x080000, "k051316", 0 )
392386   ROM_LOAD( "770c06",     0x000000, 0x040000, CRC(d0c592ee) SHA1(c1be73dd259f2779d715659b177e47513776a0d4) )  /* zoom/rotate (F4) */
393387   ROM_LOAD( "770c07",     0x040000, 0x040000, CRC(0b399fb1) SHA1(fbe26f9aa9a655d08bebcdd79719d35134ca4dd5) )  /* zoom/rotate (H4) */
394388
trunk/src/mame/drivers/88games.c
r30806r30807
324324   _88games_sprite_callback
325325};
326326
327static const k051316_interface _88games_k051316_intf =
328{
329   "gfx3", 2,
330   4, FALSE, 0,
331   0, 0, 0,
332   _88games_zoom_callback
333};
334
335327static MACHINE_CONFIG_START( 88games, _88games_state )
336328
337329   /* basic machine hardware */
r30806r30807
366358   MCFG_K051960_ADD("k051960", _88games_k051960_intf)
367359   MCFG_K051960_GFXDECODE("gfxdecode")
368360   MCFG_K051960_PALETTE("palette")
369   MCFG_K051316_ADD("k051316", _88games_k051316_intf)
370   MCFG_K051316_GFXDECODE("gfxdecode")
371   MCFG_K051316_PALETTE("palette")
372361
362   MCFG_DEVICE_ADD("k051316", K051316, 0)
363   MCFG_GFX_PALETTE("palette")
364   MCFG_K051316_BPP(4)
365   MCFG_K051316_CB(_88games_state, zoom_callback)
366
373367   /* sound hardware */
374368   MCFG_SPEAKER_STANDARD_MONO("mono")
375369
r30806r30807
428422   ROM_LOAD16_BYTE( "861a06.d", 0x0e0000, 0x10000, CRC(bc70ab39) SHA1(a6fa0502ceb6862e7b1e4815326e268fd6511881) )
429423   ROM_LOAD16_BYTE( "861a06.h", 0x0e0001, 0x10000, CRC(d906b79b) SHA1(905814ce708d80fd4d1a398f60faa0bc680fccaf) )
430424
431   ROM_REGION( 0x040000, "gfx3", 0 ) /* graphics */
425   ROM_REGION( 0x040000, "k051316", 0 )
432426   ROM_LOAD( "861a04.a", 0x000000, 0x10000, CRC(092a8b15) SHA1(d98a81bfa4bba73805f0236f8a80da130fcb378d) ) /* zoom/rotate */
433427   ROM_LOAD( "861a04.b", 0x010000, 0x10000, CRC(75744b56) SHA1(5133d8f6622796ed6b9e6a0d0f1df28f00331fc7) )
434428   ROM_LOAD( "861a04.c", 0x020000, 0x10000, CRC(a00021c5) SHA1(f73f88af33387d73b4262e8652507e699926fabe) )
r30806r30807
482476   ROM_LOAD16_BYTE( "861a06.d", 0x0e0000, 0x10000, CRC(bc70ab39) SHA1(a6fa0502ceb6862e7b1e4815326e268fd6511881) )
483477   ROM_LOAD16_BYTE( "861a06.h", 0x0e0001, 0x10000, CRC(d906b79b) SHA1(905814ce708d80fd4d1a398f60faa0bc680fccaf) )
484478
485   ROM_REGION( 0x040000, "gfx3", 0 ) /* graphics */
479   ROM_REGION( 0x040000, "k051316", 0 )
486480   ROM_LOAD( "861a04.a", 0x000000, 0x10000, CRC(092a8b15) SHA1(d98a81bfa4bba73805f0236f8a80da130fcb378d) ) /* zoom/rotate */
487481   ROM_LOAD( "861a04.b", 0x010000, 0x10000, CRC(75744b56) SHA1(5133d8f6622796ed6b9e6a0d0f1df28f00331fc7) )
488482   ROM_LOAD( "861a04.c", 0x020000, 0x10000, CRC(a00021c5) SHA1(f73f88af33387d73b4262e8652507e699926fabe) )
r30806r30807
536530   ROM_LOAD16_BYTE( "861a06.d", 0x0e0000, 0x10000, CRC(bc70ab39) SHA1(a6fa0502ceb6862e7b1e4815326e268fd6511881) )
537531   ROM_LOAD16_BYTE( "861a06.h", 0x0e0001, 0x10000, CRC(d906b79b) SHA1(905814ce708d80fd4d1a398f60faa0bc680fccaf) )
538532
539   ROM_REGION( 0x040000, "gfx3", 0 ) /* graphics */
533   ROM_REGION( 0x040000, "k051316", 0 )
540534   ROM_LOAD( "861a04.a", 0x000000, 0x10000, CRC(092a8b15) SHA1(d98a81bfa4bba73805f0236f8a80da130fcb378d) ) /* zoom/rotate */
541535   ROM_LOAD( "861a04.b", 0x010000, 0x10000, CRC(75744b56) SHA1(5133d8f6622796ed6b9e6a0d0f1df28f00331fc7) )
542536   ROM_LOAD( "861a04.c", 0x020000, 0x10000, CRC(a00021c5) SHA1(f73f88af33387d73b4262e8652507e699926fabe) )
trunk/src/mame/drivers/overdriv.c
r30806r30807
269269   overdriv_sprite_callback
270270};
271271
272static const k051316_interface overdriv_k051316_intf_1 =
273{
274   "gfx2", 1,
275   4, TRUE, 0,
276   1, 14, -1,
277   overdriv_zoom_callback_0
278};
279
280static const k051316_interface overdriv_k051316_intf_2 =
281{
282   "gfx3", 2,
283   4, FALSE, 0,
284   0, 15, 1,
285   overdriv_zoom_callback_1
286};
287
288
289272void overdriv_state::machine_start()
290273{
291274   save_item(NAME(m_cpuB_ctrl));
r30806r30807
349332   MCFG_K053246_ADD("k053246", overdriv_k053246_intf)
350333   MCFG_K053246_GFXDECODE("gfxdecode")
351334   MCFG_K053246_PALETTE("palette")
352   MCFG_K051316_ADD("k051316_1", overdriv_k051316_intf_1)
353   MCFG_K051316_GFXDECODE("gfxdecode")
354   MCFG_K051316_PALETTE("palette")
355   MCFG_K051316_ADD("k051316_2", overdriv_k051316_intf_2)
356   MCFG_K051316_GFXDECODE("gfxdecode")
357   MCFG_K051316_PALETTE("palette")
335
336   MCFG_DEVICE_ADD("k051316_1", K051316, 0)
337   MCFG_GFX_PALETTE("palette")
338   MCFG_K051316_BPP(4)
339   MCFG_K051316_OFFSETS(14, -1)
340   MCFG_K051316_WRAP(1)
341   MCFG_K051316_SETUP_PENS(true, 0)
342   MCFG_K051316_CB(overdriv_state, zoom_callback_1)
343
344   MCFG_DEVICE_ADD("k051316_2", K051316, 0)
345   MCFG_GFX_PALETTE("palette")
346   MCFG_K051316_BPP(4)
347   MCFG_K051316_OFFSETS(15, 1)
348   MCFG_K051316_CB(overdriv_state, zoom_callback_2)
349
358350   MCFG_K053251_ADD("k053251")
359351   MCFG_K053250_ADD("k053250_1", "palette", "screen", 0, 0)
360352   MCFG_K053250_ADD("k053250_2", "palette", "screen", 0, 0)
r30806r30807
406398   ROM_LOAD64_WORD( "e14.r10",      0x000004, 0x100000, CRC(b5eca14b) SHA1(a1c5f5e9cd8bbcfc875e2acb33be024724da63aa) )
407399   ROM_LOAD64_WORD( "e15.r15",      0x000006, 0x100000, CRC(5d93e0c3) SHA1(d5cb7666c0c28fd465c860c7f9dbb18a7f739a93) )
408400
409   ROM_REGION( 0x020000, "gfx2", 0 )   /* graphics (addressable by the CPU) */
401   ROM_REGION( 0x020000, "k051316_1", 0 )
410402   ROM_LOAD( "e06.a21",      0x000000, 0x020000, CRC(14a085e6) SHA1(86dad6f223e13ff8af7075c3d99bb0a83784c384) )    /* zoom/rotate */
411403
412   ROM_REGION( 0x020000, "gfx3", 0 )   /* graphics (addressable by the CPU) */
404   ROM_REGION( 0x020000, "k051316_2", 0 )
413405   ROM_LOAD( "e07.c23",      0x000000, 0x020000, CRC(8a6ceab9) SHA1(1a52b7361f71a6126cd648a76af00223d5b25c7a) )    /* zoom/rotate */
414406
415   ROM_REGION( 0x0c0000, "k053250_1", 0 )  /* graphics (addressable by the CPU) */
407   ROM_REGION( 0x0c0000, "k053250_1", 0 )
416408   ROM_LOAD( "e18.p22",      0x000000, 0x040000, CRC(985a4a75) SHA1(b726166c295be6fbec38a9d11098cc4a4a5de456) )
417409   ROM_LOAD( "e19.r22",      0x040000, 0x040000, CRC(15c54ea2) SHA1(5b10bd28e48e51613359820ba8c75d4a91c2d322) )
418410   ROM_LOAD( "e20.s22",      0x080000, 0x040000, CRC(ea204acd) SHA1(52b8c30234eaefcba1074496028a4ac2bca48e95) )
419411
420   ROM_REGION( 0x080000, "k053250_2", 0 )  /* graphics (addressable by the CPU) */
412   ROM_REGION( 0x080000, "k053250_2", 0 )
421413   ROM_LOAD( "e17.p17",      0x000000, 0x040000, CRC(04c07248) SHA1(873445002cbf90c9fc5a35bf4a8f6c43193ee342) )
422414   ROM_LOAD( "e16.p12",      0x040000, 0x040000, CRC(9348dee1) SHA1(367193373e28962b5b0e54cc15d68ed88ab83f12) )
423415
trunk/src/mame/drivers/chqflag.c
r30806r30807
276276   chqflag_sprite_callback
277277};
278278
279static const k051316_interface chqflag_k051316_intf_1 =
280{
281   "gfx2", 1,
282   4, FALSE, 0,
283   0, 7, 0,
284   chqflag_zoom_callback_0
285};
286
287static const k051316_interface chqflag_k051316_intf_2 =
288{
289   "gfx3", 2,
290   8, TRUE, 0xc0,
291   1, 0, 0,
292   chqflag_zoom_callback_1
293};
294
295279void chqflag_state::machine_start()
296280{
297281   UINT8 *ROM = memregion("maincpu")->base();
r30806r30807
349333   MCFG_K051960_ADD("k051960", chqflag_k051960_intf)
350334   MCFG_K051960_GFXDECODE("gfxdecode")
351335   MCFG_K051960_PALETTE("palette")
352   MCFG_K051316_ADD("k051316_1", chqflag_k051316_intf_1)
353   MCFG_K051316_GFXDECODE("gfxdecode")
354   MCFG_K051316_PALETTE("palette")
355   MCFG_K051316_ADD("k051316_2", chqflag_k051316_intf_2)
356   MCFG_K051316_GFXDECODE("gfxdecode")
357   MCFG_K051316_PALETTE("palette")
336
337   MCFG_DEVICE_ADD("k051316_1", K051316, 0)
338   MCFG_GFX_PALETTE("palette")
339   MCFG_K051316_BPP(4)
340   MCFG_K051316_OFFSETS(7, 0)
341   MCFG_K051316_CB(chqflag_state, zoom_callback_1)
342
343   MCFG_DEVICE_ADD("k051316_2", K051316, 0)
344   MCFG_GFX_PALETTE("palette")
345   MCFG_K051316_BPP(8)
346   MCFG_K051316_SETUP_PENS(true, 0xc0)
347   MCFG_K051316_WRAP(1)
348   MCFG_K051316_CB(chqflag_state, zoom_callback_2)
349
358350   MCFG_K051733_ADD("k051733")
359351
360352   /* sound hardware */
r30806r30807
392384   ROM_LOAD( "717e04",     0x000000, 0x080000, CRC(1a50a1cc) SHA1(bc16fab84c637ed124e37b115ddc0149560b727d) )  /* sprites */
393385   ROM_LOAD( "717e05",     0x080000, 0x080000, CRC(46ccb506) SHA1(3ed1f54744fc5cdc0f48e42f250c366267a8199a) )  /* sprites */
394386
395   ROM_REGION( 0x020000, "gfx2", 0 )   /* graphics (addressable by the main CPU) */
387   ROM_REGION( 0x020000, "k051316_1", 0 )
396388   ROM_LOAD( "717e06",     0x000000, 0x020000, CRC(1ec26c7a) SHA1(05b5b522c5ebf5d0a71a7fc39ec9382008ef33c8) )  /* zoom/rotate (N16) */
397389
398   ROM_REGION( 0x100000, "gfx3", 0 )   /* graphics (addressable by the main CPU) */
390   ROM_REGION( 0x100000, "k051316_2", 0 )
399391   ROM_LOAD( "717e07",     0x000000, 0x040000, CRC(b9a565a8) SHA1(a11782f7336e5ad58a4c6ea81f2eeac35d5e7d0a) )  /* zoom/rotate (L20) */
400392   ROM_LOAD( "717e08",     0x040000, 0x040000, CRC(b68a212e) SHA1(b2bd121a43552c3ade528ac763a0df40c3e648e0) )  /* zoom/rotate (L22) */
401393   ROM_LOAD( "717e11",     0x080000, 0x040000, CRC(ebb171ec) SHA1(d65d4a6b169ce03e4427b2a397484634f938236b) )  /* zoom/rotate (N20) */
r30806r30807
422414   ROM_LOAD( "717e04",     0x000000, 0x080000, CRC(1a50a1cc) SHA1(bc16fab84c637ed124e37b115ddc0149560b727d) )  /* sprites */
423415   ROM_LOAD( "717e05",     0x080000, 0x080000, CRC(46ccb506) SHA1(3ed1f54744fc5cdc0f48e42f250c366267a8199a) )  /* sprites */
424416
425   ROM_REGION( 0x020000, "gfx2", 0 )   /* graphics (addressable by the main CPU) */
417   ROM_REGION( 0x020000, "k051316_1", 0 )
426418   ROM_LOAD( "717e06",     0x000000, 0x020000, CRC(1ec26c7a) SHA1(05b5b522c5ebf5d0a71a7fc39ec9382008ef33c8) )  /* zoom/rotate (N16) */
427419
428   ROM_REGION( 0x100000, "gfx3", 0 )   /* graphics (addressable by the main CPU) */
420   ROM_REGION( 0x100000, "k051316_2", 0 )
429421   ROM_LOAD( "717e07",     0x000000, 0x040000, CRC(b9a565a8) SHA1(a11782f7336e5ad58a4c6ea81f2eeac35d5e7d0a) )  /* zoom/rotate (L20) */
430422   ROM_LOAD( "717e08",     0x040000, 0x040000, CRC(b68a212e) SHA1(b2bd121a43552c3ade528ac763a0df40c3e648e0) )  /* zoom/rotate (L22) */
431423   ROM_LOAD( "717e11",     0x080000, 0x040000, CRC(ebb171ec) SHA1(d65d4a6b169ce03e4427b2a397484634f938236b) )  /* zoom/rotate (N20) */
trunk/src/mame/drivers/wecleman.c
r30806r30807
10921092   device.execute().set_input_line(M6809_FIRQ_LINE, HOLD_LINE);
10931093}
10941094
1095static const k051316_interface hotchase_k051316_intf_0 =
1096{
1097   "gfx2", 1,
1098   4, FALSE, 0,
1099   1, -0xb0 / 2, -16,
1100   hotchase_zoom_callback_0
1101};
1102
1103static const k051316_interface hotchase_k051316_intf_1 =
1104{
1105   "gfx3", 2,
1106   4, FALSE, 0,
1107   0, -0xb0 / 2, -16,
1108   hotchase_zoom_callback_1
1109};
1110
11111095MACHINE_RESET_MEMBER(wecleman_state,hotchase)
11121096{
11131097   int i;
r30806r30807
11521136   MCFG_GFXDECODE_ADD("gfxdecode", "palette", hotchase)
11531137   MCFG_PALETTE_ADD("palette", 2048*2)
11541138
1155   MCFG_VIDEO_START_OVERRIDE(wecleman_state,hotchase)
1139   MCFG_VIDEO_START_OVERRIDE(wecleman_state, hotchase)
11561140
1157   MCFG_K051316_ADD("k051316_1", hotchase_k051316_intf_0)
1158   MCFG_K051316_GFXDECODE("gfxdecode")
1159   MCFG_K051316_PALETTE("palette")
1141   MCFG_DEVICE_ADD("k051316_1", K051316, 0)
1142   MCFG_GFX_PALETTE("palette")
1143   MCFG_K051316_BPP(4)
1144   MCFG_K051316_OFFSETS(-0xb0 / 2, -16)
1145   MCFG_K051316_WRAP(1)
1146   MCFG_K051316_CB(wecleman_state, hotchase_zoom_callback_1)
11601147
1161   MCFG_K051316_ADD("k051316_2", hotchase_k051316_intf_1)
1162   MCFG_K051316_GFXDECODE("gfxdecode")
1163   MCFG_K051316_PALETTE("palette")
1148   MCFG_DEVICE_ADD("k051316_2", K051316, 0)
1149   MCFG_GFX_PALETTE("palette")
1150   MCFG_K051316_BPP(4)
1151   MCFG_K051316_OFFSETS(-0xb0 / 2, -16)
1152   MCFG_K051316_CB(wecleman_state, hotchase_zoom_callback_2)
11641153
11651154   /* sound hardware */
11661155   MCFG_SPEAKER_STANDARD_MONO("mono")
r30806r30807
13811370   ROM_LOAD16_WORD_SWAP( "763e19", 0x200000, 0x080000, CRC(a2622e56) SHA1(0a0ed9713882b987518e6f06a02dba417c1f4f32) )
13821371   ROM_LOAD16_WORD_SWAP( "763e22", 0x280000, 0x080000, CRC(967c49d1) SHA1(01979d216a9fd8085298445ac5f7870d1598db74) )
13831372
1384   ROM_REGION( 0x20000, "gfx2", 0 )    /* bg */
1373   ROM_REGION( 0x20000, "k051316_1", 0 )    /* bg */
13851374   ROM_LOAD( "763e14", 0x000000, 0x020000, CRC(60392aa1) SHA1(8499eb40a246587e24f6fd00af2eaa6d75ee6363) )
13861375
1387   ROM_REGION( 0x10000, "gfx3", 0 )    /* fg (patched) */
1376   ROM_REGION( 0x10000, "k051316_2", 0 )    /* fg (patched) */
13881377   ROM_LOAD( "763a13", 0x000000, 0x010000, CRC(8bed8e0d) SHA1(ccff330abc23fe499e76c16cab5783c3daf155dd) )
13891378
13901379   ROM_REGION( 0x20000, "gfx4", 0 )    /* road */
r30806r30807
14711460   hotchase_sprite_decode(3,0x80000*2);  // num banks, bank len
14721461
14731462   /* Let's copy the second half of the fg layer gfx (charset) over the first */
1474   RAM = memregion("gfx3")->base();
1463   RAM = memregion("k051316_2")->base();
14751464   memcpy(&RAM[0], &RAM[0x10000/2], 0x10000/2);
14761465
14771466   m_spr_color_offs = 0;
trunk/src/mame/drivers/tail2nos.c
r30806r30807
180180   m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
181181}
182182
183static const k051316_interface tail2nos_k051316_intf =
184{
185   "gfx3", 2,
186   -4, TRUE, 0,
187   1, -89, -14,
188   tail2nos_zoom_callback
189};
190
191183void tail2nos_state::machine_start()
192184{
193185   UINT8 *ROM = memregion("audiocpu")->base();
r30806r30807
236228   MCFG_PALETTE_ADD("palette", 2048)
237229   MCFG_PALETTE_FORMAT(xRRRRRGGGGGBBBBB)
238230
231   MCFG_DEVICE_ADD("k051316", K051316, 0)
232   MCFG_GFX_PALETTE("palette")
233   MCFG_K051316_BPP(-4)
234   MCFG_K051316_OFFSETS(-89, -14)
235   MCFG_K051316_SETUP_PENS(true, 0)
236   MCFG_K051316_WRAP(1)
237   MCFG_K051316_CB(tail2nos_state, zoom_callback)
239238
240   MCFG_K051316_ADD("k051316", tail2nos_k051316_intf)
241   MCFG_K051316_GFXDECODE("gfxdecode")
242   MCFG_K051316_PALETTE("palette")
243
244239   /* sound hardware */
245240   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
246241
r30806r30807
283278   ROM_LOAD( "oj1",          0x000000, 0x40000, CRC(39c36b35) SHA1(a97480696bf6d81bf415737e03cc5324d439ab84) )
284279   ROM_LOAD( "oj2",          0x040000, 0x40000, CRC(77ccaea2) SHA1(e38175859c75c6d0f2f01752fad6e167608c4662) )
285280
286   ROM_REGION( 0x20000, "gfx3", ROMREGION_ERASE00 )    /* gfx data for the 051316 */
281   ROM_REGION( 0x20000, "k051316", ROMREGION_ERASE00 )
287282   /* RAM, not ROM - handled at run time */
288283
289284   ROM_REGION( 0x20000, "ymsnd", 0 ) /* sound samples */
r30806r30807
318313   ROM_LOAD( "oj1",          0x000000, 0x40000, CRC(39c36b35) SHA1(a97480696bf6d81bf415737e03cc5324d439ab84) )
319314   ROM_LOAD( "oj2",          0x040000, 0x40000, CRC(77ccaea2) SHA1(e38175859c75c6d0f2f01752fad6e167608c4662) )
320315
321   ROM_REGION( 0x20000, "gfx3", ROMREGION_ERASE00 )    /* gfx data for the 051316 */
316   ROM_REGION( 0x20000, "k051316", ROMREGION_ERASE00 )
322317   /* RAM, not ROM - handled at run time */
323318
324319   ROM_REGION( 0x20000, "ymsnd", 0 ) /* sound samples */
trunk/src/mame/drivers/ultraman.c
r30806r30807
164164   ultraman_sprite_callback
165165};
166166
167static const k051316_interface ultraman_k051316_intf_0 =
168{
169   "gfx2", 1,
170   4, FALSE, 0,
171   0, 8, 0,
172   ultraman_zoom_callback_0
173};
174
175static const k051316_interface ultraman_k051316_intf_1 =
176{
177   "gfx3", 2,
178   4, FALSE, 0,
179   0, 8, 0,
180   ultraman_zoom_callback_1
181};
182
183static const k051316_interface ultraman_k051316_intf_2 =
184{
185   "gfx4", 3,
186   4, TRUE, 0,
187   0, 8, 0,
188   ultraman_zoom_callback_2
189};
190
191167void ultraman_state::machine_start()
192168{
193169   save_item(NAME(m_bank0));
r30806r30807
235211   MCFG_K051960_GFXDECODE("gfxdecode")
236212   MCFG_K051960_PALETTE("palette")
237213
238   MCFG_K051316_ADD("k051316_1", ultraman_k051316_intf_0)
239   MCFG_K051316_GFXDECODE("gfxdecode")
240   MCFG_K051316_PALETTE("palette")
214   MCFG_DEVICE_ADD("k051316_1", K051316, 0)
215   MCFG_GFX_PALETTE("palette")
216   MCFG_K051316_BPP(4)
217   MCFG_K051316_OFFSETS(8, 0)
218   MCFG_K051316_CB(ultraman_state, zoom_callback_1)
241219
242   MCFG_K051316_ADD("k051316_2", ultraman_k051316_intf_1)
243   MCFG_K051316_GFXDECODE("gfxdecode")
244   MCFG_K051316_PALETTE("palette")
220   MCFG_DEVICE_ADD("k051316_2", K051316, 0)
221   MCFG_GFX_PALETTE("palette")
222   MCFG_K051316_BPP(4)
223   MCFG_K051316_OFFSETS(8, 0)
224   MCFG_K051316_CB(ultraman_state, zoom_callback_2)
245225
246   MCFG_K051316_ADD("k051316_3", ultraman_k051316_intf_2)
247   MCFG_K051316_GFXDECODE("gfxdecode")
248   MCFG_K051316_PALETTE("palette")
226   MCFG_DEVICE_ADD("k051316_3", K051316, 0)
227   MCFG_GFX_PALETTE("palette")
228   MCFG_K051316_BPP(4)
229   MCFG_K051316_SETUP_PENS(true, 0)
230   MCFG_K051316_OFFSETS(8, 0)
231   MCFG_K051316_CB(ultraman_state, zoom_callback_3)
249232
250233   /* sound hardware */
251234   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
r30806r30807
273256   ROM_LOAD( "910-a19.l04",    0x000000, 0x080000, CRC(2dc9ffdc) SHA1(aa34247c82d48c8d13f5209be292127938a4a682) )
274257   ROM_LOAD( "910-a20.l01",    0x080000, 0x080000, CRC(a4298dce) SHA1(62faf8f0c0490a9562b75ce27909fbee6e84b22a) )
275258
276   ROM_REGION( 0x080000, "gfx2", 0 )   /* BG 1  */
259   ROM_REGION( 0x080000, "k051316_1", 0 )
277260   ROM_LOAD( "910-a07.j15",    0x000000, 0x020000, CRC(8b43a64e) SHA1(e373d0fd88b59fb01782dfaeccb1e13673a35766) )
278261   ROM_LOAD( "910-a08.j16",    0x020000, 0x020000, CRC(c3829826) SHA1(0d383a7afac2a3b5da692375a2b2cd675848861a) )
279262   ROM_LOAD( "910-a09.j18",    0x040000, 0x020000, CRC(ee10b519) SHA1(a34bd7d89bb8a19af7252ed96ffce212788c586b) )
280263   ROM_LOAD( "910-a10.j19",    0x060000, 0x020000, CRC(cffbb0c3) SHA1(e9ebe350289f0436de10a6289b04eed3b6a9f98e) )
281264
282   ROM_REGION( 0x080000, "gfx3", 0 ) /* BG 2 */
265   ROM_REGION( 0x080000, "k051316_2", 0 )
283266   ROM_LOAD( "910-a11.l15",    0x000000, 0x020000, CRC(17a5581d) SHA1(aca5d465a0e181a266a165aeb0112a4696b0cd18) )
284267   ROM_LOAD( "910-a12.l16",    0x020000, 0x020000, CRC(39763fb5) SHA1(0e1795af4bae545a0a2be265398837fb2d623232) )
285268   ROM_LOAD( "910-a13.l18",    0x040000, 0x020000, CRC(66b25a4f) SHA1(954552b005582c90d570ae32c715108ec4b088f1) )
286269   ROM_LOAD( "910-a14.l19",    0x060000, 0x020000, CRC(09fbd412) SHA1(d11587db7b03f3a75ad8964523bb34f4453bbaca) )
287270
288   ROM_REGION( 0x080000, "gfx4", 0 ) /* BG 3 */
271   ROM_REGION( 0x080000, "k051316_3", 0 )
289272   ROM_LOAD( "910-a15.m15",    0x000000, 0x020000, CRC(6d5bfbb7) SHA1(e98c594446b506cb32cc5cc958d2f0de22ebed5e) )
290273   ROM_LOAD( "910-a16.m16",    0x020000, 0x020000, CRC(5f6f8c3d) SHA1(e365836d2263f36aa4602f0618bf7ce693d2e106) )
291274   ROM_LOAD( "910-a17.m18",    0x040000, 0x020000, CRC(1f3ec4ff) SHA1(875f53516f47decc4ce31154cf4694c8429ee4ea) )
trunk/src/mame/drivers/bottom9.c
r30806r30807
287287   bottom9_sprite_callback
288288};
289289
290static const k051316_interface bottom9_k051316_intf =
291{
292   "gfx3", 2,
293   4, FALSE, 0,
294   0, 0, 0,
295   bottom9_zoom_callback
296};
297
298290void bottom9_state::machine_start()
299291{
300292   UINT8 *ROM = memregion("maincpu")->base();
r30806r30807
347339   MCFG_K051960_ADD("k051960", bottom9_k051960_intf)
348340   MCFG_K051960_GFXDECODE("gfxdecode")
349341   MCFG_K051960_PALETTE("palette")
350   MCFG_K051316_ADD("k051316", bottom9_k051316_intf)
351   MCFG_K051316_GFXDECODE("gfxdecode")
352   MCFG_K051316_PALETTE("palette")
353342
343   MCFG_DEVICE_ADD("k051316", K051316, 0)
344   MCFG_GFX_PALETTE("palette")
345   MCFG_K051316_BPP(4)
346   MCFG_K051316_CB(bottom9_state, zoom_callback)
347
354348   /* sound hardware */
355349   MCFG_SPEAKER_STANDARD_MONO("mono")
356350
r30806r30807
409403   ROM_LOAD16_BYTE( "891e05h", 0xe0000, 0x10000, CRC(b0aba53b) SHA1(e76b345ae354533959ed06217b91ce3c93b22a23) )
410404   ROM_LOAD16_BYTE( "891e05d", 0xe0001, 0x10000, CRC(f6d3f886) SHA1(b8bdcc9470aa93849b8c8a1f03971281cacc6d44) )
411405
412   ROM_REGION( 0x020000, "gfx3", 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */
406   ROM_REGION( 0x020000, "k051316", 0 )
413407   ROM_LOAD( "891e07a",      0x00000, 0x10000, CRC(b8d8b939) SHA1(ee91fb46d70db2d17f5909c4ea7ee1cf2d317d10) )  /* zoom/rotate */
414408   ROM_LOAD( "891e07b",      0x10000, 0x10000, CRC(83b2f92d) SHA1(c4972018e1f8109656784fae3e023a5522622c4b) )
415409
r30806r30807
466460   ROM_LOAD16_BYTE( "891e05h", 0xe0000, 0x10000, CRC(b0aba53b) SHA1(e76b345ae354533959ed06217b91ce3c93b22a23) )
467461   ROM_LOAD16_BYTE( "891e05d", 0xe0001, 0x10000, CRC(f6d3f886) SHA1(b8bdcc9470aa93849b8c8a1f03971281cacc6d44) )
468462
469   ROM_REGION( 0x020000, "gfx3", 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */
463   ROM_REGION( 0x020000, "k051316", 0 )
470464   ROM_LOAD( "891e07a",      0x00000, 0x10000, CRC(b8d8b939) SHA1(ee91fb46d70db2d17f5909c4ea7ee1cf2d317d10) )  /* zoom/rotate */
471465   ROM_LOAD( "891e07b",      0x10000, 0x10000, CRC(83b2f92d) SHA1(c4972018e1f8109656784fae3e023a5522622c4b) )
472466
r30806r30807
523517   ROM_LOAD16_BYTE( "891e05h", 0xe0000, 0x10000, CRC(b0aba53b) SHA1(e76b345ae354533959ed06217b91ce3c93b22a23) )
524518   ROM_LOAD16_BYTE( "891e05d", 0xe0001, 0x10000, CRC(f6d3f886) SHA1(b8bdcc9470aa93849b8c8a1f03971281cacc6d44) )
525519
526   ROM_REGION( 0x020000, "gfx3", 0 ) /* graphics ( dont dispose as the program can read them, 0 ) */
520   ROM_REGION( 0x020000, "k051316", 0 )
527521   ROM_LOAD( "891e07a",      0x00000, 0x10000, CRC(b8d8b939) SHA1(ee91fb46d70db2d17f5909c4ea7ee1cf2d317d10) )  /* zoom/rotate */
528522   ROM_LOAD( "891e07b",      0x10000, 0x10000, CRC(83b2f92d) SHA1(c4972018e1f8109656784fae3e023a5522622c4b) )
529523

Previous 199869 Revisions Next


© 1997-2024 The MAME Team