Previous 199869 Revisions Next

r40595 Friday 4th September, 2015 at 14:08:21 UTC by David Haywood
experimental gprider stuff

apparently gprider uses a setup similar to f1 exhaust note etc. where the game uses a dual PCB stack and bridge board providing a direct connection containing shared RAM rather than a network connection.

in order to facilitate this we need both PCB stacks running, so as per a request from SailorSat I've made this possible, and added a set 'gpridert' which uses this configuration.  Unfortunately, for reasons unknown to me, the communication still breaks down (it was thought that this could have been caused by the hacks needed if running multiple instances of MAME with shared RAM as a file instead, but apparently not)

as this is something of a failed experiment I'm submitting it for SailorSat to take a look at, might revert it before the next release however, although once we do have full dumps of some of the Sega gambling / redemption games we'll need the various board types as devices anyway as those games mix multiple types of boards for the different screens.
[src/mame]arcade.lst
[src/mame/drivers]segaxbd.c
[src/mame/includes]segaxbd.h
[src/mame/video]segaxbd.c

trunk/src/mame/arcade.lst
r249106r249107
48044804abcopj          // 1991.01 A.B.Cop (Japan, FD1094)
48054805gpriderj        // 1990.10 GP Rider (Japan, FD1094)
48064806gprider         // 1990.?? GP Rider (World, FD1094)
4807gpridert      // as above
48074808gprideru        // 1990.12 GP Rider (US, FD1094)
48084809rascot          // 1991.?? Royal Ascot (Japan)
48094810
trunk/src/mame/drivers/segaxbd.c
r249106r249107
270270#include "sound/segapcm.h"
271271#include "includes/segaipt.h"
272272
273const device_type SEGA_XBD_PCB = &device_creator<segaxbd_state>;
273274
275segaxbd_state::segaxbd_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
276      : device_t(mconfig, SEGA_XBD_PCB, "Sega System 32 PCB", tag, owner, clock, "segas32_pcb", __FILE__),
277         m_maincpu(*this, "maincpu"),
278         m_subcpu(*this, "subcpu"),
279         m_soundcpu(*this, "soundcpu"),
280         m_soundcpu2(*this, "soundcpu2"),
281         m_mcu(*this, "mcu"),
282         m_cmptimer_1(*this, "cmptimer_main"),
283         m_sprites(*this, "sprites"),
284         m_segaic16vid(*this, "segaic16vid"),
285         m_segaic16road(*this, "segaic16road"),
286         m_road_priority(1),
287         m_scanline_timer(NULL),
288         m_timer_irq_state(0),
289         m_vblank_irq_state(0),
290         m_loffire_sync(NULL),
291         m_lastsurv_mux(0),
292         m_paletteram(*this, "paletteram"),
293         m_gprider_hack(false),
294         m_palette_entries(0),
295         m_screen(*this, "screen"),
296         m_palette(*this, "palette")
297{
298   memset(m_adc_reverse, 0, sizeof(m_adc_reverse));
299   memset(m_iochip_regs, 0, sizeof(m_iochip_regs));
300   palette_init();
301   memset(m_latched_value, 0, sizeof(m_latched_value));
302   memset(m_latch_read, 0, sizeof(m_latch_read));
303}
304
305
306void segaxbd_state::device_start()
307{
308   if(!m_segaic16road->started())
309      throw device_missing_dependencies();
310
311   // point globals to allocated memory regions
312   m_segaic16road->segaic16_roadram_0 = reinterpret_cast<UINT16 *>(memshare("roadram")->ptr());
313
314   video_start();
315
316   // allocate a scanline timer
317   m_scanline_timer = timer_alloc(TID_SCANLINE);
318
319   // reset the custom handlers and other pointers
320   m_iochip_custom_io_w[0][3] = iowrite_delegate(FUNC(segaxbd_state::generic_iochip0_lamps_w), this);
321
322
323   // save state
324   save_item(NAME(m_timer_irq_state));
325   save_item(NAME(m_vblank_irq_state));
326   save_item(NAME(m_iochip_regs[0]));
327   save_item(NAME(m_iochip_regs[1]));
328   save_item(NAME(m_lastsurv_mux));
329}
330
331void segaxbd_state::device_reset()
332{
333
334   m_segaic16vid->tilemap_reset(*m_screen);
335
336   // hook the RESET line, which resets CPU #1
337   m_maincpu->set_reset_callback(write_line_delegate(FUNC(segaxbd_state::m68k_reset_callback),this));
338
339   // start timers to track interrupts
340   m_scanline_timer->adjust(m_screen->time_until_pos(1), 1);
341}
342
343
344class segaxbd_new_state : public driver_device
345{
346public:
347   segaxbd_new_state(const machine_config &mconfig, device_type type, const char *tag)
348      : driver_device(mconfig, type, tag),
349      m_mainpcb(*this, "mainpcb")
350   {
351
352   }
353
354   required_device<segaxbd_state> m_mainpcb;
355
356   // game-specific driver init
357   DECLARE_DRIVER_INIT(generic);
358   DECLARE_DRIVER_INIT(aburner2);
359   DECLARE_DRIVER_INIT(lastsurv);
360   DECLARE_DRIVER_INIT(loffire);
361   DECLARE_DRIVER_INIT(smgp);
362   DECLARE_DRIVER_INIT(rascot);
363   DECLARE_DRIVER_INIT(gprider);
364
365};
366
367class segaxbd_new_state_double : public segaxbd_new_state
368{
369public:
370   segaxbd_new_state_double(const machine_config &mconfig, device_type type, const char *tag)
371      : segaxbd_new_state(mconfig, type, tag),
372      m_subpcb(*this, "subpcb")
373   {
374      for (int i = 0; i < 0x10; i++)
375      {
376         shareram1[i] = 0x00;
377         shareram2[i] = 0x00;
378      }
379   }
380
381
382   required_device<segaxbd_state> m_subpcb;
383
384   DECLARE_READ16_MEMBER(shareram1_r) { return shareram1[offset]; }
385   DECLARE_WRITE16_MEMBER(shareram1_w) { COMBINE_DATA(&shareram1[offset]); }
386   DECLARE_READ16_MEMBER(shareram2_r) { return shareram2[offset]; }
387   DECLARE_WRITE16_MEMBER(shareram2_w) {COMBINE_DATA(&shareram2[offset]); }
388
389   DECLARE_DRIVER_INIT(gprider_double);
390
391
392   UINT16 shareram1[0x20];
393   UINT16 shareram2[0x20];
394};
395
274396//**************************************************************************
275397//  CONSTANTS
276398//**************************************************************************
r249106r249107
635757//**************************************************************************
636758
637759//-------------------------------------------------
638//  machine_reset - reset the state of the machine
639//-------------------------------------------------
640
641void segaxbd_state::machine_reset()
642{
643   m_segaic16vid->tilemap_reset(*m_screen);
644
645   // hook the RESET line, which resets CPU #1
646   m_maincpu->set_reset_callback(write_line_delegate(FUNC(segaxbd_state::m68k_reset_callback),this));
647
648   // start timers to track interrupts
649   m_scanline_timer->adjust(m_screen->time_until_pos(1), 1);
650}
651
652
653//-------------------------------------------------
654760//  device_timer - handle device timers
655761//-------------------------------------------------
656762
r249106r249107
865971}
866972
867973
974//-------------------------------------------------
975//  palette_init - precompute weighted RGB values
976//  for each input value 0-31
977//-------------------------------------------------
868978
979void segaxbd_state::palette_init()
980{
981   //
982   //  Color generation details
983   //
984   //  Each color is made up of 5 bits, connected through one or more resistors like so:
985   //
986   //  Bit 0 = 1 x 3.9K ohm
987   //  Bit 1 = 1 x 2.0K ohm
988   //  Bit 2 = 1 x 1.0K ohm
989   //  Bit 3 = 2 x 1.0K ohm
990   //  Bit 4 = 4 x 1.0K ohm
991   //
992   //  Another data bit is connected by a tristate buffer to the color output through a
993   //  470 ohm resistor. The buffer allows the resistor to have no effect (tristate),
994   //  halve brightness (pull-down) or double brightness (pull-up). The data bit source
995   //  is bit 15 of each color RAM entry.
996   //
997
998   // compute weight table for regular palette entries
999   static const int resistances_normal[6] = { 3900, 2000, 1000, 1000/2, 1000/4, 0   };
1000   double weights_normal[6];
1001   compute_resistor_weights(0, 255, -1.0,
1002      6, resistances_normal, weights_normal, 0, 0,
1003      0, NULL, NULL, 0, 0,
1004      0, NULL, NULL, 0, 0);
1005
1006   // compute weight table for shadow/hilight palette entries
1007   static const int resistances_sh[6]     = { 3900, 2000, 1000, 1000/2, 1000/4, 470 };
1008   double weights_sh[6];
1009   compute_resistor_weights(0, 255, -1.0,
1010      6, resistances_sh, weights_sh, 0, 0,
1011      0, NULL, NULL, 0, 0,
1012      0, NULL, NULL, 0, 0);
1013
1014   // compute R, G, B for each weight
1015   for (int value = 0; value < 32; value++)
1016   {
1017      int i4 = (value >> 4) & 1;
1018      int i3 = (value >> 3) & 1;
1019      int i2 = (value >> 2) & 1;
1020      int i1 = (value >> 1) & 1;
1021      int i0 = (value >> 0) & 1;
1022      m_palette_normal[value] = combine_6_weights(weights_normal, i0, i1, i2, i3, i4, 0);
1023      m_palette_shadow[value] = combine_6_weights(weights_sh, i0, i1, i2, i3, i4, 0);
1024      m_palette_hilight[value] = combine_6_weights(weights_sh, i0, i1, i2, i3, i4, 1);
1025   }
1026}
1027
1028
1029//-------------------------------------------------
1030//  paletteram_w - handle writes to palette RAM
1031//-------------------------------------------------
1032
1033WRITE16_MEMBER( segaxbd_state::paletteram_w )
1034{
1035   // compute the number of entries
1036   if (m_palette_entries == 0)
1037      m_palette_entries = memshare("paletteram")->bytes() / 2;
1038
1039   // get the new value
1040   UINT16 newval = m_paletteram[offset];
1041   COMBINE_DATA(&newval);
1042   m_paletteram[offset] = newval;
1043
1044   //     byte 0    byte 1
1045   //  sBGR BBBB GGGG RRRR
1046   //  x000 4321 4321 4321
1047   int r = ((newval >> 12) & 0x01) | ((newval << 1) & 0x1e);
1048   int g = ((newval >> 13) & 0x01) | ((newval >> 3) & 0x1e);
1049   int b = ((newval >> 14) & 0x01) | ((newval >> 7) & 0x1e);
1050
1051   // normal colors
1052   m_palette->set_pen_color(offset + 0 * m_palette_entries, m_palette_normal[r],  m_palette_normal[g],  m_palette_normal[b]);
1053   m_palette->set_pen_color(offset + 1 * m_palette_entries, m_palette_shadow[r],  m_palette_shadow[g],  m_palette_shadow[b]);
1054   m_palette->set_pen_color(offset + 2 * m_palette_entries, m_palette_hilight[r], m_palette_hilight[g], m_palette_hilight[b]);
1055}
1056
8691057//**************************************************************************
8701058//  MAIN CPU ADDRESS MAPS
8711059//**************************************************************************
r249106r249107
9051093   AM_RANGE(0x00000, 0xfffff) AM_ROMBANK("fd1094_decrypted_opcodes")
9061094ADDRESS_MAP_END
9071095
908
9091096//**************************************************************************
9101097//  SUB CPU ADDRESS MAPS
9111098//**************************************************************************
r249106r249107
10301217//**************************************************************************
10311218
10321219static INPUT_PORTS_START( xboard_generic )
1033   PORT_START("IO0PORTA")
1220   PORT_START("mainpcb:IO0PORTA")
10341221   PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNKNOWN )
10351222   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SPECIAL )    // /INTR of ADC0804
10361223   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
10371224
1038   PORT_START("IO0PORTB")
1225   PORT_START("mainpcb:IO0PORTB")
10391226   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
10401227
1041   PORT_START("IO1PORTA")
1228   PORT_START("mainpcb:IO1PORTA")
10421229   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )    // button? not used by any game we have
10431230   PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW )
10441231   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
r249106r249107
10481235   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
10491236   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
10501237
1051   PORT_START("IO1PORTB")
1238   PORT_START("mainpcb:IO1PORTB")
10521239   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
10531240
1054   PORT_START("IO1PORTC")
1241   PORT_START("mainpcb:IO1PORTC")
10551242   SEGA_COINAGE_LOC(SWA)
10561243
1057   PORT_START("IO1PORTD")
1244   PORT_START("mainpcb:IO1PORTD")
10581245   PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_LOW, "SWB:1" )
10591246   PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_LOW, "SWB:2" )
10601247   PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SWB:3" )
r249106r249107
10741261static INPUT_PORTS_START( aburner )
10751262   PORT_INCLUDE( xboard_generic )
10761263
1077   PORT_MODIFY("IO1PORTA")
1264   PORT_MODIFY("mainpcb:IO1PORTA")
10781265   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Vulcan")
10791266   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Missile")
10801267
1081   PORT_MODIFY("IO1PORTD")
1268   PORT_MODIFY("mainpcb:IO1PORTD")
10821269   PORT_DIPNAME( 0x03, 0x01, "Cabinet Type" ) PORT_DIPLOCATION("SWB:1,2")
10831270   PORT_DIPSETTING(    0x03, "Moving Deluxe" )
10841271   PORT_DIPSETTING(    0x02, "Moving Standard" )
r249106r249107
11031290   PORT_DIPSETTING(    0x40, DEF_STR( Hard ) )
11041291   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
11051292
1106   PORT_START("ADC0")  // stick X
1293   PORT_START("mainpcb:ADC0")  // stick X
11071294   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4)
11081295
1109   PORT_START("ADC1")  // stick Y
1296   PORT_START("mainpcb:ADC1")  // stick Y
11101297   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x40,0xc0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
11111298
1112   PORT_START("ADC2")  // throttle
1299   PORT_START("mainpcb:ADC2")  // throttle
11131300   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_SENSITIVITY(100) PORT_KEYDELTA(79)
11141301
1115   PORT_START("ADC3")  // motor Y
1302   PORT_START("mainpcb:ADC3")  // motor Y
11161303   PORT_BIT( 0xff, (0xb0+0x50)/2, IPT_SPECIAL )
11171304
1118   PORT_START("ADC4")  // motor X
1305   PORT_START("mainpcb:ADC4")  // motor X
11191306   PORT_BIT( 0xff, (0xb0+0x50)/2, IPT_SPECIAL )
11201307INPUT_PORTS_END
11211308
r249106r249107
11231310static INPUT_PORTS_START( aburner2 )
11241311   PORT_INCLUDE( aburner )
11251312
1126   PORT_MODIFY("IO1PORTD")
1313   PORT_MODIFY("mainpcb:IO1PORTD")
11271314   PORT_DIPNAME( 0x03, 0x01, "Cabinet Type" ) PORT_DIPLOCATION("SWB:1,2")
11281315   PORT_DIPSETTING(    0x03, "Moving Deluxe" )
11291316   PORT_DIPSETTING(    0x02, "Moving Standard" )
r249106r249107
11511338static INPUT_PORTS_START( thndrbld )
11521339   PORT_INCLUDE( xboard_generic )
11531340
1154   PORT_MODIFY("IO1PORTA")
1341   PORT_MODIFY("mainpcb:IO1PORTA")
11551342   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Cannon")
11561343   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Missile")
11571344
1158   PORT_MODIFY("IO1PORTD")
1345   PORT_MODIFY("mainpcb:IO1PORTD")
11591346   PORT_DIPNAME( 0x01, 0x01, "Cabinet Type" ) PORT_DIPLOCATION("SWB:1")
11601347   PORT_DIPSETTING(    0x01, "Econ Upright" )
11611348   PORT_DIPSETTING(    0x00, "Mini Upright" )  // see note about inputs below
r249106r249107
11831370   //  On the "Standing" cabinet, the joystick Y axis is reversed.
11841371   //  On the "Mini Upright" cabinet, the inputs conform to After Burner II:
11851372   //  the X axis is (un-)reversed, and the throttle and Y axis switch places
1186   PORT_START("ADC0")  // stick X
1373   PORT_START("mainpcb:ADC0")  // stick X
11871374   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
11881375
1189   PORT_START("ADC1")  // "slottle"
1376   PORT_START("mainpcb:ADC1")  // "slottle"
11901377   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_SENSITIVITY(100) PORT_KEYDELTA(79)
11911378
1192   PORT_START("ADC2")  // stick Y
1379   PORT_START("mainpcb:ADC2")  // stick Y
11931380   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4)
11941381INPUT_PORTS_END
11951382
r249106r249107
11971384static INPUT_PORTS_START( thndrbd1 )
11981385   PORT_INCLUDE( thndrbld )
11991386
1200   PORT_MODIFY("IO1PORTD")
1387   PORT_MODIFY("mainpcb:IO1PORTD")
12011388   PORT_DIPNAME( 0x01, 0x01, "Cabinet Type" ) PORT_DIPLOCATION("SWB:1")
12021389   PORT_DIPSETTING(    0x01, "Deluxe" )
12031390   PORT_DIPSETTING(    0x00, "Standing" )  // see note about inputs above
r249106r249107
12371424static INPUT_PORTS_START( lastsurv )
12381425   PORT_INCLUDE( xboard_generic )
12391426
1240   PORT_MODIFY("IO1PORTA")
1427   PORT_MODIFY("mainpcb:IO1PORTA")
12411428   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 )
12421429
1243   PORT_START("MUX0")
1430   PORT_START("mainpcb:MUX0")
12441431   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
12451432   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
12461433   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
12471434   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
12481435   PORT_BIT( 0xf0, 0xf0 ^ 0x40, IPT_POSITIONAL ) PORT_PLAYER(2) PORT_POSITIONS(8) PORT_REMAP_TABLE(lastsurv_position_table) PORT_WRAPS PORT_SENSITIVITY(1) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_CODE_DEC(KEYCODE_Q) PORT_CODE_INC(KEYCODE_W)
12491436
1250   PORT_START("MUX1")
1437   PORT_START("mainpcb:MUX1")
12511438   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
12521439   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
12531440   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
12541441   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
12551442   PORT_BIT( 0xf0, 0xf0 ^ 0x40, IPT_POSITIONAL ) PORT_PLAYER(1) PORT_POSITIONS(8) PORT_REMAP_TABLE(lastsurv_position_table) PORT_WRAPS PORT_SENSITIVITY(1) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_CODE_DEC(KEYCODE_Z) PORT_CODE_INC(KEYCODE_X)
12561443
1257   PORT_START("MUX2")
1444   PORT_START("mainpcb:MUX2")
12581445   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
12591446   PORT_BIT( 0x0e, IP_ACTIVE_LOW, IPT_UNUSED )
12601447   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
12611448   PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
12621449
1263   PORT_START("MUX3")
1450   PORT_START("mainpcb:MUX3")
12641451   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
12651452
1266   PORT_MODIFY("IO1PORTD")
1453   PORT_MODIFY("mainpcb:IO1PORTD")
12671454   PORT_DIPNAME( 0x03, 0x03, "I.D. No" ) PORT_DIPLOCATION("SWB:1,2")
12681455   PORT_DIPSETTING(    0x03, "1" )
12691456   PORT_DIPSETTING(    0x02, "2" )
r249106r249107
12911478static INPUT_PORTS_START( loffire )
12921479   PORT_INCLUDE( xboard_generic )
12931480
1294   PORT_MODIFY("IO1PORTA")
1481   PORT_MODIFY("mainpcb:IO1PORTA")
12951482   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
12961483   PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW )
12971484   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE2 )
12981485   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 )
12991486   PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNKNOWN )
13001487
1301   PORT_MODIFY("IO1PORTB")
1488   PORT_MODIFY("mainpcb:IO1PORTB")
13021489   PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN )
13031490   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
13041491   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
13051492   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
13061493   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
13071494
1308   PORT_MODIFY("IO1PORTD")
1495   PORT_MODIFY("mainpcb:IO1PORTD")
13091496   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Language ) ) PORT_DIPLOCATION("SWB:1")
13101497   PORT_DIPSETTING(    0x01, DEF_STR( Japanese ) )
13111498   PORT_DIPSETTING(    0x00, DEF_STR( English ) )
r249106r249107
13301517   PORT_DIPSETTING(    0x80, DEF_STR( Single ) )
13311518   PORT_DIPSETTING(    0x00, "Twin" )
13321519
1333   PORT_START("ADC0")
1520   PORT_START("mainpcb:ADC0")
13341521   PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(5)
13351522
1336   PORT_START("ADC1")
1523   PORT_START("mainpcb:ADC1")
13371524   PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(5)
13381525
1339   PORT_START("ADC2")
1526   PORT_START("mainpcb:ADC2")
13401527   PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_PLAYER(2)
13411528
1342   PORT_START("ADC3")
1529   PORT_START("mainpcb:ADC3")
13431530   PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_PLAYER(2)
13441531INPUT_PORTS_END
13451532
r249106r249107
13471534static INPUT_PORTS_START( rachero )
13481535   PORT_INCLUDE( xboard_generic )
13491536
1350   PORT_MODIFY("IO1PORTA")
1537   PORT_MODIFY("mainpcb:IO1PORTA")
13511538   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Move to Center")
13521539   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Suicide")
13531540
1354   PORT_MODIFY("IO1PORTD")
1541   PORT_MODIFY("mainpcb:IO1PORTD")
13551542   PORT_DIPNAME( 0x01, 0x01, "Credits" ) PORT_DIPLOCATION("SWB:1")
13561543   PORT_DIPSETTING(    0x01, "1 to Start, 1 to Continue" )
13571544   PORT_DIPSETTING(    0x00, "2 to Start, 1 to Continue" )
r249106r249107
13721559   PORT_DIPSETTING(    0x80, DEF_STR( Hard ) )
13731560   PORT_DIPSETTING(    0x00, DEF_STR( Very_Hard ) )
13741561
1375   PORT_START("ADC0")  // steering
1562   PORT_START("mainpcb:ADC0")  // steering
13761563   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
13771564
1378   PORT_START("ADC1")  // gas pedal
1565   PORT_START("mainpcb:ADC1")  // gas pedal
13791566   PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20)
13801567
1381   PORT_START("ADC2")  // brake
1568   PORT_START("mainpcb:ADC2")  // brake
13821569   PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(100) PORT_KEYDELTA(40)
13831570INPUT_PORTS_END
13841571
r249106r249107
13861573static INPUT_PORTS_START( smgp )
13871574   PORT_INCLUDE( xboard_generic )
13881575
1389   PORT_MODIFY("IO1PORTA")
1576   PORT_MODIFY("mainpcb:IO1PORTA")
13901577   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Shift Down") PORT_CODE(KEYCODE_A)
13911578   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Shift Up") PORT_CODE(KEYCODE_Z)
13921579
1393   PORT_MODIFY("IO1PORTD")
1580   PORT_MODIFY("mainpcb:IO1PORTD")
13941581   PORT_DIPNAME( 0x07, 0x07, "Machine ID" ) PORT_DIPLOCATION("SWB:1,2,3")
13951582   PORT_DIPSETTING(    0x07, "1" )
13961583   PORT_DIPSETTING(    0x06, "2" )
r249106r249107
14151602   PORT_DIPSETTING(    0x40, DEF_STR( Upright ) )
14161603//  PORT_DIPSETTING(    0x00, "Deluxe" )
14171604
1418   PORT_START("ADC0")  // steering
1605   PORT_START("mainpcb:ADC0")  // steering
14191606   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x38,0xc8) PORT_SENSITIVITY(100) PORT_KEYDELTA(4)
14201607
1421   PORT_START("ADC1")  // gas pedal
1608   PORT_START("mainpcb:ADC1")  // gas pedal
14221609   PORT_BIT( 0xff, 0x38, IPT_PEDAL ) PORT_MINMAX(0x38,0xb8) PORT_SENSITIVITY(100) PORT_KEYDELTA(20)
14231610
1424   PORT_START("ADC2")  // brake
1611   PORT_START("mainpcb:ADC2")  // brake
14251612   PORT_BIT( 0xff, 0x28, IPT_PEDAL2 ) PORT_MINMAX(0x28,0xa8) PORT_SENSITIVITY(100) PORT_KEYDELTA(40)
14261613INPUT_PORTS_END
14271614
r249106r249107
14291616static INPUT_PORTS_START( abcop )
14301617   PORT_INCLUDE( xboard_generic )
14311618
1432   PORT_MODIFY("IO1PORTA")
1619   PORT_MODIFY("mainpcb:IO1PORTA")
14331620   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Jump")
14341621
1435   PORT_MODIFY("IO1PORTD")
1622   PORT_MODIFY("mainpcb:IO1PORTD")
14361623   PORT_DIPNAME( 0x01, 0x01, "Credits" ) PORT_DIPLOCATION("SWB:1")
14371624   PORT_DIPSETTING(    0x01, "1 to Start, 1 to Continue" )
14381625   PORT_DIPSETTING(    0x00, "2 to Start, 1 to Continue" )
r249106r249107
14531640   PORT_DIPSETTING(    0x80, DEF_STR( Hard ) )
14541641   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
14551642
1456   PORT_START("ADC0")  // steering
1643   PORT_START("mainpcb:ADC0")  // steering
14571644   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
14581645
1459   PORT_START("ADC1")  // accelerator
1646   PORT_START("mainpcb:ADC1")  // accelerator
14601647   PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20)
14611648INPUT_PORTS_END
14621649
14631650
14641651static INPUT_PORTS_START( gprider )
1465   PORT_INCLUDE( xboard_generic )
1652   PORT_START("mainpcb:IO0PORTA")
1653   PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNKNOWN )
1654   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SPECIAL )    // /INTR of ADC0804
1655   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
14661656
1467   PORT_MODIFY("IO1PORTA")
1657   PORT_START("mainpcb:IO0PORTB")
1658   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
1659
1660   PORT_START("mainpcb:IO1PORTA")
1661   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )    // button? not used by any game we have
1662   PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW )
1663   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
1664   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
14681665   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Shift Down") PORT_CODE(KEYCODE_A)
14691666   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Shift Up") PORT_CODE(KEYCODE_Z)
1667   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
1668   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
14701669
1471   PORT_MODIFY("IO1PORTD")
1670   PORT_START("mainpcb:IO1PORTB")
1671   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
1672
1673   PORT_START("mainpcb:IO1PORTC")
1674   SEGA_COINAGE_LOC(SWA)
1675
1676   PORT_START("mainpcb:IO1PORTD")
14721677   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1,2")
14731678   PORT_DIPSETTING(    0x03, "Ride On" )
14741679   PORT_DIPSETTING(    0x02, DEF_STR( Upright ) )
14751680//  PORT_DIPSETTING(    0x01, DEF_STR( Unused ) )
14761681//  PORT_DIPSETTING(    0x00, DEF_STR( Unused ) )
1682   PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SWB:3" )
14771683   PORT_DIPNAME( 0x08, 0x08, "ID No." ) PORT_DIPLOCATION("SWB:4")
14781684   PORT_DIPSETTING(    0x08, "Main" ) // Player 1 (Blue)
14791685   PORT_DIPSETTING(    0x00, "Slave" ) // Player 2 (Red)
14801686   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:5")
14811687   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
14821688   PORT_DIPSETTING(    0x10, DEF_STR( On ) )
1689   PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SWB:6" )
14831690   PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:7,8")
14841691   PORT_DIPSETTING(    0x80, DEF_STR( Easy ) )
14851692   PORT_DIPSETTING(    0xc0, DEF_STR( Normal ) )
14861693   PORT_DIPSETTING(    0x40, DEF_STR( Hard ) )
14871694   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
14881695
1489   PORT_START("ADC0")  // steering
1696   PORT_START("mainpcb:ADC0")  // steering
14901697   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4)
14911698
1492   PORT_START("ADC1")  // gas pedal
1699   PORT_START("mainpcb:ADC1")  // gas pedal
14931700   PORT_BIT( 0xff, 0x10, IPT_PEDAL ) PORT_MINMAX(0x10,0xef) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_REVERSE
14941701
1495   PORT_START("ADC2")  // brake
1702   PORT_START("mainpcb:ADC2")  // brake
14961703   PORT_BIT( 0xff, 0x10, IPT_PEDAL2 ) PORT_MINMAX(0x10,0xef) PORT_SENSITIVITY(100) PORT_KEYDELTA(40) PORT_REVERSE
14971704INPUT_PORTS_END
14981705
1706static INPUT_PORTS_START( gprider_double )
1707   PORT_INCLUDE( gprider )
14991708
1709   PORT_START("subpcb:IO0PORTA")
1710   PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNKNOWN )
1711   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SPECIAL )    // /INTR of ADC0804
1712   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
1713
1714   PORT_START("subpcb:IO0PORTB")
1715   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
1716
1717   PORT_START("subpcb:IO1PORTA")
1718   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )    // button? not used by any game we have
1719   PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW )
1720   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE2 )
1721   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 )
1722   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Shift Down") PORT_CODE(KEYCODE_W) PORT_PLAYER(2)
1723   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Shift Up") PORT_CODE(KEYCODE_S) PORT_PLAYER(2)
1724   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN3 )
1725   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN4 )
1726
1727   PORT_START("subpcb:IO1PORTB")
1728   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
1729
1730   PORT_START("subpcb:IO1PORTC")
1731   SEGA_COINAGE_LOC(SWA)
1732
1733   PORT_START("subpcb:IO1PORTD")
1734   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1,2")
1735   PORT_DIPSETTING(    0x03, "Ride On" )
1736   PORT_DIPSETTING(    0x02, DEF_STR( Upright ) )
1737//  PORT_DIPSETTING(    0x01, DEF_STR( Unused ) )
1738//  PORT_DIPSETTING(    0x00, DEF_STR( Unused ) )
1739   PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SWB:3" )
1740   PORT_DIPNAME( 0x08, 0x00, "ID No." ) PORT_DIPLOCATION("SWB:4")
1741   PORT_DIPSETTING(    0x08, "Main" ) // Player 1 (Blue)
1742   PORT_DIPSETTING(    0x00, "Slave" ) // Player 2 (Red)
1743   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:5")
1744   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1745   PORT_DIPSETTING(    0x10, DEF_STR( On ) )
1746   PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SWB:6" )
1747   PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:7,8")
1748   PORT_DIPSETTING(    0x80, DEF_STR( Easy ) )
1749   PORT_DIPSETTING(    0xc0, DEF_STR( Normal ) )
1750   PORT_DIPSETTING(    0x40, DEF_STR( Hard ) )
1751   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
1752
1753   PORT_START("subpcb:ADC0")  // steering
1754   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_PLAYER(2)
1755
1756   PORT_START("subpcb:ADC1")  // gas pedal
1757   PORT_BIT( 0xff, 0x10, IPT_PEDAL ) PORT_MINMAX(0x10,0xef) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_REVERSE PORT_PLAYER(2)
1758
1759   PORT_START("subpcb:ADC2")  // brake
1760   PORT_BIT( 0xff, 0x10, IPT_PEDAL2 ) PORT_MINMAX(0x10,0xef) PORT_SENSITIVITY(100) PORT_KEYDELTA(40) PORT_REVERSE PORT_PLAYER(2)
1761
1762INPUT_PORTS_END
1763
1764
15001765static INPUT_PORTS_START( rascot )
15011766   PORT_INCLUDE( xboard_generic )
15021767
r249106r249107
15181783//  GENERIC MACHINE DRIVERS
15191784//**************************************************************************
15201785
1521static MACHINE_CONFIG_START( xboard, segaxbd_state )
1786static MACHINE_CONFIG_FRAGMENT( xboard )
15221787
15231788   // basic machine hardware
15241789   MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK/4)
r249106r249107
15581823   MCFG_SEGA_XBOARD_SPRITES_ADD("sprites")
15591824   MCFG_SEGAIC16VID_ADD("segaic16vid")
15601825   MCFG_SEGAIC16VID_GFXDECODE("gfxdecode")
1826   MCFG_VIDEO_SET_SCREEN("screen")
1827
15611828   MCFG_SEGAIC16_ROAD_ADD("segaic16road")
15621829
15631830   // sound hardware
r249106r249107
15741841   MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
15751842MACHINE_CONFIG_END
15761843
1577static MACHINE_CONFIG_DERIVED( xboard_fd1094, xboard )
1844const device_type SEGA_XBD_REGULAR_DEVICE = &device_creator<segaxbd_regular_state>;
1845
1846segaxbd_regular_state::segaxbd_regular_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
1847   : segaxbd_state(mconfig, tag, owner, clock)
1848{
1849}
1850
1851machine_config_constructor segaxbd_regular_state::device_mconfig_additions() const
1852{
1853   return MACHINE_CONFIG_NAME( xboard );
1854}
1855
1856static MACHINE_CONFIG_START( sega_xboard, segaxbd_new_state )
1857   MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_REGULAR_DEVICE, 0)
1858MACHINE_CONFIG_END
1859
1860
1861static MACHINE_CONFIG_FRAGMENT( xboard_fd1094 )
1862
1863   MCFG_FRAGMENT_ADD( xboard )
1864
15781865   MCFG_CPU_REPLACE("maincpu", FD1094, MASTER_CLOCK/4)
15791866   MCFG_CPU_PROGRAM_MAP(main_map)
15801867   MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
15811868MACHINE_CONFIG_END
15821869
1870const device_type SEGA_XBD_FD1094_DEVICE = &device_creator<segaxbd_fd1094_state>;
15831871
1872segaxbd_fd1094_state::segaxbd_fd1094_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
1873   : segaxbd_state(mconfig, tag, owner, clock)
1874{
1875}
15841876
1877machine_config_constructor segaxbd_fd1094_state::device_mconfig_additions() const
1878{
1879   return MACHINE_CONFIG_NAME( xboard_fd1094 );
1880}
1881
1882static MACHINE_CONFIG_START( sega_xboard_fd1094, segaxbd_new_state )
1883   MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_FD1094_DEVICE, 0)
1884MACHINE_CONFIG_END
1885
1886static MACHINE_CONFIG_START( sega_xboard_fd1094_double, segaxbd_new_state_double )
1887   MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_FD1094_DEVICE, 0)
1888   MCFG_DEVICE_ADD("subpcb", SEGA_XBD_FD1094_DEVICE, 0)
1889
1890   //MCFG_QUANTUM_PERFECT_CPU("mainpcb:maincpu") // doesn't help..
1891MACHINE_CONFIG_END
1892
1893
15851894//**************************************************************************
15861895//  GAME-SPECIFIC MACHINE DRIVERS
15871896//**************************************************************************
15881897
1589static MACHINE_CONFIG_DERIVED( lastsurv_fd1094, xboard_fd1094 )
1898static MACHINE_CONFIG_FRAGMENT( lastsurv_fd1094 )
15901899
1900   MCFG_FRAGMENT_ADD( xboard_fd1094 )
1901
15911902   // basic machine hardware
15921903   // TODO: network board
15931904
r249106r249107
15981909   MCFG_SOUND_ROUTE(1, "lspeaker", 0.43)
15991910MACHINE_CONFIG_END
16001911
1601static MACHINE_CONFIG_DERIVED( smgp_fd1094, xboard_fd1094 )
1912const device_type SEGA_XBD_LASTSURV_FD1094_DEVICE = &device_creator<segaxbd_lastsurv_fd1094_state>;
16021913
1914segaxbd_lastsurv_fd1094_state::segaxbd_lastsurv_fd1094_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
1915   : segaxbd_state(mconfig, tag, owner, clock)
1916{
1917}
1918
1919machine_config_constructor segaxbd_lastsurv_fd1094_state::device_mconfig_additions() const
1920{
1921   return MACHINE_CONFIG_NAME( lastsurv_fd1094 );
1922}
1923
1924static MACHINE_CONFIG_START( sega_lastsurv_fd1094, segaxbd_new_state )
1925   MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_LASTSURV_FD1094_DEVICE, 0)
1926MACHINE_CONFIG_END
1927
1928
1929
1930
1931static MACHINE_CONFIG_FRAGMENT( smgp_fd1094 )
1932   MCFG_FRAGMENT_ADD( xboard_fd1094 )
1933
16031934   // basic machine hardware
16041935   MCFG_CPU_ADD("soundcpu2", Z80, SOUND_CLOCK/4)
16051936   MCFG_CPU_PROGRAM_MAP(smgp_sound2_map)
r249106r249107
16221953   MCFG_SOUND_ROUTE(1, "rearright", 1.0)
16231954MACHINE_CONFIG_END
16241955
1625static MACHINE_CONFIG_DERIVED( rascot, xboard )
1956const device_type SEGA_XBD_SMGP_FD1094_DEVICE = &device_creator<segaxbd_smgp_fd1094_state>;
16261957
1958segaxbd_smgp_fd1094_state::segaxbd_smgp_fd1094_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
1959   : segaxbd_state(mconfig, tag, owner, clock)
1960{
1961}
1962
1963machine_config_constructor segaxbd_smgp_fd1094_state::device_mconfig_additions() const
1964{
1965   return MACHINE_CONFIG_NAME( smgp_fd1094 );
1966}
1967
1968static MACHINE_CONFIG_START( sega_smgp_fd1094, segaxbd_new_state )
1969   MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_SMGP_FD1094_DEVICE, 0)
1970MACHINE_CONFIG_END
1971
1972
1973
1974static MACHINE_CONFIG_FRAGMENT( rascot  )
1975   MCFG_FRAGMENT_ADD( xboard )
1976
16271977   // basic machine hardware
16281978   MCFG_CPU_MODIFY("soundcpu")
16291979   MCFG_CPU_PROGRAM_MAP(rascot_z80_map)
16301980   MCFG_CPU_IO_MAP(rascot_z80_portmap)
16311981MACHINE_CONFIG_END
16321982
1983const device_type SEGA_XBD_RASCOT_DEVICE = &device_creator<segaxbd_rascot_state>;
16331984
1985segaxbd_rascot_state::segaxbd_rascot_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
1986   : segaxbd_state(mconfig, tag, owner, clock)
1987{
1988}
16341989
1990machine_config_constructor segaxbd_rascot_state::device_mconfig_additions() const
1991{
1992   return MACHINE_CONFIG_NAME( rascot );
1993}
1994
1995static MACHINE_CONFIG_START( sega_rascot, segaxbd_new_state )
1996   MCFG_DEVICE_ADD("mainpcb", SEGA_XBD_RASCOT_DEVICE, 0)
1997MACHINE_CONFIG_END
1998
1999
16352000//**************************************************************************
16362001//  ROM DEFINITIONS
16372002//**************************************************************************
r249106r249107
16692034//     EPR-10929.13
16702035//
16712036ROM_START( aburner )
1672   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2037   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
16732038   ROM_LOAD16_BYTE( "epr-10940.58", 0x00000, 0x20000, CRC(4d132c4e) SHA1(007af52167c369177b86fc0f8b007ebceba2a30c) )
16742039   ROM_LOAD16_BYTE( "epr-10941.63", 0x00001, 0x20000, CRC(136ea264) SHA1(606ac67db53a6002ed1bd71287aed2e3e720cdf4) )
16752040
1676   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2041   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
16772042   ROM_LOAD16_BYTE( "epr-10927.20", 0x00000, 0x20000, CRC(66d36757) SHA1(c7f6d653fb6bfd629bb62057010d41f3ccfccc4d) )
16782043   ROM_LOAD16_BYTE( "epr-10928.29", 0x00001, 0x20000, CRC(7c01d40b) SHA1(d95b4702a9c813db8bc24c8cd7e0933cbe54a573) )
16792044
1680   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2045   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
16812046   ROM_LOAD( "epr-10926.154", 0x00000, 0x10000, CRC(ed8bd632) SHA1(d5bbd5e257ebef8cfb3baf5fa530b189d9cddb57) )
16822047   ROM_LOAD( "epr-10925.153", 0x10000, 0x10000, CRC(4ef048cc) SHA1(3b386b3bfa600f114dbc19796bb6864a88ff4562) )
16832048   ROM_LOAD( "epr-10924.152", 0x20000, 0x10000, CRC(50c15a6d) SHA1(fc202cc583fc6804647abc884fdf332e72ea3100) )
16842049
1685   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2050   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
16862051   ROM_LOAD32_BYTE( "mpr-10932.90",  0x000000, 0x20000, CRC(cc0821d6) SHA1(22e84419a585209bbda1466d2180504c316a9b7f) ) // First 8 roms are MPR, the rest are EPR
16872052   ROM_LOAD32_BYTE( "mpr-10934.94",  0x000001, 0x20000, CRC(4a51b1fa) SHA1(2eed018a5a1e935bb72b6f440a794466a1397dc5) )
16882053   ROM_LOAD32_BYTE( "mpr-10936.98",  0x000002, 0x20000, CRC(ada70d64) SHA1(ba6203b0fdb4c4998b7be5b446eb8354751d553a) )
r249106r249107
17002065   ROM_LOAD32_BYTE( "epr-10948.101", 0x180002, 0x20000, CRC(64284761) SHA1(9594c671900f7f49d8fb965bc17b4380ce2c68d5) )
17012066   ROM_LOAD32_BYTE( "epr-10949.105", 0x180003, 0x20000, CRC(d8437d92) SHA1(480291358c3d197645d7bd149bdfe5d41071d52d) )
17022067
1703   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
2068   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
17042069   ROM_LOAD( "epr-10922.40", 0x000000, 0x10000, CRC(b49183d4) SHA1(71d87bfbce858049ccde9597ab15575b3cdba892) )
17052070
1706   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2071   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
17072072   ROM_LOAD( "epr-10923.17", 0x00000, 0x10000, CRC(6888eb8f) SHA1(8f8fffb214842a5d356e33f5a97099bc6407384f) )
17082073
1709   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2074   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
17102075   ROM_LOAD( "mpr-10931.11", 0x00000, 0x20000, CRC(9209068f) SHA1(01f3dda1c066d00080c55f2c86c506b6b2407f98) )
17112076   ROM_LOAD( "mpr-10930.12", 0x20000, 0x20000, CRC(6493368b) SHA1(328aff19ff1d1344e9115f519d3962390c4e5ba4) )
17122077   ROM_LOAD( "epr-10929.13", 0x40000, 0x20000, CRC(6c07c78d) SHA1(3868b1824f43e4f2b4fbcd9274bfb3000c889d12) )
r249106r249107
17202085//  CPU: 68000 (317-????)
17212086//
17222087ROM_START( aburner2 )
1723   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2088   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
17242089   ROM_LOAD16_BYTE( "epr-11107.58",  0x00000, 0x20000, CRC(6d87bab7) SHA1(ab34fe78f1f216037b3e3dca3e61f1b31c05cedf) )
17252090   ROM_LOAD16_BYTE( "epr-11108.63", 0x00001, 0x20000, CRC(202a3e1d) SHA1(cf2018bbad366de4b222eae35942636ca68aa581) )
17262091
1727   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2092   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
17282093   ROM_LOAD16_BYTE( "epr-11109.20", 0x00000, 0x20000, CRC(85a0fe07) SHA1(5a3a8fda6cb4898cfece4ec865b81b9b60f9ad55) )
17292094   ROM_LOAD16_BYTE( "epr-11110.29", 0x00001, 0x20000, CRC(f3d6797c) SHA1(17487b89ddbfbcc32a0b52268259f1c8d10fd0b2) )
17302095
1731   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2096   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
17322097   ROM_LOAD( "epr-11115.154", 0x00000, 0x10000, CRC(e8e32921) SHA1(30a96e6b514a475c778296228ba5b6fb96b211b0) )
17332098   ROM_LOAD( "epr-11114.153", 0x10000, 0x10000, CRC(2e97f633) SHA1(074125c106dd00785903b2e10cd7e28d5036eb60) )
17342099   ROM_LOAD( "epr-11113.152", 0x20000, 0x10000, CRC(36058c8c) SHA1(52befe6c6c53f10b6fd4971098abc8f8d3eef9d4) )
17352100
1736   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2101   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
17372102   ROM_LOAD32_BYTE( "mpr-10932.90",  0x000000, 0x20000, CRC(cc0821d6) SHA1(22e84419a585209bbda1466d2180504c316a9b7f) ) // First 8 roms are MPR, the rest are EPR
17382103   ROM_LOAD32_BYTE( "mpr-10934.94",  0x000001, 0x20000, CRC(4a51b1fa) SHA1(2eed018a5a1e935bb72b6f440a794466a1397dc5) )
17392104   ROM_LOAD32_BYTE( "mpr-10936.98",  0x000002, 0x20000, CRC(ada70d64) SHA1(ba6203b0fdb4c4998b7be5b446eb8354751d553a) )
r249106r249107
17512116   ROM_LOAD32_BYTE( "epr-11118.101", 0x180002, 0x20000, CRC(8f38540b) SHA1(1fdfb157d1aca96cb635bd3d64f94545eb88c133) )
17522117   ROM_LOAD32_BYTE( "epr-11119.105", 0x180003, 0x20000, CRC(d0343a8e) SHA1(8c0c0addb6dfd0ea04c3900a9f7f7c731ca6e9ea) )
17532118
1754   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
2119   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
17552120   ROM_LOAD( "epr-10922.40", 0x000000, 0x10000, CRC(b49183d4) SHA1(71d87bfbce858049ccde9597ab15575b3cdba892) )
17562121
1757   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2122   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
17582123   ROM_LOAD( "epr-11112.17",    0x00000, 0x10000, CRC(d777fc6d) SHA1(46ce1c3875437044c0a172960d560d6acd6eaa92) )
17592124
1760   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2125   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
17612126   ROM_LOAD( "mpr-10931.11", 0x00000, 0x20000, CRC(9209068f) SHA1(01f3dda1c066d00080c55f2c86c506b6b2407f98) )
17622127   ROM_LOAD( "mpr-10930.12", 0x20000, 0x20000, CRC(6493368b) SHA1(328aff19ff1d1344e9115f519d3962390c4e5ba4) )
17632128   ROM_LOAD( "epr-11102.13", 0x40000, 0x20000, CRC(6c07c78d) SHA1(3868b1824f43e4f2b4fbcd9274bfb3000c889d12) )
r249106r249107
17692134//  Sega Game ID #: 834-6335-04 AFTER BURNER
17702135//
17712136ROM_START( aburner2g )
1772   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2137   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
17732138   ROM_LOAD16_BYTE( "epr-11173a.58", 0x00000, 0x20000, CRC(cbf480f4) SHA1(f5bab7b2889cdd3f3f2a3e9edd3f17b4d2a5b8a9) )
17742139   ROM_LOAD16_BYTE( "epr-11174a.63", 0x00001, 0x20000, CRC(ed7cba77) SHA1(e81f24fa93329ad25150eada7717cce55fa3887d) )
17752140
1776   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2141   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
17772142   ROM_LOAD16_BYTE( "epr-11109.20", 0x00000, 0x20000, CRC(85a0fe07) SHA1(5a3a8fda6cb4898cfece4ec865b81b9b60f9ad55) )
17782143   ROM_LOAD16_BYTE( "epr-11110.29", 0x00001, 0x20000, CRC(f3d6797c) SHA1(17487b89ddbfbcc32a0b52268259f1c8d10fd0b2) )
17792144
1780   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2145   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
17812146   ROM_LOAD( "epr-11115.154", 0x00000, 0x10000, CRC(e8e32921) SHA1(30a96e6b514a475c778296228ba5b6fb96b211b0) )
17822147   ROM_LOAD( "epr-11114.153", 0x10000, 0x10000, CRC(2e97f633) SHA1(074125c106dd00785903b2e10cd7e28d5036eb60) )
17832148   ROM_LOAD( "epr-11113.152", 0x20000, 0x10000, CRC(36058c8c) SHA1(52befe6c6c53f10b6fd4971098abc8f8d3eef9d4) )
17842149
1785   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2150   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
17862151   ROM_LOAD32_BYTE( "mpr-10932.90",  0x000000, 0x20000, CRC(cc0821d6) SHA1(22e84419a585209bbda1466d2180504c316a9b7f) ) // First 8 roms are MPR, the rest are EPR
17872152   ROM_LOAD32_BYTE( "mpr-10934.94",  0x000001, 0x20000, CRC(4a51b1fa) SHA1(2eed018a5a1e935bb72b6f440a794466a1397dc5) )
17882153   ROM_LOAD32_BYTE( "mpr-10936.98",  0x000002, 0x20000, CRC(ada70d64) SHA1(ba6203b0fdb4c4998b7be5b446eb8354751d553a) )
r249106r249107
18002165   ROM_LOAD32_BYTE( "epr-11118.101", 0x180002, 0x20000, CRC(8f38540b) SHA1(1fdfb157d1aca96cb635bd3d64f94545eb88c133) )
18012166   ROM_LOAD32_BYTE( "epr-11119.105", 0x180003, 0x20000, CRC(d0343a8e) SHA1(8c0c0addb6dfd0ea04c3900a9f7f7c731ca6e9ea) )
18022167
1803   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
2168   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
18042169   ROM_LOAD( "epr-10922.40", 0x000000, 0x10000, CRC(b49183d4) SHA1(71d87bfbce858049ccde9597ab15575b3cdba892) )
18052170
1806   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2171   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
18072172   ROM_LOAD( "epr-11112.17",    0x00000, 0x10000, CRC(d777fc6d) SHA1(46ce1c3875437044c0a172960d560d6acd6eaa92) )
18082173
1809   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2174   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
18102175   ROM_LOAD( "mpr-10931.11", 0x00000, 0x20000, CRC(9209068f) SHA1(01f3dda1c066d00080c55f2c86c506b6b2407f98) ) // There is known to exist German Sample roms
18112176   ROM_LOAD( "mpr-10930.12", 0x20000, 0x20000, CRC(6493368b) SHA1(328aff19ff1d1344e9115f519d3962390c4e5ba4) )
18122177   ROM_LOAD( "epr-10929.13", 0x40000, 0x20000, CRC(6c07c78d) SHA1(3868b1824f43e4f2b4fbcd9274bfb3000c889d12) )
r249106r249107
18212186//  Sega game ID# 834-7218-02
18222187//
18232188ROM_START( loffire )
1824   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2189   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
18252190   ROM_LOAD16_BYTE( "epr-12849.58", 0x000000, 0x20000, CRC(61cfd2fe) SHA1(b47ae9cdf741574ab9128dd3556b1ef35e81a149) )
18262191   ROM_LOAD16_BYTE( "epr-12850.63", 0x000001, 0x20000, CRC(14598f2a) SHA1(13a51529ed32acefd733d9f638621c3e023dbd6d) )
18272192
r249106r249107
18352200   // Nicola Salmoria
18362201   //
18372202
1838   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2203   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
18392204   ROM_LOAD( "317-0136.key", 0x0000, 0x2000, BAD_DUMP CRC(344bfe0c) SHA1(f6bb8045b46f90f8abadf1dc2e1ae1d7cef9c810) )
18402205
1841   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2206   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
18422207   ROM_LOAD16_BYTE( "epr-12804.20", 0x000000, 0x20000, CRC(b853480e) SHA1(de0889e99251da7ea50316282ebf6f434cc2db11) )
18432208   ROM_LOAD16_BYTE( "epr-12805.29", 0x000001, 0x20000, CRC(4a7200c3) SHA1(3e6febed36a55438e0d24441b68f2b7952791584) )
18442209   ROM_LOAD16_BYTE( "epr-12802.21", 0x040000, 0x20000, CRC(d746bb39) SHA1(08dc8cf565997c7e52329961bf7a229a15900cff) )
18452210   ROM_LOAD16_BYTE( "epr-12803.30", 0x040001, 0x20000, CRC(c1d9e751) SHA1(98b3d0b3b31702f6234b5fea2b82d512fc5d3ad2) )
18462211
1847   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2212   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
18482213   ROM_LOAD( "opr-12791.154", 0x00000, 0x10000, CRC(acfa69ba) SHA1(353c43dda6c2282a785646b0a58c90cfd173cd7b) )
18492214   ROM_LOAD( "opr-12792.153", 0x10000, 0x10000, CRC(e506723c) SHA1(d04dc29686fe348f8f715d14c027de0e508c770f) )
18502215   ROM_LOAD( "opr-12793.152", 0x20000, 0x10000, CRC(0ce8cce3) SHA1(1a6b1af2b0b9e8240e681f7b15e9d08595753fe6) )
18512216
1852   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2217   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
18532218   ROM_LOAD32_BYTE( "epr-12787.90",  0x000000, 0x20000, CRC(6431a3a6) SHA1(63a732b7dfd2b83fe7684d47fea26063c4ece099) )
18542219   ROM_LOAD32_BYTE( "epr-12788.94",  0x000001, 0x20000, CRC(1982a0ce) SHA1(e4756f31b0094e0e9ddb2df53a5c938ac5559230) )
18552220   ROM_LOAD32_BYTE( "epr-12789.98",  0x000002, 0x20000, CRC(97d03274) SHA1(b4b9921db53949bc8e91f8a2992e89c172fe8893) )
r249106r249107
18672232   ROM_LOAD32_BYTE( "epr-12777.101", 0x180002, 0x20000, CRC(29d5b953) SHA1(0c932a67e2aecffa7a1dbaa587c96214e1a2cc7f) )
18682233   ROM_LOAD32_BYTE( "epr-12778.105", 0x180003, 0x20000, CRC(2fb68e07) SHA1(8685e72aed115cbc9c6c7511217996a573b30d16) )
18692234
1870   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
2235   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
18712236   // none
18722237
1873   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2238   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
18742239   ROM_LOAD( "epr-12798.17", 0x00000, 0x10000, CRC(0587738d) SHA1(24c79b0c73616d5532a49a2c9121dfabe3a80c7d) )
18752240
1876   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2241   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
18772242   ROM_LOAD( "epr-12799.11", 0x00000, 0x20000, CRC(bc60181c) SHA1(3c89161348db7cafb5636ab4eaba91fbd3541f90) )
18782243   ROM_LOAD( "epr-12800.12", 0x20000, 0x20000, CRC(1158c1a3) SHA1(e1d664a203eed5a0130b39ced7bea8328f06f107) )
18792244   ROM_LOAD( "epr-12801.13", 0x40000, 0x20000, CRC(2d6567c4) SHA1(542be9d8e91cf2df18d95f4e259cfda0560697cb) )
r249106r249107
18852250//  Sega game ID# 834-7218-01
18862251//
18872252ROM_START( loffireu )
1888   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2253   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
18892254   ROM_LOAD16_BYTE( "epr-12847a.58", 0x000000, 0x20000, CRC(c50eb4ed) SHA1(18a46c97aec2fefd160338c1760b6ee367dcb57f) )
18902255   ROM_LOAD16_BYTE( "epr-12848a.63", 0x000001, 0x20000, CRC(f8ff8640) SHA1(193bb8f42f3c5011ad1fbf87215f012de5e950fb) )
18912256
1892   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2257   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
18932258   ROM_LOAD( "317-0135.key", 0x0000, 0x2000, CRC(c53ad019) SHA1(7e6dc2b35ebfeefb507d4d03f5a59574944177d1) )
18942259
1895   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2260   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
18962261   ROM_LOAD16_BYTE( "epr-12804.20", 0x000000, 0x20000, CRC(b853480e) SHA1(de0889e99251da7ea50316282ebf6f434cc2db11) )
18972262   ROM_LOAD16_BYTE( "epr-12805.29", 0x000001, 0x20000, CRC(4a7200c3) SHA1(3e6febed36a55438e0d24441b68f2b7952791584) )
18982263   ROM_LOAD16_BYTE( "epr-12802.21", 0x040000, 0x20000, CRC(d746bb39) SHA1(08dc8cf565997c7e52329961bf7a229a15900cff) )
18992264   ROM_LOAD16_BYTE( "epr-12803.30", 0x040001, 0x20000, CRC(c1d9e751) SHA1(98b3d0b3b31702f6234b5fea2b82d512fc5d3ad2) )
19002265
1901   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2266   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
19022267   ROM_LOAD( "opr-12791.154", 0x00000, 0x10000, CRC(acfa69ba) SHA1(353c43dda6c2282a785646b0a58c90cfd173cd7b) )
19032268   ROM_LOAD( "opr-12792.153", 0x10000, 0x10000, CRC(e506723c) SHA1(d04dc29686fe348f8f715d14c027de0e508c770f) )
19042269   ROM_LOAD( "opr-12793.152", 0x20000, 0x10000, CRC(0ce8cce3) SHA1(1a6b1af2b0b9e8240e681f7b15e9d08595753fe6) )
19052270
1906   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2271   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
19072272   ROM_LOAD32_BYTE( "epr-12787.90",  0x000000, 0x20000, CRC(6431a3a6) SHA1(63a732b7dfd2b83fe7684d47fea26063c4ece099) )
19082273   ROM_LOAD32_BYTE( "epr-12788.94",  0x000001, 0x20000, CRC(1982a0ce) SHA1(e4756f31b0094e0e9ddb2df53a5c938ac5559230) )
19092274   ROM_LOAD32_BYTE( "epr-12789.98",  0x000002, 0x20000, CRC(97d03274) SHA1(b4b9921db53949bc8e91f8a2992e89c172fe8893) )
r249106r249107
19212286   ROM_LOAD32_BYTE( "epr-12777.101", 0x180002, 0x20000, CRC(29d5b953) SHA1(0c932a67e2aecffa7a1dbaa587c96214e1a2cc7f) )
19222287   ROM_LOAD32_BYTE( "epr-12778.105", 0x180003, 0x20000, CRC(2fb68e07) SHA1(8685e72aed115cbc9c6c7511217996a573b30d16) )
19232288
1924   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
2289   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
19252290   // none
19262291
1927   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2292   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
19282293   ROM_LOAD( "epr-12798.17", 0x00000, 0x10000, CRC(0587738d) SHA1(24c79b0c73616d5532a49a2c9121dfabe3a80c7d) )
19292294
1930   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2295   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
19312296   ROM_LOAD( "epr-12799.11", 0x00000, 0x20000, CRC(bc60181c) SHA1(3c89161348db7cafb5636ab4eaba91fbd3541f90) )
19322297   ROM_LOAD( "epr-12800.12", 0x20000, 0x20000, CRC(1158c1a3) SHA1(e1d664a203eed5a0130b39ced7bea8328f06f107) )
19332298   ROM_LOAD( "epr-12801.13", 0x40000, 0x20000, CRC(2d6567c4) SHA1(542be9d8e91cf2df18d95f4e259cfda0560697cb) )
r249106r249107
19392304//  Sega game ID# 834-7218
19402305//
19412306ROM_START( loffirej )
1942   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2307   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
19432308   // repaired using data from the loffire set since they are mostly identical
19442309   // when decrypted, they pass the rom check so are assumed to be ok but double
19452310   // checking them when possible never hurts
19462311   ROM_LOAD16_BYTE( "epr-12794.58", 0x000000, 0x20000, CRC(1e588992) SHA1(fe7107e83c12643e7d22fd4b4cd0c7bcff0d84c3) )
19472312   ROM_LOAD16_BYTE( "epr-12795.63", 0x000001, 0x20000, CRC(d43d7427) SHA1(ecbd425bab6aa65ffbd441d6a0936ac055d5f06d) )
19482313
1949   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2314   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
19502315   ROM_LOAD( "317-0134.key", 0x0000, 0x2000, CRC(732626d4) SHA1(75ed7ca417758dd62afb4edbb9daee754932c392) )
19512316
1952   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2317   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
19532318   ROM_LOAD16_BYTE( "epr-12804.20", 0x000000, 0x20000, CRC(b853480e) SHA1(de0889e99251da7ea50316282ebf6f434cc2db11) )
19542319   ROM_LOAD16_BYTE( "epr-12805.29", 0x000001, 0x20000, CRC(4a7200c3) SHA1(3e6febed36a55438e0d24441b68f2b7952791584) )
19552320   ROM_LOAD16_BYTE( "epr-12802.21", 0x040000, 0x20000, CRC(d746bb39) SHA1(08dc8cf565997c7e52329961bf7a229a15900cff) )
19562321   ROM_LOAD16_BYTE( "epr-12803.30", 0x040001, 0x20000, CRC(c1d9e751) SHA1(98b3d0b3b31702f6234b5fea2b82d512fc5d3ad2) )
19572322
1958   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2323   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
19592324   ROM_LOAD( "opr-12791.154", 0x00000, 0x10000, CRC(acfa69ba) SHA1(353c43dda6c2282a785646b0a58c90cfd173cd7b) )
19602325   ROM_LOAD( "opr-12792.153", 0x10000, 0x10000, CRC(e506723c) SHA1(d04dc29686fe348f8f715d14c027de0e508c770f) )
19612326   ROM_LOAD( "opr-12793.152", 0x20000, 0x10000, CRC(0ce8cce3) SHA1(1a6b1af2b0b9e8240e681f7b15e9d08595753fe6) )
19622327
1963   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2328   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
19642329   ROM_LOAD32_BYTE( "epr-12787.90",  0x000000, 0x20000, CRC(6431a3a6) SHA1(63a732b7dfd2b83fe7684d47fea26063c4ece099) )
19652330   ROM_LOAD32_BYTE( "epr-12788.94",  0x000001, 0x20000, CRC(1982a0ce) SHA1(e4756f31b0094e0e9ddb2df53a5c938ac5559230) )
19662331   ROM_LOAD32_BYTE( "epr-12789.98",  0x000002, 0x20000, CRC(97d03274) SHA1(b4b9921db53949bc8e91f8a2992e89c172fe8893) )
r249106r249107
19782343   ROM_LOAD32_BYTE( "epr-12777.101", 0x180002, 0x20000, CRC(29d5b953) SHA1(0c932a67e2aecffa7a1dbaa587c96214e1a2cc7f) )
19792344   ROM_LOAD32_BYTE( "epr-12778.105", 0x180003, 0x20000, CRC(2fb68e07) SHA1(8685e72aed115cbc9c6c7511217996a573b30d16) )
19802345
1981   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
2346   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
19822347   // none
19832348
1984   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2349   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
19852350   ROM_LOAD( "epr-12798.17", 0x00000, 0x10000, CRC(0587738d) SHA1(24c79b0c73616d5532a49a2c9121dfabe3a80c7d) )
19862351
1987   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2352   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
19882353   ROM_LOAD( "epr-12799.11", 0x00000, 0x20000, CRC(bc60181c) SHA1(3c89161348db7cafb5636ab4eaba91fbd3541f90) )
19892354   ROM_LOAD( "epr-12800.12", 0x20000, 0x20000, CRC(1158c1a3) SHA1(e1d664a203eed5a0130b39ced7bea8328f06f107) )
19902355   ROM_LOAD( "epr-12801.13", 0x40000, 0x20000, CRC(2d6567c4) SHA1(542be9d8e91cf2df18d95f4e259cfda0560697cb) )
r249106r249107
20002365//  GAME BD NO. 834-6493-03 (Uses "MPR" mask roms) or 834-6493-05 (Uses "EPR" eproms)
20012366//
20022367ROM_START( thndrbld )
2003   ROM_REGION( 0x100000, "maincpu", 0 ) // 68000 code
2368   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) // 68000 code
20042369   ROM_LOAD16_BYTE( "epr-11405.ic58", 0x000000, 0x20000, CRC(e057dd5a) SHA1(4c032db4752dfb44dba3def5ee5377fffd94b79c) )
20052370   ROM_LOAD16_BYTE( "epr-11406.ic63", 0x000001, 0x20000, CRC(c6b994b8) SHA1(098b2ae30c4aafea35222369d60f8e89f87639eb) )
20062371   ROM_LOAD16_BYTE( "epr-11306.ic57", 0x040000, 0x20000, CRC(4b95f2b4) SHA1(9e0ff898a2af05c35db3551e52c7485748698c28) )
20072372   ROM_LOAD16_BYTE( "epr-11307.ic62", 0x040001, 0x20000, CRC(2d6833e4) SHA1(b39a744370014237121f0010d18897e63f7058cf) )
20082373
2009   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2374   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
20102375   ROM_LOAD( "317-0056.key", 0x0000, 0x2000, CRC(b40cd2c5) SHA1(865e70bce4f55f6702960d6eaa780b7b1f880e41) )
20112376
2012   ROM_REGION( 0x100000, "subcpu", 0 ) // 2nd 68000 code
2377   ROM_REGION( 0x100000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
20132378   ROM_LOAD16_BYTE( "epr-11390.ic20", 0x000000, 0x20000, CRC(ed988fdb) SHA1(b809b0b7dabd5cb29f5387522c6dfb993d1d0271) )
20142379   ROM_LOAD16_BYTE( "epr-11391.ic29", 0x000001, 0x20000, CRC(12523bc1) SHA1(54635d6c4cc97cf4148dcac3bb2056fc414252f7) )
20152380   ROM_LOAD16_BYTE( "epr-11310.ic21", 0x040000, 0x20000, CRC(5d9fa02c) SHA1(0ca71e35cf9740e38a52960f7d1ef96e7e1dda94) )
20162381   ROM_LOAD16_BYTE( "epr-11311.ic30", 0x040001, 0x20000, CRC(483de21b) SHA1(871f0e856dcc81dcef1d9846261b3c011fa26dde) )
20172382
2018   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2383   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
20192384   ROM_LOAD( "epr-11314.ic154", 0x00000, 0x10000, CRC(d4f954a9) SHA1(93ee8cf8fcf4e1d0dd58329bba9b594431193449) )
20202385   ROM_LOAD( "epr-11315.ic153", 0x10000, 0x10000, CRC(35813088) SHA1(ea1ec982d1509efb26e7b6a150825a6a905efed9) )
20212386   ROM_LOAD( "epr-11316.ic152", 0x20000, 0x10000, CRC(84290dff) SHA1(c13fb6ef12a991f79a95072f953a02b5c992aa2d) )
20222387
2023   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2388   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
20242389   ROM_LOAD32_BYTE( "epr-11323.ic90",  0x000000, 0x20000, CRC(27e40735) SHA1(284ddb88efe741fb78199ea619c9b230ee689803) )
20252390   ROM_LOAD32_BYTE( "epr-11322.ic94",  0x000001, 0x20000, CRC(10364d74) SHA1(393b19a972b5d8817ffd438f13ded73cd58ebe56) )
20262391   ROM_LOAD32_BYTE( "epr-11321.ic98",  0x000002, 0x20000, CRC(8e738f58) SHA1(9f2dceebf01e582cf60f072ae411000d8503894b) )
r249106r249107
20382403   ROM_LOAD32_BYTE( "epr-11393.ic101", 0x180002, 0x20000, CRC(525e2e1d) SHA1(6fd09f775e7e6cad8078513d1af0a8ff40fb1360) ) // replaced from original rev?
20392404   ROM_LOAD32_BYTE( "epr-11392.ic105", 0x180003, 0x20000, CRC(b4a382f7) SHA1(c03a05ba521f654db1a9c5f5717b7a15e5a29d4e) ) //
20402405
2041   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // Road Data
2406   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // Road Data
20422407   ROM_LOAD( "epr-11313.ic29", 0x00000, 0x10000, CRC(6a56c4c3) SHA1(c1b8023cb2ba4e96be052031c24b6ae424225c71) )
20432408
2044   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2409   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
20452410   ROM_LOAD( "epr-11396.ic17", 0x00000, 0x10000, CRC(d37b54a4) SHA1(c230fe7241a1f13ca13506d1492f348f506c40a7) )
20462411
2047   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2412   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
20482413   ROM_LOAD( "epr-11317.ic11", 0x00000, 0x20000, CRC(d4e7ac1f) SHA1(ec5d6e4949938adf56e5613801ae56ff2c3dede5) )
20492414   ROM_LOAD( "epr-11318.ic12", 0x20000, 0x20000, CRC(70d3f02c) SHA1(391aac2bc5673e06150de27e19c7c6359da8ca82) )
20502415   ROM_LOAD( "epr-11319.ic13", 0x40000, 0x20000, CRC(50d9242e) SHA1(a106371bf680c3088ec61f07fc5c4ce467973c15) )
r249106r249107
20572422//  GAME BD NO. 834-6493-03 (Uses "MPR" mask roms) or 834-6493-05 (Uses "EPR" eproms)
20582423//
20592424ROM_START( thndrbld1 )
2060   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2425   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
20612426   ROM_LOAD16_BYTE( "epr-11304.ic58", 0x000000, 0x20000, CRC(a90630ef) SHA1(8f29e020119b2243b1c95e15546af1773327ae85) ) // patched?
20622427   ROM_LOAD16_BYTE( "epr-11305.ic63", 0x000001, 0x20000, CRC(9ba3ef61) SHA1(f75748b37ce35b0ef881804f73417643068dfbb2) ) // patched?
20632428   ROM_LOAD16_BYTE( "epr-11306.ic57", 0x040000, 0x20000, CRC(4b95f2b4) SHA1(9e0ff898a2af05c35db3551e52c7485748698c28) )
20642429   ROM_LOAD16_BYTE( "epr-11307.ic62", 0x040001, 0x20000, CRC(2d6833e4) SHA1(b39a744370014237121f0010d18897e63f7058cf) )
20652430
2066   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2431   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
20672432   ROM_LOAD16_BYTE( "epr-11308.ic20", 0x00000, 0x20000, CRC(7956c238) SHA1(4608225cfd6ea3d38317cbe970f26a5fc2f8e320) )
20682433   ROM_LOAD16_BYTE( "epr-11309.ic29", 0x00001, 0x20000, CRC(c887f620) SHA1(644c47cc2cf75cbe489ea084c13c59d94631e83f) )
20692434   ROM_LOAD16_BYTE( "epr-11310.ic21", 0x040000, 0x20000, CRC(5d9fa02c) SHA1(0ca71e35cf9740e38a52960f7d1ef96e7e1dda94) )
20702435   ROM_LOAD16_BYTE( "epr-11311.ic30", 0x040001, 0x20000, CRC(483de21b) SHA1(871f0e856dcc81dcef1d9846261b3c011fa26dde) )
20712436
2072   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2437   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
20732438   ROM_LOAD( "epr-11314.ic154", 0x00000, 0x10000, CRC(d4f954a9) SHA1(93ee8cf8fcf4e1d0dd58329bba9b594431193449) )
20742439   ROM_LOAD( "epr-11315.ic153", 0x10000, 0x10000, CRC(35813088) SHA1(ea1ec982d1509efb26e7b6a150825a6a905efed9) )
20752440   ROM_LOAD( "epr-11316.ic152", 0x20000, 0x10000, CRC(84290dff) SHA1(c13fb6ef12a991f79a95072f953a02b5c992aa2d) )
20762441
2077   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2442   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
20782443   ROM_LOAD32_BYTE( "epr-11323.ic90",  0x000000, 0x20000, CRC(27e40735) SHA1(284ddb88efe741fb78199ea619c9b230ee689803) )
20792444   ROM_LOAD32_BYTE( "epr-11322.ic94",  0x000001, 0x20000, CRC(10364d74) SHA1(393b19a972b5d8817ffd438f13ded73cd58ebe56) )
20802445   ROM_LOAD32_BYTE( "epr-11321.ic98",  0x000002, 0x20000, CRC(8e738f58) SHA1(9f2dceebf01e582cf60f072ae411000d8503894b) )
r249106r249107
20922457   ROM_LOAD32_BYTE( "epr-11333.ic101", 0x180002, 0x20000, CRC(05a2333f) SHA1(70f213945fa7fe056fe17a02558638e87f2c001e) )
20932458   ROM_LOAD32_BYTE( "epr-11332.ic105", 0x180003, 0x20000, CRC(dc089ec6) SHA1(d72390c45138a507e79af112addbc015560fc248) )
20942459
2095   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // Road Data
2460   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // Road Data
20962461   ROM_LOAD( "epr-11313.ic29", 0x00000, 0x10000, CRC(6a56c4c3) SHA1(c1b8023cb2ba4e96be052031c24b6ae424225c71) )
20972462
2098   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2463   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
20992464   ROM_LOAD( "epr-11312.ic17",   0x00000, 0x10000, CRC(3b974ed2) SHA1(cf18a2d0f01643c747a884bf00e5b7037ba2e64a) )
21002465
2101   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2466   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
21022467   ROM_LOAD( "epr-11317.ic11", 0x00000, 0x20000, CRC(d4e7ac1f) SHA1(ec5d6e4949938adf56e5613801ae56ff2c3dede5) )
21032468   ROM_LOAD( "epr-11318.ic12", 0x20000, 0x20000, CRC(70d3f02c) SHA1(391aac2bc5673e06150de27e19c7c6359da8ca82) )
21042469   ROM_LOAD( "epr-11319.ic13", 0x40000, 0x20000, CRC(50d9242e) SHA1(a106371bf680c3088ec61f07fc5c4ce467973c15) )
r249106r249107
21122477//  CPU: FD1094 (317-0083)
21132478//
21142479ROM_START( lastsurv )
2115   ROM_REGION( 0x100000, "maincpu", 0 ) // 68000 code
2480   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) // 68000 code
21162481   ROM_LOAD16_BYTE( "epr-12046.ic58", 0x000000, 0x20000, CRC(f94f3a1a) SHA1(f509cbccb1f36ce52ed3e44d4d7b31a047050700) )
21172482   ROM_LOAD16_BYTE( "epr-12047.ic63", 0x000001, 0x20000, CRC(1b45c116) SHA1(c46ad622a145baea52d918537fa43a2009ed0cca) )
21182483   ROM_LOAD16_BYTE( "epr-12048.ic57", 0x040000, 0x20000, CRC(648e38ca) SHA1(e5f7fd42f49dbbddd1a812a04d8b95c1a73e640b) )
21192484   ROM_LOAD16_BYTE( "epr-12049.ic62", 0x040001, 0x20000, CRC(6c5c4753) SHA1(6834542005bc8cad7918ae17d3764306d7f9a959) )
21202485
2121   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2486   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
21222487   ROM_LOAD( "317-0083.key", 0x0000, 0x2000, CRC(dca0b9cc) SHA1(77510804d36d486ffa1e0bb5b0a36d43adc63415) )
21232488
2124   ROM_REGION( 0x100000, "subcpu", 0 ) // 2nd 68000 code
2489   ROM_REGION( 0x100000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
21252490   ROM_LOAD16_BYTE( "epr-12050.ic20", 0x000000, 0x20000, CRC(985a0f36) SHA1(bd0a93aa16565c8338db0c67b031bfa409bce5a9) )
21262491   ROM_LOAD16_BYTE( "epr-12051.ic29", 0x000001, 0x20000, CRC(f967d5a8) SHA1(16d742da755b5b7c3c3a9f6b4baaf242e5e54441) )
21272492   ROM_LOAD16_BYTE( "epr-12052.ic21", 0x040000, 0x20000, CRC(9f7a424d) SHA1(b8c2d3aa08ba71f08f2c1f403edac16bf4334184) )
21282493   ROM_LOAD16_BYTE( "epr-12053.ic30", 0x040001, 0x20000, CRC(efcf30f6) SHA1(55cd42c78f117995a89844529386ae3d11c718c1) )
21292494
2130   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2495   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
21312496   ROM_LOAD( "epr-12055.ic154", 0x00000, 0x10000, CRC(150014a4) SHA1(9fbab916ee903c541f61014e137ccecd071b5c3a) )
21322497   ROM_LOAD( "epr-12056.ic153", 0x10000, 0x10000, CRC(3cd4c306) SHA1(b0f178688870c67936a15383024c392072e3bc66) )
21332498   ROM_LOAD( "epr-12057.ic152", 0x20000, 0x10000, CRC(37e91770) SHA1(69e26f4d3c4ebfaf0225a9b1c60038595929ef05) )
21342499
2135   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2500   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
21362501   ROM_LOAD32_BYTE( "mpr-12064.ic90",  0x000000, 0x20000, CRC(84562a69) SHA1(815189a65065def213ef171fe40a44a455dfe75a) )
21372502   ROM_LOAD32_BYTE( "mpr-12063.ic94",  0x000001, 0x20000, CRC(d163727c) SHA1(50ed2b401e107a359874dad5d86eec788f5504eb) )
21382503   ROM_LOAD32_BYTE( "mpr-12062.ic98",  0x000002, 0x20000, CRC(6b57833b) SHA1(1d70894c81a4cd39f43067701a598d2c4fbffa58) )
r249106r249107
21502515   ROM_LOAD32_BYTE( "epr-12074.ic101", 0x180002, 0x20000, CRC(ee6cbb73) SHA1(c68d825ded83dd06ba7b816622db3d57631b4fcc) )
21512516   ROM_LOAD32_BYTE( "epr-12073.ic105", 0x180003, 0x20000, CRC(167e6342) SHA1(2f87074d6821a974cbb137ca2bec28fafc0df46f) )
21522517
2153   ROM_REGION( 0x20000, "gfx3", ROMREGION_ERASE00 ) // Road Data
2518   ROM_REGION( 0x20000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // Road Data
21542519   // none
21552520
2156   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2521   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
21572522   ROM_LOAD( "epr-12054.ic17", 0x00000, 0x10000, CRC(e9b39216) SHA1(142764b40b4db69ff08d28338d1b12b1dd1ed0a0) )
21582523
2159   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2524   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
21602525   ROM_LOAD( "epr-12058.ic11", 0x00000, 0x20000, CRC(4671cb46) SHA1(03ecaa4409a5b86a558313d4ccfb2334f79cff17) )
21612526   ROM_LOAD( "epr-12059.ic12", 0x20000, 0x20000, CRC(8c99aff4) SHA1(818418e4e92f601b09fcaa0979802a2c2c85b435) )
21622527   ROM_LOAD( "epr-12060.ic13", 0x40000, 0x20000, CRC(7ed382b3) SHA1(c87306d1b9edb8b4b97aee4af1317526750e2da2) )
r249106r249107
21702535//  CPU: FD1094 (317-0144)
21712536//
21722537ROM_START( rachero )
2173   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2538   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
21742539   ROM_LOAD16_BYTE( "epr-13129.ic58", 0x00000, 0x20000,CRC(ad9f32e7) SHA1(dbcb3436782bee88dcac05d4f59c97f170a7387d) )
21752540   ROM_LOAD16_BYTE( "epr-13130.ic63", 0x00001, 0x20000,CRC(6022777b) SHA1(965c76565d740be3355c4b403a1629cffb9fcd78) )
21762541   ROM_LOAD16_BYTE( "epr-12855.ic57", 0x40000, 0x20000,CRC(cecf1e73) SHA1(3f8631379f32dbfda7720ef345276f9be23ada06) )
21772542   ROM_LOAD16_BYTE( "epr-12856.ic62", 0x40001, 0x20000,CRC(da900ebb) SHA1(595ed65248185ddf8666b3f30ad6329162116448) )
21782543
2179   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2544   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
21802545   ROM_LOAD( "317-0144.key", 0x0000, 0x2000, CRC(8740bbff) SHA1(de96e606c04a09258b966532fb01a6b4d4db86a6) )
21812546
2182   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2547   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
21832548   ROM_LOAD16_BYTE( "epr-12857.ic20", 0x00000, 0x20000, CRC(8a2328cc) SHA1(c34498428ddfb3eeb986f4153a6165a685d8fc8a) )
21842549   ROM_LOAD16_BYTE( "epr-12858.ic29", 0x00001, 0x20000, CRC(38a248b7) SHA1(a17672123665403c1c56fedab6c8abf44b1131f9) )
21852550
2186   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2551   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
21872552   ROM_LOAD( "epr-12879.ic154", 0x00000, 0x10000, CRC(c1a9de7a) SHA1(2425456a9d4ba92e1f2da6c2f164a6d5a5dee7c7) )
21882553   ROM_LOAD( "epr-12880.ic153", 0x10000, 0x10000, CRC(27ff04a5) SHA1(b554a6e060f4803100be8efa52977b503eb0f31d) )
21892554   ROM_LOAD( "epr-12881.ic152", 0x20000, 0x10000, CRC(72f14491) SHA1(b7a6cbd08470a5edda77cdd0337abd502c4905fd) )
21902555
2191   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2556   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
21922557   ROM_LOAD32_BYTE( "epr-12872.ic90",  0x000000, 0x20000, CRC(68d56139) SHA1(b5f32edbda10c31d52f90defea2bae226676069f) )
21932558   ROM_LOAD32_BYTE( "epr-12873.ic94",  0x000001, 0x20000, CRC(3d3ec450) SHA1(ac96ad8c7b365478bd1e5826a073e242f1208247) )
21942559   ROM_LOAD32_BYTE( "epr-12874.ic98",  0x000002, 0x20000, CRC(7d6bde23) SHA1(88b12ec6386cdad60b0028b72033a0037a0cdbdb) )
r249106r249107
22062571   ROM_LOAD32_BYTE( "epr-12862.ic101", 0x180002, 0x20000, CRC(7d4c3b05) SHA1(4e25a077b403549c681c5047912d0e28f4c07720) )
22072572   ROM_LOAD32_BYTE( "epr-12863.ic105", 0x180003, 0x20000, CRC(85095053) SHA1(f93194ecc0300956280cc0515b3e3ba2c9f71364) )
22082573
2209   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // ground data
2574   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // ground data
22102575   // none
22112576
2212   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2577   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
22132578   ROM_LOAD( "epr-12859.ic17",    0x00000, 0x10000, CRC(d57881da) SHA1(75b7f331ea8c2e33d6236e0c8fc8dabe5eef8160) )
22142579
2215   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2580   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
22162581   ROM_LOAD( "epr-12876.ic11",    0x00000, 0x20000, CRC(f72a34a0) SHA1(28f7d077c24352557da3a91a7e49b0c5b79f2a2e) )
22172582   ROM_LOAD( "epr-12877.ic12",    0x20000, 0x20000, CRC(18c1b6d2) SHA1(860cbb96999ab76c40ce96996bba70c42d845abc) )
22182583   ROM_LOAD( "epr-12878.ic13",    0x40000, 0x20000, CRC(7c212c15) SHA1(360b332d2fb32d88949ff8b357a863ffaaca39c2) )
r249106r249107
22682633//  Ep12587.14
22692634//
22702635ROM_START( smgp )
2271   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2636   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
22722637   ROM_LOAD16_BYTE( "epr-12563b.58", 0x00000, 0x20000, CRC(baf1f333) SHA1(f91a7a311237b9940a44b815716d4226a7ae1e8b) )
22732638   ROM_LOAD16_BYTE( "epr-12564b.63", 0x00001, 0x20000, CRC(b5191af0) SHA1(d6fb19552e4816eefe751907ec55a2e07ad24879) )
22742639
2275   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2640   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
22762641   ROM_LOAD( "317-0126a.key", 0x0000, 0x2000, CRC(2abc1982) SHA1(cc4c36e6ba52431df17c6e36ba08d3a89be7b7e7) )
22772642
2278   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2643   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
22792644   ROM_LOAD16_BYTE( "epr-12576a.20", 0x00000, 0x20000, CRC(2c9599c1) SHA1(79206f38c2976bd9299ed37bf62ac26dd3fba801) )
22802645   ROM_LOAD16_BYTE( "epr-12577a.29", 0x00001, 0x20000, CRC(abf9a50b) SHA1(e367b305cd45900aae4849af4904543f05456dc6) )
22812646
2282   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2647   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
22832648   ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
22842649   ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
22852650   ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
22862651
2287   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2652   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
22882653   ROM_LOAD32_BYTE( "mpr-12425.90",  0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
22892654   ROM_LOAD32_BYTE( "mpr-12426.94",  0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
22902655   ROM_LOAD32_BYTE( "mpr-12427.98",  0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
r249106r249107
23022667   ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set
23032668   ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) //
23042669
2305   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
2670   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
23062671   // none??
23072672
2308   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2673   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
23092674   ROM_LOAD( "epr-12436.17",    0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
23102675
2311   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2676   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
23122677   ROM_LOAD( "mpr-12437.11",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
23132678   ROM_LOAD( "mpr-12438.12",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
23142679   ROM_LOAD( "mpr-12439.13",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
23152680
2316   ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
2681   ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
23172682   ROM_LOAD( "epr-12535.8",     0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
23182683
2319   ROM_REGION( 0x80000, "pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
2684   ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
23202685   ROM_LOAD( "mpr-12437.20",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
23212686   ROM_LOAD( "mpr-12438.21",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
23222687   ROM_LOAD( "mpr-12439.22",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
23232688
2324   ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
2689   ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
23252690   ROM_LOAD( "epr-12587.14",    0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) )
23262691
2327   ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
2692   ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
23282693   ROM_LOAD( "epr-12505.8",     0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
23292694ROM_END
23302695
r249106r249107
23342699//
23352700// this set contained only prg roms
23362701ROM_START( smgp6 )
2337   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2702   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
23382703   ROM_LOAD16_BYTE( "epr-12563a.58", 0x00000, 0x20000, CRC(2e64b10e) SHA1(2be1ffb3120e4af6a61880e2a2602db07a73f373) )
23392704   ROM_LOAD16_BYTE( "epr-12564a.63", 0x00001, 0x20000, CRC(5baba3e7) SHA1(37194d5a4d3ee48a276f6aeb35b2f20a7661caa2) )
23402705
2341   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2706   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
23422707   ROM_LOAD( "317-0126a.key", 0x0000, 0x2000, CRC(2abc1982) SHA1(cc4c36e6ba52431df17c6e36ba08d3a89be7b7e7) )
23432708
2344   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2709   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
23452710   ROM_LOAD16_BYTE( "epr-12576a.20", 0x00000, 0x20000, CRC(2c9599c1) SHA1(79206f38c2976bd9299ed37bf62ac26dd3fba801) )
23462711   ROM_LOAD16_BYTE( "epr-12577a.29", 0x00001, 0x20000, CRC(abf9a50b) SHA1(e367b305cd45900aae4849af4904543f05456dc6) )
23472712
2348   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2713   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
23492714   ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
23502715   ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
23512716   ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
23522717
2353   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2718   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
23542719   ROM_LOAD32_BYTE( "mpr-12425.90",  0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
23552720   ROM_LOAD32_BYTE( "mpr-12426.94",  0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
23562721   ROM_LOAD32_BYTE( "mpr-12427.98",  0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
r249106r249107
23682733   ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set
23692734   ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) //
23702735
2371   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
2736   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
23722737   // none??
23732738
2374   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2739   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
23752740   ROM_LOAD( "epr-12436.17",    0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
23762741
2377   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2742   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
23782743   ROM_LOAD( "mpr-12437.11",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
23792744   ROM_LOAD( "mpr-12438.12",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
23802745   ROM_LOAD( "mpr-12439.13",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
23812746
2382   ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
2747   ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
23832748   ROM_LOAD( "epr-12535.8",     0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
23842749
2385   ROM_REGION( 0x80000, "pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
2750   ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
23862751   ROM_LOAD( "mpr-12437.20",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
23872752   ROM_LOAD( "mpr-12438.21",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
23882753   ROM_LOAD( "mpr-12439.22",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
23892754
2390   ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
2755   ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
23912756   ROM_LOAD( "epr-12587.14",    0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
23922757
2393   ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
2758   ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
23942759   ROM_LOAD( "epr-12505.8",     0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
23952760ROM_END
23962761
r249106r249107
24502815//  Ep12505.8
24512816//
24522817ROM_START( smgp5 )
2453   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2818   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
24542819   ROM_LOAD16_BYTE( "epr-12563.58", 0x00000, 0x20000, CRC(6d7325ae) SHA1(bf88ceddc49dab5b439080d5bf0e7e084a79546c) )
24552820   ROM_LOAD16_BYTE( "epr-12564.63", 0x00001, 0x20000, CRC(adfbf921) SHA1(f3321e03dc37b14db065b85d63e321810e4ea797) )
24562821
2457   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2822   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
24582823   ROM_LOAD( "317-0126.key", 0x0000, 0x2000, CRC(4d917996) SHA1(17232c0e35d439a12db3d966064cf00104088903) )
24592824
2460   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2825   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
24612826   ROM_LOAD16_BYTE( "epr-12576.20", 0x00000, 0x20000, CRC(23266b26) SHA1(240b9bf198fd2975851e769766566ec4e8379f87) )
24622827   ROM_LOAD16_BYTE( "epr-12577.29", 0x00001, 0x20000, CRC(d5b53211) SHA1(b11f5c5094eb7ea9578f15489b00d8bbac1edee6) )
24632828
2464   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2829   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
24652830   ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
24662831   ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
24672832   ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
24682833
2469   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2834   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
24702835   ROM_LOAD32_BYTE( "mpr-12425.90",  0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
24712836   ROM_LOAD32_BYTE( "mpr-12426.94",  0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
24722837   ROM_LOAD32_BYTE( "mpr-12427.98",  0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
r249106r249107
24842849   ROM_LOAD32_BYTE( "epr-12415.101", 0x180002, 0x20000, CRC(6080e9ed) SHA1(eb1b871453f76e6a65d20fa9d4bddc1c9f940b4d) )
24852850   ROM_LOAD32_BYTE( "epr-12416.105", 0x180003, 0x20000, CRC(6f1f2769) SHA1(d00d26cd1052d4b46c432b6b69cb2d83179d52a6) )
24862851
2487   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
2852   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
24882853   // none??
24892854
2490   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2855   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
24912856   ROM_LOAD( "epr-12436.17",    0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
24922857
2493   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2858   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
24942859   ROM_LOAD( "mpr-12437.11",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
24952860   ROM_LOAD( "mpr-12438.12",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
24962861   ROM_LOAD( "mpr-12439.13",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
24972862
2498   ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
2863   ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
24992864   ROM_LOAD( "epr-12535.8",     0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) )
25002865
2501   ROM_REGION( 0x80000, "pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
2866   ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
25022867   ROM_LOAD( "mpr-12437.20",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
25032868   ROM_LOAD( "mpr-12438.21",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
25042869   ROM_LOAD( "mpr-12439.22",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) )
25052870
2506   ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
2871   ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
25072872   ROM_LOAD( "epr-12587.14",    0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
25082873
2509   ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
2874   ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
25102875   ROM_LOAD( "epr-12505.8",     0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) )
25112876ROM_END
25122877
r249106r249107
25152880//  CPU: FD1094 (317-0125a)
25162881//
25172882ROM_START( smgpu )
2518   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2883   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
25192884   ROM_LOAD16_BYTE( "epr-12561c.58", 0x00000, 0x20000, CRC(a5b0f3fe) SHA1(17103e56f822fdb52e72f597c01415ed375aa102) )
25202885   ROM_LOAD16_BYTE( "epr-12562c.63", 0x00001, 0x20000, CRC(799e55f4) SHA1(2e02cdc63bda47b087c81021018287cfa961c083) )
25212886
2522   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2887   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
25232888   ROM_LOAD( "317-0125a.key", 0x0000, 0x2000, CRC(3ecdb120) SHA1(c484198e4509d79214e78d4a47e9a7e339f7a2ed) )
25242889
2525   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2890   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
25262891   ROM_LOAD16_BYTE( "epr-12574a.20", 0x00000, 0x20000, CRC(f8b5c38b) SHA1(0184d5a1b71fb42d33dbaaad99d2c0fbc5750e7e) )
25272892   ROM_LOAD16_BYTE( "epr-12575a.29", 0x00001, 0x20000, CRC(248b1d17) SHA1(22f1e0d0d698abdf0cb1954f1f6382432a12c186) )
25282893
2529   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2894   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
25302895   ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
25312896   ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
25322897   ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
25332898
2534   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2899   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
25352900   ROM_LOAD32_BYTE( "mpr-12425.90",  0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
25362901   ROM_LOAD32_BYTE( "mpr-12426.94",  0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
25372902   ROM_LOAD32_BYTE( "mpr-12427.98",  0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
r249106r249107
25492914   ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set
25502915   ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) //
25512916
2552   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
2917   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
25532918   // none??
25542919
2555   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2920   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
25562921   ROM_LOAD( "epr-12436.17",    0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
25572922
2558   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2923   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
25592924   ROM_LOAD( "mpr-12437.11",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
25602925   ROM_LOAD( "mpr-12438.12",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
25612926   ROM_LOAD( "mpr-12439.13",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
25622927
2563   ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
2928   ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
25642929   ROM_LOAD( "epr-12535.8",     0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
25652930
2566   ROM_REGION( 0x80000, "pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
2931   ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
25672932   ROM_LOAD( "mpr-12437.20",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
25682933   ROM_LOAD( "mpr-12438.21",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
25692934   ROM_LOAD( "mpr-12439.22",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
25702935
2571   ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
2936   ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
25722937   ROM_LOAD( "epr-12587.14",    0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
25732938
2574   ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
2939   ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
25752940   ROM_LOAD( "epr-12505.8",     0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
25762941ROM_END
25772942
r249106r249107
25812946//
25822947// very first US version with demo sound on by default
25832948ROM_START( smgpu1 )
2584   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2949   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
25852950   ROM_LOAD16_BYTE( "epr-12561b.58", 0x00000, 0x20000, CRC(80a32655) SHA1(fe1ffa8af9f1ca175ba90b24a0853329b08d19af) )
25862951   ROM_LOAD16_BYTE( "epr-12562b.63", 0x00001, 0x20000, CRC(d525f2a8) SHA1(f3241e11485c7428cd9f081ec6768fda39ae3250) )
25872952
2588   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2953   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
25892954   ROM_LOAD( "317-0125a.key", 0x0000, 0x2000, CRC(3ecdb120) SHA1(c484198e4509d79214e78d4a47e9a7e339f7a2ed) )
25902955
2591   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2956   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
25922957   ROM_LOAD16_BYTE( "epr-12574a.20", 0x00000, 0x20000, CRC(f8b5c38b) SHA1(0184d5a1b71fb42d33dbaaad99d2c0fbc5750e7e) )
25932958   ROM_LOAD16_BYTE( "epr-12575a.29", 0x00001, 0x20000, CRC(248b1d17) SHA1(22f1e0d0d698abdf0cb1954f1f6382432a12c186) )
25942959
2595   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2960   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
25962961   ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
25972962   ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
25982963   ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
25992964
2600   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2965   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
26012966   ROM_LOAD32_BYTE( "mpr-12425.90",  0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
26022967   ROM_LOAD32_BYTE( "mpr-12426.94",  0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
26032968   ROM_LOAD32_BYTE( "mpr-12427.98",  0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
r249106r249107
26152980   ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set
26162981   ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) //
26172982
2618   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
2983   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
26192984   // none??
26202985
2621   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2986   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
26222987   ROM_LOAD( "epr-12436.17",    0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
26232988
2624   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2989   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
26252990   ROM_LOAD( "mpr-12437.11",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
26262991   ROM_LOAD( "mpr-12438.12",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
26272992   ROM_LOAD( "mpr-12439.13",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
26282993
2629   ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
2994   ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
26302995   ROM_LOAD( "epr-12535.8",     0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
26312996
2632   ROM_REGION( 0x80000, "pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
2997   ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
26332998   ROM_LOAD( "mpr-12437.20",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
26342999   ROM_LOAD( "mpr-12438.21",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
26353000   ROM_LOAD( "mpr-12439.22",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
26363001
2637   ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
3002   ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
26383003   ROM_LOAD( "epr-12587.14",    0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
26393004
2640   ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
3005   ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
26413006   ROM_LOAD( "epr-12505.8",     0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
26423007ROM_END
26433008
r249106r249107
26893054//         IC152: epr-12431.152 (27C512 EPROM)
26903055//
26913056ROM_START( smgpu2 )
2692   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
3057   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
26933058   ROM_LOAD16_BYTE( "epr-12561a.58", 0x00000, 0x20000, CRC(e505eb89) SHA1(bfb9a7a8b13ae454a92349e57215562477cd2cd2) )
26943059   ROM_LOAD16_BYTE( "epr-12562a.63", 0x00001, 0x20000, CRC(c3af4215) SHA1(c46829e08d5492515de5d3269b0e899705d0b108) )
26953060
2696   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
3061   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
26973062   ROM_LOAD( "317-0125a.key", 0x0000, 0x2000, CRC(3ecdb120) SHA1(c484198e4509d79214e78d4a47e9a7e339f7a2ed) )
26983063
2699   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
3064   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
27003065   ROM_LOAD16_BYTE( "epr-12574a.20", 0x00000, 0x20000, CRC(f8b5c38b) SHA1(0184d5a1b71fb42d33dbaaad99d2c0fbc5750e7e) )
27013066   ROM_LOAD16_BYTE( "epr-12575a.29", 0x00001, 0x20000, CRC(248b1d17) SHA1(22f1e0d0d698abdf0cb1954f1f6382432a12c186) )
27023067
2703   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3068   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
27043069   ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
27053070   ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
27063071   ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
27073072
2708   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
3073   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
27093074   ROM_LOAD32_BYTE( "mpr-12425.90",  0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
27103075   ROM_LOAD32_BYTE( "mpr-12426.94",  0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
27113076   ROM_LOAD32_BYTE( "mpr-12427.98",  0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
r249106r249107
27233088   ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set
27243089   ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) //
27253090
2726   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
3091   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
27273092   // none??
27283093
2729   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3094   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
27303095   ROM_LOAD( "epr-12436.17",    0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
27313096
2732   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
3097   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
27333098   ROM_LOAD( "mpr-12437.11",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
27343099   ROM_LOAD( "mpr-12438.12",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
27353100   ROM_LOAD( "mpr-12439.13",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
27363101
2737   ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
3102   ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
27383103   ROM_LOAD( "epr-12535.8",     0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
27393104
2740   ROM_REGION( 0x80000, "pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
3105   ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
27413106   ROM_LOAD( "mpr-12437.20",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
27423107   ROM_LOAD( "mpr-12438.21",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
27433108   ROM_LOAD( "mpr-12439.22",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
27443109
2745   ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
3110   ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
27463111   ROM_LOAD( "epr-12587.14",    0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) )
27473112
2748   ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
3113   ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
27493114   ROM_LOAD( "epr-12505.8",     0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
27503115ROM_END
27513116
r249106r249107
27543119//  CPU: FD1094 (317-0124a)
27553120//
27563121ROM_START( smgpj )
2757   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
3122   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
27583123   ROM_LOAD16_BYTE( "epr-12432b.58", 0x00000, 0x20000, CRC(c1a29db1) SHA1(0122d366899f98f7a60b0c9bddeece7995cebf83) )
27593124   ROM_LOAD16_BYTE( "epr-12433b.63", 0x00001, 0x20000, CRC(97199eb1) SHA1(3baccf8159821d4b4d5caedf5eb691f07372be93) )
27603125
2761   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
3126   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
27623127   ROM_LOAD( "317-0124a.key", 0x0000, 0x2000, CRC(022a8a16) SHA1(4fd80105cb85ccba77cf1e76a21d6e245d5d2e7d) )
27633128
2764   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
3129   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
27653130   ROM_LOAD16_BYTE( "epr-12441a.20", 0x00000, 0x20000, CRC(2c9599c1) SHA1(79206f38c2976bd9299ed37bf62ac26dd3fba801) )
27663131   ROM_LOAD16_BYTE( "epr-12442a.29", 0x00001, 0x20000, CRC(77a5ec16) SHA1(b8cf6a3f12689d89bbdd9fb39d1cb7d1a3c10602) )
27673132
2768   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3133   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
27693134   ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
27703135   ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
27713136   ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
27723137
2773   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
3138   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
27743139   ROM_LOAD32_BYTE( "mpr-12425.90",  0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
27753140   ROM_LOAD32_BYTE( "mpr-12426.94",  0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
27763141   ROM_LOAD32_BYTE( "mpr-12427.98",  0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
r249106r249107
27883153   ROM_LOAD32_BYTE( "epr-12415.101", 0x180002, 0x20000, CRC(6080e9ed) SHA1(eb1b871453f76e6a65d20fa9d4bddc1c9f940b4d) )
27893154   ROM_LOAD32_BYTE( "epr-12416.105", 0x180003, 0x20000, CRC(6f1f2769) SHA1(d00d26cd1052d4b46c432b6b69cb2d83179d52a6) )
27903155
2791   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
3156   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
27923157   // none??
27933158
2794   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3159   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
27953160   ROM_LOAD( "epr-12436.17",    0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
27963161
2797   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
3162   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
27983163   ROM_LOAD( "mpr-12437.11",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
27993164   ROM_LOAD( "mpr-12438.12",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
28003165   ROM_LOAD( "mpr-12439.13",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
28013166
2802   ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
3167   ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
28033168   ROM_LOAD( "epr-12535.8",     0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
28043169
2805   ROM_REGION( 0x80000, "pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
3170   ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
28063171   ROM_LOAD( "mpr-12437.20",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
28073172   ROM_LOAD( "mpr-12438.21",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
28083173   ROM_LOAD( "mpr-12439.22",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
28093174
2810   ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
3175   ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
28113176   ROM_LOAD( "epr-12587.14",    0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
28123177
2813   ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
3178   ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
28143179   ROM_LOAD( "epr-12505.8",     0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
28153180ROM_END
28163181
r249106r249107
28193184//  CPU: FD1094 (317-0124a)
28203185//
28213186ROM_START( smgpja )
2822   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
3187   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
28233188   ROM_LOAD16_BYTE( "epr-12432a.58", 0x00000, 0x20000, CRC(22517672) SHA1(db9ac40e83e9786bc9dad70f62c2080d3df694ee) )
28243189   ROM_LOAD16_BYTE( "epr-12433a.63", 0x00001, 0x20000, CRC(a46b5d13) SHA1(3a7de5cb6f3e6d726f0ea886a87125dedc6f849f) )
28253190
2826   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
3191   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
28273192   ROM_LOAD( "317-0124a.key", 0x0000, 0x2000, CRC(022a8a16) SHA1(4fd80105cb85ccba77cf1e76a21d6e245d5d2e7d) )
28283193
2829   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
3194   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
28303195   ROM_LOAD16_BYTE( "epr-12441a.20", 0x00000, 0x20000, CRC(2c9599c1) SHA1(79206f38c2976bd9299ed37bf62ac26dd3fba801) )
28313196   ROM_LOAD16_BYTE( "epr-12442a.29", 0x00001, 0x20000, CRC(77a5ec16) SHA1(b8cf6a3f12689d89bbdd9fb39d1cb7d1a3c10602) )
28323197
2833   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3198   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
28343199   ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
28353200   ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
28363201   ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
28373202
2838   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
3203   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
28393204   ROM_LOAD32_BYTE( "mpr-12425.90",  0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
28403205   ROM_LOAD32_BYTE( "mpr-12426.94",  0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
28413206   ROM_LOAD32_BYTE( "mpr-12427.98",  0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
r249106r249107
28533218   ROM_LOAD32_BYTE( "epr-12415.101", 0x180002, 0x20000, CRC(6080e9ed) SHA1(eb1b871453f76e6a65d20fa9d4bddc1c9f940b4d) )
28543219   ROM_LOAD32_BYTE( "epr-12416.105", 0x180003, 0x20000, CRC(6f1f2769) SHA1(d00d26cd1052d4b46c432b6b69cb2d83179d52a6) )
28553220
2856   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
3221   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
28573222   // none??
28583223
2859   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3224   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
28603225   ROM_LOAD( "epr-12436.17",    0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
28613226
2862   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
3227   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
28633228   ROM_LOAD( "mpr-12437.11",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
28643229   ROM_LOAD( "mpr-12438.12",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
28653230   ROM_LOAD( "mpr-12439.13",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
28663231
2867   ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
3232   ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
28683233   ROM_LOAD( "epr-12535.8",     0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
28693234
2870   ROM_REGION( 0x80000, "pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
3235   ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
28713236   ROM_LOAD( "mpr-12437.20",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
28723237   ROM_LOAD( "mpr-12438.21",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
28733238   ROM_LOAD( "mpr-12439.22",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
28743239
2875   ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
3240   ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
28763241   ROM_LOAD( "epr-12587.14",    0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
28773242
2878   ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
3243   ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
28793244   ROM_LOAD( "epr-12505.8",     0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
28803245ROM_END
28813246
r249106r249107
28873252//  CPU: FD1094 (317-0169b)
28883253//
28893254ROM_START( abcop )
2890   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
3255   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
28913256   ROM_LOAD16_BYTE( "epr-13568b.ic58", 0x00000, 0x20000, CRC(f88db35b) SHA1(7d85c1194a2aa08427333d2ffc2a8d4f7e1beff0) )
28923257   ROM_LOAD16_BYTE( "epr-13556b.ic63", 0x00001, 0x20000, CRC(337bf32e) SHA1(dafb9d9b3baf79ca76355278e8a14294f186790a) )
28933258   ROM_LOAD16_BYTE( "epr-13559.ic57",  0x40000, 0x20000, CRC(4588bf19) SHA1(6a8b3d4450ac0bc41b46e6a4e1b44d82112fcd64) )
28943259   ROM_LOAD16_BYTE( "epr-13558.ic62",  0x40001, 0x20000, CRC(11259ed4) SHA1(e7de174a0bdb1d1111e5e419f1d501ab5be1d32d) )
28953260
2896   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
3261   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
28973262   ROM_LOAD( "317-0169b.key", 0x0000, 0x2000, CRC(058da36e) SHA1(ab3f68a90725063c68fc5d0f8dbece1f8940dc7d) )
28983263
2899   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
3264   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
29003265   ROM_LOAD16_BYTE( "epr-13566.ic20", 0x00000, 0x20000, CRC(22e52f32) SHA1(c67a4ccb88becc58dddcbfea0a1ac2017f7b2929) )
29013266   ROM_LOAD16_BYTE( "epr-13565.ic29", 0x00001, 0x20000, CRC(a21784bd) SHA1(b40ba0ef65bbfe514625253f6aeec14bf4bcf08c) )
29023267
2903   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3268   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
29043269   ROM_LOAD( "opr-13553.ic154", 0x00000, 0x10000, CRC(8c418837) SHA1(e325db39fae768865e20d2cd1ee2b91a9b0165f5) )
29053270   ROM_LOAD( "opr-13554.ic153", 0x10000, 0x10000, CRC(4e3df9f0) SHA1(8b481c2cd25c58612ac8ac3ffb7eeae9ca247d2e) )
29063271   ROM_LOAD( "opr-13555.ic152", 0x20000, 0x10000, CRC(6c4a1d42) SHA1(6c37b045b21173f1e2f7bd19d01c00979b8107fb) )
29073272
2908   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
3273   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
29093274   ROM_LOAD32_BYTE( "opr-13552.ic90",  0x000000, 0x20000, CRC(cc2cf706) SHA1(ad39c22e652ebcd90ffb5e17ae35985645f93c71) )
29103275   ROM_LOAD32_BYTE( "opr-13551.ic94",  0x000001, 0x20000, CRC(d6f276c1) SHA1(9ec68157ea460e09ef4b69aa8ea17687dc47ea59) )
29113276   ROM_LOAD32_BYTE( "opr-13550.ic98",  0x000002, 0x20000, CRC(f16518dd) SHA1(a5f1785cd28f03069cb238ac92c6afb5a26cbd37) )
r249106r249107
29233288   ROM_LOAD32_BYTE( "opr-13538.ic101", 0x180002, 0x20000, CRC(bf9a4586) SHA1(6013dee83375d72d262c8c04c2e668afea2e216c) )
29243289   ROM_LOAD32_BYTE( "opr-13537.ic105", 0x180003, 0x20000, CRC(fa14ed3e) SHA1(d684496ade2517696a56c1423dd4686d283c133f) )
29253290
2926   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // ground data
3291   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // ground data
29273292   ROM_LOAD( "opr-13564.ic40",  0x00000, 0x10000, CRC(e70ba138) SHA1(85eb6618f408642227056d278f10dec8dcc5a80d) )
29283293
2929   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3294   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
29303295   ROM_LOAD( "epr-13560.ic17",    0x00000, 0x10000, CRC(83050925) SHA1(118710e5789c7999bb7326df4d7bd207cbffdfd4) )
29313296
2932   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
3297   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
29333298   ROM_LOAD( "opr-13563.ic11",    0x00000, 0x20000, CRC(4083e74f) SHA1(e48c7ce0aa3406af0bbf79c169a8157693c97041) )
29343299   ROM_LOAD( "opr-13562.ic12",    0x20000, 0x20000, CRC(3cc3968f) SHA1(d25647f6a3fa939ba30e03e7334362ef0749b23a) )
29353300   ROM_LOAD( "opr-13561.ic13",    0x40000, 0x20000, CRC(80a7c02a) SHA1(7e8c1b9ba270d8657dbe90ed8be2e4b6463e5928) )
r249106r249107
29403305//  CPU: FD1094 (317-0169b)
29413306//
29423307ROM_START( abcopj )
2943   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
3308   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
29443309   ROM_LOAD16_BYTE( "epr-13557b.ic58", 0x00000, 0x20000, CRC(554e106a) SHA1(3166957ded67c82d4710bdd20eb88006e14c6a3e) )
29453310   ROM_LOAD16_BYTE( "epr-13556b.ic63", 0x00001, 0x20000, CRC(337bf32e) SHA1(dafb9d9b3baf79ca76355278e8a14294f186790a) )
29463311   ROM_LOAD16_BYTE( "epr-13559.ic57",  0x40000, 0x20000, CRC(4588bf19) SHA1(6a8b3d4450ac0bc41b46e6a4e1b44d82112fcd64) )
29473312   ROM_LOAD16_BYTE( "epr-13558.ic62",  0x40001, 0x20000, CRC(11259ed4) SHA1(e7de174a0bdb1d1111e5e419f1d501ab5be1d32d) )
29483313
2949   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
3314   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
29503315   ROM_LOAD( "317-0169b.key", 0x0000, 0x2000, CRC(058da36e) SHA1(ab3f68a90725063c68fc5d0f8dbece1f8940dc7d) )
29513316
2952   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
3317   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
29533318   ROM_LOAD16_BYTE( "epr-13566.ic20", 0x00000, 0x20000, CRC(22e52f32) SHA1(c67a4ccb88becc58dddcbfea0a1ac2017f7b2929) )
29543319   ROM_LOAD16_BYTE( "epr-13565.ic29", 0x00001, 0x20000, CRC(a21784bd) SHA1(b40ba0ef65bbfe514625253f6aeec14bf4bcf08c) )
29553320
2956   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3321   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
29573322   ROM_LOAD( "opr-13553.ic154", 0x00000, 0x10000, CRC(8c418837) SHA1(e325db39fae768865e20d2cd1ee2b91a9b0165f5) )
29583323   ROM_LOAD( "opr-13554.ic153", 0x10000, 0x10000, CRC(4e3df9f0) SHA1(8b481c2cd25c58612ac8ac3ffb7eeae9ca247d2e) )
29593324   ROM_LOAD( "opr-13555.ic152", 0x20000, 0x10000, CRC(6c4a1d42) SHA1(6c37b045b21173f1e2f7bd19d01c00979b8107fb) )
29603325
2961   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
3326   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
29623327   ROM_LOAD32_BYTE( "opr-13552.ic90",  0x000000, 0x20000, CRC(cc2cf706) SHA1(ad39c22e652ebcd90ffb5e17ae35985645f93c71) )
29633328   ROM_LOAD32_BYTE( "opr-13551.ic94",  0x000001, 0x20000, CRC(d6f276c1) SHA1(9ec68157ea460e09ef4b69aa8ea17687dc47ea59) )
29643329   ROM_LOAD32_BYTE( "opr-13550.ic98",  0x000002, 0x20000, CRC(f16518dd) SHA1(a5f1785cd28f03069cb238ac92c6afb5a26cbd37) )
r249106r249107
29763341   ROM_LOAD32_BYTE( "opr-13538.ic101", 0x180002, 0x20000, CRC(bf9a4586) SHA1(6013dee83375d72d262c8c04c2e668afea2e216c) )
29773342   ROM_LOAD32_BYTE( "opr-13537.ic105", 0x180003, 0x20000, CRC(fa14ed3e) SHA1(d684496ade2517696a56c1423dd4686d283c133f) )
29783343
2979   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // ground data
3344   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // ground data
29803345   ROM_LOAD( "opr-13564.ic40",  0x00000, 0x10000, CRC(e70ba138) SHA1(85eb6618f408642227056d278f10dec8dcc5a80d) )
29813346
2982   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3347   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
29833348   ROM_LOAD( "epr-13560.ic17",    0x00000, 0x10000, CRC(83050925) SHA1(118710e5789c7999bb7326df4d7bd207cbffdfd4) )
29843349
2985   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
3350   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
29863351   ROM_LOAD( "opr-13563.ic11",    0x00000, 0x20000, CRC(4083e74f) SHA1(e48c7ce0aa3406af0bbf79c169a8157693c97041) )
29873352   ROM_LOAD( "opr-13562.ic12",    0x20000, 0x20000, CRC(3cc3968f) SHA1(d25647f6a3fa939ba30e03e7334362ef0749b23a) )
29883353   ROM_LOAD( "opr-13561.ic13",    0x40000, 0x20000, CRC(80a7c02a) SHA1(7e8c1b9ba270d8657dbe90ed8be2e4b6463e5928) )
r249106r249107
29983363//  IC BD Number: 834-7626-03 (roms are "MPR") / 834-7626-05 (roms are "EPR")
29993364//
30003365ROM_START( gprider )
3001   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
3366   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
30023367   ROM_LOAD16_BYTE( "epr-13409.ic58", 0x00000, 0x20000, CRC(9abb81b6) SHA1(f6308f3ec99ee66677e86f6a915e4dff8557d25f) )
30033368   ROM_LOAD16_BYTE( "epr-13408.ic63", 0x00001, 0x20000, CRC(8e410e97) SHA1(2021d738064e57d175b59ba053d9ee35ed4516c8) )
30043369
3005   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
3370   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
30063371   ROM_LOAD( "317-0163.key", 0x0000, 0x2000, CRC(c1d4d207) SHA1(c35b0a49fb6a1e0e9a1c087f0ccd190ad5c2bb2c) )
30073372
3008   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
3373   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
30093374   ROM_LOAD16_BYTE( "epr-13395.ic20", 0x00000, 0x20000,CRC(d6ccfac7) SHA1(9287ab08600163a0d9bd33618c629f99391316bd) )
30103375   ROM_LOAD16_BYTE( "epr-13394.ic29", 0x00001, 0x20000,CRC(914a55ec) SHA1(84fe1df12478990418b46b6800425e5599e9eff9) )
30113376   ROM_LOAD16_BYTE( "epr-13393.ic21", 0x40000, 0x20000,CRC(08d023cc) SHA1(d008d57e494f484a1a84896065d53fb9b1d8d60e) )
30123377   ROM_LOAD16_BYTE( "epr-13392.ic30", 0x40001, 0x20000,CRC(f927cd42) SHA1(67eab328c1fb878fe3d086d0639f5051b135a037) )
30133378
3014   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3379   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
30153380   ROM_LOAD( "epr-13383.ic154", 0x00000, 0x10000, CRC(24f897a7) SHA1(68ba17067d90f07bb5a549017be4773b33ae81d0) )
30163381   ROM_LOAD( "epr-13384.ic153", 0x10000, 0x10000, CRC(fe8238bd) SHA1(601910bd86536e6b08f5308b298c8f01fa60f233) )
30173382   ROM_LOAD( "epr-13385.ic152", 0x20000, 0x10000, CRC(6df1b995) SHA1(5aab19b87a9ef162c30ccf5974cb795e37dba91f) )
30183383
3019   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
3384   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
30203385   ROM_LOAD32_BYTE( "epr-13382.ic90",  0x000000, 0x20000, CRC(01dac209) SHA1(4c6b03308193c472f6cdbcede306f8ce6db0cc4b) )
30213386   ROM_LOAD32_BYTE( "epr-13381.ic94",  0x000001, 0x20000, CRC(3a50d931) SHA1(9d9cb1793f3b8f562ce0ea49f2afeef099f20859) )
30223387   ROM_LOAD32_BYTE( "epr-13380.ic98",  0x000002, 0x20000, CRC(ad1024c8) SHA1(86e941424b2e2e00940886e5daed640a78ed7403) )
r249106r249107
30343399   ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) )
30353400   ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) )
30363401
3037   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
3402   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
30383403   // none??
30393404
3040   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3405   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
30413406   ROM_LOAD( "epr-13388.ic17",    0x00000, 0x10000, CRC(706581e4) SHA1(51c9dbf2bf0d6b8826de24cd33596f5c95136870) )
30423407
3043   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
3408   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
30443409   ROM_LOAD( "epr-13391.ic11",    0x00000, 0x20000, CRC(8c30c867) SHA1(0d735291b1311890938f8a1143fae6af9feb2a69) )
30453410   ROM_LOAD( "epr-13390.ic12",    0x20000, 0x20000, CRC(8c93cd05) SHA1(bb08094abac6c104eddf14f634e9791f03122946) )
30463411   ROM_LOAD( "epr-13389.ic13",    0x40000, 0x20000, CRC(4e4c758e) SHA1(181750dfcdd6d5b28b063c980c251991163d9474) )
30473412ROM_END
30483413
3414// Twin setup
3415ROM_START( gpridert )
3416   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
3417   ROM_LOAD16_BYTE( "epr-13409.ic58", 0x00000, 0x20000, CRC(9abb81b6) SHA1(f6308f3ec99ee66677e86f6a915e4dff8557d25f) )
3418   ROM_LOAD16_BYTE( "epr-13408.ic63", 0x00001, 0x20000, CRC(8e410e97) SHA1(2021d738064e57d175b59ba053d9ee35ed4516c8) )
3419
3420   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
3421   ROM_LOAD( "317-0163.key", 0x0000, 0x2000, CRC(c1d4d207) SHA1(c35b0a49fb6a1e0e9a1c087f0ccd190ad5c2bb2c) )
3422
3423   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
3424   ROM_LOAD16_BYTE( "epr-13395.ic20", 0x00000, 0x20000,CRC(d6ccfac7) SHA1(9287ab08600163a0d9bd33618c629f99391316bd) )
3425   ROM_LOAD16_BYTE( "epr-13394.ic29", 0x00001, 0x20000,CRC(914a55ec) SHA1(84fe1df12478990418b46b6800425e5599e9eff9) )
3426   ROM_LOAD16_BYTE( "epr-13393.ic21", 0x40000, 0x20000,CRC(08d023cc) SHA1(d008d57e494f484a1a84896065d53fb9b1d8d60e) )
3427   ROM_LOAD16_BYTE( "epr-13392.ic30", 0x40001, 0x20000,CRC(f927cd42) SHA1(67eab328c1fb878fe3d086d0639f5051b135a037) )
3428
3429   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
3430   ROM_LOAD( "epr-13383.ic154", 0x00000, 0x10000, CRC(24f897a7) SHA1(68ba17067d90f07bb5a549017be4773b33ae81d0) )
3431   ROM_LOAD( "epr-13384.ic153", 0x10000, 0x10000, CRC(fe8238bd) SHA1(601910bd86536e6b08f5308b298c8f01fa60f233) )
3432   ROM_LOAD( "epr-13385.ic152", 0x20000, 0x10000, CRC(6df1b995) SHA1(5aab19b87a9ef162c30ccf5974cb795e37dba91f) )
3433
3434   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
3435   ROM_LOAD32_BYTE( "epr-13382.ic90",  0x000000, 0x20000, CRC(01dac209) SHA1(4c6b03308193c472f6cdbcede306f8ce6db0cc4b) )
3436   ROM_LOAD32_BYTE( "epr-13381.ic94",  0x000001, 0x20000, CRC(3a50d931) SHA1(9d9cb1793f3b8f562ce0ea49f2afeef099f20859) )
3437   ROM_LOAD32_BYTE( "epr-13380.ic98",  0x000002, 0x20000, CRC(ad1024c8) SHA1(86e941424b2e2e00940886e5daed640a78ed7403) )
3438   ROM_LOAD32_BYTE( "epr-13379.ic102", 0x000003, 0x20000, CRC(1ac17625) SHA1(7aefd382041dd3f97936ecb8738a3f2c9780c58f) )
3439   ROM_LOAD32_BYTE( "epr-13378.ic91",  0x080000, 0x20000, CRC(50c9b867) SHA1(dd9702b369ea8abd50da22ce721b7040428e9d4b) )
3440   ROM_LOAD32_BYTE( "epr-13377.ic95",  0x080001, 0x20000, CRC(9b12f5c0) SHA1(2060420611b3354974c49bc80f556f945512570b) )
3441   ROM_LOAD32_BYTE( "epr-13376.ic99",  0x080002, 0x20000, CRC(449ac518) SHA1(0438a72e53a7889d39ea7e2530e49a2594d97e90) )
3442   ROM_LOAD32_BYTE( "epr-13375.ic103", 0x080003, 0x20000, CRC(5489a9ff) SHA1(c458cb55d957edae340535f54189438296f3ec2f) )
3443   ROM_LOAD32_BYTE( "epr-13374.ic92",  0x100000, 0x20000, CRC(6a319e4f) SHA1(d9f92b15f4baa14745048073205add35b7d42d27) )
3444   ROM_LOAD32_BYTE( "epr-13373.ic96",  0x100001, 0x20000, CRC(eca5588b) SHA1(11def0c293868193d457958fe7459fd8c31dbd2b) )
3445   ROM_LOAD32_BYTE( "epr-13372.ic100", 0x100002, 0x20000, CRC(0b45a433) SHA1(82fa2b208eaf70b70524681fbc3ec70085e70d83) )
3446   ROM_LOAD32_BYTE( "epr-13371.ic104", 0x100003, 0x20000, CRC(b68f4cff) SHA1(166f2a685cbc230c098fdc1646b6e632dd2b09dd) )
3447   ROM_LOAD32_BYTE( "epr-13370.ic93",  0x180000, 0x20000, CRC(78276620) SHA1(2c4505c57a1e765f9cfd48fb1637d67d199a2f1d) )
3448   ROM_LOAD32_BYTE( "epr-13369.ic97",  0x180001, 0x20000, CRC(8625bf0f) SHA1(0ae70bc0d54e25eecf4a11cf0600225dca35914d) )
3449   ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) )
3450   ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) )
3451
3452   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
3453   // none??
3454
3455   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
3456   ROM_LOAD( "epr-13388.ic17",    0x00000, 0x10000, CRC(706581e4) SHA1(51c9dbf2bf0d6b8826de24cd33596f5c95136870) )
3457
3458   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
3459   ROM_LOAD( "epr-13391.ic11",    0x00000, 0x20000, CRC(8c30c867) SHA1(0d735291b1311890938f8a1143fae6af9feb2a69) )
3460   ROM_LOAD( "epr-13390.ic12",    0x20000, 0x20000, CRC(8c93cd05) SHA1(bb08094abac6c104eddf14f634e9791f03122946) )
3461   ROM_LOAD( "epr-13389.ic13",    0x40000, 0x20000, CRC(4e4c758e) SHA1(181750dfcdd6d5b28b063c980c251991163d9474) )
3462
3463   ROM_REGION( 0x80000, "subpcb:maincpu", 0 ) // 68000 code
3464   ROM_LOAD16_BYTE( "epr-13409.ic58", 0x00000, 0x20000, CRC(9abb81b6) SHA1(f6308f3ec99ee66677e86f6a915e4dff8557d25f) )
3465   ROM_LOAD16_BYTE( "epr-13408.ic63", 0x00001, 0x20000, CRC(8e410e97) SHA1(2021d738064e57d175b59ba053d9ee35ed4516c8) )
3466
3467   ROM_REGION( 0x2000, "subpcb:maincpu:key", 0 )  // decryption key
3468   ROM_LOAD( "317-0163.key", 0x0000, 0x2000, CRC(c1d4d207) SHA1(c35b0a49fb6a1e0e9a1c087f0ccd190ad5c2bb2c) )
3469
3470   ROM_REGION( 0x80000, "subpcb:subcpu", 0 ) // 2nd 68000 code
3471   ROM_LOAD16_BYTE( "epr-13395.ic20", 0x00000, 0x20000,CRC(d6ccfac7) SHA1(9287ab08600163a0d9bd33618c629f99391316bd) )
3472   ROM_LOAD16_BYTE( "epr-13394.ic29", 0x00001, 0x20000,CRC(914a55ec) SHA1(84fe1df12478990418b46b6800425e5599e9eff9) )
3473   ROM_LOAD16_BYTE( "epr-13393.ic21", 0x40000, 0x20000,CRC(08d023cc) SHA1(d008d57e494f484a1a84896065d53fb9b1d8d60e) )
3474   ROM_LOAD16_BYTE( "epr-13392.ic30", 0x40001, 0x20000,CRC(f927cd42) SHA1(67eab328c1fb878fe3d086d0639f5051b135a037) )
3475
3476   ROM_REGION( 0x30000, "subpcb:gfx1", 0 ) // tiles
3477   ROM_LOAD( "epr-13383.ic154", 0x00000, 0x10000, CRC(24f897a7) SHA1(68ba17067d90f07bb5a549017be4773b33ae81d0) )
3478   ROM_LOAD( "epr-13384.ic153", 0x10000, 0x10000, CRC(fe8238bd) SHA1(601910bd86536e6b08f5308b298c8f01fa60f233) )
3479   ROM_LOAD( "epr-13385.ic152", 0x20000, 0x10000, CRC(6df1b995) SHA1(5aab19b87a9ef162c30ccf5974cb795e37dba91f) )
3480
3481   ROM_REGION32_LE( 0x200000, "subpcb:sprites", 0 ) // sprites
3482   ROM_LOAD32_BYTE( "epr-13382.ic90",  0x000000, 0x20000, CRC(01dac209) SHA1(4c6b03308193c472f6cdbcede306f8ce6db0cc4b) )
3483   ROM_LOAD32_BYTE( "epr-13381.ic94",  0x000001, 0x20000, CRC(3a50d931) SHA1(9d9cb1793f3b8f562ce0ea49f2afeef099f20859) )
3484   ROM_LOAD32_BYTE( "epr-13380.ic98",  0x000002, 0x20000, CRC(ad1024c8) SHA1(86e941424b2e2e00940886e5daed640a78ed7403) )
3485   ROM_LOAD32_BYTE( "epr-13379.ic102", 0x000003, 0x20000, CRC(1ac17625) SHA1(7aefd382041dd3f97936ecb8738a3f2c9780c58f) )
3486   ROM_LOAD32_BYTE( "epr-13378.ic91",  0x080000, 0x20000, CRC(50c9b867) SHA1(dd9702b369ea8abd50da22ce721b7040428e9d4b) )
3487   ROM_LOAD32_BYTE( "epr-13377.ic95",  0x080001, 0x20000, CRC(9b12f5c0) SHA1(2060420611b3354974c49bc80f556f945512570b) )
3488   ROM_LOAD32_BYTE( "epr-13376.ic99",  0x080002, 0x20000, CRC(449ac518) SHA1(0438a72e53a7889d39ea7e2530e49a2594d97e90) )
3489   ROM_LOAD32_BYTE( "epr-13375.ic103", 0x080003, 0x20000, CRC(5489a9ff) SHA1(c458cb55d957edae340535f54189438296f3ec2f) )
3490   ROM_LOAD32_BYTE( "epr-13374.ic92",  0x100000, 0x20000, CRC(6a319e4f) SHA1(d9f92b15f4baa14745048073205add35b7d42d27) )
3491   ROM_LOAD32_BYTE( "epr-13373.ic96",  0x100001, 0x20000, CRC(eca5588b) SHA1(11def0c293868193d457958fe7459fd8c31dbd2b) )
3492   ROM_LOAD32_BYTE( "epr-13372.ic100", 0x100002, 0x20000, CRC(0b45a433) SHA1(82fa2b208eaf70b70524681fbc3ec70085e70d83) )
3493   ROM_LOAD32_BYTE( "epr-13371.ic104", 0x100003, 0x20000, CRC(b68f4cff) SHA1(166f2a685cbc230c098fdc1646b6e632dd2b09dd) )
3494   ROM_LOAD32_BYTE( "epr-13370.ic93",  0x180000, 0x20000, CRC(78276620) SHA1(2c4505c57a1e765f9cfd48fb1637d67d199a2f1d) )
3495   ROM_LOAD32_BYTE( "epr-13369.ic97",  0x180001, 0x20000, CRC(8625bf0f) SHA1(0ae70bc0d54e25eecf4a11cf0600225dca35914d) )
3496   ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) )
3497   ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) )
3498
3499   ROM_REGION( 0x10000, "subpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
3500   // none??
3501
3502   ROM_REGION( 0x10000, "subpcb:soundcpu", 0 ) // sound CPU
3503   ROM_LOAD( "epr-13388.ic17",    0x00000, 0x10000, CRC(706581e4) SHA1(51c9dbf2bf0d6b8826de24cd33596f5c95136870) )
3504
3505   ROM_REGION( 0x80000, "subpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
3506   ROM_LOAD( "epr-13391.ic11",    0x00000, 0x20000, CRC(8c30c867) SHA1(0d735291b1311890938f8a1143fae6af9feb2a69) )
3507   ROM_LOAD( "epr-13390.ic12",    0x20000, 0x20000, CRC(8c93cd05) SHA1(bb08094abac6c104eddf14f634e9791f03122946) )
3508   ROM_LOAD( "epr-13389.ic13",    0x40000, 0x20000, CRC(4e4c758e) SHA1(181750dfcdd6d5b28b063c980c251991163d9474) )
3509ROM_END
3510
3511
30493512//*************************************************************************************************************************
30503513//  GP Rider (US), Sega X-board
30513514//  CPU: FD1094 (317-0162)
r249106r249107
30533516//  IC BD Number: 834-7626-01 (roms are "MPR") / 834-7626-04 (roms are "EPR")
30543517//
30553518ROM_START( gprideru )
3056   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
3519   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
30573520   ROM_LOAD16_BYTE( "epr-13407.ic58", 0x00000, 0x20000, CRC(03553ebd) SHA1(041a71a2dce2ad56360f500cb11e29a629020160) )
30583521   ROM_LOAD16_BYTE( "epr-13406.ic63", 0x00001, 0x20000, CRC(122c711f) SHA1(2bcc51347e771a7e7f770e68b24d82497d24aa2e) )
30593522
3060   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
3523   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
30613524   ROM_LOAD( "317-0162.key", 0x0000, 0x2000, CRC(8067de53) SHA1(e8cd1dfbad94856c6bd51569557667e72f0a5dd4) )
30623525
3063   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
3526   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
30643527   ROM_LOAD16_BYTE( "epr-13395.ic20", 0x00000, 0x20000,CRC(d6ccfac7) SHA1(9287ab08600163a0d9bd33618c629f99391316bd) )
30653528   ROM_LOAD16_BYTE( "epr-13394.ic29", 0x00001, 0x20000,CRC(914a55ec) SHA1(84fe1df12478990418b46b6800425e5599e9eff9) )
30663529   ROM_LOAD16_BYTE( "epr-13393.ic21", 0x40000, 0x20000,CRC(08d023cc) SHA1(d008d57e494f484a1a84896065d53fb9b1d8d60e) )
30673530   ROM_LOAD16_BYTE( "epr-13392.ic30", 0x40001, 0x20000,CRC(f927cd42) SHA1(67eab328c1fb878fe3d086d0639f5051b135a037) )
30683531
3069   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3532   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
30703533   ROM_LOAD( "epr-13383.ic154", 0x00000, 0x10000, CRC(24f897a7) SHA1(68ba17067d90f07bb5a549017be4773b33ae81d0) )
30713534   ROM_LOAD( "epr-13384.ic153", 0x10000, 0x10000, CRC(fe8238bd) SHA1(601910bd86536e6b08f5308b298c8f01fa60f233) )
30723535   ROM_LOAD( "epr-13385.ic152", 0x20000, 0x10000, CRC(6df1b995) SHA1(5aab19b87a9ef162c30ccf5974cb795e37dba91f) )
30733536
3074   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
3537   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
30753538   ROM_LOAD32_BYTE( "epr-13382.ic90",  0x000000, 0x20000, CRC(01dac209) SHA1(4c6b03308193c472f6cdbcede306f8ce6db0cc4b) )
30763539   ROM_LOAD32_BYTE( "epr-13381.ic94",  0x000001, 0x20000, CRC(3a50d931) SHA1(9d9cb1793f3b8f562ce0ea49f2afeef099f20859) )
30773540   ROM_LOAD32_BYTE( "epr-13380.ic98",  0x000002, 0x20000, CRC(ad1024c8) SHA1(86e941424b2e2e00940886e5daed640a78ed7403) )
r249106r249107
30893552   ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) )
30903553   ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) )
30913554
3092   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
3555   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
30933556   // none??
30943557
3095   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3558   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
30963559   ROM_LOAD( "epr-13388.ic17",    0x00000, 0x10000, CRC(706581e4) SHA1(51c9dbf2bf0d6b8826de24cd33596f5c95136870) )
30973560
3098   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
3561   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
30993562   ROM_LOAD( "epr-13391.ic11",    0x00000, 0x20000, CRC(8c30c867) SHA1(0d735291b1311890938f8a1143fae6af9feb2a69) )
31003563   ROM_LOAD( "epr-13390.ic12",    0x20000, 0x20000, CRC(8c93cd05) SHA1(bb08094abac6c104eddf14f634e9791f03122946) )
31013564   ROM_LOAD( "epr-13389.ic13",    0x40000, 0x20000, CRC(4e4c758e) SHA1(181750dfcdd6d5b28b063c980c251991163d9474) )
r249106r249107
31083571//  IC BD Number: 834-7626-01 (roms are "MPR") / 834-7626-04 (roms are "EPR")
31093572//
31103573ROM_START( gpriderj )
3111   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
3574   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
31123575   ROM_LOAD16_BYTE( "epr-13387.ic58", 0x00000, 0x20000, CRC(a1e8b2c5) SHA1(22b70a9074263af808bb9dffee29cbcff7e304e3) )
31133576   ROM_LOAD16_BYTE( "epr-13386.ic63", 0x00001, 0x20000, CRC(d8be9e66) SHA1(d81c03b08fd6b971554b94e0adac131a1dcf3248) )
31143577
3115   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
3578   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
31163579   ROM_LOAD( "317-0161.key", 0x0000, 0x2000, CRC(e38ddc16) SHA1(d1f7f261320cbc605b4f7e5a9c28f49af5471d87) )
31173580
3118   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
3581   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
31193582   ROM_LOAD16_BYTE( "epr-13395.ic20", 0x00000, 0x20000,CRC(d6ccfac7) SHA1(9287ab08600163a0d9bd33618c629f99391316bd) )
31203583   ROM_LOAD16_BYTE( "epr-13394.ic29", 0x00001, 0x20000,CRC(914a55ec) SHA1(84fe1df12478990418b46b6800425e5599e9eff9) )
31213584   ROM_LOAD16_BYTE( "epr-13393.ic21", 0x40000, 0x20000,CRC(08d023cc) SHA1(d008d57e494f484a1a84896065d53fb9b1d8d60e) )
31223585   ROM_LOAD16_BYTE( "epr-13392.ic30", 0x40001, 0x20000,CRC(f927cd42) SHA1(67eab328c1fb878fe3d086d0639f5051b135a037) )
31233586
3124   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3587   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
31253588   ROM_LOAD( "epr-13383.ic154", 0x00000, 0x10000, CRC(24f897a7) SHA1(68ba17067d90f07bb5a549017be4773b33ae81d0) )
31263589   ROM_LOAD( "epr-13384.ic153", 0x10000, 0x10000, CRC(fe8238bd) SHA1(601910bd86536e6b08f5308b298c8f01fa60f233) )
31273590   ROM_LOAD( "epr-13385.ic152", 0x20000, 0x10000, CRC(6df1b995) SHA1(5aab19b87a9ef162c30ccf5974cb795e37dba91f) )
31283591
3129   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
3592   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
31303593   ROM_LOAD32_BYTE( "epr-13382.ic90",  0x000000, 0x20000, CRC(01dac209) SHA1(4c6b03308193c472f6cdbcede306f8ce6db0cc4b) )
31313594   ROM_LOAD32_BYTE( "epr-13381.ic94",  0x000001, 0x20000, CRC(3a50d931) SHA1(9d9cb1793f3b8f562ce0ea49f2afeef099f20859) )
31323595   ROM_LOAD32_BYTE( "epr-13380.ic98",  0x000002, 0x20000, CRC(ad1024c8) SHA1(86e941424b2e2e00940886e5daed640a78ed7403) )
r249106r249107
31443607   ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) )
31453608   ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) )
31463609
3147   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
3610   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
31483611   // none??
31493612
3150   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3613   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
31513614   ROM_LOAD( "epr-13388.ic17",    0x00000, 0x10000, CRC(706581e4) SHA1(51c9dbf2bf0d6b8826de24cd33596f5c95136870) )
31523615
3153   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
3616   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
31543617   ROM_LOAD( "epr-13391.ic11",    0x00000, 0x20000, CRC(8c30c867) SHA1(0d735291b1311890938f8a1143fae6af9feb2a69) )
31553618   ROM_LOAD( "epr-13390.ic12",    0x20000, 0x20000, CRC(8c93cd05) SHA1(bb08094abac6c104eddf14f634e9791f03122946) )
31563619   ROM_LOAD( "epr-13389.ic13",    0x40000, 0x20000, CRC(4e4c758e) SHA1(181750dfcdd6d5b28b063c980c251991163d9474) )
r249106r249107
31643627//  and we only have the ROMs for one of those parts..
31653628//
31663629ROM_START( rascot )
3167   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
3630   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
31683631   ROM_LOAD16_BYTE( "epr-13965a.ic58", 0x00000, 0x20000, CRC(7eacdfb3) SHA1(fad23352d9c5e266ad9f7fe3ccbd29b5b912b90b) )
31693632   ROM_LOAD16_BYTE( "epr-13694a.ic63", 0x00001, 0x20000, CRC(15b86498) SHA1(ccb57063ca53347b5f771b0d7ceaeb9cd50d246a) ) // 13964a?
31703633
3171   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
3634   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
31723635   ROM_LOAD16_BYTE( "epr-13967.ic20", 0x00000, 0x20000, CRC(3b92e2b8) SHA1(5d456d7d6fa540709facda1fd8813707ebfd99d8) )
31733636   ROM_LOAD16_BYTE( "epr-13966.ic29", 0x00001, 0x20000, CRC(eaa644e1) SHA1(b9cc171523995f5120ea7b9748af2f8de697b933) )
31743637
3175   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3638   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
31763639   ROM_LOAD( "epr-13961", 0x00000, 0x10000, CRC(68038629) SHA1(fbe8605840331096c5156d695772e5f36b2e131a) )
31773640   ROM_LOAD( "epr-13962", 0x10000, 0x10000, CRC(7d7605bc) SHA1(20d3a7116807db7c831e285233d8c67317980e4a) )
31783641   ROM_LOAD( "epr-13963", 0x20000, 0x10000, CRC(f3376b65) SHA1(36b9292518a112409d03b97ea048b7ab22734841) )
31793642
3180   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
3643   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
31813644   ROM_LOAD32_BYTE( "epr-13960",  0x000000, 0x20000, CRC(b974128d) SHA1(14450615b3a10b1de6d098a282f80f80c98c34b8) )
31823645   ROM_LOAD32_BYTE( "epr-13959",  0x000001, 0x20000, CRC(db245b22) SHA1(301b7caea7a3b42ab1ab21894ad61b8b14ef1e7c) )
31833646   ROM_LOAD32_BYTE( "epr-13958",  0x000002, 0x20000, CRC(7803a027) SHA1(ff659da334e4440a6de9be43dde9dfa21dae5f14) )
31843647   ROM_LOAD32_BYTE( "epr-13957",  0x000003, 0x20000, CRC(6d50fb54) SHA1(d21462c30a5555980b964930ddef4dc1963e1d8e) )
31853648
3186   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
3649   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
31873650   // none??
31883651
3189   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3652   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
31903653   // is this really a sound rom, or a terminal / link rom? accesses unexpected addresses
31913654   ROM_LOAD( "epr-14221a",    0x00000, 0x10000, CRC(0d429ac4) SHA1(9cd4c7e858874f372eb3e409ba37964f1ebf07d5) )
31923655
3193   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
3656   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
31943657   // none??
31953658ROM_END
31963659
r249106r249107
32013664//**************************************************************************
32023665
32033666//-------------------------------------------------
3204//  init_generic - common initialization
3205//-------------------------------------------------
3206
3207DRIVER_INIT_MEMBER(segaxbd_state,generic)
3208{
3209   // allocate a scanline timer
3210   m_scanline_timer = timer_alloc(TID_SCANLINE);
3211
3212   // reset the custom handlers and other pointers
3213   m_iochip_custom_io_w[0][3] = iowrite_delegate(FUNC(segaxbd_state::generic_iochip0_lamps_w), this);
3214
3215   // point globals to allocated memory regions
3216   m_segaic16road->segaic16_roadram_0 = reinterpret_cast<UINT16 *>(memshare("roadram")->ptr());
3217
3218   // save state
3219   save_item(NAME(m_timer_irq_state));
3220   save_item(NAME(m_vblank_irq_state));
3221   save_item(NAME(m_iochip_regs[0]));
3222   save_item(NAME(m_iochip_regs[1]));
3223   save_item(NAME(m_lastsurv_mux));
3224}
3225
3226
3227//-------------------------------------------------
32283667//  init_* - game-specific initialization
32293668//-------------------------------------------------
32303669
3231DRIVER_INIT_MEMBER(segaxbd_state,aburner2)
3670void segaxbd_state::install_aburner2(void)
32323671{
3233   DRIVER_INIT_CALL(generic);
32343672   m_road_priority = 0;
32353673   m_iochip_custom_io_r[0][0] = ioread_delegate(FUNC(segaxbd_state::aburner2_iochip0_motor_r), this);
32363674   m_iochip_custom_io_w[0][1] = iowrite_delegate(FUNC(segaxbd_state::aburner2_iochip0_motor_w), this);
32373675}
32383676
3239DRIVER_INIT_MEMBER(segaxbd_state,lastsurv)
3677DRIVER_INIT_MEMBER(segaxbd_new_state,aburner2)
32403678{
3241   DRIVER_INIT_CALL(generic);
3679   m_mainpcb->install_aburner2();
3680}
3681
3682void segaxbd_state::install_lastsurv(void)
3683{
32423684   m_iochip_custom_io_r[1][1] = ioread_delegate(FUNC(segaxbd_state::lastsurv_iochip1_port_r), this);
32433685   m_iochip_custom_io_w[0][3] = iowrite_delegate(FUNC(segaxbd_state::lastsurv_iochip0_muxer_w), this);
32443686}
32453687
3246DRIVER_INIT_MEMBER(segaxbd_state,loffire)
3688DRIVER_INIT_MEMBER(segaxbd_new_state,lastsurv)
32473689{
3248   DRIVER_INIT_CALL(generic);
3690   m_mainpcb->install_lastsurv();
3691}
3692
3693void segaxbd_state::install_loffire(void)
3694{
32493695   m_adc_reverse[1] = m_adc_reverse[3] = true;
32503696
32513697   // install sync hack on core shared memory
32523698   m_loffire_sync = m_maincpu->space(AS_PROGRAM).install_write_handler(0x29c000, 0x29c011, write16_delegate(FUNC(segaxbd_state::loffire_sync0_w), this));
32533699}
32543700
3255DRIVER_INIT_MEMBER(segaxbd_state,smgp)
3701
3702DRIVER_INIT_MEMBER(segaxbd_new_state,loffire)
32563703{
3257   DRIVER_INIT_CALL(generic);
3704   m_mainpcb->install_loffire();
3705}
3706
3707void segaxbd_state::install_smgp(void)
3708{
32583709   m_iochip_custom_io_r[0][0] = ioread_delegate(FUNC(segaxbd_state::smgp_iochip0_motor_r), this);
32593710   m_iochip_custom_io_w[0][1] = iowrite_delegate(FUNC(segaxbd_state::smgp_iochip0_motor_w), this);
32603711
r249106r249107
32623713   m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2f0000, 0x2f3fff, read16_delegate(FUNC(segaxbd_state::smgp_excs_r), this), write16_delegate(FUNC(segaxbd_state::smgp_excs_w), this));
32633714}
32643715
3265DRIVER_INIT_MEMBER(segaxbd_state,rascot)
3716DRIVER_INIT_MEMBER(segaxbd_new_state,smgp)
32663717{
3267   DRIVER_INIT_CALL(generic);
3718   m_mainpcb->install_smgp();
3719}
32683720
3721DRIVER_INIT_MEMBER(segaxbd_new_state,rascot)
3722{
3723#if 0
32693724   // patch out bootup link test
3270   UINT16 *rom = reinterpret_cast<UINT16 *>(memregion("subcpu")->base());
3725   UINT16 *rom = reinterpret_cast<UINT16 *>(memregion("mainpcb:subcpu")->base());
32713726   rom[0xb78/2] = 0x601e; // subrom checksum test
32723727   rom[0x57e/2] = 0x4e71;
32733728   rom[0x5d0/2] = 0x6008;
32743729   rom[0x606/2] = 0x4e71;
32753730
32763731   // map /EXCS space
3277   m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0f0000, 0x0f3fff, read16_delegate(FUNC(segaxbd_state::rascot_excs_r), this), write16_delegate(FUNC(segaxbd_state::rascot_excs_w), this));
3732   m_mainpcb->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x0f0000, 0x0f3fff, read16_delegate(FUNC(segaxbd_state::rascot_excs_r), this), write16_delegate(FUNC(segaxbd_state::rascot_excs_w), this));
3733#endif
32783734}
32793735
3280DRIVER_INIT_MEMBER(segaxbd_state,gprider)
3736void segaxbd_state::install_gprider(void)
32813737{
3282   DRIVER_INIT_CALL(generic);
32833738   m_gprider_hack = true;
3739
32843740}
32853741
3742DRIVER_INIT_MEMBER(segaxbd_new_state,gprider)
3743{
3744   m_mainpcb->install_gprider();
3745}
32863746
32873747
3748DRIVER_INIT_MEMBER(segaxbd_new_state_double,gprider_double)
3749{
3750   m_mainpcb->install_gprider();
3751   m_subpcb->install_gprider();
3752
3753   m_mainpcb->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2F0000, 0x2F003f, read16_delegate(FUNC(segaxbd_new_state_double::shareram2_r), this), write16_delegate(FUNC(segaxbd_new_state_double::shareram1_w), this));
3754   m_subpcb->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x2F0000, 0x2F003f, read16_delegate(FUNC(segaxbd_new_state_double::shareram1_r), this), write16_delegate(FUNC(segaxbd_new_state_double::shareram2_w), this));
3755}
3756
3757
32883758//**************************************************************************
32893759//  GAME DRIVERS
32903760//**************************************************************************
32913761
32923762//    YEAR, NAME,     PARENT,   MACHINE,        INPUT,    INIT,                    MONITOR,COMPANY,FULLNAME,FLAGS
3293GAME( 1987, aburner2, 0,        xboard,         aburner2, segaxbd_state, aburner2, ROT0,   "Sega", "After Burner II", 0 )
3294GAME( 1987, aburner2g,aburner2, xboard,         aburner2, segaxbd_state, aburner2, ROT0,   "Sega", "After Burner II (German)", 0 )
3295GAME( 1987, aburner,  aburner2, xboard,         aburner,  segaxbd_state, aburner2, ROT0,   "Sega", "After Burner", 0 )
3296GAME( 1987, thndrbld, 0,        xboard_fd1094,  thndrbld, segaxbd_state, generic,  ROT0,   "Sega", "Thunder Blade (upright, FD1094 317-0056)", 0 )
3297GAME( 1987, thndrbld1,thndrbld, xboard,         thndrbd1, segaxbd_state, generic,  ROT0,   "Sega", "Thunder Blade (deluxe/standing, unprotected)", 0 )
3298GAME( 1989, lastsurv, 0,        lastsurv_fd1094,lastsurv, segaxbd_state, lastsurv, ROT0,   "Sega", "Last Survivor (Japan, FD1094 317-0083)", 0 )
3299GAME( 1989, loffire,  0,        xboard_fd1094,  loffire,  segaxbd_state, loffire,  ROT0,   "Sega", "Line of Fire / Bakudan Yarou (World, FD1094 317-0136)", 0 )
3300GAME( 1989, loffireu, loffire,  xboard_fd1094,  loffire,  segaxbd_state, loffire,  ROT0,   "Sega", "Line of Fire / Bakudan Yarou (US, FD1094 317-0135)", 0 )
3301GAME( 1989, loffirej, loffire,  xboard_fd1094,  loffire,  segaxbd_state, loffire,  ROT0,   "Sega", "Line of Fire / Bakudan Yarou (Japan, FD1094 317-0134)", 0 )
3302GAME( 1989, rachero,  0,        xboard_fd1094,  rachero,  segaxbd_state, generic,  ROT0,   "Sega", "Racing Hero (FD1094 317-0144)", 0 )
3303GAME( 1989, smgp,     0,        smgp_fd1094,    smgp,     segaxbd_state, smgp,     ROT0,   "Sega", "Super Monaco GP (World, Rev B, FD1094 317-0126a)", 0 )
3304GAME( 1989, smgp6,    smgp,     smgp_fd1094,    smgp,     segaxbd_state, smgp,     ROT0,   "Sega", "Super Monaco GP (World, Rev A, FD1094 317-0126a)", 0 )
3305GAME( 1989, smgp5,    smgp,     smgp_fd1094,    smgp,     segaxbd_state, smgp,     ROT0,   "Sega", "Super Monaco GP (World, FD1094 317-0126)", 0 )
3306GAME( 1989, smgpu,    smgp,     smgp_fd1094,    smgp,     segaxbd_state, smgp,     ROT0,   "Sega", "Super Monaco GP (US, Rev C, FD1094 317-0125a)", 0 )
3307GAME( 1989, smgpu1,   smgp,     smgp_fd1094,    smgp,     segaxbd_state, smgp,     ROT0,   "Sega", "Super Monaco GP (US, Rev B, FD1094 317-0125a)", 0 )
3308GAME( 1989, smgpu2,   smgp,     smgp_fd1094,    smgp,     segaxbd_state, smgp,     ROT0,   "Sega", "Super Monaco GP (US, Rev A, FD1094 317-0125a)", 0 )
3309GAME( 1989, smgpj,    smgp,     smgp_fd1094,    smgp,     segaxbd_state, smgp,     ROT0,   "Sega", "Super Monaco GP (Japan, Rev B, FD1094 317-0124a)", 0 )
3310GAME( 1989, smgpja,   smgp,     smgp_fd1094,    smgp,     segaxbd_state, smgp,     ROT0,   "Sega", "Super Monaco GP (Japan, Rev A, FD1094 317-0124a)", 0 )
3311GAME( 1990, abcop,    0,        xboard_fd1094,  abcop,    segaxbd_state, generic,  ROT0,   "Sega", "A.B. Cop (World, FD1094 317-0169b)", 0 )
3312GAME( 1990, abcopj,   abcop,    xboard_fd1094,  abcop,    segaxbd_state, generic,  ROT0,   "Sega", "A.B. Cop (Japan, FD1094 317-0169b)", 0 )
3313GAME( 1990, gprider,  0,        xboard_fd1094,  gprider,  segaxbd_state, gprider,  ROT0,   "Sega", "GP Rider (World, FD1094 317-0163)", 0 )
3314GAME( 1990, gprideru, gprider,  xboard_fd1094,  gprider,  segaxbd_state, gprider,  ROT0,   "Sega", "GP Rider (US, FD1094 317-0162)", 0 )
3315GAME( 1990, gpriderj, gprider,  xboard_fd1094,  gprider,  segaxbd_state, gprider,  ROT0,   "Sega", "GP Rider (Japan, FD1094 317-0161)", 0 )
3316GAME( 1991, rascot,   0,        rascot,         rascot,   segaxbd_state, rascot,   ROT0,   "Sega", "Royal Ascot (Japan, terminal?)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
3763GAME( 1987, aburner2, 0,        sega_xboard,         aburner2, segaxbd_new_state, aburner2, ROT0,   "Sega", "After Burner II", 0 )
3764GAME( 1987, aburner2g,aburner2, sega_xboard,         aburner2, segaxbd_new_state, aburner2, ROT0,   "Sega", "After Burner II (German)", 0 )
3765GAME( 1987, aburner,  aburner2, sega_xboard,         aburner,  segaxbd_new_state, aburner2, ROT0,   "Sega", "After Burner", 0 )
3766GAME( 1987, thndrbld, 0,        sega_xboard_fd1094,  thndrbld, driver_device,     0,  ROT0,   "Sega", "Thunder Blade (upright, FD1094 317-0056)", 0 )
3767GAME( 1987, thndrbld1,thndrbld, sega_xboard,         thndrbd1, driver_device,     0,  ROT0,   "Sega", "Thunder Blade (deluxe/standing, unprotected)", 0 )
3768GAME( 1989, lastsurv, 0,        sega_lastsurv_fd1094,lastsurv, segaxbd_new_state, lastsurv, ROT0,   "Sega", "Last Survivor (Japan, FD1094 317-0083)", 0 )
3769GAME( 1989, loffire,  0,        sega_xboard_fd1094,  loffire,  segaxbd_new_state, loffire,  ROT0,   "Sega", "Line of Fire / Bakudan Yarou (World, FD1094 317-0136)", 0 )
3770GAME( 1989, loffireu, loffire,  sega_xboard_fd1094,  loffire,  segaxbd_new_state, loffire,  ROT0,   "Sega", "Line of Fire / Bakudan Yarou (US, FD1094 317-0135)", 0 )
3771GAME( 1989, loffirej, loffire,  sega_xboard_fd1094,  loffire,  segaxbd_new_state, loffire,  ROT0,   "Sega", "Line of Fire / Bakudan Yarou (Japan, FD1094 317-0134)", 0 )
3772GAME( 1989, rachero,  0,        sega_xboard_fd1094,  rachero,  driver_device,     0,  ROT0,   "Sega", "Racing Hero (FD1094 317-0144)", 0 )
3773GAME( 1989, smgp,     0,        sega_smgp_fd1094,    smgp,     segaxbd_new_state, smgp,     ROT0,   "Sega", "Super Monaco GP (World, Rev B, FD1094 317-0126a)", 0 )
3774GAME( 1989, smgp6,    smgp,     sega_smgp_fd1094,    smgp,     segaxbd_new_state, smgp,     ROT0,   "Sega", "Super Monaco GP (World, Rev A, FD1094 317-0126a)", 0 )
3775GAME( 1989, smgp5,    smgp,     sega_smgp_fd1094,    smgp,     segaxbd_new_state, smgp,     ROT0,   "Sega", "Super Monaco GP (World, FD1094 317-0126)", 0 )
3776GAME( 1989, smgpu,    smgp,     sega_smgp_fd1094,    smgp,     segaxbd_new_state, smgp,     ROT0,   "Sega", "Super Monaco GP (US, Rev C, FD1094 317-0125a)", 0 )
3777GAME( 1989, smgpu1,   smgp,     sega_smgp_fd1094,    smgp,     segaxbd_new_state, smgp,     ROT0,   "Sega", "Super Monaco GP (US, Rev B, FD1094 317-0125a)", 0 )
3778GAME( 1989, smgpu2,   smgp,     sega_smgp_fd1094,    smgp,     segaxbd_new_state, smgp,     ROT0,   "Sega", "Super Monaco GP (US, Rev A, FD1094 317-0125a)", 0 )
3779GAME( 1989, smgpj,    smgp,     sega_smgp_fd1094,    smgp,     segaxbd_new_state, smgp,     ROT0,   "Sega", "Super Monaco GP (Japan, Rev B, FD1094 317-0124a)", 0 )
3780GAME( 1989, smgpja,   smgp,     sega_smgp_fd1094,    smgp,     segaxbd_new_state, smgp,     ROT0,   "Sega", "Super Monaco GP (Japan, Rev A, FD1094 317-0124a)", 0 )
3781GAME( 1990, abcop,    0,        sega_xboard_fd1094,  abcop,    driver_device,     0,  ROT0,   "Sega", "A.B. Cop (World, FD1094 317-0169b)", 0 )
3782GAME( 1990, abcopj,   abcop,    sega_xboard_fd1094,  abcop,    driver_device,     0,  ROT0,   "Sega", "A.B. Cop (Japan, FD1094 317-0169b)", 0 )
3783GAME( 1990, gprider,  0,        sega_xboard_fd1094,  gprider, segaxbd_new_state, gprider,  ROT0,   "Sega", "GP Rider (World, FD1094 317-0163)", 0 )
3784GAME( 1990, gprideru, gprider,  sega_xboard_fd1094,  gprider, segaxbd_new_state, gprider,  ROT0,   "Sega", "GP Rider (US, FD1094 317-0162)", 0 )
3785GAME( 1990, gpriderj, gprider,  sega_xboard_fd1094,  gprider, segaxbd_new_state, gprider,  ROT0,   "Sega", "GP Rider (Japan, FD1094 317-0161)", 0 )
3786
3787// multi X-Board (2 stacks directly connected, shared RAM on bridge PCB?)
3788GAME( 1990, gpridert, gprider,  sega_xboard_fd1094_double, gprider_double,  segaxbd_new_state_double, gprider_double,  ROT0,   "Sega", "GP Rider (World, FD1094 317-0163) (master-slave setup)", MACHINE_NOT_WORKING ) // communication breaks down
3789
3790// X-Board + other boards?
3791GAME( 1991, rascot,   0,        sega_rascot,         rascot,   segaxbd_new_state, rascot,   ROT0,   "Sega", "Royal Ascot (Japan, terminal?)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
trunk/src/mame/includes/segaxbd.h
r249106r249107
1313#include "video/segaic16.h"
1414#include "video/segaic16_road.h"
1515#include "video/sega16sp.h"
16#include "video/resnet.h"
1617
17
1818// ======================> segaxbd_state
1919
20class segaxbd_state : public sega_16bit_common_base
20
21class segaxbd_state : public device_t
2122{
2223public:
2324   // construction/destruction
24   segaxbd_state(const machine_config &mconfig, device_type type, const char *tag)
25      : sega_16bit_common_base(mconfig, type, tag),
26         m_maincpu(*this, "maincpu"),
27         m_subcpu(*this, "subcpu"),
28         m_soundcpu(*this, "soundcpu"),
29         m_soundcpu2(*this, "soundcpu2"),
30         m_mcu(*this, "mcu"),
31         m_cmptimer_1(*this, "cmptimer_main"),
32         m_sprites(*this, "sprites"),
33         m_segaic16vid(*this, "segaic16vid"),
34         m_segaic16road(*this, "segaic16road"),
35         m_gprider_hack(false),
36         m_road_priority(1),
37         m_scanline_timer(NULL),
38         m_timer_irq_state(0),
39         m_vblank_irq_state(0),
40         m_loffire_sync(NULL),
41         m_lastsurv_mux(0)
42   {
43      memset(m_adc_reverse, 0, sizeof(m_adc_reverse));
44      memset(m_iochip_regs, 0, sizeof(m_iochip_regs));
45   }
25   segaxbd_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
4626
4727   // compare/timer chip callbacks
4828   void timer_ack_callback();
r249106r249107
7151   // sound Z80 CPU read/write handlers
7252   DECLARE_READ8_MEMBER( sound_data_r );
7353
74   // game-specific driver init
75   DECLARE_DRIVER_INIT(generic);
76   DECLARE_DRIVER_INIT(aburner2);
77   DECLARE_DRIVER_INIT(lastsurv);
78   DECLARE_DRIVER_INIT(loffire);
79   DECLARE_DRIVER_INIT(smgp);
80   DECLARE_DRIVER_INIT(rascot);
81   DECLARE_DRIVER_INIT(gprider);
8254
8355   // video updates
8456   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
57   
58   // palette helpers
59   DECLARE_WRITE16_MEMBER( paletteram_w );
8560
61   void install_aburner2(void);
62   void install_lastsurv(void);
63   void install_loffire(void);
64   void install_smgp(void);
65   void install_gprider(void);
66
8667protected:
8768   // internal types
8869   typedef delegate<UINT8 (UINT8)> ioread_delegate;
r249106r249107
9778   };
9879
9980   // device overrides
100   virtual void machine_reset();
81//   virtual void machine_reset();
10182   virtual void video_start();
10283   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
10384
r249106r249107
11596   void lastsurv_iochip0_muxer_w(UINT8 data);
11697
11798   // devices
99public:
118100   required_device<m68000_device> m_maincpu;
101protected:
119102   required_device<m68000_device> m_subcpu;
120103   required_device<z80_device> m_soundcpu;
121104   optional_device<z80_device> m_soundcpu2;
r249106r249107
126109   required_device<segaic16_road_device> m_segaic16road;
127110
128111   // configuration
129   bool            m_gprider_hack;
130112   bool            m_adc_reverse[8];
131113   ioread_delegate m_iochip_custom_io_r[2][8];
132114   iowrite_delegate m_iochip_custom_io_w[2][8];
r249106r249107
141123   // game-specific state
142124   UINT16 *        m_loffire_sync;
143125   UINT8           m_lastsurv_mux;
126public: // -- stupid system16.c
127   // memory pointers
128   required_shared_ptr<UINT16> m_paletteram;
129   bool            m_gprider_hack;
130
131protected:
132   void palette_init();
133   UINT32      m_palette_entries;          // number of palette entries
134   UINT8       m_palette_normal[32];       // RGB translations for normal pixels
135   UINT8       m_palette_shadow[32];       // RGB translations for shadowed pixels
136   UINT8       m_palette_hilight[32];      // RGB translations for hilighted pixels
137   required_device<screen_device> m_screen;
138   required_device<palette_device> m_palette;
139
140   UINT16                  m_latched_value[4];
141   UINT8                   m_latch_read[4];
142
143   UINT32 soundlatch_read(UINT8 index = 0) { m_latch_read[index] = 1; return m_latched_value[index]; };
144   void soundlatch_write(UINT8 index, UINT32 data) { machine().scheduler().synchronize(timer_expired_delegate(FUNC(segaxbd_state::soundlatch_sync_callback), this), index | (data << 8)); };
145   void soundlatch_write(UINT32 data) { soundlatch_write(0, data); }
146
147   void soundlatch_sync_callback(void *ptr, INT32 param)
148   {
149      UINT16 value = param >> 8;
150      int which = param & 0xff;
151      m_latched_value[which] = value;
152      m_latch_read[which] = 0;
153   };
154
155protected:
156   virtual void device_start();
157   virtual void device_reset();
144158};
159
160
161class segaxbd_regular_state :  public segaxbd_state
162{
163public:
164   segaxbd_regular_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
165
166protected:
167   virtual machine_config_constructor device_mconfig_additions() const;
168//  virtual void device_start();
169//  virtual void device_reset();
170};
171
172
173
174class segaxbd_fd1094_state :  public segaxbd_state
175{
176public:
177   segaxbd_fd1094_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
178
179protected:
180   virtual machine_config_constructor device_mconfig_additions() const;
181//  virtual void device_start();
182//  virtual void device_reset();
183};
184
185class segaxbd_lastsurv_fd1094_state :  public segaxbd_state
186{
187public:
188   segaxbd_lastsurv_fd1094_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
189
190protected:
191   virtual machine_config_constructor device_mconfig_additions() const;
192//  virtual void device_start();
193//  virtual void device_reset();
194};
195
196class segaxbd_smgp_fd1094_state :  public segaxbd_state
197{
198public:
199   segaxbd_smgp_fd1094_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
200
201protected:
202   virtual machine_config_constructor device_mconfig_additions() const;
203//  virtual void device_start();
204//  virtual void device_reset();
205};
206
207class segaxbd_rascot_state :  public segaxbd_state
208{
209public:
210   segaxbd_rascot_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
211
212protected:
213   virtual machine_config_constructor device_mconfig_additions() const;
214//  virtual void device_start();
215//  virtual void device_reset();
216};
217
218
trunk/src/mame/video/segaxbd.c
r249106r249107
1616
1717void segaxbd_state::video_start()
1818{
19   if(!m_segaic16vid->started())
20      throw device_missing_dependencies();
21   
22   if(!m_segaic16road->started())
23      throw device_missing_dependencies();
24
1925   // initialize the tile/text layers
2026   m_segaic16vid->tilemap_init( 0, SEGAIC16_TILEMAP_16B, 0x1c00, 0, 2);
2127


Previous 199869 Revisions Next


© 1997-2024 The MAME Team