Previous 199869 Revisions Next

r18888 Wednesday 7th November, 2012 at 08:37:43 UTC by Miodrag Milanović
continued refactoring some video system sprite rendering, bringing code closer together for the 2nd sprite types by Haze (no whatsnew)
[src/mame/drivers]aerofgt.c f1gp.c
[src/mame/includes]aerofgt.h f1gp.h
[src/mame/video]aerofgt.c f1gp.c vsystem_spr2.c vsystem_spr2.h

trunk/src/mame/video/vsystem_spr2.c
r18887r18888
2525vsystem_spr2_device::vsystem_spr2_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
2626   : device_t(mconfig, VSYSTEM_SPR2, "vsystem_spr2_device", tag, owner, clock)
2727{
28   m_newtilecb =  vsystem_tile2_indirection_delegate(FUNC(vsystem_spr2_device::tile_callback_noindirect), this);
2829}
2930
31void vsystem_spr2_device::set_tile_indirect_cb(device_t &device,vsystem_tile2_indirection_delegate newtilecb)
32{
33   vsystem_spr2_device &dev = downcast<vsystem_spr2_device &>(device);
34   dev.m_newtilecb = newtilecb;
35}
3036
37UINT32 vsystem_spr2_device::tile_callback_noindirect(UINT32 tile)
38{
39   return tile;
40}
3141
42
3243void vsystem_spr2_device::device_start()
3344{
34
45   // bind our handler
46   m_newtilecb.bind_relative_to(*owner());
3547}
3648
3749void vsystem_spr2_device::device_reset()
r18887r18888
6678   return 1;
6779}
6880
81void vsystem_spr2_device::handle_xsize_map_inc(void)
82{
83   if (curr_sprite.xsize == 2) curr_sprite.map += 1;
84   if (curr_sprite.xsize == 4) curr_sprite.map += 3;
85   if (curr_sprite.xsize == 5) curr_sprite.map += 2;
86   if (curr_sprite.xsize == 6) curr_sprite.map += 1;
87}
6988
70
7189template<class _BitmapClass>
72void vsystem_spr2_device::turbofrc_draw_sprites_common( UINT16* spriteram3,  int spriteram3_bytes, UINT16* spriteram1, int spriteram1_bytes, int sprite_gfx, int spritepalettebank, running_machine &machine, _BitmapClass &bitmap, const rectangle &cliprect, int chip_disabled_pri )
90void vsystem_spr2_device::turbofrc_draw_sprites_common( UINT16* spriteram3,  int spriteram3_bytes, int sprite_gfx, int spritepalettebank, running_machine &machine, _BitmapClass &bitmap, const rectangle &cliprect, int chip_disabled_pri )
7391{
7492   int attr_start, base, first;
7593   base = 0;//chip * 0x0200;
r18887r18888
121139            else
122140               sx = ((curr_sprite.ox + curr_sprite.zoomx * x / 2 + 16) & 0x1ff) - 16;
123141
124            curr = spriteram1[curr_sprite.map % (spriteram1_bytes/2)];
142            curr = m_newtilecb(curr_sprite.map++);
125143
126144            pdrawgfxzoom_transpen(bitmap,cliprect,machine.gfx[sprite_gfx],
127145                      curr,
r18887r18888
130148                      sx,sy,
131149                      curr_sprite.zoomx << 11, curr_sprite.zoomy << 11,
132150                      machine.priority_bitmap,curr_sprite.pri ? 0 : 2,15);
133            curr_sprite.map++;
134151         }
135
136         if (curr_sprite.xsize == 2) curr_sprite.map += 1;
137         if (curr_sprite.xsize == 4) curr_sprite.map += 3;
138         if (curr_sprite.xsize == 5) curr_sprite.map += 2;
139         if (curr_sprite.xsize == 6) curr_sprite.map += 1;
152         handle_xsize_map_inc();
140153      }
141154   }
142155}
143156
144void vsystem_spr2_device::turbofrc_draw_sprites( UINT16* spriteram3,  int spriteram3_bytes, UINT16* spriteram1, int spriteram1_bytes, int sprite_gfx, int spritepalettebank, running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int chip_disabled_pri )
145{ turbofrc_draw_sprites_common( spriteram3, spriteram3_bytes, spriteram1, spriteram1_bytes, sprite_gfx, spritepalettebank, machine, bitmap, cliprect, chip_disabled_pri ); }
157void vsystem_spr2_device::turbofrc_draw_sprites( UINT16* spriteram3,  int spriteram3_bytes, int sprite_gfx, int spritepalettebank, running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int chip_disabled_pri )
158{ turbofrc_draw_sprites_common( spriteram3, spriteram3_bytes, sprite_gfx, spritepalettebank, machine, bitmap, cliprect, chip_disabled_pri ); }
146159
147void vsystem_spr2_device::turbofrc_draw_sprites( UINT16* spriteram3,  int spriteram3_bytes, UINT16* spriteram1, int spriteram1_bytes, int sprite_gfx, int spritepalettebank, running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, int chip_disabled_pri )
148{ turbofrc_draw_sprites_common( spriteram3, spriteram3_bytes, spriteram1, spriteram1_bytes, sprite_gfx, spritepalettebank, machine, bitmap, cliprect, chip_disabled_pri ); }
160void vsystem_spr2_device::turbofrc_draw_sprites( UINT16* spriteram3,  int spriteram3_bytes, int sprite_gfx, int spritepalettebank, running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, int chip_disabled_pri )
161{ turbofrc_draw_sprites_common( spriteram3, spriteram3_bytes, sprite_gfx, spritepalettebank, machine, bitmap, cliprect, chip_disabled_pri ); }
149162
150163
151164template<class _BitmapClass>
152void vsystem_spr2_device::spinlbrk_draw_sprites_common( UINT16* spriteram3,  int spriteram3_bytes, UINT16* spriteram1, int spriteram1_bytes, int sprite_gfx, int spritepalettebank, running_machine &machine, _BitmapClass &bitmap, const rectangle &cliprect, int chip_disabled_pri )
165void vsystem_spr2_device::spinlbrk_draw_sprites_common( UINT16* spriteram3,  int spriteram3_bytes, int sprite_gfx, int spritepalettebank, running_machine &machine, _BitmapClass &bitmap, const rectangle &cliprect, int chip_disabled_pri )
153166{
154167   int attr_start, base, first;
155168   base = 0;//chip * 0x0200;
r18887r18888
199212            else
200213               sx = ((curr_sprite.ox + curr_sprite.zoomx * x / 2 + 16) & 0x1ff) - 16;
201214
202            curr = spriteram1[curr_sprite.map % (spriteram1_bytes/2)];
215            curr = m_newtilecb(curr_sprite.map++);
203216
204217            pdrawgfxzoom_transpen(bitmap,cliprect,machine.gfx[sprite_gfx],
205218                      curr,
r18887r18888
208221                      sx,sy,
209222                      curr_sprite.zoomx << 11, curr_sprite.zoomy << 11,
210223                      machine.priority_bitmap,curr_sprite.pri ? 2 : 0,15);
211            curr_sprite.map++;
212224         }
213
214         if (curr_sprite.xsize == 2) curr_sprite.map += 1;
215         if (curr_sprite.xsize == 4) curr_sprite.map += 3;
216         if (curr_sprite.xsize == 5) curr_sprite.map += 2;
217         if (curr_sprite.xsize == 6) curr_sprite.map += 1;
225         handle_xsize_map_inc();
218226      }
219227   }
220228}
221229
222void vsystem_spr2_device::spinlbrk_draw_sprites( UINT16* spriteram3,  int spriteram3_bytes, UINT16* spriteram1, int spriteram1_bytes, int sprite_gfx, int spritepalettebank, running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int chip_disabled_pri )
223{ spinlbrk_draw_sprites_common( spriteram3, spriteram3_bytes, spriteram1, spriteram1_bytes, sprite_gfx, spritepalettebank, machine, bitmap, cliprect, chip_disabled_pri ); }
230void vsystem_spr2_device::spinlbrk_draw_sprites( UINT16* spriteram3,  int spriteram3_bytes, int sprite_gfx, int spritepalettebank, running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int chip_disabled_pri )
231{ spinlbrk_draw_sprites_common( spriteram3, spriteram3_bytes, sprite_gfx, spritepalettebank, machine, bitmap, cliprect, chip_disabled_pri ); }
224232
225void vsystem_spr2_device::spinlbrk_draw_sprites( UINT16* spriteram3,  int spriteram3_bytes, UINT16* spriteram1, int spriteram1_bytes, int sprite_gfx, int spritepalettebank, running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, int chip_disabled_pri )
226{ spinlbrk_draw_sprites_common( spriteram3, spriteram3_bytes, spriteram1, spriteram1_bytes, sprite_gfx, spritepalettebank, machine, bitmap, cliprect, chip_disabled_pri ); }
233void vsystem_spr2_device::spinlbrk_draw_sprites( UINT16* spriteram3,  int spriteram3_bytes, int sprite_gfx, int spritepalettebank, running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, int chip_disabled_pri )
234{ spinlbrk_draw_sprites_common( spriteram3, spriteram3_bytes, sprite_gfx, spritepalettebank, machine, bitmap, cliprect, chip_disabled_pri ); }
227235
228236
229237
230// like above but no secondary indirection?
238
231239void vsystem_spr2_device::welltris_draw_sprites( UINT16* spriteram, int spritepalettebank, running_machine &machine, bitmap_ind16 &bitmap,const rectangle &cliprect)
232240{
233241   static const UINT8 zoomtable[16] = { 0,7,14,20,25,30,34,38,42,46,49,52,54,57,59,61 };
r18887r18888
241249         continue;
242250
243251      curr_sprite.map&=0x1fff;
244      curr_sprite.ysize++;
245      curr_sprite.xsize++;
246252      curr_sprite.color += (0x10 * spritepalettebank);
247253
248      int zoomed = (curr_sprite.zoomx | curr_sprite.zoomy);
249254      int xt, yt;
250255
251256
r18887r18888
259264
260265      /* normal case */
261266      if (!curr_sprite.flipx && !curr_sprite.flipy) {
262         for (yt = 0; yt < curr_sprite.ysize; yt++) {
263            for (xt = 0; xt < curr_sprite.xsize; xt++, curr_sprite.map++) {
264               if (!zoomed)
265                  drawgfx_transpen(bitmap, cliprect, machine.gfx[1], curr_sprite.map, curr_sprite.color, 0, 0,
266                        curr_sprite.ox + xt * 16, curr_sprite.oy + yt * 16, 15);
267               else
268                  drawgfxzoom_transpen(bitmap, cliprect, machine.gfx[1], curr_sprite.map, curr_sprite.color, 0, 0,
269                        curr_sprite.ox + xt * curr_sprite.zoomx, curr_sprite.oy + yt * curr_sprite.zoomy,
270                        0x1000 * curr_sprite.zoomx, 0x1000 * curr_sprite.zoomy, 15);
267         for (yt = 0; yt <= curr_sprite.ysize; yt++) {
268            for (xt = 0; xt <= curr_sprite.xsize; xt++)
269            {
270               int curr = m_newtilecb(curr_sprite.map++);
271
272               drawgfxzoom_transpen(bitmap, cliprect, machine.gfx[1], curr, curr_sprite.color, 0, 0,
273                     curr_sprite.ox + xt * curr_sprite.zoomx, curr_sprite.oy + yt * curr_sprite.zoomy,
274                     0x1000 * curr_sprite.zoomx, 0x1000 * curr_sprite.zoomy, 15);
271275            }
272            if (curr_sprite.xsize == 3) curr_sprite.map += 1;
273            if (curr_sprite.xsize == 5) curr_sprite.map += 3;
274            if (curr_sprite.xsize == 6) curr_sprite.map += 2;
275            if (curr_sprite.xsize == 7) curr_sprite.map += 1;
276            handle_xsize_map_inc();
276277         }
277278      }
278279
279280      /* curr_sprite.flipxped case */
280281      else if (curr_sprite.flipx && !curr_sprite.flipy) {
281         for (yt = 0; yt < curr_sprite.ysize; yt++) {
282            for (xt = 0; xt < curr_sprite.xsize; xt++, curr_sprite.map++) {
283               if (!zoomed)
284                  drawgfx_transpen(bitmap, cliprect, machine.gfx[1], curr_sprite.map, curr_sprite.color, 1, 0,
285                        curr_sprite.ox + (curr_sprite.xsize - 1 - xt) * 16, curr_sprite.oy + yt * 16, 15);
286               else
287                  drawgfxzoom_transpen(bitmap, cliprect, machine.gfx[1], curr_sprite.map, curr_sprite.color, 1, 0,
288                        curr_sprite.ox + (curr_sprite.xsize - 1 - xt) * curr_sprite.zoomx, curr_sprite.oy + yt * curr_sprite.zoomy,
289                        0x1000 * curr_sprite.zoomx, 0x1000 * curr_sprite.zoomy, 15);
282         for (yt = 0; yt <= curr_sprite.ysize; yt++) {
283            for (xt = 0; xt <= curr_sprite.xsize; xt++)
284            {
285               int curr = m_newtilecb(curr_sprite.map++);
286   
287               drawgfxzoom_transpen(bitmap, cliprect, machine.gfx[1], curr, curr_sprite.color, 1, 0,
288                     curr_sprite.ox + (curr_sprite.xsize - xt) * curr_sprite.zoomx, curr_sprite.oy + yt * curr_sprite.zoomy,
289                     0x1000 * curr_sprite.zoomx, 0x1000 * curr_sprite.zoomy, 15);
290290            }
291            if (curr_sprite.xsize == 3) curr_sprite.map += 1;
292            if (curr_sprite.xsize == 5) curr_sprite.map += 3;
293            if (curr_sprite.xsize == 6) curr_sprite.map += 2;
294            if (curr_sprite.xsize == 7) curr_sprite.map += 1;
291            handle_xsize_map_inc();
295292         }
296293      }
297294
298295      /* curr_sprite.flipyped case */
299296      else if (!curr_sprite.flipx && curr_sprite.flipy) {
300         for (yt = 0; yt < curr_sprite.ysize; yt++) {
301            for (xt = 0; xt < curr_sprite.xsize; xt++, curr_sprite.map++) {
302               if (!zoomed)
303                  drawgfx_transpen(bitmap, cliprect, machine.gfx[1], curr_sprite.map, curr_sprite.color, 0, 1,
304                        curr_sprite.ox + xt * 16, curr_sprite.oy + (curr_sprite.ysize - 1 - yt) * 16, 15);
305               else
306                  drawgfxzoom_transpen(bitmap, cliprect, machine.gfx[1], curr_sprite.map, curr_sprite.color, 0, 1,
307                        curr_sprite.ox + xt * curr_sprite.zoomx, curr_sprite.oy + (curr_sprite.ysize - 1 - yt) * curr_sprite.zoomy,
308                        0x1000 * curr_sprite.zoomx, 0x1000 * curr_sprite.zoomy, 15);
297         for (yt = 0; yt <= curr_sprite.ysize; yt++) {
298            for (xt = 0; xt <= curr_sprite.xsize; xt++)
299            {
300               int curr = m_newtilecb(curr_sprite.map++);
301
302               drawgfxzoom_transpen(bitmap, cliprect, machine.gfx[1], curr, curr_sprite.color, 0, 1,
303                     curr_sprite.ox + xt * curr_sprite.zoomx, curr_sprite.oy + (curr_sprite.ysize - yt) * curr_sprite.zoomy,
304                     0x1000 * curr_sprite.zoomx, 0x1000 * curr_sprite.zoomy, 15);
309305            }
310            if (curr_sprite.xsize == 3) curr_sprite.map += 1;
311            if (curr_sprite.xsize == 5) curr_sprite.map += 3;
312            if (curr_sprite.xsize == 6) curr_sprite.map += 2;
313            if (curr_sprite.xsize == 7) curr_sprite.map += 1;
306            handle_xsize_map_inc();
314307         }
315308      }
316309
317310      /* x & curr_sprite.flipyped case */
318311      else {
319         for (yt = 0; yt < curr_sprite.ysize; yt++) {
320            for (xt = 0; xt < curr_sprite.xsize; xt++, curr_sprite.map++) {
321               if (!zoomed)
322                  drawgfx_transpen(bitmap, cliprect, machine.gfx[1], curr_sprite.map, curr_sprite.color, 1, 1,
323                        curr_sprite.ox + (curr_sprite.xsize - 1 - xt) * 16, curr_sprite.oy + (curr_sprite.ysize - 1 - yt) * 16, 15);
324               else
325                  drawgfxzoom_transpen(bitmap, cliprect, machine.gfx[1], curr_sprite.map, curr_sprite.color, 1, 1,
326                        curr_sprite.ox + (curr_sprite.xsize - 1 - xt) * curr_sprite.zoomx, curr_sprite.oy + (curr_sprite.ysize - 1 - yt) * curr_sprite.zoomy,
327                        0x1000 * curr_sprite.zoomx, 0x1000 * curr_sprite.zoomy, 15);
312         for (yt = 0; yt <= curr_sprite.ysize; yt++) {
313            for (xt = 0; xt <= curr_sprite.xsize; xt++)
314            {
315               int curr = m_newtilecb(curr_sprite.map++);
316
317               drawgfxzoom_transpen(bitmap, cliprect, machine.gfx[1], curr, curr_sprite.color, 1, 1,
318                     curr_sprite.ox + (curr_sprite.xsize - xt) * curr_sprite.zoomx, curr_sprite.oy + (curr_sprite.ysize - yt) * curr_sprite.zoomy,
319                     0x1000 * curr_sprite.zoomx, 0x1000 * curr_sprite.zoomy, 15);
328320            }
329            if (curr_sprite.xsize == 3) curr_sprite.map += 1;
330            if (curr_sprite.xsize == 5) curr_sprite.map += 3;
331            if (curr_sprite.xsize == 6) curr_sprite.map += 2;
332            if (curr_sprite.xsize == 7) curr_sprite.map += 1;
321            handle_xsize_map_inc();
333322         }
334323      }
335324   }
r18887r18888
337326
338327
339328
340void vsystem_spr2_device::f1gp_draw_sprites( int gfxrgn, UINT16* sprvram, UINT16* sprcgram, int sprcgram_bytes, running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int primask )
329void vsystem_spr2_device::f1gp_draw_sprites( int gfxrgn, UINT16* sprvram, running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int primask )
341330{
342331   int attr_start, first;
343332   UINT16 *spram = sprvram;
r18887r18888
372361            if (curr_sprite.flipx) sx = ((curr_sprite.ox + curr_sprite.zoomx * (curr_sprite.xsize - x) + 16) & 0x1ff) - 16;
373362            else sx = ((curr_sprite.ox + curr_sprite.zoomx * x + 16) & 0x1ff) - 16;
374363
375            curr = sprcgram[curr_sprite.map % (sprcgram_bytes / 2)];
364            curr = m_newtilecb(curr_sprite.map++);
376365
377366            pdrawgfxzoom_transpen(bitmap,cliprect,machine.gfx[gfxrgn],
378367                  curr,
r18887r18888
383372                  machine.priority_bitmap,
384373//                      pri ? 0 : 0x2);
385374                  primask,15);
386            curr_sprite.map++;
387375         }
388
389         if (curr_sprite.xsize == 2) curr_sprite.map += 1;
390         if (curr_sprite.xsize == 4) curr_sprite.map += 3;
391         if (curr_sprite.xsize == 5) curr_sprite.map += 2;
392         if (curr_sprite.xsize == 6) curr_sprite.map += 1;
376         handle_xsize_map_inc();
393377      }
394378   }
395379}
r18887r18888
414398         if (!get_sprite_attributes((UINT16*)&spriteram[offs]))
415399            continue;
416400
417         curr_sprite.ysize++;
418         curr_sprite.xsize++;
419401         curr_sprite.oy -= 6;
420402         curr_sprite.ox -= 13;
421403
r18887r18888
424406         int xt, yt;
425407
426408
427         int zoomed = (curr_sprite.zoomx | curr_sprite.zoomy);
428409
429410         /* compute the zoom factor -- stolen from aerofgt.c */
430411         curr_sprite.zoomx = 16 - zoomtable[curr_sprite.zoomx] / 8;
r18887r18888
448429         /* normal case */
449430         if (!curr_sprite.flipx && !curr_sprite.flipy)
450431         {
451            for (yt = 0; yt < curr_sprite.ysize; yt++)
452               for (xt = 0; xt < curr_sprite.xsize; xt++, curr_sprite.map++)
453                  if (!zoomed)
454                     drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[2], curr_sprite.map, curr_sprite.color, 0, 0,
455                           curr_sprite.ox + xt * 16, curr_sprite.oy + yt * 16, 15);
456                  else
457                     drawgfxzoom_transpen(bitmap, cliprect, screen.machine().gfx[2], curr_sprite.map, curr_sprite.color, 0, 0,
458                           curr_sprite.ox + xt * curr_sprite.zoomx, curr_sprite.oy + yt * curr_sprite.zoomy,
459                           0x1000 * curr_sprite.zoomx, 0x1000 * curr_sprite.zoomy, 15);
432            for (yt = 0; yt <= curr_sprite.ysize; yt++)
433            {
434               for (xt = 0; xt <= curr_sprite.xsize; xt++)
435               {
436                  int curr = m_newtilecb(curr_sprite.map++);
437
438                  drawgfxzoom_transpen(bitmap, cliprect, screen.machine().gfx[2], curr, curr_sprite.color, 0, 0,
439                        curr_sprite.ox + xt * curr_sprite.zoomx, curr_sprite.oy + yt * curr_sprite.zoomy,
440                        0x1000 * curr_sprite.zoomx, 0x1000 * curr_sprite.zoomy, 15);
441               }
442               handle_xsize_map_inc();
443            }
460444         }
461445
462446         /* curr_sprite.flipxped case */
463447         else if (curr_sprite.flipx && !curr_sprite.flipy)
464448         {
465            for (yt = 0; yt < curr_sprite.ysize; yt++)
466               for (xt = 0; xt < curr_sprite.xsize; xt++, curr_sprite.map++)
467                  if (!zoomed)
468                     drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[2], curr_sprite.map, curr_sprite.color, 1, 0,
469                           curr_sprite.ox + (curr_sprite.xsize - 1 - xt) * 16, curr_sprite.oy + yt * 16, 15);
470                  else
471                     drawgfxzoom_transpen(bitmap, cliprect, screen.machine().gfx[2], curr_sprite.map, curr_sprite.color, 1, 0,
472                           curr_sprite.ox + (curr_sprite.xsize - 1 - xt) * curr_sprite.zoomx, curr_sprite.oy + yt * curr_sprite.zoomy,
473                           0x1000 * curr_sprite.zoomx, 0x1000 * curr_sprite.zoomy, 15);
449            for (yt = 0; yt <= curr_sprite.ysize; yt++)
450            {
451               for (xt = 0; xt <= curr_sprite.xsize; xt++)
452               {
453                  int curr = m_newtilecb(curr_sprite.map++);
454
455                  drawgfxzoom_transpen(bitmap, cliprect, screen.machine().gfx[2], curr, curr_sprite.color, 1, 0,
456                        curr_sprite.ox + (curr_sprite.xsize - xt) * curr_sprite.zoomx, curr_sprite.oy + yt * curr_sprite.zoomy,
457                        0x1000 * curr_sprite.zoomx, 0x1000 * curr_sprite.zoomy, 15);
458               }
459               handle_xsize_map_inc();
460            }
474461         }
475462
476463         /* curr_sprite.flipyped case */
477464         else if (!curr_sprite.flipx && curr_sprite.flipy)
478465         {
479            for (yt = 0; yt < curr_sprite.ysize; yt++)
480               for (xt = 0; xt < curr_sprite.xsize; xt++, curr_sprite.map++)
481                  if (!zoomed)
482                     drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[2], curr_sprite.map, curr_sprite.color, 0, 1,
483                           curr_sprite.ox + xt * 16, curr_sprite.oy + (curr_sprite.ysize - 1 - yt) * 16, 15);
484                  else
485                     drawgfxzoom_transpen(bitmap, cliprect, screen.machine().gfx[2], curr_sprite.map, curr_sprite.color, 0, 1,
486                           curr_sprite.ox + xt * curr_sprite.zoomx, curr_sprite.oy + (curr_sprite.ysize - 1 - yt) * curr_sprite.zoomy,
487                           0x1000 * curr_sprite.zoomx, 0x1000 * curr_sprite.zoomy, 15);
466            for (yt = 0; yt <= curr_sprite.ysize; yt++)
467            {
468               for (xt = 0; xt <= curr_sprite.xsize; xt++)
469               {
470                  int curr = m_newtilecb(curr_sprite.map++);
471
472                  drawgfxzoom_transpen(bitmap, cliprect, screen.machine().gfx[2], curr, curr_sprite.color, 0, 1,
473                        curr_sprite.ox + xt * curr_sprite.zoomx, curr_sprite.oy + (curr_sprite.ysize - yt) * curr_sprite.zoomy,
474                        0x1000 * curr_sprite.zoomx, 0x1000 * curr_sprite.zoomy, 15);
475               }
476               handle_xsize_map_inc();
477            }
488478         }
489479
490480         /* x & curr_sprite.flipyped case */
491481         else
492482         {
493            for (yt = 0; yt < curr_sprite.ysize; yt++)
494               for (xt = 0; xt < curr_sprite.xsize; xt++, curr_sprite.map++)
495                  if (!zoomed)
496                     drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[2], curr_sprite.map, curr_sprite.color, 1, 1,
497                           curr_sprite.ox + (curr_sprite.xsize - 1 - xt) * 16, curr_sprite.oy + (curr_sprite.ysize - 1 - yt) * 16, 15);
498                  else
499                     drawgfxzoom_transpen(bitmap, cliprect, screen.machine().gfx[2], curr_sprite.map, curr_sprite.color, 1, 1,
500                           curr_sprite.ox + (curr_sprite.xsize - 1 - xt) * curr_sprite.zoomx, curr_sprite.oy + (curr_sprite.ysize - 1 - yt) * curr_sprite.zoomy,
501                           0x1000 * curr_sprite.zoomx, 0x1000 * curr_sprite.zoomy, 15);
483            for (yt = 0; yt <= curr_sprite.ysize; yt++)
484            {
485               for (xt = 0; xt <= curr_sprite.xsize; xt++)
486               {
487                  int curr = m_newtilecb(curr_sprite.map++);
488
489                  drawgfxzoom_transpen(bitmap, cliprect, screen.machine().gfx[2], curr, curr_sprite.color, 1, 1,
490                        curr_sprite.ox + (curr_sprite.xsize - xt) * curr_sprite.zoomx, curr_sprite.oy + (curr_sprite.ysize - yt) * curr_sprite.zoomy,
491                        0x1000 * curr_sprite.zoomx, 0x1000 * curr_sprite.zoomy, 15);
492               }
493               handle_xsize_map_inc();
494            }
502495         }
503496      }
504497   }
trunk/src/mame/video/vsystem_spr2.h
r18887r18888
11// Video System Sprites
22
3typedef device_delegate<UINT32 (UINT32)> vsystem_tile2_indirection_delegate;
34
5#define MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( _class, _method) \
6   vsystem_spr2_device::set_tile_indirect_cb(*device, vsystem_tile2_indirection_delegate(&_class::_method, #_class "::" #_method, NULL, (_class *)0)); \
7
8
49class vsystem_spr2_device : public device_t
510{
611public:
712   vsystem_spr2_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
813
14   static void set_tile_indirect_cb(device_t &device,vsystem_tile2_indirection_delegate newtilecb);
15
916   struct vsystem_sprite_attributes
1017   {
1118      int ox;
r18887r18888
2229   } curr_sprite;
2330
2431   int get_sprite_attributes(UINT16* ram);
32   void handle_xsize_map_inc(void);
33   vsystem_tile2_indirection_delegate m_newtilecb;
34   UINT32 tile_callback_noindirect(UINT32 tile);
2535
26
2736   template<class _BitmapClass>
28   void turbofrc_draw_sprites_common( UINT16* spriteram3,  int spriteram3_bytes, UINT16* spriteram1, int spriteram1_bytes, int sprite_gfx, int spritepalettebank, running_machine &machine, _BitmapClass &bitmap, const rectangle &cliprect, int chip_disabled_pri );
37   void turbofrc_draw_sprites_common( UINT16* spriteram3,  int spriteram3_bytes, int sprite_gfx, int spritepalettebank, running_machine &machine, _BitmapClass &bitmap, const rectangle &cliprect, int chip_disabled_pri );
2938
30   void turbofrc_draw_sprites( UINT16* spriteram3,  int spriteram3_bytes, UINT16* spriteram1, int spriteram1_bytes, int sprite_gfx, int spritepalettebank, running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int chip_disabled_pri );
31   void turbofrc_draw_sprites( UINT16* spriteram3,  int spriteram3_bytes, UINT16* spriteram1, int spriteram1_bytes, int sprite_gfx, int spritepalettebank, running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, int chip_disabled_pri );
39   void turbofrc_draw_sprites( UINT16* spriteram3,  int spriteram3_bytes, int sprite_gfx, int spritepalettebank, running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int chip_disabled_pri );
40   void turbofrc_draw_sprites( UINT16* spriteram3,  int spriteram3_bytes,  int sprite_gfx, int spritepalettebank, running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, int chip_disabled_pri );
3241
3342   template<class _BitmapClass>
34   void spinlbrk_draw_sprites_common( UINT16* spriteram3,  int spriteram3_bytes, UINT16* spriteram1, int spriteram1_bytes, int sprite_gfx, int spritepalettebank, running_machine &machine, _BitmapClass &bitmap, const rectangle &cliprect, int chip_disabled_pri );
43   void spinlbrk_draw_sprites_common( UINT16* spriteram3,  int spriteram3_bytes, int sprite_gfx, int spritepalettebank, running_machine &machine, _BitmapClass &bitmap, const rectangle &cliprect, int chip_disabled_pri );
3544
36   void spinlbrk_draw_sprites( UINT16* spriteram3,  int spriteram3_bytes, UINT16* spriteram1, int spriteram1_bytes, int sprite_gfx, int spritepalettebank, running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int chip_disabled_pri );
37   void spinlbrk_draw_sprites( UINT16* spriteram3,  int spriteram3_bytes, UINT16* spriteram1, int spriteram1_bytes, int sprite_gfx, int spritepalettebank, running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, int chip_disabled_pri );
45   void spinlbrk_draw_sprites( UINT16* spriteram3,  int spriteram3_bytes, int sprite_gfx, int spritepalettebank, running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int chip_disabled_pri );
46   void spinlbrk_draw_sprites( UINT16* spriteram3,  int spriteram3_bytes, int sprite_gfx, int spritepalettebank, running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, int chip_disabled_pri );
3847
3948
4049   void welltris_draw_sprites( UINT16* spriteram, int spritepalettebank, running_machine &machine, bitmap_ind16 &bitmap,const rectangle &cliprect);
41   void f1gp_draw_sprites( int gfxrgn, UINT16* sprvram, UINT16* sprcgram, int sprcgram_bytes, running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int primask );
50   void f1gp_draw_sprites( int gfxrgn, UINT16* sprvram, running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int primask );
4251   void draw_sprites_pipedrm( UINT8* spriteram, int spriteram_bytes, int flipscreen, screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int draw_priority );
4352
4453protected:
trunk/src/mame/video/f1gp.c
r18887r18888
7272//  save_pointer(NAME(m_zoomdata), memregion("gfx4")->bytes());
7373}
7474
75/* new hw type */
7576UINT32 f1gp_state::f1gp2_tile_callback( UINT32 code )
7677{
7778   return m_sprcgram[code&0x3fff];
7879}
7980
81/* old hw type */
82UINT32 f1gp_state::f1gp_old_tile_callback( UINT32 code )
83{
84   return m_spr1cgram[code % (m_spr1cgram.bytes()/2)];
85}
8086
87UINT32 f1gp_state::f1gp_ol2_tile_callback( UINT32 code )
88{
89   return m_spr2cgram[code % (m_spr2cgram.bytes()/2)];
90}
91
92
93
8194VIDEO_START_MEMBER(f1gp_state,f1gp2)
8295{
8396
r18887r18888
186199   /* quick kludge for "continue" screen priority */
187200   if (m_gfxctrl == 0x00)
188201   {
189      m_spr_old->f1gp_draw_sprites(1, m_spr1vram, m_spr1cgram ,m_spr1cgram.bytes(), machine(), bitmap, cliprect, 0x02);
190      m_spr_old2->f1gp_draw_sprites(2, m_spr2vram, m_spr2cgram, m_spr2cgram.bytes(), machine(), bitmap, cliprect, 0x02);
202      m_spr_old->f1gp_draw_sprites(1, m_spr1vram, machine(), bitmap, cliprect, 0x02);
203      m_spr_old2->f1gp_draw_sprites(2, m_spr2vram, machine(), bitmap, cliprect, 0x02);
191204   }
192205   else
193206   {
194      m_spr_old->f1gp_draw_sprites(1, m_spr1vram, m_spr1cgram, m_spr1cgram.bytes(), machine(), bitmap, cliprect, 0x00);
195      m_spr_old2->f1gp_draw_sprites(2, m_spr2vram, m_spr2cgram, m_spr2cgram.bytes(), machine(), bitmap, cliprect, 0x02);
207      m_spr_old->f1gp_draw_sprites(1, m_spr1vram, machine(), bitmap, cliprect, 0x00);
208      m_spr_old2->f1gp_draw_sprites(2, m_spr2vram, machine(), bitmap, cliprect, 0x02);
196209   }
197210   return 0;
198211}
trunk/src/mame/video/aerofgt.c
r18887r18888
119119
120120VIDEO_START_MEMBER(aerofgt_state,spinlbrk)
121121{
122   int i;
123
124122   m_bg1_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(aerofgt_state::spinlbrk_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
125123   m_bg2_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(aerofgt_state::karatblz_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64);
126124
r18887r18888
134132   /* enemy sprites use ROM instead of RAM */
135133   m_spriteram2.set_target(reinterpret_cast<UINT16 *>(memregion("gfx5")->base()), 0x20000);
136134
137   /* front sprites are direct maps */
138   m_spriteram1.set_target(m_spriteram2 + m_spriteram2.bytes() / 2, 0x4000);
139
140   for (i = 0; i < m_spriteram1.bytes() / 2; i++)
141   {
142      m_spriteram1[i] = i;
143   }
144
145135   aerofgt_register_state_globals(machine());
146136}
147137
r18887r18888
159149}
160150
161151
162
152/* new hw type */
163153UINT32 aerofgt_state::aerofgt_tile_callback( UINT32 code )
164154{
165155   return m_spriteram1[code&0x7fff];
r18887r18888
168158
169159
170160
161/* old hw type */
162UINT32 aerofgt_state::aerofgt_old_tile_callback( UINT32 code )
163{
164   return m_spriteram1[code % (m_spriteram1.bytes()/2)];
165}
171166
167UINT32 aerofgt_state::aerofgt_ol2_tile_callback( UINT32 code )
168{
169   return m_spriteram2[code % (m_spriteram2.bytes()/2)];
170}
172171
172
173
173174/***************************************************************************
174175
175176  Memory handlers
r18887r18888
303304   machine().priority_bitmap.fill(0, cliprect);
304305
305306   m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
306   m_spr_old->turbofrc_draw_sprites(m_spriteram3,m_spriteram3.bytes(),m_spriteram1,m_spriteram1.bytes(),m_sprite_gfx,m_spritepalettebank, machine(), bitmap, cliprect, -1);
307   m_spr_old->turbofrc_draw_sprites(m_spriteram3,m_spriteram3.bytes(),m_spriteram1,m_spriteram1.bytes(),m_sprite_gfx,m_spritepalettebank, machine(), bitmap, cliprect, 0);
307   m_spr_old->turbofrc_draw_sprites(m_spriteram3,m_spriteram3.bytes(),m_sprite_gfx,m_spritepalettebank, machine(), bitmap, cliprect, -1);
308   m_spr_old->turbofrc_draw_sprites(m_spriteram3,m_spriteram3.bytes(),m_sprite_gfx,m_spritepalettebank, machine(), bitmap, cliprect, 0);
308309   return 0;
309310}
310311
r18887r18888
322323   m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
323324
324325   /* we use the priority buffer so sprites are drawn front to back */
325   m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spriteram2,m_spriteram2.bytes(),m_sprite_gfx+1,m_spritepalettebank, machine(), bitmap, cliprect, -1);
326   m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spriteram2,m_spriteram2.bytes(),m_sprite_gfx+1,m_spritepalettebank, machine(), bitmap, cliprect, 0);
326   m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_sprite_gfx+1,m_spritepalettebank, machine(), bitmap, cliprect, -1);
327   m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_sprite_gfx+1,m_spritepalettebank, machine(), bitmap, cliprect, 0);
327328
328   m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spriteram1,m_spriteram1.bytes(),m_sprite_gfx+0,m_spritepalettebank, machine(), bitmap, cliprect, -1);
329   m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spriteram1,m_spriteram1.bytes(),m_sprite_gfx+0,m_spritepalettebank, machine(), bitmap, cliprect, 0);
329   m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_sprite_gfx+0,m_spritepalettebank, machine(), bitmap, cliprect, -1);
330   m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_sprite_gfx+0,m_spritepalettebank, machine(), bitmap, cliprect, 0);
330331   return 0;
331332}
332333
r18887r18888
348349   m_bg2_tilemap->draw(bitmap, cliprect, 0, 1);
349350
350351   /* we use the priority buffer so sprites are drawn front to back */
351   m_spr_old->spinlbrk_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spriteram1,m_spriteram1.bytes(),m_sprite_gfx+0,m_spritepalettebank, machine(), bitmap, cliprect, 0);
352   m_spr_old->spinlbrk_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spriteram1,m_spriteram1.bytes(),m_sprite_gfx+0,m_spritepalettebank, machine(), bitmap, cliprect, -1);
352   m_spr_old->spinlbrk_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_sprite_gfx+0,m_spritepalettebank, machine(), bitmap, cliprect, 0);
353   m_spr_old->spinlbrk_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_sprite_gfx+0,m_spritepalettebank, machine(), bitmap, cliprect, -1);
353354
354   m_spr_old2->spinlbrk_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spriteram2,m_spriteram2.bytes(),m_sprite_gfx+1,m_spritepalettebank, machine(), bitmap, cliprect, 0);
355   m_spr_old2->spinlbrk_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spriteram2,m_spriteram2.bytes(),m_sprite_gfx+1,m_spritepalettebank, machine(), bitmap, cliprect, -1);
355   m_spr_old2->spinlbrk_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_sprite_gfx+1,m_spritepalettebank, machine(), bitmap, cliprect, 0);
356   m_spr_old2->spinlbrk_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_sprite_gfx+1,m_spritepalettebank, machine(), bitmap, cliprect, -1);
356357   return 0;
357358}
358359
r18887r18888
375376   m_bg2_tilemap->draw(bitmap, cliprect, 0, 1);
376377
377378   /* we use the priority buffer so sprites are drawn front to back */
378   m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spriteram2,m_spriteram2.bytes(),m_sprite_gfx+1,m_spritepalettebank, machine(), bitmap, cliprect, -1); //enemy
379   m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_spriteram2,m_spriteram2.bytes(),m_sprite_gfx+1,m_spritepalettebank, machine(), bitmap, cliprect, 0); //enemy
379   m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_sprite_gfx+1,m_spritepalettebank, machine(), bitmap, cliprect, -1); //enemy
380   m_spr_old2->turbofrc_draw_sprites(m_spriteram3+0x200,m_spriteram3.bytes()/2,m_sprite_gfx+1,m_spritepalettebank, machine(), bitmap, cliprect, 0); //enemy
380381
381   m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spriteram1,m_spriteram1.bytes(),m_sprite_gfx+0,m_spritepalettebank, machine(), bitmap, cliprect, -1); //ship
382   m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_spriteram1,m_spriteram1.bytes(),m_sprite_gfx+0,m_spritepalettebank, machine(), bitmap, cliprect, 0); //intro
382   m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_sprite_gfx+0,m_spritepalettebank, machine(), bitmap, cliprect, -1); //ship
383   m_spr_old->turbofrc_draw_sprites(m_spriteram3+0x000,m_spriteram3.bytes()/2,m_sprite_gfx+0,m_spritepalettebank, machine(), bitmap, cliprect, 0); //intro
383384   return 0;
384385}
385386
r18887r18888
846847      m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
847848   }
848849
849   m_spr_old->turbofrc_draw_sprites(m_spriteram3,m_spriteram3.bytes(),m_spriteram1,m_spriteram1.bytes(),m_sprite_gfx,m_spritepalettebank, machine(), bitmap, cliprect, -1);
850   m_spr_old->turbofrc_draw_sprites(m_spriteram3,m_spriteram3.bytes(),m_spriteram1,m_spriteram1.bytes(),m_sprite_gfx,m_spritepalettebank, machine(), bitmap, cliprect, 0);
850   m_spr_old->turbofrc_draw_sprites(m_spriteram3,m_spriteram3.bytes(),m_sprite_gfx,m_spritepalettebank, machine(), bitmap, cliprect, -1);
851   m_spr_old->turbofrc_draw_sprites(m_spriteram3,m_spriteram3.bytes(),m_sprite_gfx,m_spritepalettebank, machine(), bitmap, cliprect, 0);
851852   return 0;
852853}
trunk/src/mame/includes/f1gp.h
r18887r18888
5454   int       m_gfxctrl;
5555   int       m_scroll[2];
5656   UINT32 f1gp2_tile_callback( UINT32 code );
57   UINT32 f1gp_old_tile_callback( UINT32 code );
58   UINT32 f1gp_ol2_tile_callback( UINT32 code );
5759
5860   /* misc */
5961   int       m_pending_command;
trunk/src/mame/includes/aerofgt.h
r18887r18888
5252   int       m_spikes91_lookup;
5353   UINT32 aerofgt_tile_callback( UINT32 code );
5454
55   UINT32 aerofgt_old_tile_callback( UINT32 code );
56   UINT32 aerofgt_ol2_tile_callback( UINT32 code );
57
5558   /* misc */
5659   int       m_pending_command;
5760
trunk/src/mame/drivers/aerofgt.c
r18887r18888
13471347   MCFG_PALETTE_LENGTH(2048)
13481348
13491349   MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
1350   MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback )
13501351
1352
13511353   MCFG_VIDEO_START_OVERRIDE(aerofgt_state,pspikes)
13521354
13531355   /* sound hardware */
r18887r18888
14471449   MCFG_PALETTE_LENGTH(2048)
14481450
14491451   MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
1452   MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback )
14501453
14511454   MCFG_VIDEO_START_OVERRIDE(aerofgt_state,pspikes)
14521455
r18887r18888
14841487   MCFG_PALETTE_LENGTH(1024)
14851488
14861489   MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
1490   MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback )
14871491   MCFG_DEVICE_ADD("vsystem_spr_ol2", VSYSTEM_SPR2, 0)
1492   MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_ol2_tile_callback )
14881493
1494
14891495   MCFG_VIDEO_START_OVERRIDE(aerofgt_state,karatblz)
14901496
14911497   /* sound hardware */
r18887r18888
15271533
15281534   MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
15291535   MCFG_DEVICE_ADD("vsystem_spr_ol2", VSYSTEM_SPR2, 0)
1536   MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_ol2_tile_callback )
15301537
15311538   MCFG_VIDEO_START_OVERRIDE(aerofgt_state,spinlbrk)
15321539
r18887r18888
15681575   MCFG_PALETTE_LENGTH(1024)
15691576
15701577   MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
1578   MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback )
15711579   MCFG_DEVICE_ADD("vsystem_spr_ol2", VSYSTEM_SPR2, 0)
1580   MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_ol2_tile_callback )
15721581
15731582   MCFG_VIDEO_START_OVERRIDE(aerofgt_state,turbofrc)
15741583
r18887r18888
16111620   MCFG_PALETTE_LENGTH(1024)
16121621
16131622   MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
1623   MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback )
16141624   MCFG_DEVICE_ADD("vsystem_spr_ol2", VSYSTEM_SPR2, 0)
1615
1625   MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_ol2_tile_callback )
1626   
16161627   MCFG_VIDEO_START_OVERRIDE(aerofgt_state,turbofrc)
16171628
16181629   /* sound hardware */
r18887r18888
17601771   MCFG_PALETTE_LENGTH(2048)
17611772
17621773   MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
1774   MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( aerofgt_state, aerofgt_old_tile_callback )
17631775
17641776   MCFG_VIDEO_START_OVERRIDE(aerofgt_state,wbbc97)
17651777
trunk/src/mame/drivers/f1gp.c
r18887r18888
477477   MCFG_PALETTE_LENGTH(2048)
478478
479479   MCFG_DEVICE_ADD("vsystem_spr_old", VSYSTEM_SPR2, 0)
480   MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( f1gp_state, f1gp_old_tile_callback )
480481   MCFG_DEVICE_ADD("vsystem_spr_ol2", VSYSTEM_SPR2, 0)
482   MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT( f1gp_state, f1gp_ol2_tile_callback )
481483
482484   MCFG_VIDEO_START_OVERRIDE(f1gp_state,f1gp)
483485

Previous 199869 Revisions Next


© 1997-2024 The MAME Team