Previous 199869 Revisions Next

r29642 Monday 14th April, 2014 at 20:45:26 UTC by Alex Jackson
gp9001.c (toaplan2.c): convert to device_gfx_interface, cleanups [Alex Jackson]
[src/mame/drivers]toaplan2.c
[src/mame/includes]toaplan2.h
[src/mame/video]gp9001.c gp9001.h toaplan2.c

trunk/src/mame/includes/toaplan2.h
r29641r29642
3232      m_mainram16(*this, "mainram16"),
3333      m_maincpu(*this, "maincpu"),
3434      m_audiocpu(*this, "audiocpu"),
35      m_vdp0(*this, "gp9001vdp0"),
36      m_vdp1(*this, "gp9001vdp1"),
35      m_vdp0(*this, "gp9001"),
36      m_vdp1(*this, "gp9001_1"),
3737      m_nmk112(*this, "nmk112"),
3838      m_oki(*this, "oki"),
3939      m_oki1(*this, "oki1"),
r29641r29642
6161   optional_device<okim6295_device> m_oki1;
6262   optional_device<eeprom_serial_93cxx_device> m_eeprom;
6363   optional_device<upd4992_device> m_rtc;
64   required_device<gfxdecode_device> m_gfxdecode;
64   optional_device<gfxdecode_device> m_gfxdecode;
6565   required_device<screen_device> m_screen;
6666   required_device<palette_device> m_palette;
6767
6868   UINT16 m_mcu_data;
69   UINT16 m_video_status;
7069   INT8 m_old_p1_paddle_h; /* For Ghox */
7170   INT8 m_old_p2_paddle_h;
7271   UINT8 m_v25_reset_line; /* 0x20 for dogyuun/batsugun, 0x10 for vfive, 0x08 for fixeight */
trunk/src/mame/video/toaplan2.c
r29641r29642
11/***************************************************************************
22
33 Functions to emulate additional video hardware on several Toaplan2 games.
4 The main video is handled by the GP9001 (see video gp9001.c)
4 The main video is handled by the GP9001 (see video/gp9001.c)
55
66 Extra-text RAM format
77
r29641r29642
4141   attrib = m_tx_videoram[tile_index];
4242   tile_number = attrib & 0x3ff;
4343   color = attrib >> 10;
44   SET_TILE_INFO_MEMBER(2,
44   SET_TILE_INFO_MEMBER(0,
4545         tile_number,
4646         color,
4747         0);
r29641r29642
6666
6767void toaplan2_state::truxton2_postload()
6868{
69   for (int i = 0; i < 1024; i++)
70      m_gfxdecode->gfx(2)->mark_dirty(i);
69   m_gfxdecode->gfx(0)->mark_all_dirty();
7170}
7271
7372VIDEO_START_MEMBER(toaplan2_state,toaplan2)
r29641r29642
9392   VIDEO_START_CALL_MEMBER( toaplan2 );
9493
9594   /* Create the Text tilemap for this game */
96   m_gfxdecode->gfx(2)->set_source(reinterpret_cast<UINT8 *>(m_tx_gfxram16.target()));
95   m_gfxdecode->gfx(0)->set_source(reinterpret_cast<UINT8 *>(m_tx_gfxram16.target()));
9796   machine().save().register_postload(save_prepost_delegate(FUNC(toaplan2_state::truxton2_postload), this));
9897
9998   create_tx_tilemap(0x1d5, 0x16a);
r29641r29642
146145
147146   /* Create the Text tilemap for this game */
148147   m_tx_gfxram16.allocate(RAIZING_TX_GFXRAM_SIZE/2);
149   m_gfxdecode->gfx(2)->set_source(reinterpret_cast<UINT8 *>(m_tx_gfxram16.target()));
148   m_gfxdecode->gfx(0)->set_source(reinterpret_cast<UINT8 *>(m_tx_gfxram16.target()));
150149   machine().save().register_postload(save_prepost_delegate(FUNC(toaplan2_state::truxton2_postload), this));
151150
152151   create_tx_tilemap(0x1d4, 0x16b);
r29641r29642
178177
179178   if (oldword != data)
180179   {
181      int code = offset/32;
182180      COMBINE_DATA(&m_tx_gfxram16[offset]);
183      m_gfxdecode->gfx(2)->mark_dirty(code);
181      m_gfxdecode->gfx(0)->mark_dirty(offset/32);
184182   }
185183}
186184
r29641r29642
201199   dest += (m_tx_linescroll.bytes()/2);
202200   memcpy(dest, m_mainram16, m_mainram16.bytes());
203201
204   for (int i = 0; i < 1024; i++)
205      m_gfxdecode->gfx(2)->mark_dirty(i);
202   m_gfxdecode->gfx(0)->mark_all_dirty();
206203}
207204
208205WRITE16_MEMBER(toaplan2_state::batrider_unknown_dma_w)
r29641r29642
349346
350347UINT32 toaplan2_state::screen_update_toaplan2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
351348{
352   if (m_vdp0)
353   {
354      bitmap.fill(0, cliprect);
355      m_custom_priority_bitmap.fill(0, cliprect);
356      m_vdp0->gp9001_render_vdp(machine(), bitmap, cliprect);
357   }
349   bitmap.fill(0, cliprect);
350   m_custom_priority_bitmap.fill(0, cliprect);
351   m_vdp0->gp9001_render_vdp(machine(), bitmap, cliprect);
358352
359353   return 0;
360354}
trunk/src/mame/video/gp9001.c
r29641r29642
150150
151151WRITE16_MEMBER( gp9001vdp_device::gp9001_bg_tmap_w )
152152{
153   COMBINE_DATA(&bg.vram16[offset]);
153   COMBINE_DATA(&m_vram_bg[offset]);
154154   bg.tmap->mark_tile_dirty(offset/2);
155155}
156156
157157WRITE16_MEMBER( gp9001vdp_device::gp9001_fg_tmap_w )
158158{
159   COMBINE_DATA(&fg.vram16[offset]);
159   COMBINE_DATA(&m_vram_fg[offset]);
160160   fg.tmap->mark_tile_dirty(offset/2);
161161}
162162
163163WRITE16_MEMBER( gp9001vdp_device::gp9001_top_tmap_w )
164164{
165   COMBINE_DATA(&top.vram16[offset]);
165   COMBINE_DATA(&m_vram_top[offset]);
166166   top.tmap->mark_tile_dirty(offset/2);
167167}
168168
169READ16_MEMBER( gp9001vdp_device::gp9001_bg_tmap_r )
170{
171   return bg.vram16[offset];
172}
173169
174READ16_MEMBER( gp9001vdp_device::gp9001_fg_tmap_r )
175{
176   return fg.vram16[offset];
177}
170DEVICE_ADDRESS_MAP_START( map, 16, gp9001vdp_device )
171   AM_RANGE(0x0000, 0x0fff) AM_RAM_WRITE(gp9001_bg_tmap_w) AM_SHARE("vram_bg")
172   AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(gp9001_fg_tmap_w) AM_SHARE("vram_fg")
173   AM_RANGE(0x2000, 0x2fff) AM_RAM_WRITE(gp9001_top_tmap_w) AM_SHARE("vram_top")
174   AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("spriteram")
175   AM_RANGE(0x3800, 0x3fff) AM_RAM // sprite mirror?
176ADDRESS_MAP_END
178177
179READ16_MEMBER( gp9001vdp_device::gp9001_top_tmap_r )
180{
181   return top.vram16[offset];
182}
183178
184READ16_MEMBER( gp9001vdp_device::gp9001_spram_r )
179const gfx_layout gp9001vdp_device::tilelayout =
185180{
186   return sp.vram16[offset];
187}
181   16,16,          /* 16x16 */
182   RGN_FRAC(1,2),  /* Number of tiles */
183   4,              /* 4 bits per pixel */
184   { RGN_FRAC(1,2)+8, RGN_FRAC(1,2), 8, 0 },
185   { 0, 1, 2, 3, 4, 5, 6, 7,
186      8*16+0, 8*16+1, 8*16+2, 8*16+3, 8*16+4, 8*16+5, 8*16+6, 8*16+7 },
187   { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
188      16*16, 17*16, 18*16, 19*16, 20*16, 21*16, 22*16, 23*16 },
189   8*4*16
190};
188191
189WRITE16_MEMBER( gp9001vdp_device::gp9001_spram_w )
192const gfx_layout gp9001vdp_device::spritelayout =
190193{
191   COMBINE_DATA(&sp.vram16[offset]);
192}
194   8,8,            /* 8x8 */
195   RGN_FRAC(1,2),  /* Number of 8x8 sprites */
196   4,              /* 4 bits per pixel */
197   { RGN_FRAC(1,2)+8, RGN_FRAC(1,2), 8, 0 },
198   { 0, 1, 2, 3, 4, 5, 6, 7 },
199   { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 },
200   8*16
201};
193202
194static ADDRESS_MAP_START( gp9001vdp_map, AS_0, 16, gp9001vdp_device )
195   AM_RANGE(0x0000, 0x0fff) AM_READWRITE(gp9001_bg_tmap_r, gp9001_bg_tmap_w)
196   AM_RANGE(0x1000, 0x1fff) AM_READWRITE(gp9001_fg_tmap_r, gp9001_fg_tmap_w)
197   AM_RANGE(0x2000, 0x2fff) AM_READWRITE(gp9001_top_tmap_r, gp9001_top_tmap_w)
198   AM_RANGE(0x3000, 0x37ff) AM_READWRITE(gp9001_spram_r, gp9001_spram_w)
199   AM_RANGE(0x3800, 0x3fff) AM_RAM // sprite mirror?
200ADDRESS_MAP_END
203GFXDECODE_MEMBER( gp9001vdp_device::gfxinfo )
204   GFXDECODE_DEVICE( DEVICE_SELF, 0, tilelayout,   0, 0x1000 )
205   GFXDECODE_DEVICE( DEVICE_SELF, 0, spritelayout, 0, 0x1000 )
206GFXDECODE_END
201207
202208
203209const device_type GP9001_VDP = &device_creator<gp9001vdp_device>;
204210
205211gp9001vdp_device::gp9001vdp_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
206212   : device_t(mconfig, GP9001_VDP, "GP9001 VDP", tag, owner, clock, "gp9001vdp", __FILE__),
213      device_gfx_interface(mconfig, *this, gfxinfo),
207214      device_video_interface(mconfig, *this),
208215      device_memory_interface(mconfig, *this),
209      m_space_config("gp9001vdp", ENDIANNESS_BIG, 16,14, 0, NULL, *ADDRESS_MAP_NAME(gp9001vdp_map)),
210      m_gfxregion(0),
211      m_gfxdecode(*this),
212      m_palette(*this)
216      m_space_config("gp9001vdp", ENDIANNESS_BIG, 16,14, 0, address_map_delegate(FUNC(gp9001vdp_device::map), this)),
217      m_vram_bg(*this, "vram_bg"),
218      m_vram_fg(*this, "vram_fg"),
219      m_vram_top(*this, "vram_top"),
220      m_spriteram(*this, "spriteram")
213221{
214222}
215223
216//-------------------------------------------------
217//  static_set_gfxdecode_tag: Set the tag of the
218//  gfx decoder
219//-------------------------------------------------
220
221void gp9001vdp_device::static_set_gfxdecode_tag(device_t &device, const char *tag)
222{
223   downcast<gp9001vdp_device &>(device).m_gfxdecode.set_tag(tag);
224}
225
226
227void gp9001vdp_device::static_set_gfx_region(device_t &device, int gfxregion)
228{
229   gp9001vdp_device &vdp = downcast<gp9001vdp_device &>(device);
230   vdp.m_gfxregion = gfxregion;
231}
232
233void gp9001vdp_device::device_validity_check(validity_checker &valid) const
234{
235}
236
237224const address_space_config *gp9001vdp_device::memory_space_config(address_spacenum spacenum) const
238225{
239226   return (spacenum == 0) ? &m_space_config : NULL;
r29641r29642
243230{
244231   int color, tile_number, attrib;
245232
246   attrib = top.vram16[2*tile_index];
233   attrib = m_vram_top[2*tile_index];
247234
248   tile_number = top.vram16[2*tile_index+1];
235   tile_number = m_vram_top[2*tile_index+1];
249236
250237   if (gp9001_gfxrom_is_banked)
251238   {
r29641r29642
253240   }
254241
255242   color = attrib & 0x0fff; // 0x0f00 priority, 0x007f colour
256   SET_TILE_INFO_MEMBER(tile_region,
243   SET_TILE_INFO_MEMBER(0,
257244         tile_number,
258245         color,
259246         0);
r29641r29642
264251{
265252   int color, tile_number, attrib;
266253
267   attrib = fg.vram16[2*tile_index];
254   attrib = m_vram_fg[2*tile_index];
268255
269   tile_number = fg.vram16[2*tile_index+1];
256   tile_number = m_vram_fg[2*tile_index+1];
270257
271258
272259   if (gp9001_gfxrom_is_banked)
r29641r29642
275262   }
276263
277264   color = attrib & 0x0fff; // 0x0f00 priority, 0x007f colour
278   SET_TILE_INFO_MEMBER(tile_region,
265   SET_TILE_INFO_MEMBER(0,
279266         tile_number,
280267         color,
281268         0);
r29641r29642
285272TILE_GET_INFO_MEMBER(gp9001vdp_device::get_bg0_tile_info)
286273{
287274   int color, tile_number, attrib;
288   attrib = bg.vram16[2*tile_index];
275   attrib = m_vram_bg[2*tile_index];
289276
290   tile_number = bg.vram16[2*tile_index+1];
277   tile_number = m_vram_bg[2*tile_index+1];
291278
292279   if (gp9001_gfxrom_is_banked)
293280   {
r29641r29642
295282   }
296283
297284   color = attrib & 0x0fff; // 0x0f00 priority, 0x007f colour
298   SET_TILE_INFO_MEMBER(tile_region,
285   SET_TILE_INFO_MEMBER(0,
299286         tile_number,
300287         color,
301288         0);
302289   //tileinfo.category = (attrib & 0x0f00) >> 8;
303290}
304291
305void gp9001vdp_device::create_tilemaps(int region)
292void gp9001vdp_device::create_tilemaps()
306293{
307   tile_region = region;
294   top.tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(gp9001vdp_device::get_top0_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
295   fg.tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(gp9001vdp_device::get_fg0_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
296   bg.tmap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(gp9001vdp_device::get_bg0_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
308297
309   top.tmap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(gp9001vdp_device::get_top0_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
310   fg.tmap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(gp9001vdp_device::get_fg0_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
311   bg.tmap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(gp9001vdp_device::get_bg0_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32);
312
313298   top.tmap->set_transparent_pen(0);
314299   fg.tmap->set_transparent_pen(0);
315300   bg.tmap->set_transparent_pen(0);
r29641r29642
318303
319304void gp9001vdp_device::device_start()
320305{
321   if(!m_gfxdecode->started())
322      throw device_missing_dependencies();
323
324   top.vram16 = auto_alloc_array_clear(machine(), UINT16, GP9001_TOP_VRAM_SIZE/2);
325   fg.vram16 = auto_alloc_array_clear(machine(), UINT16, GP9001_FG_VRAM_SIZE/2);
326   bg.vram16 = auto_alloc_array_clear(machine(), UINT16, GP9001_BG_VRAM_SIZE/2);
327
328   sp.vram16 = auto_alloc_array_clear(machine(), UINT16, GP9001_SPRITERAM_SIZE/2);
329306   sp.vram16_buffer = auto_alloc_array_clear(machine(), UINT16, GP9001_SPRITERAM_SIZE/2);
330307
331   create_tilemaps(m_gfxregion);
308   create_tilemaps();
332309
333   save_pointer(NAME(sp.vram16), GP9001_SPRITERAM_SIZE/2);
334310   save_pointer(NAME(sp.vram16_buffer), GP9001_SPRITERAM_SIZE/2);
335   save_pointer(NAME(top.vram16), GP9001_TOP_VRAM_SIZE/2);
336   save_pointer(NAME(fg.vram16), GP9001_FG_VRAM_SIZE/2);
337   save_pointer(NAME(bg.vram16), GP9001_BG_VRAM_SIZE/2);
338311
339312   save_item(NAME(gp9001_scroll_reg));
340313   save_item(NAME(gp9001_voffs));
r29641r29642
397370}
398371
399372
400void gp9001vdp_device::gp9001_voffs_w(offs_t offset, UINT16 data, UINT16 mem_mask)
373void gp9001vdp_device::gp9001_voffs_w(UINT16 data, UINT16 mem_mask)
401374{
402375   COMBINE_DATA(&gp9001_voffs);
403376}
404377
405int gp9001vdp_device::gp9001_videoram16_r(offs_t offset)
378int gp9001vdp_device::gp9001_videoram16_r()
406379{
407380   int offs = gp9001_voffs;
408381   gp9001_voffs++;
r29641r29642
410383}
411384
412385
413void gp9001vdp_device::gp9001_videoram16_w(offs_t offset, UINT16 data, UINT16 mem_mask)
386void gp9001vdp_device::gp9001_videoram16_w(UINT16 data, UINT16 mem_mask)
414387{
415388   int offs = gp9001_voffs;
416389   gp9001_voffs++;
r29641r29642
423396   return ((m_screen->vpos() + 15) % 262) >= 245;
424397}
425398
426void gp9001vdp_device::gp9001_scroll_reg_select_w( offs_t offset, UINT16 data, UINT16 mem_mask )
399void gp9001vdp_device::gp9001_scroll_reg_select_w(UINT16 data, UINT16 mem_mask)
427400{
428401   if (ACCESSING_BITS_0_7)
429402   {
430403      gp9001_scroll_reg = data & 0x8f;
431404      if (data & 0x70)
432         logerror("Hmmm, selecting unknown LSB video control register (%04x)  Video controller %01x  \n",gp9001_scroll_reg,tile_region>>1);
405         logerror("Hmmm, selecting unknown LSB video control register (%04x)\n",gp9001_scroll_reg);
433406   }
434407   else
435408   {
436      logerror("Hmmm, selecting unknown MSB video control register (%04x)  Video controller %01x  \n",gp9001_scroll_reg,tile_region>>1);
409      logerror("Hmmm, selecting unknown MSB video control register (%04x)\n",gp9001_scroll_reg);
437410   }
438411}
439412
r29641r29642
514487   }
515488}
516489
517void gp9001vdp_device::gp9001_scroll_reg_data_w(offs_t offset, UINT16 data, UINT16 mem_mask)
490void gp9001vdp_device::gp9001_scroll_reg_data_w(UINT16 data, UINT16 mem_mask)
518491{
519492   /************************************************************************/
520493   /***** layer X and Y flips can be set independently, so emulate it ******/
521494   /************************************************************************/
522495
523   //printf("gp9001_scroll_reg_data_w %04x %04x\n", offset, data);
524
525496   // writes with 8x set turn on flip for the specified layer / axis
526497   int flip = gp9001_scroll_reg & 0x80;
527498
r29641r29642
545516      case 0x0f:  break;
546517
547518
548      default:    logerror("Hmmm, writing %08x to unknown video control register (%08x) Video controller %01x  !!!\n",data ,gp9001_scroll_reg,tile_region>>1);
519      default:    logerror("Hmmm, writing %08x to unknown video control register (%08x) !!!\n",data,gp9001_scroll_reg);
549520               break;
550521   }
551522}
r29641r29642
566537
567538READ16_MEMBER( gp9001vdp_device::gp9001_vdp_r )
568539{
569   switch (offset)
540   switch (offset & (0xc/2))
570541   {
571542      case 0x04/2:
572      case 0x06/2:
573         return gp9001_videoram16_r(offset-0x04/2);
543         return gp9001_videoram16_r();
574544
575545      case 0x0c/2:
576546         return gp9001_vdpstatus_r();
r29641r29642
584554
585555WRITE16_MEMBER( gp9001vdp_device::gp9001_vdp_w )
586556{
587   switch (offset)
557   switch (offset & (0xc/2))
588558   {
589559      case 0x00/2:
590         gp9001_voffs_w(offset-0x00/2, data, mem_mask);
560         gp9001_voffs_w(data, mem_mask);
591561         break;
592562
593563      case 0x04/2:
594      case 0x06/2:
595         gp9001_videoram16_w(offset-0x04/2, data, mem_mask);
564         gp9001_videoram16_w(data, mem_mask);
596565         break;
597566
598567      case 0x08/2:
599         gp9001_scroll_reg_select_w(offset-0x08/2, data, mem_mask);
568         gp9001_scroll_reg_select_w(data, mem_mask);
600569         break;
601570
602571      case 0x0c/2:
603         gp9001_scroll_reg_data_w(offset-0x0c/2, data, mem_mask);
572         gp9001_scroll_reg_data_w(data, mem_mask);
604573         break;
605
606      default:
607         logerror("gp9001_vdp_w: write to unhandled offset %04x %04x\n",offset, data);
608         break;
609574   }
610575}
611576
612/* some raizing games have a different layout */
577/* batrider and bbakraid invert the register select lines */
613578READ16_MEMBER( gp9001vdp_device::gp9001_vdp_alt_r )
614579{
615   switch (offset)
580   switch (offset & (0xc/2))
616581   {
617      case 0x00/2:
582      case 0x0/2:
618583         return gp9001_vdpstatus_r();
619584
620      case 0x08/2:
621      case 0x0a/2:
622         return gp9001_videoram16_r(offset-0x04/2);
585      case 0x8/2:
586         return gp9001_videoram16_r();
623587
624
625588      default:
626589         logerror("gp9001_vdp_alt_r: read from unhandled offset %04x\n",offset*2);
627590   }
r29641r29642
631594
632595WRITE16_MEMBER( gp9001vdp_device::gp9001_vdp_alt_w )
633596{
634   switch (offset)
597   switch (offset & (0xc/2))
635598   {
636      case 0x00/2:
637         gp9001_scroll_reg_data_w(offset-0x0c/2, data, mem_mask);
599      case 0x0/2:
600         gp9001_scroll_reg_data_w(data, mem_mask);
638601         break;
639602
640      case 0x04/2:
641         gp9001_scroll_reg_select_w(offset-0x08/2, data, mem_mask);
603      case 0x4/2:
604         gp9001_scroll_reg_select_w(data, mem_mask);
642605         break;
643606
644      case 0x08/2:
645      case 0x0a/2:
646         gp9001_videoram16_w(offset-0x04/2, data, mem_mask);
607      case 0x8/2:
608         gp9001_videoram16_w(data, mem_mask);
647609         break;
648610
649      case 0x0c/2:
650         gp9001_voffs_w(offset-0x00/2, data, mem_mask);
611      case 0xc/2:
612         gp9001_voffs_w(data, mem_mask);
651613         break;
652
653      default:
654         logerror("gp9001_vdp_alt_w: write to unhandled offset %04x %04x\n",offset, data);
655         break;
656614   }
657615}
658616
r29641r29642
679637      }
680638
681639      gp9001_scroll_reg = offset;
682      gp9001_scroll_reg_data_w(offset, data, mem_mask);
640      gp9001_scroll_reg_data_w(data, mem_mask);
683641   }
684642}
685643
686644READ16_MEMBER( gp9001vdp_device::pipibibi_bootleg_videoram16_r )
687645{
688   gp9001_voffs_w(0, offset, 0xffff);
689   return gp9001_videoram16_r(0);
646   gp9001_voffs_w(offset, 0xffff);
647   return gp9001_videoram16_r();
690648}
691649
692650WRITE16_MEMBER( gp9001vdp_device::pipibibi_bootleg_videoram16_w )
693651{
694   gp9001_voffs_w(0, offset, 0xffff);
695   gp9001_videoram16_w(0, data, mem_mask);
652   gp9001_voffs_w(offset, 0xffff);
653   gp9001_videoram16_w(data, mem_mask);
696654}
697655
698656READ16_MEMBER( gp9001vdp_device::pipibibi_bootleg_spriteram16_r )
699657{
700   gp9001_voffs_w(0, (0x1800 + offset), 0);
701   return gp9001_videoram16_r(0);
658   gp9001_voffs_w((0x1800 + offset), 0);
659   return gp9001_videoram16_r();
702660}
703661
704662WRITE16_MEMBER( gp9001vdp_device::pipibibi_bootleg_spriteram16_w )
705663{
706   gp9001_voffs_w(0, (0x1800 + offset), mem_mask);
707   gp9001_videoram16_w(0, data, mem_mask);
664   gp9001_voffs_w((0x1800 + offset), mem_mask);
665   gp9001_videoram16_w(data, mem_mask);
708666}
709667
710668/***************************************************************************
r29641r29642
713671
714672void gp9001vdp_device::draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, const UINT8* primap )
715673{
716   gfx_element *gfx = m_gfxdecode->gfx(tile_region+1);
674   const UINT16 primask = (GP9001_PRIMASK << 8);
717675
718   int offs, old_x, old_y;
719
720676   UINT16 *source;
721677
722   if (sp.use_sprite_buffer) source=(UINT16 *)(sp.vram16_buffer);
723   else source=(UINT16 *)(sp.vram16);
678   if (sp.use_sprite_buffer) source = sp.vram16_buffer;
679   else source = m_spriteram;
680   gfx_element *spritegfx = gfx(1);
681   int total_elements = spritegfx->elements();
682   int total_colors = spritegfx->colors();
724683
725   old_x = (-(sp.scrollx)) & 0x1ff;
726   old_y = (-(sp.scrolly)) & 0x1ff;
684   int old_x = (-(sp.scrollx)) & 0x1ff;
685   int old_y = (-(sp.scrolly)) & 0x1ff;
727686
728
729   for (offs = 0; offs < (GP9001_SPRITERAM_SIZE/2); offs += 4)
687   for (int offs = 0; offs < (GP9001_SPRITERAM_SIZE/2); offs += 4)
730688   {
731689      int attrib, sprite, color, priority, flipx, flipy, sx, sy;
732690      int sprite_sizex, sprite_sizey, dim_x, dim_y, sx_base, sy_base;
733691      int bank, sprite_num;
734      UINT16 primask = (GP9001_PRIMASK << 8);
735692
736693      attrib = source[offs];
737694      priority = primap[((attrib & primask)>>8)]+1;
r29641r29642
821778                   flipx,flipy,
822779                   sx,sy,0);
823780               */
824               sprite %= gfx->elements();
825               color %= gfx->colors();
826
781               sprite %= total_elements;
782               color %= total_colors;
783               const pen_t *paldata = &palette()->pen(color * 16);
827784               {
828785                  int yy, xx;
829                  const pen_t *paldata = &m_palette->pen(gfx->colorbase() + gfx->granularity() * color);
830                  const UINT8* srcdata = gfx->get_data(sprite);
786                  const UINT8* srcdata = spritegfx->get_data(sprite);
831787                  int count = 0;
832788                  int ystart, yend, yinc;
833789                  int xstart, xend, xinc;
r29641r29642
976932void gp9001vdp_device::gp9001_screen_eof(void)
977933{
978934   /** Shift sprite RAM buffers  ***  Used to fix sprite lag **/
979   if (sp.use_sprite_buffer) memcpy(sp.vram16_buffer,sp.vram16,GP9001_SPRITERAM_SIZE);
935   if (sp.use_sprite_buffer) memcpy(sp.vram16_buffer,m_spriteram,GP9001_SPRITERAM_SIZE);
980936}
981
982//-------------------------------------------------
983//  static_set_palette_tag: Set the tag of the
984//  palette device
985//-------------------------------------------------
986
987void gp9001vdp_device::static_set_palette_tag(device_t &device, const char *tag)
988{
989   downcast<gp9001vdp_device &>(device).m_palette.set_tag(tag);
990}
trunk/src/mame/video/gp9001.h
r29641r29642
1414
1515   gp9001layeroffsets extra_xoffset;
1616   gp9001layeroffsets extra_yoffset;
17
18   UINT16* vram16; // vram for this layer
1917};
2018
2119struct gp9001tilemaplayer : gp9001layer
r29641r29642
3129
3230
3331class gp9001vdp_device : public device_t,
32                     public device_gfx_interface,
3433                     public device_video_interface,
3534                     public device_memory_interface
3635{
36   static const gfx_layout tilelayout, spritelayout;
37   DECLARE_GFXDECODE_MEMBER(gfxinfo);
38
3739public:
3840   gp9001vdp_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
3941
40   // static configuration
41   static void static_set_gfxdecode_tag(device_t &device, const char *tag);
42   static void static_set_palette_tag(device_t &device, const char *tag);
43   static void static_set_gfx_region(device_t &device, int gfxregion);
44
4542   UINT16 gp9001_voffs;
4643   UINT16 gp9001_scroll_reg;
4744
4845   gp9001tilemaplayer bg, top, fg;
4946   gp9001spritelayer sp;
5047
51   int    tile_region; // we also use this to figure out which vdp we're using in some debug logging features
52
5348   // technically this is just rom banking, allowing the chip to see more graphic ROM, however it's easier to handle it
5449   // in the chip implementation than externally for now (which would require dynamic decoding of the entire charsets every
5550   // time the bank was changed)
r29641r29642
6257   void gp9001_draw_custom_tilemap(running_machine& machine, bitmap_ind16 &bitmap, tilemap_t* tilemap, const UINT8* priremap, const UINT8* pri_enable );
6358   void gp9001_render_vdp(running_machine& machine, bitmap_ind16 &bitmap, const rectangle &cliprect);
6459   void gp9001_screen_eof(void);
65   void create_tilemaps(int region);
60   void create_tilemaps(void);
6661   void init_scroll_regs(void);
6762
6863   bitmap_ind8 *custom_priority_bitmap;
6964
65   DECLARE_ADDRESS_MAP(map, 16);
66
7067   // access to VDP
7168   DECLARE_READ16_MEMBER( gp9001_vdp_r );
7269   DECLARE_WRITE16_MEMBER( gp9001_vdp_w );
r29641r29642
8481   DECLARE_WRITE16_MEMBER( gp9001_bg_tmap_w );
8582   DECLARE_WRITE16_MEMBER( gp9001_fg_tmap_w );
8683   DECLARE_WRITE16_MEMBER( gp9001_top_tmap_w );
87   DECLARE_READ16_MEMBER( gp9001_bg_tmap_r );
88   DECLARE_READ16_MEMBER( gp9001_fg_tmap_r );
89   DECLARE_READ16_MEMBER( gp9001_top_tmap_r );
90   DECLARE_READ16_MEMBER( gp9001_spram_r );
91   DECLARE_WRITE16_MEMBER( gp9001_spram_w );
9284
9385protected:
94   virtual void device_validity_check(validity_checker &valid) const;
9586   virtual void device_start();
9687   virtual void device_reset();
9788
9889   virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const;
9990
10091   address_space_config        m_space_config;
101   UINT8                       m_gfxregion;
10292
10393   TILE_GET_INFO_MEMBER(get_top0_tile_info);
10494   TILE_GET_INFO_MEMBER(get_fg0_tile_info);
10595   TILE_GET_INFO_MEMBER(get_bg0_tile_info);
10696
10797private:
108   void gp9001_voffs_w(offs_t offset, UINT16 data, UINT16 mem_mask);
109   int gp9001_videoram16_r(offs_t offset);
110   void gp9001_videoram16_w(offs_t offset, UINT16 data, UINT16 mem_mask);
111   UINT16 gp9001_vdpstatus_r();
112   void gp9001_scroll_reg_select_w( offs_t offset, UINT16 data, UINT16 mem_mask );
113   void gp9001_scroll_reg_data_w(offs_t offset, UINT16 data, UINT16 mem_mask);
114   required_device<gfxdecode_device> m_gfxdecode;
115   required_device<palette_device> m_palette;
98   required_shared_ptr<UINT16> m_vram_bg;
99   required_shared_ptr<UINT16> m_vram_fg;
100   required_shared_ptr<UINT16> m_vram_top;
101   required_shared_ptr<UINT16> m_spriteram;
102
103   void gp9001_voffs_w(UINT16 data, UINT16 mem_mask);
104   int gp9001_videoram16_r(void);
105   void gp9001_videoram16_w(UINT16 data, UINT16 mem_mask);
106   UINT16 gp9001_vdpstatus_r(void);
107   void gp9001_scroll_reg_select_w(UINT16 data, UINT16 mem_mask);
108   void gp9001_scroll_reg_data_w(UINT16 data, UINT16 mem_mask);
116109};
117110
118111extern const device_type GP9001_VDP;
r29641r29642
123116#define GP9001_SPRITERAM_SIZE 0x800 /* Sprite     RAM size */
124117#define GP9001_SPRITE_FLIPX 0x1000  /* Sprite flip flags */
125118#define GP9001_SPRITE_FLIPY 0x2000
126
127
128
129/* vdp map 0, gfx region 0 */
130#define MCFG_DEVICE_ADD_VDP0 \
131   MCFG_DEVICE_ADD("gp9001vdp0", GP9001_VDP, 0) \
132   gp9001vdp_device::static_set_gfx_region(*device, 0);
133
134/* vdp map 1, gfx region 2 */
135#define MCFG_DEVICE_ADD_VDP1 \
136   MCFG_DEVICE_ADD("gp9001vdp1", GP9001_VDP, 0) \
137   gp9001vdp_device::static_set_gfx_region(*device, 2);
138
139#define MCFG_GP9001_VDP_GFXDECODE(_gfxtag) \
140   gp9001vdp_device::static_set_gfxdecode_tag(*device, "^" _gfxtag);
141
142#define MCFG_GP9001_VDP_PALETTE(_palette_tag) \
143   gp9001vdp_device::static_set_palette_tag(*device, "^" _palette_tag);
trunk/src/mame/drivers/toaplan2.c
r29641r29642
368368MACHINE_START_MEMBER(toaplan2_state,toaplan2)
369369{
370370   save_item(NAME(m_mcu_data));
371   save_item(NAME(m_video_status));
372371   save_item(NAME(m_old_p1_paddle_h));
373372   save_item(NAME(m_old_p2_paddle_h));
374373   save_item(NAME(m_z80_busreq));
r29641r29642
505504   int hpos = m_screen->hpos();
506505   int vpos = m_screen->vpos();
507506
508   m_video_status = 0xff00;    // Set signals inactive
507   int video_status = 0xff00;    // Set signals inactive
509508
510509   vpos = (vpos + 15) % 262;
511510
r29641r29642
515514   vblank = (vpos >= 247) && (vpos <= 250);
516515
517516   if (hblank)
518      m_video_status &= ~0x8000;
517      video_status &= ~0x8000;
519518   if (vblank)
520      m_video_status &= ~0x4000;
519      video_status &= ~0x4000;
521520   if (vblank || hblank) // ?? Dogyuun is too slow if this is wrong
522      m_video_status &= ~0x0100;
521      video_status &= ~0x0100;
523522   if (vpos < 256)
524      m_video_status |= (vpos & 0xff);
523      video_status |= (vpos & 0xff);
525524   else
526      m_video_status |= 0xff;
525      video_status |= 0xff;
527526
528527//  logerror("VC: vpos=%04x hpos=%04x VBL=%04x\n",vpos,hpos,m_screen->vblank());
529528
530   return m_video_status;
529   return video_status;
531530}
532531
533532
r29641r29642
990989   AM_RANGE(0x020000, 0x03ffff) AM_ROM                     // extra for Whoopee
991990   AM_RANGE(0x080000, 0x082fff) AM_RAM
992991   AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
993   AM_RANGE(0x140000, 0x14000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
992   AM_RANGE(0x140000, 0x14000d) AM_DEVREADWRITE("gp9001", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
994993   AM_RANGE(0x180000, 0x180001) AM_READ_PORT("DSWA")
995994   AM_RANGE(0x180010, 0x180011) AM_READ_PORT("DSWB")
996995   AM_RANGE(0x180020, 0x180021) AM_READ_PORT("SYS")
r29641r29642
10081007   AM_RANGE(0x080000, 0x083fff) AM_RAM
10091008   AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
10101009   AM_RANGE(0x100000, 0x100001) AM_READ(ghox_p1_h_analog_r)
1011   AM_RANGE(0x140000, 0x14000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
1010   AM_RANGE(0x140000, 0x14000d) AM_DEVREADWRITE("gp9001", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
10121011   AM_RANGE(0x180000, 0x180001) AM_READWRITE(ghox_mcu_r, ghox_mcu_w)   // really part of shared RAM
10131012   AM_RANGE(0x180006, 0x180007) AM_READ_PORT("DSWA")
10141013   AM_RANGE(0x180008, 0x180009) AM_READ_PORT("DSWB")
r29641r29642
10291028   AM_RANGE(0x200018, 0x200019) AM_READ_PORT("SYS")
10301029   AM_RANGE(0x20001c, 0x20001d) AM_WRITE(toaplan2_v25_coin_word_w) // Coin count/lock + v25 reset line
10311030   AM_RANGE(0x210000, 0x21ffff) AM_READWRITE(shared_ram_r, shared_ram_w )
1032   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
1031   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
10331032   AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
1034   AM_RANGE(0x500000, 0x50000d) AM_DEVREADWRITE("gp9001vdp1", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
1033   AM_RANGE(0x500000, 0x50000d) AM_DEVREADWRITE("gp9001_1", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
10351034   AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r)         // test bit 8
10361035ADDRESS_MAP_END
10371036
r29641r29642
10441043   AM_RANGE(0x208014, 0x208015) AM_READ_PORT("IN2")
10451044   AM_RANGE(0x208018, 0x208019) AM_READ_PORT("SYS")
10461045   AM_RANGE(0x20801c, 0x20801d) AM_WRITE(toaplan2_coin_word_w)
1047   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
1046   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
10481047   AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
10491048   AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r)         // test bit 8
10501049ADDRESS_MAP_END
r29641r29642
10661065   AM_RANGE(0x200024, 0x200025) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff)
10671066   AM_RANGE(0x200028, 0x200029) AM_WRITE(oki1_bankswitch_w)
10681067   AM_RANGE(0x20002c, 0x20002d) AM_READ(video_count_r)
1069   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
1068   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
10701069   AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
10711070ADDRESS_MAP_END
10721071
r29641r29642
10741073static ADDRESS_MAP_START( truxton2_68k_mem, AS_PROGRAM, 16, toaplan2_state )
10751074   AM_RANGE(0x000000, 0x07ffff) AM_ROM
10761075   AM_RANGE(0x100000, 0x10ffff) AM_RAM
1077   AM_RANGE(0x200000, 0x20000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
1076   AM_RANGE(0x200000, 0x20000d) AM_DEVREADWRITE("gp9001", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
10781077   AM_RANGE(0x300000, 0x300fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
10791078   AM_RANGE(0x400000, 0x401fff) AM_RAM_WRITE(toaplan2_tx_videoram_w) AM_SHARE("tx_videoram")
10801079   AM_RANGE(0x402000, 0x402fff) AM_RAM AM_SHARE("tx_lineselect")
r29641r29642
10981097   AM_RANGE(0x000000, 0x03ffff) AM_ROM
10991098   AM_RANGE(0x080000, 0x082fff) AM_RAM
11001099   AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
1101   AM_RANGE(0x140000, 0x14000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
1100   AM_RANGE(0x140000, 0x14000d) AM_DEVREADWRITE("gp9001", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
11021101   AM_RANGE(0x190000, 0x190fff) AM_READWRITE(shared_ram_r, shared_ram_w)
11031102   AM_RANGE(0x19c01c, 0x19c01d) AM_WRITE(toaplan2_coin_word_w)
11041103   AM_RANGE(0x19c020, 0x19c021) AM_READ_PORT("DSWA")
r29641r29642
11131112static ADDRESS_MAP_START( pipibibi_bootleg_68k_mem, AS_PROGRAM, 16, toaplan2_state )
11141113   AM_RANGE(0x000000, 0x03ffff) AM_ROM
11151114   AM_RANGE(0x080000, 0x082fff) AM_RAM
1116   AM_RANGE(0x083000, 0x0837ff) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, pipibibi_bootleg_spriteram16_r, pipibibi_bootleg_spriteram16_w)   // SpriteRAM
1115   AM_RANGE(0x083000, 0x0837ff) AM_DEVREADWRITE("gp9001", gp9001vdp_device, pipibibi_bootleg_spriteram16_r, pipibibi_bootleg_spriteram16_w)   // SpriteRAM
11171116   AM_RANGE(0x083800, 0x087fff) AM_RAM             // SpriteRAM (unused)
11181117   AM_RANGE(0x0c0000, 0x0c0fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
11191118   AM_RANGE(0x120000, 0x120fff) AM_RAM             // Copy of SpriteRAM ?
11201119//  AM_RANGE(0x13f000, 0x13f001) AM_WRITENOP        // ???
1121   AM_RANGE(0x180000, 0x182fff) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, pipibibi_bootleg_videoram16_r, pipibibi_bootleg_videoram16_w) // TileRAM
1122   AM_RANGE(0x188000, 0x18800f) AM_DEVWRITE("gp9001vdp0", gp9001vdp_device, pipibibi_bootleg_scroll_w)
1120   AM_RANGE(0x180000, 0x182fff) AM_DEVREADWRITE("gp9001", gp9001vdp_device, pipibibi_bootleg_videoram16_r, pipibibi_bootleg_videoram16_w) // TileRAM
1121   AM_RANGE(0x188000, 0x18800f) AM_DEVWRITE("gp9001", gp9001vdp_device, pipibibi_bootleg_scroll_w)
11231122   AM_RANGE(0x190002, 0x190003) AM_READ(shared_ram_r)  // Z80 ready ?
11241123   AM_RANGE(0x190010, 0x190011) AM_WRITE(shared_ram_w) // Z80 task to perform
11251124   AM_RANGE(0x19c01c, 0x19c01d) AM_WRITE(toaplan2_coin_word_w)
r29641r29642
11411140   AM_RANGE(0x200010, 0x200011) AM_READ_PORT("SYS")
11421141   AM_RANGE(0x20001c, 0x20001d) AM_WRITE(toaplan2_coin_word_w)
11431142   AM_RANGE(0x280000, 0x28ffff) AM_READWRITE(shared_ram_r, shared_ram_w )
1144   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
1143   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
11451144   AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
11461145   AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(toaplan2_tx_videoram_w) AM_SHARE("tx_videoram")
11471146   AM_RANGE(0x502000, 0x5021ff) AM_RAM AM_SHARE("tx_lineselect")
r29641r29642
11631162   AM_RANGE(0x200014, 0x200015) AM_WRITE(fixeightbl_oki_bankswitch_w)  // Sound banking. Code at $4084c, $5070
11641163   AM_RANGE(0x200018, 0x200019) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
11651164   AM_RANGE(0x20001c, 0x20001d) AM_READ_PORT("DSWA")
1166   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
1165   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
11671166   AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
11681167   AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(toaplan2_tx_videoram_w) AM_SHARE("tx_videoram")
11691168   AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r)
r29641r29642
11801179   AM_RANGE(0x200018, 0x200019) AM_READ_PORT("SYS")
11811180   AM_RANGE(0x20001c, 0x20001d) AM_WRITE(toaplan2_v25_coin_word_w) // Coin count/lock + v25 reset line
11821181   AM_RANGE(0x210000, 0x21ffff) AM_READWRITE(shared_ram_r, shared_ram_w )
1183   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
1182   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
11841183   AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
11851184   AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r)
11861185ADDRESS_MAP_END
r29641r29642
11941193   AM_RANGE(0x200018, 0x200019) AM_READ_PORT("SYS")
11951194   AM_RANGE(0x20001c, 0x20001d) AM_WRITE(toaplan2_v25_coin_word_w) // Coin count/lock + v25 reset line
11961195   AM_RANGE(0x210000, 0x21ffff) AM_READWRITE(shared_ram_r, shared_ram_w )
1197   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
1196   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
11981197   AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
1199   AM_RANGE(0x500000, 0x50000d) AM_DEVREADWRITE("gp9001vdp1", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
1198   AM_RANGE(0x500000, 0x50000d) AM_DEVREADWRITE("gp9001_1", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
12001199   AM_RANGE(0x700000, 0x700001) AM_READ(video_count_r)
12011200ADDRESS_MAP_END
12021201
r29641r29642
12051204   AM_RANGE(0x100000, 0x10ffff) AM_RAM
12061205
12071206   AM_RANGE(0x200000, 0x20000f) AM_DEVREADWRITE8("rtc", upd4992_device, read, write, 0x00ff )
1208   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
1207   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
12091208   AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
12101209   AM_RANGE(0x600000, 0x600001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
12111210
r29641r29642
12261225   AM_RANGE(0x100000, 0x10ffff) AM_RAM
12271226
12281227   AM_RANGE(0x200000, 0x20000f) AM_DEVREADWRITE8("rtc", upd4992_device, read, write, 0x00ff )
1229   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
1228   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
12301229   AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
12311230   AM_RANGE(0x600000, 0x600001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
12321231
r29641r29642
12451244static ADDRESS_MAP_START( snowbro2_68k_mem, AS_PROGRAM, 16, toaplan2_state )
12461245   AM_RANGE(0x000000, 0x07ffff) AM_ROM
12471246   AM_RANGE(0x100000, 0x10ffff) AM_RAM
1248   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
1247   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
12491248   AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
12501249   AM_RANGE(0x500000, 0x500003) AM_DEVREADWRITE8("ymsnd", ym2151_device, read, write, 0x00ff)
12511250   AM_RANGE(0x600000, 0x600001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
r29641r29642
12741273   AM_RANGE(0x21c030, 0x21c031) AM_READ_PORT("DSWB")
12751274   AM_RANGE(0x21c034, 0x21c035) AM_READ_PORT("JMPR")
12761275   AM_RANGE(0x21c03c, 0x21c03d) AM_READ(video_count_r)
1277   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
1276   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
12781277   AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
12791278   AM_RANGE(0x401000, 0x4017ff) AM_RAM                         // Unused palette RAM
12801279   AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(toaplan2_tx_videoram_w) AM_SHARE("tx_videoram")
r29641r29642
12971296   AM_RANGE(0x21c030, 0x21c031) AM_READ_PORT("DSWB")
12981297   AM_RANGE(0x21c034, 0x21c035) AM_READ_PORT("JMPR")
12991298   AM_RANGE(0x21c03c, 0x21c03d) AM_READ(video_count_r)
1300   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
1299   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
13011300   AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
13021301   AM_RANGE(0x401000, 0x4017ff) AM_RAM                         // Unused palette RAM
13031302   AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(toaplan2_tx_videoram_w) AM_SHARE("tx_videoram")
r29641r29642
13191318   AM_RANGE(0x21c030, 0x21c031) AM_READ_PORT("DSWB")
13201319   AM_RANGE(0x21c034, 0x21c035) AM_READ_PORT("JMPR")
13211320   AM_RANGE(0x21c03c, 0x21c03d) AM_READ(video_count_r)
1322   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
1321   AM_RANGE(0x300000, 0x30000d) AM_DEVREADWRITE("gp9001", gp9001vdp_device, gp9001_vdp_r, gp9001_vdp_w)
13231322   AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
13241323   AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(toaplan2_tx_videoram_w) AM_SHARE("tx_videoram")
13251324   AM_RANGE(0x502000, 0x502fff) AM_RAM AM_SHARE("tx_lineselect")
r29641r29642
13391338   AM_RANGE(0x203400, 0x207fff) AM_RAM AM_SHARE("mainram16")
13401339   AM_RANGE(0x208000, 0x20ffff) AM_RAM
13411340   AM_RANGE(0x300000, 0x37ffff) AM_READ(batrider_z80rom_r)
1342   AM_RANGE(0x400000, 0x40000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_alt_r, gp9001_vdp_alt_w)
1341   AM_RANGE(0x400000, 0x40000d) AM_DEVREADWRITE("gp9001", gp9001vdp_device, gp9001_vdp_alt_r, gp9001_vdp_alt_w)
13431342   AM_RANGE(0x500000, 0x500001) AM_READ_PORT("IN")
13441343   AM_RANGE(0x500002, 0x500003) AM_READ_PORT("SYS-DSW")
13451344   AM_RANGE(0x500004, 0x500005) AM_READ_PORT("DSW")
r29641r29642
13691368   AM_RANGE(0x203400, 0x207fff) AM_RAM AM_SHARE("mainram16")
13701369   AM_RANGE(0x208000, 0x20ffff) AM_RAM
13711370   AM_RANGE(0x300000, 0x33ffff) AM_READ(batrider_z80rom_r)
1372   AM_RANGE(0x400000, 0x40000d) AM_DEVREADWRITE("gp9001vdp0", gp9001vdp_device, gp9001_vdp_alt_r, gp9001_vdp_alt_w)
1371   AM_RANGE(0x400000, 0x40000d) AM_DEVREADWRITE("gp9001", gp9001vdp_device, gp9001_vdp_alt_r, gp9001_vdp_alt_w)
13731372   AM_RANGE(0x500000, 0x500001) AM_READ_PORT("IN")
13741373   AM_RANGE(0x500002, 0x500003) AM_READ_PORT("SYS-DSW")
13751374   AM_RANGE(0x500004, 0x500005) AM_READ_PORT("DSW")
r29641r29642
29862985INPUT_PORTS_END
29872986
29882987
2988// Text layer graphics -- ROM based in some games, RAM based in others
2989// See video/gp9001.c for the main graphics layouts
29892990
2990static const gfx_layout tilelayout =
2991{
2992   16,16,          /* 16x16 */
2993   RGN_FRAC(1,2),  /* Number of tiles */
2994   4,              /* 4 bits per pixel */
2995   { RGN_FRAC(1,2)+8, RGN_FRAC(1,2), 8, 0 },
2996   { 0, 1, 2, 3, 4, 5, 6, 7,
2997      8*16+0, 8*16+1, 8*16+2, 8*16+3, 8*16+4, 8*16+5, 8*16+6, 8*16+7 },
2998   { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
2999      16*16, 17*16, 18*16, 19*16, 20*16, 21*16, 22*16, 23*16 },
3000   8*4*16
3001};
3002
3003static const gfx_layout spritelayout =
3004{
3005   8,8,            /* 8x8 */
3006   RGN_FRAC(1,2),  /* Number of 8x8 sprites */
3007   4,              /* 4 bits per pixel */
3008   { RGN_FRAC(1,2)+8, RGN_FRAC(1,2), 8, 0 },
3009   { 0, 1, 2, 3, 4, 5, 6, 7 },
3010   { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 },
3011   8*16
3012};
3013
30142991static const gfx_layout raizing_textlayout =
30152992{
30162993   8,8,    /* 8x8 characters */
r29641r29642
30583035   8*8*4
30593036};
30603037
3061static GFXDECODE_START( toaplan2 )
3062   GFXDECODE_ENTRY( "gfx1", 0, tilelayout,   0, 0x1000 )
3063   GFXDECODE_ENTRY( "gfx1", 0, spritelayout, 0, 0x1000 )
3064GFXDECODE_END
3065
3066static GFXDECODE_START( t2dualvdp )
3067   GFXDECODE_ENTRY( "gfx1", 0, tilelayout,   0, 0x1000 )
3068   GFXDECODE_ENTRY( "gfx1", 0, spritelayout, 0, 0x1000 )
3069   GFXDECODE_ENTRY( "gfx2", 0, tilelayout,   0, 0x1000 )
3070   GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 0, 0x1000 )
3071GFXDECODE_END
3072
30733038static GFXDECODE_START( truxton2 )
3074   GFXDECODE_ENTRY( "gfx1", 0, tilelayout            , 0, 0x1000 )
3075   GFXDECODE_ENTRY( "gfx1", 0, spritelayout          , 0, 0x1000 )
30763039   GFXDECODE_ENTRY( NULL,   0, truxton2_tx_tilelayout, 64*16, 64 )
30773040GFXDECODE_END
30783041
30793042static GFXDECODE_START( raizing )
3080   GFXDECODE_ENTRY( "gfx1", 0, tilelayout,         0, 0x1000 )
3081   GFXDECODE_ENTRY( "gfx1", 0, spritelayout,       0, 0x1000 )
3082   GFXDECODE_ENTRY( "gfx2", 0, raizing_textlayout, 64*16, 64 )
3043   GFXDECODE_ENTRY( "text", 0, raizing_textlayout, 64*16, 64 )
30833044GFXDECODE_END
30843045
30853046static GFXDECODE_START( batrider )
3086   GFXDECODE_ENTRY( "gfx1", 0, tilelayout,             0, 0x1000 )
3087   GFXDECODE_ENTRY( "gfx1", 0, spritelayout,           0, 0x1000 )
30883047   GFXDECODE_ENTRY( NULL,   0, batrider_tx_tilelayout, 64*16, 64 )
30893048GFXDECODE_END
30903049
30913050static GFXDECODE_START( fixeightbl )
3092   GFXDECODE_ENTRY( "gfx1", 0, tilelayout     , 0, 0x1000 )
3093   GFXDECODE_ENTRY( "gfx1", 0, spritelayout   , 0, 0x1000 )
3094   GFXDECODE_ENTRY( "gfx2", 0, fixeightblayout, 64*16, 64 )
3051   GFXDECODE_ENTRY( "text", 0, fixeightblayout, 64*16, 64 )
30953052GFXDECODE_END
30963053
30973054
r29641r29642
31343091   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
31353092   MCFG_SCREEN_PALETTE("palette")
31363093
3137   MCFG_GFXDECODE_ADD("gfxdecode", "palette", toaplan2)
31383094   MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
31393095   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
31403096
3141   MCFG_DEVICE_ADD_VDP0
3142   MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
3143   MCFG_GP9001_VDP_PALETTE("palette")
3097   MCFG_DEVICE_ADD("gp9001", GP9001_VDP, 0)
3098   MCFG_GFX_PALETTE("palette")
31443099
31453100   MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
31463101
r29641r29642
31793134   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
31803135   MCFG_SCREEN_PALETTE("palette")
31813136
3182   MCFG_GFXDECODE_ADD("gfxdecode", "palette", toaplan2)
31833137   MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
31843138   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
31853139
3186   MCFG_DEVICE_ADD_VDP0
3187   MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
3188   MCFG_GP9001_VDP_PALETTE("palette")
3140   MCFG_DEVICE_ADD("gp9001", GP9001_VDP, 0)
3141   MCFG_GFX_PALETTE("palette")
31893142
31903143   MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
31913144
r29641r29642
32683221   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
32693222   MCFG_SCREEN_PALETTE("palette")
32703223
3271   MCFG_GFXDECODE_ADD("gfxdecode", "palette", t2dualvdp)
32723224   MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
32733225   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
32743226
3275   MCFG_DEVICE_ADD_VDP0
3276   MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
3277   MCFG_GP9001_VDP_PALETTE("palette")
3227   MCFG_DEVICE_ADD("gp9001", GP9001_VDP, 0)
3228   MCFG_GFX_PALETTE("palette")
32783229
3279   MCFG_DEVICE_ADD_VDP1
3280   MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
3281   MCFG_GP9001_VDP_PALETTE("palette")
3230   MCFG_DEVICE_ADD("gp9001_1", GP9001_VDP, 0)
3231   MCFG_GFX_PALETTE("palette")
32823232
32833233   MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
32843234
r29641r29642
33193269   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
33203270   MCFG_SCREEN_PALETTE("palette")
33213271
3322   MCFG_GFXDECODE_ADD("gfxdecode", "palette", toaplan2)
33233272   MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
33243273   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
33253274
3326   MCFG_DEVICE_ADD_VDP0
3327   MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
3328   MCFG_GP9001_VDP_PALETTE("palette")
3275   MCFG_DEVICE_ADD("gp9001", GP9001_VDP, 0)
3276   MCFG_GFX_PALETTE("palette")
33293277
33303278   MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
33313279
r29641r29642
33603308   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
33613309   MCFG_SCREEN_PALETTE("palette")
33623310
3363   MCFG_GFXDECODE_ADD("gfxdecode", "palette", toaplan2)
33643311   MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
33653312   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
33663313
3367   MCFG_DEVICE_ADD_VDP0
3368   MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
3369   MCFG_GP9001_VDP_PALETTE("palette")
3314   MCFG_DEVICE_ADD("gp9001", GP9001_VDP, 0)
3315   MCFG_GFX_PALETTE("palette")
33703316
33713317   MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
33723318
r29641r29642
34023348   MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
34033349   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
34043350
3405   MCFG_DEVICE_ADD_VDP0
3406   MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
3407   MCFG_GP9001_VDP_PALETTE("palette")
3351   MCFG_DEVICE_ADD("gp9001", GP9001_VDP, 0)
3352   MCFG_GFX_PALETTE("palette")
34083353
34093354   MCFG_VIDEO_START_OVERRIDE(toaplan2_state,truxton2)
34103355
r29641r29642
34573402   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
34583403   MCFG_SCREEN_PALETTE("palette")
34593404
3460   MCFG_GFXDECODE_ADD("gfxdecode", "palette", toaplan2)
34613405   MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
34623406   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
34633407
3464   MCFG_DEVICE_ADD_VDP0
3465   MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
3466   MCFG_GP9001_VDP_PALETTE("palette")
3408   MCFG_DEVICE_ADD("gp9001", GP9001_VDP, 0)
3409   MCFG_GFX_PALETTE("palette")
34673410
34683411   MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
34693412
r29641r29642
35023445   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
35033446   MCFG_SCREEN_PALETTE("palette")
35043447
3505   MCFG_GFXDECODE_ADD("gfxdecode", "palette", toaplan2)
35063448   MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
35073449   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
35083450
3509   MCFG_DEVICE_ADD_VDP0
3510   MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
3511   MCFG_GP9001_VDP_PALETTE("palette")
3451   MCFG_DEVICE_ADD("gp9001", GP9001_VDP, 0)
3452   MCFG_GFX_PALETTE("palette")
35123453
35133454   MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
35143455
r29641r29642
35863527   MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
35873528   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
35883529
3589   MCFG_DEVICE_ADD_VDP0
3590   MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
3591   MCFG_GP9001_VDP_PALETTE("palette")
3530   MCFG_DEVICE_ADD("gp9001", GP9001_VDP, 0)
3531   MCFG_GFX_PALETTE("palette")
35923532
35933533   MCFG_VIDEO_START_OVERRIDE(toaplan2_state,truxton2)
35943534
r29641r29642
36273567   MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
36283568   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
36293569
3630   MCFG_DEVICE_ADD_VDP0
3631   MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
3632   MCFG_GP9001_VDP_PALETTE("palette")
3570   MCFG_DEVICE_ADD("gp9001", GP9001_VDP, 0)
3571   MCFG_GFX_PALETTE("palette")
36333572
36343573   MCFG_VIDEO_START_OVERRIDE(toaplan2_state,fixeightbl)
36353574
r29641r29642
36643603   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
36653604   MCFG_SCREEN_PALETTE("palette")
36663605
3667   MCFG_GFXDECODE_ADD("gfxdecode", "palette", toaplan2)
36683606   MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
36693607   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
36703608
3671   MCFG_DEVICE_ADD_VDP0
3672   MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
3673   MCFG_GP9001_VDP_PALETTE("palette")
3609   MCFG_DEVICE_ADD("gp9001", GP9001_VDP, 0)
3610   MCFG_GFX_PALETTE("palette")
36743611
36753612   MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
36763613
r29641r29642
37063643   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
37073644   MCFG_SCREEN_PALETTE("palette")
37083645
3709   MCFG_GFXDECODE_ADD("gfxdecode", "palette", t2dualvdp)
37103646   MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
37113647   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
37123648
3713   MCFG_DEVICE_ADD_VDP0
3714   MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
3715   MCFG_GP9001_VDP_PALETTE("palette")
3649   MCFG_DEVICE_ADD("gp9001", GP9001_VDP, 0)
3650   MCFG_GFX_PALETTE("palette")
37163651
3717   MCFG_DEVICE_ADD_VDP1
3718   MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
3719   MCFG_GP9001_VDP_PALETTE("palette")
3652   MCFG_DEVICE_ADD("gp9001_1", GP9001_VDP, 0)
3653   MCFG_GFX_PALETTE("palette")
37203654
37213655   MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
37223656
r29641r29642
37483682   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
37493683   MCFG_SCREEN_PALETTE("palette")
37503684
3751   MCFG_GFXDECODE_ADD("gfxdecode", "palette", toaplan2)
37523685   MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
37533686   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
37543687
3755   MCFG_DEVICE_ADD_VDP0
3756   MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
3757   MCFG_GP9001_VDP_PALETTE("palette")
3688   MCFG_DEVICE_ADD("gp9001", GP9001_VDP, 0)
3689   MCFG_GFX_PALETTE("palette")
37583690
37593691   MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
37603692
r29641r29642
37823714   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
37833715   MCFG_SCREEN_PALETTE("palette")
37843716
3785   MCFG_GFXDECODE_ADD("gfxdecode", "palette", toaplan2)
37863717   MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
37873718   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
37883719
3789   MCFG_DEVICE_ADD_VDP0
3790   MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
3791   MCFG_GP9001_VDP_PALETTE("palette")
3720   MCFG_DEVICE_ADD("gp9001", GP9001_VDP, 0)
3721   MCFG_GFX_PALETTE("palette")
37923722
37933723   MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
37943724
r29641r29642
38193749   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
38203750   MCFG_SCREEN_PALETTE("palette")
38213751
3822   MCFG_GFXDECODE_ADD("gfxdecode", "palette", toaplan2)
38233752   MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
38243753   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
38253754
3826   MCFG_DEVICE_ADD_VDP0
3827   MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
3828   MCFG_GP9001_VDP_PALETTE("palette")
3755   MCFG_DEVICE_ADD("gp9001", GP9001_VDP, 0)
3756   MCFG_GFX_PALETTE("palette")
38293757
38303758   MCFG_VIDEO_START_OVERRIDE(toaplan2_state,toaplan2)
38313759
r29641r29642
38703798   MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
38713799   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
38723800
3873   MCFG_DEVICE_ADD_VDP0
3874   MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
3875   MCFG_GP9001_VDP_PALETTE("palette")
3801   MCFG_DEVICE_ADD("gp9001", GP9001_VDP, 0)
3802   MCFG_GFX_PALETTE("palette")
38763803
38773804   MCFG_VIDEO_START_OVERRIDE(toaplan2_state,bgaregga)
38783805
r29641r29642
39173844   MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
39183845   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
39193846
3920   MCFG_DEVICE_ADD_VDP0
3921   MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
3922   MCFG_GP9001_VDP_PALETTE("palette")
3847   MCFG_DEVICE_ADD("gp9001", GP9001_VDP, 0)
3848   MCFG_GFX_PALETTE("palette")
39233849
39243850   MCFG_VIDEO_START_OVERRIDE(toaplan2_state,bgaregga)
39253851
r29641r29642
39633889   MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
39643890   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
39653891
3966   MCFG_DEVICE_ADD_VDP0
3967   MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
3968   MCFG_GP9001_VDP_PALETTE("palette")
3892   MCFG_DEVICE_ADD("gp9001", GP9001_VDP, 0)
3893   MCFG_GFX_PALETTE("palette")
39693894
39703895   MCFG_VIDEO_START_OVERRIDE(toaplan2_state,bgaregga)
39713896
r29641r29642
40203945   MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
40213946   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
40223947
4023   MCFG_DEVICE_ADD_VDP0
4024   MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
4025   MCFG_GP9001_VDP_PALETTE("palette")
3948   MCFG_DEVICE_ADD("gp9001", GP9001_VDP, 0)
3949   MCFG_GFX_PALETTE("palette")
40263950
40273951   MCFG_VIDEO_START_OVERRIDE(toaplan2_state,batrider)
40283952
r29641r29642
40764000   MCFG_GFXDECODE_ADD("gfxdecode", "palette", batrider)
40774001   MCFG_PALETTE_ADD("palette", T2PALETTE_LENGTH)
40784002   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
4079   MCFG_DEVICE_ADD_VDP0
4080   MCFG_GP9001_VDP_GFXDECODE("gfxdecode")
4081   MCFG_GP9001_VDP_PALETTE("palette")
40824003
4004   MCFG_DEVICE_ADD("gp9001", GP9001_VDP, 0)
4005   MCFG_GFX_PALETTE("palette")
4006
40834007   MCFG_VIDEO_START_OVERRIDE(toaplan2_state,batrider)
40844008
40854009   /* sound hardware */
r29641r29642
41074031   /* sound CPU is a HD647180 (Z180) with internal ROM - not yet supported */
41084032   ROM_LOAD( "hd647180.020", 0x00000, 0x08000, NO_DUMP )
41094033
4110   ROM_REGION( 0x100000, "gfx1", 0 )
4034   ROM_REGION( 0x100000, "gp9001", 0 )
41114035   ROM_LOAD( "tp020-4.bin", 0x000000, 0x080000, CRC(3ebbe41e) SHA1(cea196c5f83e1a23d5b538a0db9bbbffa7af5118) )
41124036   ROM_LOAD( "tp020-3.bin", 0x080000, 0x080000, CRC(2d5e2201) SHA1(5846c844eedd48305c1c67dc645b6e070b3f5b98) )
41134037ROM_END
r29641r29642
41224046   /* sound CPU is a HD647180 (Z180) with internal ROM - not yet supported */
41234047   ROM_LOAD( "hd647180.021", 0x00000, 0x08000, NO_DUMP )
41244048
4125   ROM_REGION( 0x100000, "gfx1", 0 )
4049   ROM_REGION( 0x100000, "gp9001", 0 )
41264050   ROM_LOAD( "tp021-03.u36", 0x000000, 0x080000, CRC(a15d8e9d) SHA1(640a33997bdce8e84bea6a944139716379839037) )
41274051   ROM_LOAD( "tp021-04.u37", 0x080000, 0x080000, CRC(26ed1c9a) SHA1(37da8af86ea24327444c2d4ad3dfbd936208d43d) )
41284052ROM_END
r29641r29642
41374061   /* sound CPU is a HD647180 (Z180) with internal ROM - not yet supported */
41384062   ROM_LOAD( "hd647180.021", 0x00000, 0x08000, NO_DUMP )
41394063
4140   ROM_REGION( 0x100000, "gfx1", 0 )
4064   ROM_REGION( 0x100000, "gp9001", 0 )
41414065   ROM_LOAD( "tp021-03.u36", 0x000000, 0x080000, CRC(a15d8e9d) SHA1(640a33997bdce8e84bea6a944139716379839037) )
41424066   ROM_LOAD( "tp021-04.u37", 0x080000, 0x080000, CRC(26ed1c9a) SHA1(37da8af86ea24327444c2d4ad3dfbd936208d43d) )
41434067ROM_END
r29641r29642
41504074   /* Secondary CPU is a Toaplan marked chip, (TS-002-MACH  TOA PLAN) */
41514075   /* It's a NEC V25 (PLCC94) (encrypted program uploaded by main CPU) */
41524076
4153   ROM_REGION( 0x200000, "gfx1", 0 )
4077   ROM_REGION( 0x200000, "gp9001", 0 )
41544078   ROM_LOAD16_WORD_SWAP( "tp022_3.w92", 0x000000, 0x100000, CRC(191b595f) SHA1(89344946daa18087cc83f92027cf5da659b1c7a5) )
41554079   ROM_LOAD16_WORD_SWAP( "tp022_4.w93", 0x100000, 0x100000, CRC(d58d29ca) SHA1(90d142fef37764ef817347a2bed77892a288a077) )
41564080
4157   ROM_REGION( 0x400000, "gfx2", 0 )
4081   ROM_REGION( 0x400000, "gp9001_1", 0 )
41584082   ROM_LOAD16_WORD_SWAP( "tp022_5.w16", 0x000000, 0x200000, CRC(d4c1db45) SHA1(f5655467149ba737128c2f54c9c6cdaca6e4c35c) )
41594083   ROM_LOAD16_WORD_SWAP( "tp022_6.w17", 0x200000, 0x200000, CRC(d48dc74f) SHA1(081b5a00a2ff2bd82b98b30aab3cb5b6ae1014d5) )
41604084
r29641r29642
41704094   /* Secondary CPU is a Toaplan marked chip, (TS-002-MACH  TOA PLAN) */
41714095   /* It's a NEC V25 (PLCC94) (encrypted program uploaded by main CPU) */
41724096
4173   ROM_REGION( 0x200000, "gfx1", 0 )
4097   ROM_REGION( 0x200000, "gp9001", 0 )
41744098   ROM_LOAD16_WORD_SWAP( "tp022_3.w92", 0x000000, 0x100000, CRC(191b595f) SHA1(89344946daa18087cc83f92027cf5da659b1c7a5) )
41754099   ROM_LOAD16_WORD_SWAP( "tp022_4.w93", 0x100000, 0x100000, CRC(d58d29ca) SHA1(90d142fef37764ef817347a2bed77892a288a077) )
41764100
4177   ROM_REGION( 0x400000, "gfx2", 0 )
4101   ROM_REGION( 0x400000, "gp9001_1", 0 )
41784102   ROM_LOAD16_WORD_SWAP( "tp022_5.w16", 0x000000, 0x200000, CRC(d4c1db45) SHA1(f5655467149ba737128c2f54c9c6cdaca6e4c35c) )
41794103   ROM_LOAD16_WORD_SWAP( "tp022_6.w17", 0x200000, 0x200000, CRC(d48dc74f) SHA1(081b5a00a2ff2bd82b98b30aab3cb5b6ae1014d5) )
41804104
r29641r29642
41904114   /* Secondary CPU is a Toaplan marked chip, (TS-002-MACH  TOA PLAN) */
41914115   /* It's a NEC V25 (PLCC94) (encrypted program uploaded by main CPU) */
41924116
4193   ROM_REGION( 0x200000, "gfx1", 0 )
4117   ROM_REGION( 0x200000, "gp9001", 0 )
41944118   ROM_LOAD16_WORD_SWAP( "tp022_3.w92", 0x000000, 0x100000, CRC(191b595f) SHA1(89344946daa18087cc83f92027cf5da659b1c7a5) )
41954119   ROM_LOAD16_WORD_SWAP( "tp022_4.w93", 0x100000, 0x100000, CRC(d58d29ca) SHA1(90d142fef37764ef817347a2bed77892a288a077) )
41964120
4197   ROM_REGION( 0x400000, "gfx2", 0 )
4121   ROM_REGION( 0x400000, "gp9001_1", 0 )
41984122   ROM_LOAD16_WORD_SWAP( "tp022_5.w16", 0x000000, 0x200000, CRC(d4c1db45) SHA1(f5655467149ba737128c2f54c9c6cdaca6e4c35c) )
41994123   ROM_LOAD16_WORD_SWAP( "tp022_6.w17", 0x200000, 0x200000, CRC(d48dc74f) SHA1(081b5a00a2ff2bd82b98b30aab3cb5b6ae1014d5) )
42004124
r29641r29642
42134137   ROM_REGION( 0x8000, "audiocpu", 0 )         /* Sound CPU code */
42144138   ROM_LOAD( "tp023_02.bin", 0x0000, 0x8000, CRC(4cd882a1) SHA1(7199a5c384918f775f0815e09c46b2a58141814a) )
42154139
4216   ROM_REGION( 0x800000, "gfx1", 0 )
4140   ROM_REGION( 0x800000, "gp9001", 0 )
42174141   ROM_LOAD( "tp023_3.bin", 0x000000, 0x200000, CRC(32ad508b) SHA1(e473489beaf649d3e5236770eb043327e309850c) )
42184142   ROM_LOAD( "tp023_5.bin", 0x200000, 0x200000, CRC(b84c90eb) SHA1(17a1531d884d9a9696d1b25d65f9155f02396e0e) )
42194143   ROM_LOAD( "tp023_4.bin", 0x400000, 0x200000, CRC(e493c077) SHA1(0edcfb70483ad07206695d9283031b85cd198a36) )
r29641r29642
42684192   ROM_REGION( 0x80000, "maincpu", 0 )         /* Main 68K code */
42694193   ROM_LOAD16_WORD_SWAP( "mecat-m", 0x000000, 0x80000, CRC(bd2263c6) SHA1(eb794c0fc9c1fb4337114d48149283d42d22e4b3) )
42704194
4271   ROM_REGION( 0x800000, "gfx1", 0 )
4195   ROM_REGION( 0x800000, "gp9001", 0 )
42724196   ROM_LOAD( "mecat-34", 0x000000, 0x400000, CRC(6be7b37e) SHA1(13160ad0712fee932bb98cc226e651895b19228a) )
42734197   ROM_LOAD( "mecat-12", 0x400000, 0x400000, CRC(49e46b1f) SHA1(d12b12696a8473eb34f3cd247ab060289a6c0e9c) )
42744198
r29641r29642
42884212   /* program ROM is byte swapped ! */
42894213   ROM_LOAD16_WORD( "tp024_1.bin", 0x000000, 0x080000, CRC(f5cfe6ee) SHA1(30979888a4cd6500244117748f28386a7e20a169) )
42904214
4291   ROM_REGION( 0x200000, "gfx1", 0 )
4215   ROM_REGION( 0x200000, "gp9001", 0 )
42924216   ROM_LOAD( "tp024_4.bin", 0x000000, 0x100000, CRC(805c449e) SHA1(fdf985344145bd320b88b9b0c25e73066c9b2ada) )
42934217   ROM_LOAD( "tp024_3.bin", 0x100000, 0x100000, CRC(47587164) SHA1(bac493e2d5507286b984957b289c929335d27eaa) )
42944218
r29641r29642
43054229   ROM_REGION( 0x10000, "audiocpu", 0 )            /* Sound Z80 code */
43064230   ROM_LOAD( "tp025-5.bin", 0x0000, 0x8000, CRC(bf8ffde5) SHA1(79c09cc9a0ea979f5af5a7e5ad671ea486f5f43e) )
43074231
4308   ROM_REGION( 0x200000, "gfx1", 0 )
4232   ROM_REGION( 0x200000, "gp9001", 0 )
43094233   ROM_LOAD( "tp025-4.bin", 0x000000, 0x100000, CRC(ab97f744) SHA1(c1620e614345dbd5c6567e4cb6f55c61b900d0ee) )
43104234   ROM_LOAD( "tp025-3.bin", 0x100000, 0x100000, CRC(7b16101e) SHA1(ae0119bbfa0937d18c4fbb0a3ef7cdc3b9fa6b56) )
43114235ROM_END
r29641r29642
43194243   ROM_REGION( 0x10000, "audiocpu", 0 )            /* Sound Z80 code */
43204244   ROM_LOAD( "tp025-5.bin", 0x0000, 0x8000, CRC(bf8ffde5) SHA1(79c09cc9a0ea979f5af5a7e5ad671ea486f5f43e) )
43214245
4322   ROM_REGION( 0x200000, "gfx1", 0 )
4246   ROM_REGION( 0x200000, "gp9001", 0 )
43234247   ROM_LOAD( "tp025-4.bin", 0x000000, 0x100000, CRC(ab97f744) SHA1(c1620e614345dbd5c6567e4cb6f55c61b900d0ee) )
43244248   ROM_LOAD( "tp025-3.bin", 0x100000, 0x100000, CRC(7b16101e) SHA1(ae0119bbfa0937d18c4fbb0a3ef7cdc3b9fa6b56) )
43254249ROM_END
r29641r29642
43344258   /* sound CPU is a HD647180 (Z180) with internal ROM - not yet supported */
43354259   ROM_LOAD( "hd647180.025", 0x00000, 0x08000, NO_DUMP )
43364260
4337   ROM_REGION( 0x200000, "gfx1", 0 )
4261   ROM_REGION( 0x200000, "gp9001", 0 )
43384262   ROM_LOAD( "tp025-4.bin", 0x000000, 0x100000, CRC(ab97f744) SHA1(c1620e614345dbd5c6567e4cb6f55c61b900d0ee) )
43394263   ROM_LOAD( "tp025-3.bin", 0x100000, 0x100000, CRC(7b16101e) SHA1(ae0119bbfa0937d18c4fbb0a3ef7cdc3b9fa6b56) )
43404264ROM_END
r29641r29642
43484272   ROM_REGION( 0x10000, "audiocpu", 0 )            /* Sound Z80 code */
43494273   ROM_LOAD( "pip_snd", 0x0000, 0x8000, CRC(8ebf183b) SHA1(602b138c85b02d121d007f6788b322aa107c7d91) )
43504274
4351   ROM_REGION( 0x200000, "gfx1", 0 )
4275   ROM_REGION( 0x200000, "gp9001", 0 )
43524276   ROM_LOAD( "cg_01_l", 0x000000, 0x080000, CRC(21d1ef46) SHA1(d7ccbe56eb08be421c241065cbaa99cc9cca4d73) )
43534277   ROM_LOAD( "cg_01_h", 0x080000, 0x080000, CRC(d5726328) SHA1(26401ba8ce22fda161306b91d70afefa959cde8c) )
43544278   ROM_LOAD( "cg_23_l", 0x100000, 0x080000, CRC(114d41d0) SHA1(d1166d495d92c6082fffbed422deb7605c5a41a2) )
r29641r29642
43644288   ROM_REGION( 0x10000, "audiocpu", 0 )            /* Sound Z80 code */
43654289   ROM_LOAD( "ppbb08.bin", 0x0000, 0x8000, CRC(101c0358) SHA1(162e02d00b7bdcdd3b48a0cd0527b7428435ec50) )
43664290
4367   ROM_REGION( 0x200000, "gfx1", 0 )
4291   ROM_REGION( 0x200000, "gp9001", 0 )
43684292   /* GFX data differs slightly from Toaplan boards ??? */
43694293   ROM_LOAD16_BYTE( "ppbb01.bin", 0x000000, 0x080000, CRC(0fcae44b) SHA1(ac72bc79e3a5d0a81647c312d310d00ace017272) )
43704294   ROM_LOAD16_BYTE( "ppbb02.bin", 0x000001, 0x080000, CRC(8bfcdf87) SHA1(4537a7d646d3014f069c6fd0be457bb32e2f18ac) )
r29641r29642
43794303#define ROMS_FIXEIGHT \
43804304   ROM_REGION( 0x080000, "maincpu", 0 ) \
43814305   ROM_LOAD16_WORD_SWAP( "tp-026-1", 0x000000, 0x080000, CRC(f7b1746a) SHA1(0bbea6f111b818bc9b9b2060af4fe900f37cf7f9) ) \
4382   ROM_REGION( 0x400000, "gfx1", 0 ) \
4306   ROM_REGION( 0x400000, "gp9001", 0 ) \
43834307   ROM_LOAD( "tp-026-3", 0x000000, 0x200000, CRC(e5578d98) SHA1(280d2b716d955e767d311fc9596823852435b6d7) ) \
43844308   ROM_LOAD( "tp-026-4", 0x200000, 0x200000, CRC(b760cb53) SHA1(bc9c5e49e45cdda0f774be0038aa4deb21d4d285) ) \
43854309   ROM_REGION( 0x40000, "oki", 0 ) \
r29641r29642
45134437   ROM_LOAD16_BYTE( "3.bin", 0x000000, 0x80000, CRC(cc77d4b4) SHA1(4d3376cbae13d90c6314d8bb9236c2183fc6253c) )
45144438   ROM_LOAD16_BYTE( "2.bin", 0x000001, 0x80000, CRC(ed715488) SHA1(37be9bc8ff6b54a1f660d89469c6c2da6301e9cd) )
45154439
4516   ROM_REGION( 0x400000, "gfx1", 0 )
4440   ROM_REGION( 0x400000, "gp9001", 0 )
45174441   ROM_LOAD( "tp-026-3", 0x000000, 0x200000, CRC(e5578d98) SHA1(280d2b716d955e767d311fc9596823852435b6d7) )
45184442   ROM_LOAD( "tp-026-4", 0x200000, 0x200000, CRC(b760cb53) SHA1(bc9c5e49e45cdda0f774be0038aa4deb21d4d285) )
45194443
4520   ROM_REGION( 0x08000, "gfx2", 0)
4444   ROM_REGION( 0x08000, "text", 0)
45214445   ROM_LOAD( "4.bin", 0x00000, 0x08000, CRC(a6aca465) SHA1(2b331faeee1832e0adc5218254a99d66331862c6) )
45224446
45234447   ROM_REGION( 0x80000, "oki", 0 )         /* ADPCM Samples */
r29641r29642
45354459   /* Secondary CPU is a Toaplan marked chip, (TS-007-Spy  TOA PLAN) */
45364460   /* It's a NEC V25 (PLCC94) (encrypted program uploaded by main CPU) */
45374461
4538   ROM_REGION( 0x200000, "gfx1", 0 )
4462   ROM_REGION( 0x200000, "gp9001", 0 )
45394463   ROM_LOAD( "tp027_02.bin", 0x000000, 0x100000, CRC(877b45e8) SHA1(b3ed8d8dbbe51a1919afc55d619d2b6771971493) )
45404464   ROM_LOAD( "tp027_03.bin", 0x100000, 0x100000, CRC(b1fc6362) SHA1(5e97e3cce31be57689d394a50178cda4d80cce5f) )
45414465ROM_END
r29641r29642
45484472   /* Secondary CPU is a Toaplan marked chip, (TS-007-Spy  TOA PLAN) */
45494473   /* It's a NEC V25 (PLCC94) (encrypted program uploaded by main CPU) */
45504474
4551   ROM_REGION( 0x200000, "gfx1", 0 )
4475   ROM_REGION( 0x200000, "gp9001", 0 )
45524476   ROM_LOAD( "tp027_02.bin", 0x000000, 0x100000, CRC(877b45e8) SHA1(b3ed8d8dbbe51a1919afc55d619d2b6771971493) )
45534477   ROM_LOAD( "tp027_03.bin", 0x100000, 0x100000, CRC(b1fc6362) SHA1(5e97e3cce31be57689d394a50178cda4d80cce5f) )
45544478ROM_END
r29641r29642
45614485   /* Secondary CPU is a Toaplan marked chip, (TS-007-Spy  TOA PLAN) */
45624486   /* It's a NEC V25 (PLCC94) (encrypted program uploaded by main CPU) */
45634487
4564   ROM_REGION( 0x200000, "gfx1", 0 )
4488   ROM_REGION( 0x200000, "gp9001", 0 )
45654489   ROM_LOAD( "tp027_02.bin", 0x000000, 0x100000, CRC(877b45e8) SHA1(b3ed8d8dbbe51a1919afc55d619d2b6771971493) )
45664490   ROM_LOAD( "tp027_03.bin", 0x100000, 0x100000, CRC(b1fc6362) SHA1(5e97e3cce31be57689d394a50178cda4d80cce5f) )
45674491ROM_END
r29641r29642
45744498   /* Secondary CPU is a Toaplan marked chip, (TS-007-Spy  TOA PLAN) */
45754499   /* It's a NEC V25 (PLCC94) (program uploaded by main CPU) */
45764500
4577   ROM_REGION( 0x400000, "gfx1", 0 )
4501   ROM_REGION( 0x400000, "gp9001", 0 )
45784502   ROM_LOAD( "tp030_3l.bin", 0x000000, 0x100000, CRC(3024b793) SHA1(e161db940f069279356fca2c5bf2753f07773705) )
45794503   ROM_LOAD( "tp030_3h.bin", 0x100000, 0x100000, CRC(ed75730b) SHA1(341f0f728144a049486d996c9bb14078578c6879) )
45804504   ROM_LOAD( "tp030_4l.bin", 0x200000, 0x100000, CRC(fedb9861) SHA1(4b0917056bd359b21935358c6bcc729262be6417) )
45814505   ROM_LOAD( "tp030_4h.bin", 0x300000, 0x100000, CRC(d482948b) SHA1(31be7dc5cff072403b783bf203b9805ffcad7284) )
45824506
4583   ROM_REGION( 0x200000, "gfx2", 0 )
4507   ROM_REGION( 0x200000, "gp9001_1", 0 )
45844508   ROM_LOAD( "tp030_5.bin",  0x000000, 0x100000, CRC(bcf5ba05) SHA1(40f98888a29cdd30cda5dfb60fdc667c69b0fdb0) )
45854509   ROM_LOAD( "tp030_6.bin",  0x100000, 0x100000, CRC(0666fecd) SHA1(aa8f921fc51590b5b05bbe0b0ad0cce5ff359c64) )
45864510
r29641r29642
46004524   /* Secondary CPU is a Toaplan marked chip, (TS-007-Spy  TOA PLAN) */
46014525   /* It's a NEC V25 (PLCC94) (program uploaded by main CPU) */
46024526
4603   ROM_REGION( 0x400000, "gfx1", 0 )
4527   ROM_REGION( 0x400000, "gp9001", 0 )
46044528   ROM_LOAD( "tp030_3l.bin", 0x000000, 0x100000, CRC(3024b793) SHA1(e161db940f069279356fca2c5bf2753f07773705) )
46054529   ROM_LOAD( "tp030_3h.bin", 0x100000, 0x100000, CRC(ed75730b) SHA1(341f0f728144a049486d996c9bb14078578c6879) )
46064530   ROM_LOAD( "tp030_4l.bin", 0x200000, 0x100000, CRC(fedb9861) SHA1(4b0917056bd359b21935358c6bcc729262be6417) )
46074531   ROM_LOAD( "tp030_4h.bin", 0x300000, 0x100000, CRC(d482948b) SHA1(31be7dc5cff072403b783bf203b9805ffcad7284) )
46084532
4609   ROM_REGION( 0x200000, "gfx2", 0 )
4533   ROM_REGION( 0x200000, "gp9001_1", 0 )
46104534   ROM_LOAD( "tp030_5.bin",  0x000000, 0x100000, CRC(bcf5ba05) SHA1(40f98888a29cdd30cda5dfb60fdc667c69b0fdb0) )
46114535   ROM_LOAD( "tp030_6.bin",  0x100000, 0x100000, CRC(0666fecd) SHA1(aa8f921fc51590b5b05bbe0b0ad0cce5ff359c64) )
46124536
r29641r29642
46254549   /* Secondary CPU is a Toaplan marked chip, (TS-007-Spy  TOA PLAN) */
46264550   /* It's a NEC V25 (PLCC94) (program uploaded by main CPU) */
46274551
4628   ROM_REGION( 0x400000, "gfx1", 0 )
4552   ROM_REGION( 0x400000, "gp9001", 0 )
46294553   ROM_LOAD( "tp030_3l.bin", 0x000000, 0x100000, CRC(3024b793) SHA1(e161db940f069279356fca2c5bf2753f07773705) )
46304554   ROM_LOAD( "tp030_3h.bin", 0x100000, 0x100000, CRC(ed75730b) SHA1(341f0f728144a049486d996c9bb14078578c6879) )
46314555   ROM_LOAD( "tp030_4l.bin", 0x200000, 0x100000, CRC(fedb9861) SHA1(4b0917056bd359b21935358c6bcc729262be6417) )
46324556   ROM_LOAD( "tp030_4h.bin", 0x300000, 0x100000, CRC(d482948b) SHA1(31be7dc5cff072403b783bf203b9805ffcad7284) )
46334557
4634   ROM_REGION( 0x200000, "gfx2", 0 )
4558   ROM_REGION( 0x200000, "gp9001_1", 0 )
46354559   ROM_LOAD( "tp030_5.bin",  0x000000, 0x100000, CRC(bcf5ba05) SHA1(40f98888a29cdd30cda5dfb60fdc667c69b0fdb0) )
46364560   ROM_LOAD( "tp030_6.bin",  0x100000, 0x100000, CRC(0666fecd) SHA1(aa8f921fc51590b5b05bbe0b0ad0cce5ff359c64) )
46374561
r29641r29642
46474571   ROM_REGION( 0x80000, "maincpu", ROMREGION_ERASE00 )
46484572   ROM_LOAD16_WORD_SWAP( "1.u61",        0x000000, 0x080000, CRC(118b5899) SHA1(7a1637a63eb17e3892d79aede5730013a1dc00f9) )
46494573
4650   ROM_REGION( 0x100000, "gfx1", ROMREGION_ERASE00 )
4574   ROM_REGION( 0x100000, "gp9001", ROMREGION_ERASE00 )
46514575   ROM_LOAD( "2.u26",        0x000000, 0x080000, CRC(a190eaea) SHA1(2c7b8c8026873e0f591fbcbc2e72b196ef84e162) )
46524576   ROM_LOAD( "3.u27",        0x080000, 0x080000, CRC(0b81e038) SHA1(8376617ae519a8ef604f20b26e941aa5b8066602) )
46534577
r29641r29642
46594583   ROM_REGION( 0x080000, "maincpu", 0 )
46604584   ROM_LOAD16_WORD_SWAP( "db0.1",        0x00000, 0x80000, CRC(6b4008d3) SHA1(4cf838c47563ba482be8364b2e115569a4a06c83) )
46614585
4662   ROM_REGION( 0x400000, "gfx1", 0 )
4586   ROM_REGION( 0x400000, "gp9001", 0 )
46634587   ROM_LOAD( "db0-r2",       0x000000, 0x200000, CRC(4efff265) SHA1(4cd239ff42f532495946cb52bd1fee412f84e192) )
46644588   ROM_LOAD( "db0-r3",       0x200000, 0x200000, CRC(5c142b38) SHA1(5466a8b061a0f2545493de0f96fd4387beea276a) )
46654589
r29641r29642
46714595   ROM_REGION( 0x080000, "maincpu", 0 )            /* Main 68K code */
46724596   ROM_LOAD16_WORD_SWAP( "pro-4", 0x000000, 0x080000, CRC(4c7ee341) SHA1(ad46c605a38565d0148daac301be4e4b72302fe7) )
46734597
4674   ROM_REGION( 0x300000, "gfx1", 0 )
4598   ROM_REGION( 0x300000, "gp9001", 0 )
46754599   ROM_LOAD( "rom2-l", 0x000000, 0x100000, CRC(e9d366a9) SHA1(e87e3966fce3395324b90db6c134b3345104c04b) )
46764600   ROM_LOAD( "rom2-h", 0x100000, 0x080000, CRC(9aab7a62) SHA1(611f6a15fdbac5d3063426a365538c1482e996bf) )
46774601   ROM_LOAD( "rom3-l", 0x180000, 0x100000, CRC(eb06e332) SHA1(7cd597bfffc153d178530c0f0903bebd751c9dd1) )
r29641r29642
46864610   ROM_LOAD16_BYTE( "sb2-prg1.u39", 0x000000, 0x040000, CRC(e1fec8a2) SHA1(30c1a351070d784da9ba0dca68be8a262dba2045) )
46874611   ROM_LOAD16_BYTE( "sb2-prg0.u23", 0x000001, 0x040000, CRC(b473cd57) SHA1(331130faa9de01b3ca93845174e8c3684bd269c7) )
46884612
4689   ROM_REGION( 0x400000, "gfx1", 0 )
4613   ROM_REGION( 0x400000, "gp9001", 0 )
46904614   ROM_LOAD( "sb2-gfx.u177", 0x000000, 0x200000, CRC(ebeec910) SHA1(e179f393b98135caa8419b68cd979038ab47a413) )
46914615   ROM_LOAD( "sb2-gfx.u175", 0x200000, 0x200000, CRC(e349c75b) SHA1(7d40d00fc0e15a68c427fe94db410bb7cbe00117) )
46924616
r29641r29642
47314655   ROM_REGION( 0x10000, "audiocpu", 0 )            /* Sound Z80 code */
47324656   ROM_LOAD( "ra-ma-01_02.u66", 0x00000, 0x10000, CRC(eabfa46d) SHA1(402c99ebf88f9025f74f0a28ced22b7882a65eb3) )
47334657
4734   ROM_REGION( 0x200000, "gfx1", 0 )
4658   ROM_REGION( 0x200000, "gp9001", 0 )
47354659   ROM_LOAD( "ra-ma01-rom2.u2",  0x000000, 0x100000, CRC(54e2bd95) SHA1(341359dd46152615675bb90e8a184216c8feebff) )
47364660   ROM_LOAD( "ra-ma01-rom3.u1",  0x100000, 0x100000, CRC(21cd378f) SHA1(e1695bccec949d18b1c03e9c42dca384554b0d7c) )
47374661
4738   ROM_REGION( 0x008000, "gfx2", 0 )
4662   ROM_REGION( 0x008000, "text", 0 )
47394663   ROM_LOAD( "ra-ma-01_05.u81",  0x000000, 0x008000, CRC(88b58841) SHA1(1d16b538c11a291bd1f46a510bfbd6259b45a0b5) )
47404664
47414665   ROM_REGION( 0x40000, "oki", 0 )         /* ADPCM Samples */
r29641r29642
47504674   ROM_REGION( 0x10000, "audiocpu", 0 )            /* Sound Z80 code */
47514675   ROM_LOAD( "ra-ma-01_02.u66", 0x00000, 0x10000, CRC(eabfa46d) SHA1(402c99ebf88f9025f74f0a28ced22b7882a65eb3) )
47524676
4753   ROM_REGION( 0x200000, "gfx1", 0 )
4677   ROM_REGION( 0x200000, "gp9001", 0 )
47544678   ROM_LOAD( "ra-ma01-rom2.u2",  0x000000, 0x100000, CRC(54e2bd95) SHA1(341359dd46152615675bb90e8a184216c8feebff) )
47554679   ROM_LOAD( "ra-ma01-rom3.u1",  0x100000, 0x100000, CRC(21cd378f) SHA1(e1695bccec949d18b1c03e9c42dca384554b0d7c) )
47564680
4757   ROM_REGION( 0x008000, "gfx2", 0 )
4681   ROM_REGION( 0x008000, "text", 0 )
47584682   ROM_LOAD( "ra-ma-01_05.u81",  0x000000, 0x008000, CRC(88b58841) SHA1(1d16b538c11a291bd1f46a510bfbd6259b45a0b5) )
47594683
47604684   ROM_REGION( 0x40000, "oki", 0 )         /* ADPCM Samples */
r29641r29642
47694693   ROM_REGION( 0x10000, "audiocpu", 0 )            /* Sound Z80 code */
47704694   ROM_LOAD( "ra-ma-01_02.u66", 0x00000, 0x10000, CRC(eabfa46d) SHA1(402c99ebf88f9025f74f0a28ced22b7882a65eb3) )
47714695
4772   ROM_REGION( 0x200000, "gfx1", 0 )
4696   ROM_REGION( 0x200000, "gp9001", 0 )
47734697   ROM_LOAD( "ra-ma01-rom2.u2",  0x000000, 0x100000, CRC(54e2bd95) SHA1(341359dd46152615675bb90e8a184216c8feebff) )
47744698   ROM_LOAD( "ra-ma01-rom3.u1",  0x100000, 0x100000, CRC(21cd378f) SHA1(e1695bccec949d18b1c03e9c42dca384554b0d7c) )
47754699
4776   ROM_REGION( 0x008000, "gfx2", 0 )
4700   ROM_REGION( 0x008000, "text", 0 )
47774701   ROM_LOAD( "ra_ma_01_05.u81",  0x000000, 0x008000, CRC(c00d1e80) SHA1(53e64c4c0c6309130b37597d13b44a9e95b717d8) )
47784702
47794703   ROM_REGION( 0x40000, "oki", 0 )         /* ADPCM Samples */
r29641r29642
47894713   ROM_REGION( 0x10000, "audiocpu", 0 )            /* Sound Z80 code */
47904714   ROM_LOAD( "ma02rom2.bin", 0x00000, 0x10000, CRC(dde8a57e) SHA1(f522a3f17e229c71512464349760a9e27778bf6a) )
47914715
4792   ROM_REGION( 0x400000, "gfx1", 0 )
4716   ROM_REGION( 0x400000, "gp9001", 0 )
47934717   ROM_LOAD( "ma02rom3.bin",  0x000000, 0x200000, CRC(0e797142) SHA1(a480ccd151e49b886d3175a6deff56e1f2c26c3e) )
47944718   ROM_LOAD( "ma02rom4.bin",  0x200000, 0x200000, CRC(72a6fa53) SHA1(ce92e65205b84361cfb90305a61e9541b5c4dc2f) )
47954719
4796   ROM_REGION( 0x008000, "gfx2", 0 )
4720   ROM_REGION( 0x008000, "text", 0 )
47974721   ROM_LOAD( "ma02rom5.eng",  0x000000, 0x008000, CRC(8c28460b) SHA1(0aed170762f6044896a7e608df60bbd37c583a71) )
47984722
47994723   ROM_REGION( 0x80000, "oki", 0 )         /* ADPCM Samples */
r29641r29642
48094733   ROM_REGION( 0x10000, "audiocpu", 0 )            /* Sound Z80 code */
48104734   ROM_LOAD( "ma02rom2.bin", 0x00000, 0x10000, CRC(dde8a57e) SHA1(f522a3f17e229c71512464349760a9e27778bf6a) )
48114735
4812   ROM_REGION( 0x400000, "gfx1", 0 )
4736   ROM_REGION( 0x400000, "gp9001", 0 )
48134737   ROM_LOAD( "ma02rom3.bin",  0x000000, 0x200000, CRC(0e797142) SHA1(a480ccd151e49b886d3175a6deff56e1f2c26c3e) )
48144738   ROM_LOAD( "ma02rom4.bin",  0x200000, 0x200000, CRC(72a6fa53) SHA1(ce92e65205b84361cfb90305a61e9541b5c4dc2f) )
48154739
4816   ROM_REGION( 0x008000, "gfx2", 0 )
4740   ROM_REGION( 0x008000, "text", 0 )
48174741   ROM_LOAD( "ma02rom5.bin",  0x000000, 0x008000, CRC(116ae559) SHA1(4cc2d2a23cc0aefd457111b7990e47184e79204c) )
48184742
48194743   ROM_REGION( 0x80000, "oki", 0 )         /* ADPCM Samples */
r29641r29642
48294753   ROM_REGION( 0x20000, "audiocpu", 0 )            /* Sound Z80 code + bank */
48304754   ROM_LOAD( "snd.bin", 0x00000, 0x20000, CRC(68632952) SHA1(fb834db83157948e2b420b6051102a9c6ac3969b) )
48314755
4832   ROM_REGION( 0x800000, "gfx1", 0 )
4756   ROM_REGION( 0x800000, "gp9001", 0 )
48334757   ROM_LOAD( "rom4.bin",  0x000000, 0x200000, CRC(b333d81f) SHA1(5481465f1304334fd55798be2f44324c57c2dbcb) )
48344758   ROM_LOAD( "rom3.bin",  0x200000, 0x200000, CRC(51b9ebfb) SHA1(30e0c326f5175aa436df8dba08f6f4e08130b92f) )
48354759   ROM_LOAD( "rom2.bin",  0x400000, 0x200000, CRC(b330e5e2) SHA1(5d48e9d56f99d093b6390e0af1609fd796df2d35) )
48364760   ROM_LOAD( "rom1.bin",  0x600000, 0x200000, CRC(7eafdd70) SHA1(7c8da8e86c3f9491719b1d7d5d285568d7614f38) )
48374761
4838   ROM_REGION( 0x010000, "gfx2", 0 )
4762   ROM_REGION( 0x010000, "text", 0 )
48394763   ROM_LOAD( "text.u81", 0x00000, 0x08000, CRC(e67fd534) SHA1(987d0edffc2c243a13d4567319ea3d185eaadbf8) )
48404764
48414765   ROM_REGION( 0x140000, "oki", 0 )        /* ADPCM Samples */
r29641r29642
48514775   ROM_REGION( 0x20000, "audiocpu", 0 )            /* Sound Z80 code + bank */
48524776   ROM_LOAD( "snd.bin", 0x00000, 0x20000, CRC(68632952) SHA1(fb834db83157948e2b420b6051102a9c6ac3969b) )
48534777
4854   ROM_REGION( 0x800000, "gfx1", 0 )
4778   ROM_REGION( 0x800000, "gp9001", 0 )
48554779   ROM_LOAD( "rom4.bin",  0x000000, 0x200000, CRC(b333d81f) SHA1(5481465f1304334fd55798be2f44324c57c2dbcb) )
48564780   ROM_LOAD( "rom3.bin",  0x200000, 0x200000, CRC(51b9ebfb) SHA1(30e0c326f5175aa436df8dba08f6f4e08130b92f) )
48574781   ROM_LOAD( "rom2.bin",  0x400000, 0x200000, CRC(b330e5e2) SHA1(5d48e9d56f99d093b6390e0af1609fd796df2d35) )
48584782   ROM_LOAD( "rom1.bin",  0x600000, 0x200000, CRC(7eafdd70) SHA1(7c8da8e86c3f9491719b1d7d5d285568d7614f38) )
48594783
4860   ROM_REGION( 0x010000, "gfx2", 0 )
4784   ROM_REGION( 0x010000, "text", 0 )
48614785   ROM_LOAD( "text.u81", 0x00000, 0x08000, CRC(e67fd534) SHA1(987d0edffc2c243a13d4567319ea3d185eaadbf8) )
48624786
48634787   ROM_REGION( 0x140000, "oki", 0 )        /* ADPCM Samples */
r29641r29642
48734797   ROM_REGION( 0x20000, "audiocpu", 0 )            /* Sound Z80 code + bank */
48744798   ROM_LOAD( "snd.bin", 0x00000, 0x20000, CRC(68632952) SHA1(fb834db83157948e2b420b6051102a9c6ac3969b) )
48754799
4876   ROM_REGION( 0x800000, "gfx1", 0 )
4800   ROM_REGION( 0x800000, "gp9001", 0 )
48774801   ROM_LOAD( "rom4.bin",  0x000000, 0x200000, CRC(b333d81f) SHA1(5481465f1304334fd55798be2f44324c57c2dbcb) )
48784802   ROM_LOAD( "rom3.bin",  0x200000, 0x200000, CRC(51b9ebfb) SHA1(30e0c326f5175aa436df8dba08f6f4e08130b92f) )
48794803   ROM_LOAD( "rom2.bin",  0x400000, 0x200000, CRC(b330e5e2) SHA1(5d48e9d56f99d093b6390e0af1609fd796df2d35) )
48804804   ROM_LOAD( "rom1.bin",  0x600000, 0x200000, CRC(7eafdd70) SHA1(7c8da8e86c3f9491719b1d7d5d285568d7614f38) )
48814805
4882   ROM_REGION( 0x010000, "gfx2", 0 )
4806   ROM_REGION( 0x010000, "text", 0 )
48834807   ROM_LOAD( "text.u81", 0x00000, 0x08000, CRC(e67fd534) SHA1(987d0edffc2c243a13d4567319ea3d185eaadbf8) )
48844808
48854809   ROM_REGION( 0x140000, "oki", 0 )        /* ADPCM Samples */
r29641r29642
48954819   ROM_REGION( 0x20000, "audiocpu", 0 )            /* Sound Z80 code + bank */
48964820   ROM_LOAD( "snd.bin", 0x00000, 0x20000, CRC(68632952) SHA1(fb834db83157948e2b420b6051102a9c6ac3969b) )
48974821
4898   ROM_REGION( 0x800000, "gfx1", 0 )
4822   ROM_REGION( 0x800000, "gp9001", 0 )
48994823   ROM_LOAD( "rom4.bin",  0x000000, 0x200000, CRC(b333d81f) SHA1(5481465f1304334fd55798be2f44324c57c2dbcb) )
49004824   ROM_LOAD( "rom3.bin",  0x200000, 0x200000, CRC(51b9ebfb) SHA1(30e0c326f5175aa436df8dba08f6f4e08130b92f) )
49014825   ROM_LOAD( "rom2.bin",  0x400000, 0x200000, CRC(b330e5e2) SHA1(5d48e9d56f99d093b6390e0af1609fd796df2d35) )
49024826   ROM_LOAD( "rom1.bin",  0x600000, 0x200000, CRC(7eafdd70) SHA1(7c8da8e86c3f9491719b1d7d5d285568d7614f38) )
49034827
4904   ROM_REGION( 0x010000, "gfx2", 0 )
4828   ROM_REGION( 0x010000, "text", 0 )
49054829   ROM_LOAD( "text.u81", 0x00000, 0x08000, CRC(e67fd534) SHA1(987d0edffc2c243a13d4567319ea3d185eaadbf8) )
49064830
49074831   ROM_REGION( 0x140000, "oki", 0 )        /* ADPCM Samples */
r29641r29642
49174841   ROM_REGION( 0x20000, "audiocpu", 0 )            /* Sound Z80 code + bank */
49184842   ROM_LOAD( "snd.bin", 0x00000, 0x20000, CRC(68632952) SHA1(fb834db83157948e2b420b6051102a9c6ac3969b) )
49194843
4920   ROM_REGION( 0x800000, "gfx1", 0 )
4844   ROM_REGION( 0x800000, "gp9001", 0 )
49214845   ROM_LOAD( "rom4.bin",  0x000000, 0x200000, CRC(b333d81f) SHA1(5481465f1304334fd55798be2f44324c57c2dbcb) )
49224846   ROM_LOAD( "rom3.bin",  0x200000, 0x200000, CRC(51b9ebfb) SHA1(30e0c326f5175aa436df8dba08f6f4e08130b92f) )
49234847   ROM_LOAD( "rom2.bin",  0x400000, 0x200000, CRC(b330e5e2) SHA1(5d48e9d56f99d093b6390e0af1609fd796df2d35) )
49244848   ROM_LOAD( "rom1.bin",  0x600000, 0x200000, CRC(7eafdd70) SHA1(7c8da8e86c3f9491719b1d7d5d285568d7614f38) )
49254849
4926   ROM_REGION( 0x010000, "gfx2", 0 )
4850   ROM_REGION( 0x010000, "text", 0 )
49274851   ROM_LOAD( "text.u81", 0x00000, 0x08000, CRC(e67fd534) SHA1(987d0edffc2c243a13d4567319ea3d185eaadbf8) )
49284852
49294853   ROM_REGION( 0x140000, "oki", 0 )        /* ADPCM Samples */
r29641r29642
49394863   ROM_REGION( 0x20000, "audiocpu", 0 )            /* Sound Z80 code + bank */
49404864   ROM_LOAD( "snd.bin", 0x00000, 0x20000, CRC(68632952) SHA1(fb834db83157948e2b420b6051102a9c6ac3969b) )
49414865
4942   ROM_REGION( 0x800000, "gfx1", 0 )
4866   ROM_REGION( 0x800000, "gp9001", 0 )
49434867   ROM_LOAD( "rom4.bin",  0x000000, 0x200000, CRC(b333d81f) SHA1(5481465f1304334fd55798be2f44324c57c2dbcb) )
49444868   ROM_LOAD( "rom3.bin",  0x200000, 0x200000, CRC(51b9ebfb) SHA1(30e0c326f5175aa436df8dba08f6f4e08130b92f) )
49454869   ROM_LOAD( "rom2.bin",  0x400000, 0x200000, CRC(b330e5e2) SHA1(5d48e9d56f99d093b6390e0af1609fd796df2d35) )
49464870   ROM_LOAD( "rom1.bin",  0x600000, 0x200000, CRC(7eafdd70) SHA1(7c8da8e86c3f9491719b1d7d5d285568d7614f38) )
49474871
4948   ROM_REGION( 0x010000, "gfx2", 0 )
4872   ROM_REGION( 0x010000, "text", 0 )
49494873   ROM_LOAD( "text.u81", 0x00000, 0x08000, CRC(e67fd534) SHA1(987d0edffc2c243a13d4567319ea3d185eaadbf8) )
49504874
49514875   ROM_REGION( 0x140000, "oki", 0 )        /* ADPCM Samples */
r29641r29642
49604884   ROM_REGION( 0x20000, "audiocpu", 0 )            /* Sound Z80 code + bank */
49614885   ROM_LOAD( "snd.bin", 0x00000, 0x20000, CRC(68632952) SHA1(fb834db83157948e2b420b6051102a9c6ac3969b) )
49624886
4963   ROM_REGION( 0x800000, "gfx1", 0 )
4887   ROM_REGION( 0x800000, "gp9001", 0 )
49644888   ROM_LOAD( "6#-322",  0x000000, 0x400000, CRC(37fe48ed) SHA1(ded5d13c33b4582310cdfb3dd52c052f741c00c5) ) /* == rom4.bin+rom3.bin */
49654889   ROM_LOAD( "5#-322",  0x400000, 0x400000, CRC(5a06c031) SHA1(ee241ff90117cec1f33ab163601a9d5c75609739) ) /* == rom2.bin+rom1.bin */
49664890
4967   ROM_REGION( 0x010000, "gfx2", 0 )
4891   ROM_REGION( 0x010000, "text", 0 )
49684892   ROM_LOAD( "1#-256", 0x00000, 0x08000, CRC(760dcd14) SHA1(e151e5d7ca5557277f306b9484ec021f4edf1e07) )
49694893   ROM_LOAD( "2#-256", 0x08000, 0x08000, CRC(456dd16e) SHA1(84779ee64d3ea33ba1ba4dee39b504a81c6811a1) )
49704894
r29641r29642
50504974   ROM_REGION( 0x40000, "audiocpu", 0 )            /* Sound Z80 code + bank */
50514975   ROM_LOAD( "snd.u77", 0x00000, 0x40000, CRC(56682696) SHA1(a372450d9a6d535123dfc31d8116074b168ab646) )
50524976
5053   ROM_REGION( 0x1000000, "gfx1", 0 )
4977   ROM_REGION( 0x1000000, "gp9001", 0 )
50544978   ROM_LOAD( "rom-1.bin", 0x000000, 0x400000, CRC(0df69ca2) SHA1(49670347ebd7e1067ff988cf842b275b7ee7b5f7) )
50554979   ROM_LOAD( "rom-3.bin", 0x400000, 0x400000, CRC(60167d38) SHA1(fd2429808c59ef51fd5f5db84ea89a8dc504186e) )
50564980   ROM_LOAD( "rom-2.bin", 0x800000, 0x400000, CRC(1bfea593) SHA1(ce06dc3097ae56b0df56d104bbf7efc9b5d968d4) )
r29641r29642
50744998   ROM_REGION( 0x40000, "audiocpu", 0 )            /* Sound Z80 code + bank */
50754999   ROM_LOAD( "snd.u77", 0x00000, 0x40000, CRC(56682696) SHA1(a372450d9a6d535123dfc31d8116074b168ab646) )
50765000
5077   ROM_REGION( 0x1000000, "gfx1", 0 )
5001   ROM_REGION( 0x1000000, "gp9001", 0 )
50785002   ROM_LOAD( "rom-1.bin", 0x000000, 0x400000, CRC(0df69ca2) SHA1(49670347ebd7e1067ff988cf842b275b7ee7b5f7) )
50795003   ROM_LOAD( "rom-3.bin", 0x400000, 0x400000, CRC(60167d38) SHA1(fd2429808c59ef51fd5f5db84ea89a8dc504186e) )
50805004   ROM_LOAD( "rom-2.bin", 0x800000, 0x400000, CRC(1bfea593) SHA1(ce06dc3097ae56b0df56d104bbf7efc9b5d968d4) )
r29641r29642
50985022   ROM_REGION( 0x40000, "audiocpu", 0 )            /* Sound Z80 code + bank */
50995023   ROM_LOAD( "snd.u77", 0x00000, 0x40000, CRC(56682696) SHA1(a372450d9a6d535123dfc31d8116074b168ab646) )
51005024
5101   ROM_REGION( 0x1000000, "gfx1", 0 )
5025   ROM_REGION( 0x1000000, "gp9001", 0 )
51025026   ROM_LOAD( "rom-1.bin", 0x000000, 0x400000, CRC(0df69ca2) SHA1(49670347ebd7e1067ff988cf842b275b7ee7b5f7) )
51035027   ROM_LOAD( "rom-3.bin", 0x400000, 0x400000, CRC(60167d38) SHA1(fd2429808c59ef51fd5f5db84ea89a8dc504186e) )
51045028   ROM_LOAD( "rom-2.bin", 0x800000, 0x400000, CRC(1bfea593) SHA1(ce06dc3097ae56b0df56d104bbf7efc9b5d968d4) )
r29641r29642
51225046   ROM_REGION( 0x40000, "audiocpu", 0 )            /* Sound Z80 code + bank */
51235047   ROM_LOAD( "snd.u77", 0x00000, 0x40000, CRC(56682696) SHA1(a372450d9a6d535123dfc31d8116074b168ab646) )
51245048
5125   ROM_REGION( 0x1000000, "gfx1", 0 )
5049   ROM_REGION( 0x1000000, "gp9001", 0 )
51265050   ROM_LOAD( "rom-1.bin", 0x000000, 0x400000, CRC(0df69ca2) SHA1(49670347ebd7e1067ff988cf842b275b7ee7b5f7) )
51275051   ROM_LOAD( "rom-3.bin", 0x400000, 0x400000, CRC(60167d38) SHA1(fd2429808c59ef51fd5f5db84ea89a8dc504186e) )
51285052   ROM_LOAD( "rom-2.bin", 0x800000, 0x400000, CRC(1bfea593) SHA1(ce06dc3097ae56b0df56d104bbf7efc9b5d968d4) )
r29641r29642
51465070   ROM_REGION( 0x40000, "audiocpu", 0 )            /* Sound Z80 code + bank */
51475071   ROM_LOAD( "snd.u77", 0x00000, 0x40000, CRC(56682696) SHA1(a372450d9a6d535123dfc31d8116074b168ab646) )
51485072
5149   ROM_REGION( 0x1000000, "gfx1", 0 )
5073   ROM_REGION( 0x1000000, "gp9001", 0 )
51505074   ROM_LOAD( "rom-1.bin", 0x000000, 0x400000, CRC(0df69ca2) SHA1(49670347ebd7e1067ff988cf842b275b7ee7b5f7) )
51515075   ROM_LOAD( "rom-3.bin", 0x400000, 0x400000, CRC(60167d38) SHA1(fd2429808c59ef51fd5f5db84ea89a8dc504186e) )
51525076   ROM_LOAD( "rom-2.bin", 0x800000, 0x400000, CRC(1bfea593) SHA1(ce06dc3097ae56b0df56d104bbf7efc9b5d968d4) )
r29641r29642
51705094   ROM_REGION( 0x40000, "audiocpu", 0 )            /* Sound Z80 code + bank */
51715095   ROM_LOAD( "snd.u77", 0x00000, 0x40000, CRC(56682696) SHA1(a372450d9a6d535123dfc31d8116074b168ab646) )
51725096
5173   ROM_REGION( 0x1000000, "gfx1", 0 )
5097   ROM_REGION( 0x1000000, "gp9001", 0 )
51745098   ROM_LOAD( "rom-1.bin", 0x000000, 0x400000, CRC(0df69ca2) SHA1(49670347ebd7e1067ff988cf842b275b7ee7b5f7) )
51755099   ROM_LOAD( "rom-3.bin", 0x400000, 0x400000, CRC(60167d38) SHA1(fd2429808c59ef51fd5f5db84ea89a8dc504186e) )
51765100   ROM_LOAD( "rom-2.bin", 0x800000, 0x400000, CRC(1bfea593) SHA1(ce06dc3097ae56b0df56d104bbf7efc9b5d968d4) )
r29641r29642
51945118   ROM_REGION( 0x40000, "audiocpu", 0 )            /* Sound Z80 code + bank */
51955119   ROM_LOAD( "snd.u77", 0x00000, 0x40000, CRC(56682696) SHA1(a372450d9a6d535123dfc31d8116074b168ab646) )
51965120
5197   ROM_REGION( 0x1000000, "gfx1", 0 )
5121   ROM_REGION( 0x1000000, "gp9001", 0 )
51985122   ROM_LOAD( "rom-1.bin", 0x000000, 0x400000, CRC(0df69ca2) SHA1(49670347ebd7e1067ff988cf842b275b7ee7b5f7) )
51995123   ROM_LOAD( "rom-3.bin", 0x400000, 0x400000, CRC(60167d38) SHA1(fd2429808c59ef51fd5f5db84ea89a8dc504186e) )
52005124   ROM_LOAD( "rom-2.bin", 0x800000, 0x400000, CRC(1bfea593) SHA1(ce06dc3097ae56b0df56d104bbf7efc9b5d968d4) )
r29641r29642
52695193   ROM_REGION( 0x20000, "audiocpu", 0 )            /* Sound Z80 code */
52705194   ROM_LOAD( "sndu0720.bin", 0x00000, 0x20000, CRC(e62ab246) SHA1(00d23689dd423ecd4024c58b5903d16e890f1dff) )
52715195
5272   ROM_REGION( 0x1000000, "gfx1", 0 )
5196   ROM_REGION( 0x1000000, "gp9001", 0 )
52735197   ROM_LOAD( "gfxu0510.bin", 0x000000, 0x400000, CRC(9cca3446) SHA1(1123f8b8bfbe59a2c572cdf61f1ad27ff37f0f0d) )
52745198   ROM_LOAD( "gfxu0512.bin", 0x400000, 0x400000, CRC(a2a281d5) SHA1(d9a6623f9433ad682223f9780c26cd1523ebc5c5) )
52755199   ROM_LOAD( "gfxu0511.bin", 0x800000, 0x400000, CRC(e16472c0) SHA1(6068d679a8b3b65e05acd58a7ce9ead90177049f) )
r29641r29642
52955219   ROM_REGION( 0x20000, "audiocpu", 0 )            /* Sound Z80 code */
52965220   ROM_LOAD( "sndu0720.bin", 0x00000, 0x20000, CRC(e62ab246) SHA1(00d23689dd423ecd4024c58b5903d16e890f1dff) )
52975221
5298   ROM_REGION( 0x1000000, "gfx1", 0 )
5222   ROM_REGION( 0x1000000, "gp9001", 0 )
52995223   ROM_LOAD( "gfxu0510.bin", 0x000000, 0x400000, CRC(9cca3446) SHA1(1123f8b8bfbe59a2c572cdf61f1ad27ff37f0f0d) )
53005224   ROM_LOAD( "gfxu0512.bin", 0x400000, 0x400000, CRC(a2a281d5) SHA1(d9a6623f9433ad682223f9780c26cd1523ebc5c5) )
53015225   ROM_LOAD( "gfxu0511.bin", 0x800000, 0x400000, CRC(e16472c0) SHA1(6068d679a8b3b65e05acd58a7ce9ead90177049f) )
r29641r29642
53215245   ROM_REGION( 0x20000, "audiocpu", 0 )            /* Sound Z80 code */
53225246   ROM_LOAD( "sndu0720.bin", 0x00000, 0x20000, CRC(e62ab246) SHA1(00d23689dd423ecd4024c58b5903d16e890f1dff) )
53235247
5324   ROM_REGION( 0x1000000, "gfx1", 0 )
5248   ROM_REGION( 0x1000000, "gp9001", 0 )
53255249   ROM_LOAD( "gfxu0510.bin", 0x000000, 0x400000, CRC(9cca3446) SHA1(1123f8b8bfbe59a2c572cdf61f1ad27ff37f0f0d) )
53265250   ROM_LOAD( "gfxu0512.bin", 0x400000, 0x400000, CRC(a2a281d5) SHA1(d9a6623f9433ad682223f9780c26cd1523ebc5c5) )
53275251   ROM_LOAD( "gfxu0511.bin", 0x800000, 0x400000, CRC(e16472c0) SHA1(6068d679a8b3b65e05acd58a7ce9ead90177049f) )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team