Previous 199869 Revisions Next

r40620 Sunday 6th September, 2015 at 22:18:16 UTC by R. Belmont
Merge pull request #303 from LuigiBlood/master

n64.c: Development Disk Drive setting support [LuigiBlood]
[/trunk]makefile
[hash]tutor.xml
[scripts]genie.lua
[scripts/src]machine.lua main.lua
[scripts/target/mame]mess.lua
[src/emu/machine]at_keybc.c
[src/mame]arcade.lst mess.lst
[src/mame/drivers]goldstar.c konamigx.c konendev.c segahang.c segaorun.c segas16a.c segas16b.c segas18.c segas24.c segaxbd.c seta.c suna8.c
[src/mame/includes]konamigx.h segaxbd.h suna8.h system1.h
[src/mame/machine]fd1094.c
[src/mame/video]hng64.c k057714.c pc080sn.c pc090oj.c segaic16.c segaic16_road.c segaic16_road.h segaxbd.c suna8.c system1.c tc0100scn.c tc0110pcr.c tc0150rod.c tc0180vcu.c tc0280grd.c tc0360pri.c tc0480scp.c
[src/mess/drivers]apple2.c apple2e.c ie15.c orao.c
[src/mess/includes]orao.h
[src/mess/machine]orao.c
[src/osd/modules/render]drawogl.c

trunk/hash/tutor.xml
r249131r249132
1515005E Frogger ~ フロッガー    [dumped]
1616006E Scramble ~ スクランブル  [dumped]
1717007E NightFlight ~ ナイトフライト  [dumped]
18008E Marine Adventure ~ マリン アドベンチー    [dumped]
18008E Marine Adventure ~ マリン アドベンチー    [dumped]
1919009E Mission Attack ~ ミッション アタック    [dumped]
20010E Traffic Jam ~ トラフィック ジャム
21011E Mystery Gold ~ ミステリー ゴールド
20010E Traffic Jam ~ トラフィック ジャム    [dumped]
21011E Mystery Gold ~ ミステリー ゴールド    [dumped]
2222012E DonPan ~ ドンバン [dumped]
2323013E Mickey Athletic Land ~ ミッキー アスレチックランド [dumped]
2424014E Pooyan ~ プーヤン
2525015E Jungler ~ ジャングラー
2626016E Guttang Gottong ~ ガッタンゴットン
27017E Maze Patrol ~ メイズ パトロール
27017E Maze Patrol ~ メイズ パトロール    [dumped]
2828018E Tron ~ トロン
29019E Mr. Do! ~ Mr.DO!
29019E Mr. Do! ~ Mr.DO!    [dumped]
3030020E Bermuda Triangle ~ バミューダ・ トライアングル
3131021E 4-nin Mahjan ~ 四人麻雀
3232022E Triplecommand ~ トリプルコマンド
r249131r249132
218218         </dataarea>
219219      </part>
220220   </software>
221   
222   <software name="mazeptrl">
223      <description>Maze Patrol (Jpn)</description>
224      <year>1983</year>
225      <publisher>Tomy</publisher>
226      <info name="alt_title" value="メイズ パトロール"/>
227      <info name="serial" value="017E"/>
228      <part name="cart" interface="tutor_cart">
229         <dataarea name="rom" size="8192">
230            <rom name="tomy 36.7.u1" size="8192" crc="f3059779" sha1="fd51c445f0356ed3796bdbbd4a7f6086d7bb5331" offset="0" />
231         </dataarea>
232      </part>
233   </software>
221234
222235   <software name="athland">
223236      <description>Mickey Athletic Land (Jpn)</description>
r249131r249132
257270         </dataarea>
258271      </part>
259272   </software>
273   
274   <software name="mysteryg">
275      <description>Mystery Gold (Jpn)</description>
276      <year>1983</year>
277      <publisher>Tomy</publisher>
278      <info name="alt_title" value="ミステリー ゴールド"/>
279      <info name="serial" value="011E"/>
280      <part name="cart" interface="tutor_cart">
281         <dataarea name="rom" size="8192">
282            <rom name="mysteryg.bin" size="8192" crc="2c4f30b8" sha1="8d1fcb8e86f4e2d5557a7c39e7859811311a966a" offset="0" />
283         </dataarea>
284      </part>
285   </software>
286   
287   <software name="mrdo">
288      <description>Mr. Do! (Jpn)</description>
289      <year>1983</year>
290      <publisher>Tomy</publisher>
291      <info name="alt_title" value="Mr.DO!"/>
292      <info name="serial" value="019E"/>
293      <part name="cart" interface="tutor_cart">
294         <dataarea name="rom" size="8192">
295            <rom name="tomy 3l1.ic1.bin" size="8192" crc="1dfa3f4b" sha1="93d1c17c5edd44f27c28cde88a68f609b77feb0c" offset="0" />
296         </dataarea>
297      </part>
298   </software>
260299
261300   <software name="nflight">
262301      <description>Night Flight (Jpn)</description>
r249131r249132
336375
337376   <software name="trafjam">
338377   <!-- Stock No: 8103, (Japanese 010E)-->
339      <description>Traffic Jam</description>
340      <year>1983</year>
378      <description>Traffic Jam (Jpn)</description>
379      <year>1982</year>
341380      <publisher>Tomy</publisher>
342381      <part name="cart" interface="tutor_cart">
343382         <dataarea name="rom" size="8192">
344            <rom name="trafjam.bin" size="8192" crc="c0c78141" sha1="2ba074955a1507ca9f6cde8987695f495e81aeab" offset="0" />
383            <rom name="tomy 33.5.ic1" size="8192" crc="c970f2c3" sha1="086825470d349f3bbd598bbb8b8c9e13aa2458b6" offset="0" />
345384         </dataarea>
346385      </part>
347386   </software>
348387
349388   <software name="trafjama" cloneof="trafjam">
350389   <!-- Stock No: 8103, (Japanese 010E)-->
351      <description>Traffic Jam (Alt)</description>
352      <year>1982</year>
390      <description>Traffic Jam (USA)</description>
391      <year>1983</year>
353392      <publisher>Tomy</publisher>
354393      <part name="cart" interface="tutor_cart">
355394         <dataarea name="rom" size="8192">
356            <rom name="trafjama.bin" size="8192" crc="c970f2c3" sha1="086825470d349f3bbd598bbb8b8c9e13aa2458b6" offset="0" />
395            <rom name="trafjama.bin" size="8192" crc="c0c78141" sha1="2ba074955a1507ca9f6cde8987695f495e81aeab" offset="0" />
357396         </dataarea>
358397      </part>
359398   </software>
trunk/makefile
r249131r249132
9292
9393# DRIVERS = src/mame/drivers/1942.c,src/mame/drivers/cops.c
9494
95# FORCE_VERSION_COMPILE = 1
96
9597-include useroptions.mak
9698
9799###########################################################################
r249131r249132
630632PARAMS += --DRIVERS='$(DRIVERS)'
631633endif
632634
635ifdef FORCE_VERSION_COMPILE
636PARAMS += --FORCE_VERSION_COMPILE='$(FORCE_VERSION_COMPILE)'
637endif
638
633639#-------------------------------------------------
634640# All scripts
635641#-------------------------------------------------
trunk/scripts/genie.lua
r249131r249132
374374   description = "List of drivers to compile.",
375375}
376376
377newoption {
378   trigger = "FORCE_VERSION_COMPILE",
379   description = "Force compiling of version.c file.",
380   allowed = {
381      { "0",   "Disabled"    },
382      { "1",   "Enabled"      },
383   }
384}
385
377386if _OPTIONS["SHLIB"]=="1" then
378387   LIBTYPE = "SharedLib"
379388else
trunk/scripts/src/machine.lua
r249131r249132
26522652      MAME_DIR .. "src/emu/machine/netlist.h",
26532653   }
26542654end
2655
2656---------------------------------------------------
2657--
2658--@src/emu/machine/nsc810.h,MACHINES["NSC810"] = true
2659---------------------------------------------------
2660
2661if (MACHINES["NSC810"]~=null) then
2662   files {
2663      MAME_DIR .. "src/emu/machine/nsc810.c",
2664      MAME_DIR .. "src/emu/machine/nsc810.h",
2665   }
2666end
trunk/scripts/src/main.lua
r249131r249132
234234      { MAME_DIR .. "src/".._target .."/" .. _subtarget ..".lst" ,  GEN_DIR  .. _target .. "/" .. _subtarget .."/drivlist.c",    {  MAME_DIR .. "src/build/makelist.py" }, {"@echo Building driver list...",    PYTHON .. " $(1) $(<) > $(@)" }},
235235   }
236236end   
237
238if _OPTIONS["FORCE_VERSION_COMPILE"]=="1" then
237239   configuration { "gmake" }
238240      dependency {
239241         { ".PHONY", ".FORCE", true },
240242         { "$(OBJDIR)/src/version.o", ".FORCE", true },
241243      }
242
244end
243245   configuration { "mingw*" }
244246      custombuildtask {   
245247         { MAME_DIR .. "src/version.c" ,  GEN_DIR  .. "/resource/" .. rctarget .. "vers.rc",    {  MAME_DIR .. "src/build/verinfo.py" }, {"@echo Emitting " .. rctarget .. "vers.rc" .. "...",    PYTHON .. " $(1)  -r -b " .. rctarget .. " $(<) > $(@)" }},
trunk/scripts/target/mame/mess.lua
r249131r249132
561561MACHINES["WOZFDC"] = true
562562MACHINES["DIABLO_HD"] = true
563563MACHINES["TMS1024"] = true
564MACHINES["NSC810"] = true
564565
565566--------------------------------------------------
566567-- specify available bus cores
r249131r249132
26522653   MAME_DIR .. "src/mess/drivers/hpz80unk.c",
26532654   MAME_DIR .. "src/mess/drivers/ht68k.c",
26542655   MAME_DIR .. "src/mess/drivers/hunter2.c",
2655   MAME_DIR .. "src/emu/machine/nsc810.c",
2656   MAME_DIR .. "src/emu/machine/nsc810.h",
26572656   MAME_DIR .. "src/mess/drivers/i7000.c",
26582657   MAME_DIR .. "src/mess/drivers/ibm6580.c",
26592658   MAME_DIR .. "src/mess/drivers/icatel.c",
trunk/src/emu/machine/at_keybc.c
r249131r249132
2828static INPUT_PORTS_START( at_keybc )
2929   PORT_START("DSW")
3030   PORT_BIT(     0xbf, 0xbf, IPT_UNUSED )
31   PORT_DIPNAME( 0x40, 0x40, "Display switch")
31   PORT_DIPNAME( 0x40, 0x00, "Display switch")
3232   PORT_DIPSETTING(    0x40, "Monochrome adapter" )
3333   PORT_DIPSETTING(    0x00, "Color/Graphics adapter" )
3434INPUT_PORTS_END
trunk/src/mame/arcade.lst
r249131r249132
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/goldstar.c
r249131r249132
17311731   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
17321732   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_HIGH ) PORT_NAME("Big")
17331733   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP )
1734   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE )
1735   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_GAMBLE_BET )
1736   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_GAMBLE_LOW ) PORT_NAME("Small / Info")
1737   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start")
1734   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SLOT_STOP1 ) PORT_NAME("Stop 1 / Take")
1735   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SLOT_STOP2 ) PORT_NAME("Stop 2 / Bet" )
1736   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SLOT_STOP3 ) PORT_NAME("Stop 3 / Small / Info")
1737   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME("Start / Stop All")
17381738
17391739   PORT_INCLUDE( cmv4_coins )
17401740
17411741   PORT_INCLUDE( cmv4_service )
17421742
17431743   PORT_START("DSW1")
1744   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) )   PORT_DIPLOCATION("DSW1:1")  /* OK */
1744   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unused ) )           PORT_DIPLOCATION("DSW1:1")  /* OK */
17451745   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
17461746   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1747   PORT_DIPNAME( 0x02, 0x02, "Hopper Out Switch" ) PORT_DIPLOCATION("DSW1:2")  /* OK */
1747   PORT_DIPNAME( 0x02, 0x02, "Hopper Out Switch" )         PORT_DIPLOCATION("DSW1:2")  /* OK */
17481748   PORT_DIPSETTING(    0x02, "Active Low" )
17491749   PORT_DIPSETTING(    0x00, "Active High" )
1750   PORT_DIPNAME( 0x04, 0x00, "Payout Mode" )       PORT_DIPLOCATION("DSW1:3")  /* OK */
1750   PORT_DIPNAME( 0x04, 0x00, "Payout Mode" )               PORT_DIPLOCATION("DSW1:3")  /* OK */
17511751   PORT_DIPSETTING(    0x04, "Payout Switch" )
17521752   PORT_DIPSETTING(    0x00, "Automatic" )
1753   PORT_DIPNAME( 0x08, 0x00, "W-UP '7'" )          PORT_DIPLOCATION("DSW1:4")  /* not checked */
1754   PORT_DIPSETTING(    0x08, "Loss" )
1755   PORT_DIPSETTING(    0x00, "Even" )
1756   PORT_DIPNAME( 0x10, 0x00, "W-UP Pay Rate" )     PORT_DIPLOCATION("DSW1:5")  /* OK */
1753   PORT_DIPNAME( 0x08, 0x00, "'7' In Double Up Game" )     PORT_DIPLOCATION("DSW1:4")  /* OK */
1754   PORT_DIPSETTING(    0x08, "Even" )
1755   PORT_DIPSETTING(    0x00, "Loss" )
1756   PORT_DIPNAME( 0x10, 0x00, "Double Up Game Pay Rate" )   PORT_DIPLOCATION("DSW1:5")  /* OK */
17571757   PORT_DIPSETTING(    0x00, "80%" )
17581758   PORT_DIPSETTING(    0x10, "90%" )
1759   PORT_DIPNAME( 0x20, 0x00, "W-UP Game" )         PORT_DIPLOCATION("DSW1:6")  /* OK */
1759   PORT_DIPNAME( 0x20, 0x00, "Double Up Game" )            PORT_DIPLOCATION("DSW1:6")  /* OK */
17601760   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
17611761   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1762   PORT_DIPNAME( 0xc0, 0xc0, "Bet Max" )           PORT_DIPLOCATION("DSW1:7,8")    /* OK */
1762   PORT_DIPNAME( 0xc0, 0xc0, "Bet Max" )                   PORT_DIPLOCATION("DSW1:7,8")    /* OK */
17631763   PORT_DIPSETTING(    0x00, "8" )
17641764   PORT_DIPSETTING(    0x40, "16" )
17651765   PORT_DIPSETTING(    0x80, "32" )
r249131r249132
17871787
17881788   PORT_INCLUDE( cmv4_dsw5 )
17891789   PORT_MODIFY("DSW5")
1790   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )  PORT_DIPLOCATION("DSW5:1")  /* normally Display of Doll On Demo, but no whores in this set */
1790   PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )              PORT_DIPLOCATION("DSW5:1")  /* normally Display of Doll On Demo, but no whores in this set */
17911791   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
17921792   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
17931793   /* Coin In Limit OK */
17941794   /* Condition For 3 Kind Of Bonus not checked */
1795   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )  PORT_DIPLOCATION("DSW5:6")  /* normally Display Of Doll At All Fr. Bonus, but no whores in this set */
1796   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
1795   PORT_DIPNAME( 0x20, 0x20, "Show Odds In Double Up Game" )   PORT_DIPLOCATION("DSW5:6")  /* OK */
1796   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
1797   PORT_DIPSETTING(    0x20, DEF_STR( On ) )
1798   PORT_DIPNAME( 0x40, 0x40, "Skill Stop" )                    PORT_DIPLOCATION("DSW5:7")  /* OK */
1799   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
17971800   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1798   /* DSW5-7 listed as unused */
1799   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )  PORT_DIPLOCATION("DSW5:8")  /* normally Test Mode For Disp. Of Doll, but no whores in this set */
1801   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )              PORT_DIPLOCATION("DSW5:8")  /* normally Test Mode For Disp. Of Doll, but no whores in this set */
18001802   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
18011803   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
18021804INPUT_PORTS_END
trunk/src/mame/drivers/konamigx.c
r249131r249132
17501750   MCFG_VIDEO_START_OVERRIDE(konamigx_state, konamigx_type3)
17511751
17521752   MCFG_DEVICE_MODIFY("k056832")
1753   MCFG_K056832_CONFIG("gfx1", 0, K056832_BPP_6, 0, 0, "none")
1753   MCFG_K056832_CONFIG("gfx1", 0, K056832_BPP_6, 0, 2, "none")
17541754
17551755   MCFG_DEVICE_MODIFY("k055673")
17561756   MCFG_K055673_CONFIG("gfx2", 0, K055673_LAYOUT_GX6, -132, -23)
r249131r249132
26222622   ROM_LOAD( "dragoona.nv", 0x0000, 0x080, CRC(7980ad2b) SHA1(dccaab02d23edbd81ae13441fbac0dbd7112c258) )
26232623ROM_END
26242624
2625/* Soccer Superstars (Europe ver EAC)*/
2625/* Soccer Superstars (94.12.19 - Europe ver EAC) Writes EAA to EEPROM and reports as EAA despite chip labels EAC */
26262626ROM_START( soccerss )
26272627   /* main program */
26282628   ROM_REGION( 0x800000, "maincpu", 0 )
r249131r249132
26812681   ROM_LOAD( "soccerss.nv", 0x0000, 0x080, CRC(f222dae4) SHA1(fede48a4e1fe91cf2b17ff3f3996bca4816fc283) )
26822682ROM_END
26832683
2684/* Soccer Superstars (USA ver UAC)*/
2684/* Soccer Superstars (94.12.19 - U.S.A. ver UAC) Writes UAA to EEPROM and reports as UAA despite chip labels UAC */
26852685ROM_START( soccerssu )
26862686   /* main program */
26872687   ROM_REGION( 0x800000, "maincpu", 0 )
r249131r249132
27402740   ROM_LOAD( "soccerssu.nv", 0x0000, 0x080, CRC(812f6878) SHA1(fc4975211720a7eb413bceda8109231cb1c00834) )
27412741ROM_END
27422742
2743/* Soccer Superstars (Japan ver JAC)*/
2743/* Soccer Superstars (94.12.19 - Japan ver JAC) Writes JAB to EEPROM and reports as JAC */
27442744ROM_START( soccerssj )
27452745   /* main program */
27462746   ROM_REGION( 0x800000, "maincpu", 0 )
r249131r249132
27872787   ROM_LOAD( "soccerssj.nv", 0x0000, 0x080, CRC(7440255e) SHA1(af379b5b1f765f9050f18fbd41c5031c5ad4918b) )
27882788ROM_END
27892789
2790/* Soccer Superstars (Japan ver JAA)*/
2790/* Soccer Superstars (94.12.3 - Japan ver JAA) Writes JAA to EEPROM and reports as JAA */
27912791ROM_START( soccerssja )
27922792   /* main program */
27932793   ROM_REGION( 0x800000, "maincpu", 0 )
r249131r249132
28342834   ROM_LOAD( "soccerssja.nv", 0x0000, 0x080, CRC(60dba700) SHA1(087b086b29748727b41fdd4c154ff9b4bef42959) )
28352835ROM_END
28362836
2837/* Soccer Superstars (Asian ver AAA) */
2837/* Soccer Superstars (94.12.19 - Asia ver AAA) Writes AAA to EEPROM and reports as AAA */
28382838ROM_START( soccerssa )
28392839   /* main program */
28402840   ROM_REGION( 0x800000, "maincpu", 0 )
r249131r249132
36583658
36593659   const char *setname = machine().system().name;
36603660
3661   if (!strcmp(setname, "opengolf") ||
3662      !strcmp(setname, "opengolf2")||
3663      !strcmp(setname, "ggreats2") ||
3664      !strcmp(setname, "tbyahhoo") ||
3665      !strcmp(setname, "dragoona") ||
3666      !strcmp(setname, "dragoonj"))
3661   if (m_use_68020_post_clock_hack)
36673662   {
36683663      // [HACK] The 68020 instruction cache is disabled during POST.
36693664      // We don't emulate this nor the slow program ROM access times (120ns)
36703665      // so some games that rely on wait loops timeout far too quickly
36713666      // waiting for the sound system tests to complete.
36723667
3673      // To hack around this, we underclock the 68020 for 10 seconds during POST
3668      // To hack around this, we underclock the 68020 for 12 seconds during POST (soccerss requires longest)
36743669      m_maincpu->set_clock_scale(0.66f);
3675      m_boothack_timer->adjust(attotime::from_seconds(10));
3670      m_boothack_timer->adjust(attotime::from_seconds(12));
36763671   }
36773672
36783673   if (!strcmp(setname, "le2") ||
r249131r249132
38313826#undef BPP66
38323827}
38333828
3829DRIVER_INIT_MEMBER(konamigx_state,posthack)
3830{
3831   m_use_68020_post_clock_hack = 1;
3832   DRIVER_INIT_CALL(konamigx);
3833}
3834
3835
38343836/**********************************************************************************/
38353837/*     year  ROM       parent    machine   inp       init */
38363838
r249131r249132
38433845/* needs the ROZ layer to be playable */
38443846/* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
38453847
3846GAME( 1994, racinfrc, konamigx, racinfrc,  racinfrc, konamigx_state, konamigx, ROT0, "Konami", "Racin' Force (ver EAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING  )
3847GAME( 1994, racinfrcu,racinfrc, racinfrc,  racinfrc, konamigx_state, konamigx, ROT0, "Konami", "Racin' Force (ver UAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING  )
3848GAME( 1994, racinfrc, konamigx, racinfrc,  racinfrc, konamigx_state, posthack, ROT0, "Konami", "Racin' Force (ver EAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING  )
3849GAME( 1994, racinfrcu,racinfrc, racinfrc,  racinfrc, konamigx_state, posthack, ROT0, "Konami", "Racin' Force (ver UAB)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING  )
38483850
3849GAME( 1994, opengolf, konamigx, opengolf,  racinfrc, konamigx_state, konamigx, ROT0, "Konami", "Konami's Open Golf Championship (ver EAE)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING  )
3850GAME( 1994, opengolf2,opengolf, opengolf,  racinfrc, konamigx_state, konamigx, ROT0, "Konami", "Konami's Open Golf Championship (ver EAD)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING  )
3851GAME( 1994, ggreats2, opengolf, opengolf,  racinfrc, konamigx_state, konamigx, ROT0, "Konami", "Golfing Greats 2 (ver JAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
3851GAME( 1994, opengolf, konamigx, opengolf,  racinfrc, konamigx_state, posthack, ROT0, "Konami", "Konami's Open Golf Championship (ver EAE)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING  )
3852GAME( 1994, opengolf2,opengolf, opengolf,  racinfrc, konamigx_state, posthack, ROT0, "Konami", "Konami's Open Golf Championship (ver EAD)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING  )
3853GAME( 1994, ggreats2, opengolf, opengolf,  racinfrc, konamigx_state, posthack, ROT0, "Konami", "Golfing Greats 2 (ver JAC)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING )
38523854
38533855/* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
38543856/* Type 2: totally stock, sometimes with funny protection chips on the ROM board */
r249131r249132
38633865GAME( 1994, fantjoura,fantjour, gokuparo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Fantastic Journey (ver AAA)", MACHINE_IMPERFECT_GRAPHICS )
38643866GAME( 1994, gokuparo, fantjour, gokuparo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Gokujyou Parodius (ver JAD)", MACHINE_IMPERFECT_GRAPHICS )
38653867
3866GAME( 1994, crzcross, konamigx, gokuparo, puzldama, konamigx_state, konamigx, ROT0, "Konami", "Crazy Cross (ver EAA)", MACHINE_IMPERFECT_GRAPHICS )
3867GAME( 1994, puzldama, crzcross, gokuparo, puzldama, konamigx_state, konamigx, ROT0, "Konami", "Taisen Puzzle-dama (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
3868GAME( 1994, crzcross, konamigx, gokuparo, puzldama, konamigx_state, posthack, ROT0, "Konami", "Crazy Cross (ver EAA)", MACHINE_IMPERFECT_GRAPHICS )
3869GAME( 1994, puzldama, crzcross, gokuparo, puzldama, konamigx_state, posthack, ROT0, "Konami", "Taisen Puzzle-dama (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
38683870
3869GAME( 1995, tbyahhoo, konamigx, tbyahhoo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Twin Bee Yahhoo! (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
3871GAME( 1995, tbyahhoo, konamigx, tbyahhoo, gokuparo, konamigx_state, posthack, ROT0, "Konami", "Twin Bee Yahhoo! (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
38703872
38713873GAME( 1995, tkmmpzdm, konamigx, konamigx_6bpp, puzldama, konamigx_state, konamigx, ROT0, "Konami", "Tokimeki Memorial Taisen Puzzle-dama (ver JAB)", MACHINE_IMPERFECT_GRAPHICS )
38723874
3873GAME( 1995, dragoona, konamigx, dragoonj, dragoonj, konamigx_state, konamigx, ROT0, "Konami", "Dragoon Might (ver AAB)", MACHINE_IMPERFECT_GRAPHICS )
3874GAME( 1995, dragoonj, dragoona, dragoonj, dragoonj, konamigx_state, konamigx, ROT0, "Konami", "Dragoon Might (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
3875GAME( 1995, dragoona, konamigx, dragoonj, dragoonj, konamigx_state, posthack, ROT0, "Konami", "Dragoon Might (ver AAB)", MACHINE_IMPERFECT_GRAPHICS )
3876GAME( 1995, dragoonj, dragoona, dragoonj, dragoonj, konamigx_state, posthack, ROT0, "Konami", "Dragoon Might (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
38753877
38763878GAME( 1996, sexyparo, konamigx, sexyparo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Sexy Parodius (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
38773879GAME( 1996, sexyparoa,sexyparo, sexyparo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Sexy Parodius (ver AAA)", MACHINE_IMPERFECT_GRAPHICS )
r249131r249132
38923894/* Type 3: dual monitor output and 53936 on the ROM board, external palette RAM */
38933895/* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
38943896
3895GAME( 1994, soccerss,  konamigx, gxtype3,  type3, konamigx_state, konamigx, ROT0, "Konami", "Soccer Superstars (ver EAC)", MACHINE_IMPERFECT_GRAPHICS ) // writes EAA to EEPROM, but should be version EAC according to labels
3896GAME( 1994, soccerssu, soccerss, gxtype3,  type3, konamigx_state, konamigx, ROT0, "Konami", "Soccer Superstars (ver UAC)", MACHINE_IMPERFECT_GRAPHICS ) // writes UAA to EEPROM, but should be version UAC according to labels
3897GAME( 1994, soccerssj, soccerss, gxtype3,  type3, konamigx_state, konamigx, ROT0, "Konami", "Soccer Superstars (ver JAC)", MACHINE_IMPERFECT_GRAPHICS ) // writes JAB to EEPROM, but should be version JAC according to labels
3898GAME( 1994, soccerssja,soccerss, gxtype3,  type3, konamigx_state, konamigx, ROT0, "Konami", "Soccer Superstars (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
3899GAME( 1994, soccerssa, soccerss, gxtype3,  type3, konamigx_state, konamigx, ROT0, "Konami", "Soccer Superstars (ver AAA)", MACHINE_IMPERFECT_GRAPHICS )
3897GAME( 1994, soccerss,  konamigx, gxtype3,  type3, konamigx_state, posthack, ROT0, "Konami", "Soccer Superstars (ver EAC)", MACHINE_IMPERFECT_GRAPHICS ) // writes EAA to EEPROM, but should be version EAC according to labels
3898GAME( 1994, soccerssu, soccerss, gxtype3,  type3, konamigx_state, posthack, ROT0, "Konami", "Soccer Superstars (ver UAC)", MACHINE_IMPERFECT_GRAPHICS ) // writes UAA to EEPROM, but should be version UAC according to labels
3899GAME( 1994, soccerssj, soccerss, gxtype3,  type3, konamigx_state, posthack, ROT0, "Konami", "Soccer Superstars (ver JAC)", MACHINE_IMPERFECT_GRAPHICS ) // writes JAB to EEPROM, but should be version JAC according to labels
3900GAME( 1994, soccerssja,soccerss, gxtype3,  type3, konamigx_state, posthack, ROT0, "Konami", "Soccer Superstars (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
3901GAME( 1994, soccerssa, soccerss, gxtype3,  type3, konamigx_state, posthack, ROT0, "Konami", "Soccer Superstars (ver AAA)", MACHINE_IMPERFECT_GRAPHICS )
39003902
39013903/* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
39023904/* Type 4: dual monitor output and 53936 on the ROM board, external palette RAM, DMA protection */
trunk/src/mame/drivers/konendev.c
r249131r249132
6363
6464   DECLARE_READ32_MEMBER(mcu2_r);
6565   DECLARE_READ32_MEMBER(ifu2_r);
66   DECLARE_READ32_MEMBER(unk_78800004_r);
67   DECLARE_READ32_MEMBER(unk_78a00000_r);
68   DECLARE_READ32_MEMBER(unk_78e00000_r);
66   DECLARE_READ32_MEMBER(ctrl0_r);
67   DECLARE_READ32_MEMBER(ctrl1_r);
68   DECLARE_READ32_MEMBER(ctrl2_r);
69   DECLARE_READ32_MEMBER(rtc_r);
70   DECLARE_WRITE32_MEMBER(rtc_w);
6971   DECLARE_WRITE32_MEMBER(eeprom_w);
72   DECLARE_READ32_MEMBER(sound_data_r);
73   DECLARE_WRITE32_MEMBER(sound_data_w);
7074
7175   DECLARE_WRITE_LINE_MEMBER(gcu_interrupt);
76   INTERRUPT_GEN_MEMBER(vbl_interrupt);
7277
78   UINT8 rtc_dev_r(UINT32 reg);
79
7380   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7481};
7582
r249131r249132
94101   {
95102      r &= ~0x4000;       // MCU2 presence
96103      r &= ~0x2000;       // IFU2 presence
97      r &= ~0x1000;       // FMU2 presence
104      r &= ~0x1000;       // FMU2 presence   
98105   }
99106   if (ACCESSING_BITS_0_7)
100107   {
101      r |= 0x40;          // logic door
102      r |= 0x04;          // battery 1 status
103      r |= 0x10;          // battery 2 status
108      r |= ioport("DSW")->read() & 0xff;
109
110      //r |= 0x80;         // 0 = ram clear?
111      //r |= 0x40;         // logic door
112      r |= 0x04;         // battery 1 status
113      r |= 0x10;         // battery 2 status     
104114   }
105115
106116   return r;
r249131r249132
118128   return r;
119129}
120130
121READ32_MEMBER(konendev_state::unk_78800004_r)
131// This seems to be Epson RTC-72423
132UINT8 konendev_state::rtc_dev_r(UINT32 reg)
122133{
123   return 0xffffffff;
134   switch (reg)
135   {
136      case 0x0:      return 9;
137      case 0x1:      return 5;
138      case 0x2:      return 3;
139      case 0x3:      return 2;
140      case 0x4:      return 1;
141      case 0x5:      return 0;
142      case 0x6:      return 7;
143      case 0x7:      return 2;
144      case 0x8:      return 2;
145      case 0x9:      return 1;
146      case 0xa:      return 5;
147      case 0xb:      return 1;
148      case 0xc:      return 3;
149   }
150
151   return 0;
124152}
125153
126READ32_MEMBER(konendev_state::unk_78a00000_r)
154READ32_MEMBER(konendev_state::rtc_r)
127155{
128   return 0xffffffff;
156   UINT32 r = 0;
157   
158   if (ACCESSING_BITS_24_31)
159      r |= (UINT32)(rtc_dev_r(offset * 4)) << 24;
160   if (ACCESSING_BITS_16_23)
161      r |= (UINT32)(rtc_dev_r((offset * 4)+1)) << 16;
162   if (ACCESSING_BITS_8_15)
163      r |= (UINT32)(rtc_dev_r((offset * 4)+2)) << 8;
164   if (ACCESSING_BITS_0_7)
165      r |= (UINT32)(rtc_dev_r((offset * 4)+3));
166
167   return r;
129168}
130169
131READ32_MEMBER(konendev_state::unk_78e00000_r)
170WRITE32_MEMBER(konendev_state::rtc_w)
132171{
133   return 0xffffffff;
134172}
135173
174READ32_MEMBER(konendev_state::ctrl0_r)
175{
176   return ((UINT32)(ioport("IN1")->read() & 0xffff) << 16) | 0xffff;
177}
178
179READ32_MEMBER(konendev_state::ctrl1_r)
180{
181   // 0x01000000 = main door optic
182   // 0x00000010 = hard meter access
183
184   return 0xfeffffef;
185}
186
187READ32_MEMBER(konendev_state::ctrl2_r)
188{
189   return ((UINT32)(ioport("IN0")->read() & 0xffff) << 16) | 0xffff;
190}
191
136192WRITE32_MEMBER(konendev_state::eeprom_w)
137193{
138194   if (ACCESSING_BITS_0_7)
r249131r249132
143199   }
144200}
145201
202READ32_MEMBER(konendev_state::sound_data_r)
203{
204   return 0xffffffff;
205}
206
207WRITE32_MEMBER(konendev_state::sound_data_w)
208{
209}
210
146211static ADDRESS_MAP_START( konendev_map, AS_PROGRAM, 32, konendev_state )
147212   AM_RANGE(0x00000000, 0x00ffffff) AM_RAM
148213   AM_RANGE(0x78000000, 0x78000003) AM_READ(mcu2_r)
214   AM_RANGE(0x78080000, 0x7808000f) AM_READWRITE(rtc_r, rtc_w)
215   AM_RANGE(0x780c0000, 0x780c0003) AM_READWRITE(sound_data_r, sound_data_w)
149216   AM_RANGE(0x78100000, 0x78100003) AM_WRITE(eeprom_w)
150217   AM_RANGE(0x78800000, 0x78800003) AM_READ(ifu2_r)
151   AM_RANGE(0x78800004, 0x78800007) AM_READ(unk_78800004_r)
152   AM_RANGE(0x78a00000, 0x78a0001f) AM_READ(unk_78a00000_r)
153   AM_RANGE(0x78e00000, 0x78e00003) AM_READ(unk_78e00000_r)
154//  AM_RANGE(0x78000000, 0x78000003) AM_READNOP
155//  AM_RANGE(0x78100000, 0x7810001b) AM_RAM
156//  AM_RANGE(0x78a00014, 0x78a00017) AM_WRITENOP
218   AM_RANGE(0x78800004, 0x78800007) AM_READ(ctrl0_r)
219   AM_RANGE(0x78a00000, 0x78a0001f) AM_READ(ctrl1_r)
220   AM_RANGE(0x78e00000, 0x78e00003) AM_READ(ctrl2_r)
157221   AM_RANGE(0x79000000, 0x79000003) AM_DEVWRITE("gcu", k057714_device, fifo_w)
158222   AM_RANGE(0x79800000, 0x798000ff) AM_DEVREADWRITE("gcu", k057714_device, read, write)
159223   AM_RANGE(0x7a000000, 0x7a01ffff) AM_RAM AM_SHARE("nvram0")
r249131r249132
164228
165229
166230static INPUT_PORTS_START( konendev )
231   PORT_START("IN0")
232   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE )      // "Take Win" button
233   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_GAMBLE_BET )      // "Gamble" button
234   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON1 )         // "25 Lines" button
235   PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON2 )         // "20 Lines" button
236   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON3 )         // "15 Lines" button
237   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON4 )         // "10 Lines" button   
238   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON5 )         // "5 Lines" button
239   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON6 )         // "1 Line" button   
240   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON7 )         // "Reserve" button
241   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON8 )         // "Collect" button
242   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON9 )         // "Bet 20" button
243   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON10 )         // "Bet 10" button
244   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON11 )         // "Bet 5" button
245   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON12 )         // "Bet 3" button
246   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON13 )         // "Bet 2" button
247   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON14 )         // "Bet 1" button
248
249   PORT_START("IN1")
250   PORT_BIT( 0xc000, IP_ACTIVE_LOW, IPT_UNUSED )
251   PORT_SERVICE( 0x2000, IP_ACTIVE_LOW )               // Audit key
252   PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON16 )         // Reset key   
253   PORT_DIPNAME( 0x0800, 0x0800, "Main door switch" )
254   PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
255   PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
256   PORT_DIPNAME( 0x0400, 0x0400, "Cashbox door" )
257   PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
258   PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
259   PORT_BIT( 0x0300, IP_ACTIVE_LOW, IPT_UNUSED )
260   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED )
261   PORT_DIPNAME( 0x0040, 0x0040, "BNA Door" )
262   PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
263   PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
264   PORT_DIPNAME( 0x0020, 0x0020, "BNA Transport Exist" )
265   PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
266   PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
267   PORT_DIPNAME( 0x0010, 0x0010, "BNA Stacker Exist" )
268   PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
269   PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
270   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_UNUSED )
271   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_UNUSED )
272   PORT_DIPNAME( 0x0002, 0x0002, "BNA Power" )
273   PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
274   PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
275   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNUSED )
276
277   PORT_START("DSW")
278   PORT_DIPNAME( 0x80, 0x80, "Ram Clear" )
279   PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
280   PORT_DIPSETTING( 0x00, DEF_STR( On ) )
281   PORT_DIPNAME( 0x40, 0x00, "Logic Door" )
282   PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
283   PORT_DIPSETTING( 0x40, DEF_STR( On ) )
167284INPUT_PORTS_END
168285
169286
170287WRITE_LINE_MEMBER(konendev_state::gcu_interrupt)
171288{
172   m_maincpu->set_input_line(INPUT_LINE_IRQ0, state);
289   m_maincpu->set_input_line(INPUT_LINE_IRQ1, state);
290   m_maincpu->set_input_line(INPUT_LINE_IRQ3, state);
173291}
174292
175293
294INTERRUPT_GEN_MEMBER(konendev_state::vbl_interrupt)
295{
296   device.execute().set_input_line(INPUT_LINE_IRQ1, ASSERT_LINE);
297   device.execute().set_input_line(INPUT_LINE_IRQ3, ASSERT_LINE);
298}
176299
177300static MACHINE_CONFIG_START( konendev, konendev_state )
178301   /* basic machine hardware */
179302   MCFG_CPU_ADD("maincpu", PPC403GCX, 32000000) // Clock unknown
180303   MCFG_CPU_PROGRAM_MAP(konendev_map)
304   MCFG_CPU_VBLANK_INT_DRIVER("screen", konendev_state, vbl_interrupt)
181305
182306   /* video hardware */
183307   MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
r249131r249132
358482DRIVER_INIT_MEMBER(konendev_state,enchlamp)
359483{
360484   UINT32 *rom = (UINT32*)memregion("program")->base();
361   rom[0x24/4] = 0x00002743;       // patch flash checksum for now
485   rom[0x24/4] = 0x00002743;      // patch flash checksum for now
486   
487   // patch sound data checksums
488   rom[0x2d924/4] = 0x00000000;
489   rom[0x2d928/4] = 0x00000000;
490   rom[0x2d934/4] = 0x00000000;
491   rom[0x2d938/4] = 0x00000000;
362492
363   rom[0] = 0xd43eb930;                // new checksum for program rom
493   rom[0] = 0x5782b930;               // new checksum for program rom
364494}
365495
366496// has a flash dump?
trunk/src/mame/drivers/segahang.c
r249131r249132
459459   AM_RANGE(0x07c000, 0x07ffff) AM_RAM AM_SHARE("subram")
460460ADDRESS_MAP_END
461461
462static ADDRESS_MAP_START( fd1094_decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 16, segahang_state )
463   AM_RANGE(0x00000, 0xfffff) AM_ROMBANK("fd1094_decrypted_opcodes")
464ADDRESS_MAP_END
462465
463
464466//**************************************************************************
465467//  SOUND CPU ADDRESS MAPS
466468//**************************************************************************
r249131r249132
938940static MACHINE_CONFIG_DERIVED( shangonro, shangupb )
939941   MCFG_CPU_REPLACE("subcpu", FD1094, 10000000)
940942   MCFG_CPU_PROGRAM_MAP(sub_map)
943   MCFG_CPU_DECRYPTED_OPCODES_MAP(fd1094_decrypted_opcodes_map)
941944MACHINE_CONFIG_END
942945
943946
trunk/src/mame/drivers/segaorun.c
r249131r249132
897897   AM_RANGE(0x500000, 0x507fff) AM_RAM AM_SHARE("workram")
898898ADDRESS_MAP_END
899899
900static ADDRESS_MAP_START( decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 16, segaorun_state )
901   AM_RANGE(0x00000, 0xfffff) AM_ROMBANK("fd1094_decrypted_opcodes")
902ADDRESS_MAP_END
900903
901
902904//**************************************************************************
903905//  SECOND CPU MEMORY MAP
904906//**************************************************************************
r249131r249132
12291231   // basic machine hardware
12301232   MCFG_CPU_REPLACE("maincpu", FD1094, MASTER_CLOCK/4)
12311233   MCFG_CPU_PROGRAM_MAP(outrun_map)
1234   MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
12321235MACHINE_CONFIG_END
12331236
12341237static MACHINE_CONFIG_DERIVED( outrun_fd1089a, outrun )
trunk/src/mame/drivers/segas16a.c
r249131r249132
961961   AM_RANGE(0xc70000, 0xc73fff) AM_MIRROR(0x38c000) AM_RAM AM_SHARE("nvram")
962962ADDRESS_MAP_END
963963
964static ADDRESS_MAP_START( decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 16, segas16a_state )
965   AM_RANGE(0x00000, 0xfffff) AM_ROMBANK("fd1094_decrypted_opcodes")
966ADDRESS_MAP_END
964967
965
966968//**************************************************************************
967969//  SOUND CPU ADDRESS MAPS
968970//**************************************************************************
r249131r249132
19461948static MACHINE_CONFIG_DERIVED( system16a_fd1094, system16a )
19471949   MCFG_CPU_REPLACE("maincpu", FD1094, 10000000)
19481950   MCFG_CPU_PROGRAM_MAP(system16a_map)
1951   MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
19491952   MCFG_CPU_VBLANK_INT_DRIVER("screen", segas16a_state, irq4_line_hold)
19501953MACHINE_CONFIG_END
19511954
trunk/src/mame/drivers/segas16b.c
r249131r249132
17141714   AM_RANGE(0x500000, 0x503fff) AM_RAM AM_SHARE("workram")
17151715ADDRESS_MAP_END
17161716
1717static ADDRESS_MAP_START( decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 16, segas16b_state )
1718   AM_RANGE(0x00000, 0xfffff) AM_ROMBANK("fd1094_decrypted_opcodes")
1719ADDRESS_MAP_END
17171720
17181721static ADDRESS_MAP_START( system16c_map, AS_PROGRAM, 16, segas16b_state )
17191722   ADDRESS_MAP_UNMAP_HIGH
r249131r249132
33463349static MACHINE_CONFIG_DERIVED( system16b_fd1094, system16b )
33473350   MCFG_CPU_REPLACE("maincpu", FD1094, MASTER_CLOCK_10MHz)
33483351   MCFG_CPU_PROGRAM_MAP(system16b_map)
3352   MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
33493353   MCFG_CPU_VBLANK_INT_DRIVER("screen", segas16b_state, irq4_line_hold)
33503354MACHINE_CONFIG_END
33513355
trunk/src/mame/drivers/segas18.c
r249131r249132
522522   AM_RANGE(0x500000, 0x503fff) AM_RAM AM_SHARE("workram")
523523ADDRESS_MAP_END
524524
525static ADDRESS_MAP_START( decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 16, segas18_state )
526   AM_RANGE(0x00000, 0xfffff) AM_ROMBANK("fd1094_decrypted_opcodes")
527ADDRESS_MAP_END
525528
526
527529/*************************************
528530 *
529531 *  Sound CPU memory handlers
r249131r249132
12621264   // basic machine hardware
12631265   MCFG_CPU_REPLACE("maincpu", FD1094, 10000000)
12641266   MCFG_CPU_PROGRAM_MAP(system18_map)
1267   MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
12651268   MCFG_CPU_VBLANK_INT_DRIVER("screen", segas18_state, irq4_line_hold)
12661269MACHINE_CONFIG_END
12671270
trunk/src/mame/drivers/segas24.c
r249131r249132
12451245   AM_RANGE(0xf80000, 0xfbffff) AM_MIRROR(0x040000) AM_RAM AM_SHARE("share1")
12461246ADDRESS_MAP_END
12471247
1248static ADDRESS_MAP_START( decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 16, segas24_state )
1249   AM_RANGE(0x00000, 0xfffff) AM_ROMBANK("fd1094_decrypted_opcodes")
1250ADDRESS_MAP_END
12481251
1249
12501252/*************************************
12511253 *
12521254 *  Generic driver initialization
r249131r249132
19631965static MACHINE_CONFIG_DERIVED( system24_floppy_fd1094, system24_floppy )
19641966   MCFG_CPU_REPLACE("subcpu", FD1094, MASTER_CLOCK/2)
19651967   MCFG_CPU_PROGRAM_MAP(system24_cpu2_map)
1968   MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
19661969MACHINE_CONFIG_END
19671970
19681971
trunk/src/mame/drivers/segaxbd.c
r249131r249132
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//**************************************************************************
r249131r249132
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
r249131r249132
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//**************************************************************************
r249131r249132
9011089   AM_RANGE(0x3fc000, 0x3fffff) AM_RAM AM_SHARE("backup2")
9021090ADDRESS_MAP_END
9031091
1092static ADDRESS_MAP_START( decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 16, segaxbd_state )
1093   AM_RANGE(0x00000, 0xfffff) AM_ROMBANK("fd1094_decrypted_opcodes")
1094ADDRESS_MAP_END
9041095
905
9061096//**************************************************************************
9071097//  SUB CPU ADDRESS MAPS
9081098//**************************************************************************
r249131r249132
10271217//**************************************************************************
10281218
10291219static INPUT_PORTS_START( xboard_generic )
1030   PORT_START("IO0PORTA")
1220   PORT_START("mainpcb:IO0PORTA")
10311221   PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNKNOWN )
10321222   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SPECIAL )    // /INTR of ADC0804
10331223   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
10341224
1035   PORT_START("IO0PORTB")
1225   PORT_START("mainpcb:IO0PORTB")
10361226   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
10371227
1038   PORT_START("IO1PORTA")
1228   PORT_START("mainpcb:IO1PORTA")
10391229   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )    // button? not used by any game we have
10401230   PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW )
10411231   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
r249131r249132
10451235   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
10461236   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
10471237
1048   PORT_START("IO1PORTB")
1238   PORT_START("mainpcb:IO1PORTB")
10491239   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
10501240
1051   PORT_START("IO1PORTC")
1241   PORT_START("mainpcb:IO1PORTC")
10521242   SEGA_COINAGE_LOC(SWA)
10531243
1054   PORT_START("IO1PORTD")
1244   PORT_START("mainpcb:IO1PORTD")
10551245   PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_LOW, "SWB:1" )
10561246   PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_LOW, "SWB:2" )
10571247   PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SWB:3" )
r249131r249132
10711261static INPUT_PORTS_START( aburner )
10721262   PORT_INCLUDE( xboard_generic )
10731263
1074   PORT_MODIFY("IO1PORTA")
1264   PORT_MODIFY("mainpcb:IO1PORTA")
10751265   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Vulcan")
10761266   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Missile")
10771267
1078   PORT_MODIFY("IO1PORTD")
1268   PORT_MODIFY("mainpcb:IO1PORTD")
10791269   PORT_DIPNAME( 0x03, 0x01, "Cabinet Type" ) PORT_DIPLOCATION("SWB:1,2")
10801270   PORT_DIPSETTING(    0x03, "Moving Deluxe" )
10811271   PORT_DIPSETTING(    0x02, "Moving Standard" )
r249131r249132
11001290   PORT_DIPSETTING(    0x40, DEF_STR( Hard ) )
11011291   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
11021292
1103   PORT_START("ADC0")  // stick X
1293   PORT_START("mainpcb:ADC0")  // stick X
11041294   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4)
11051295
1106   PORT_START("ADC1")  // stick Y
1296   PORT_START("mainpcb:ADC1")  // stick Y
11071297   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x40,0xc0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
11081298
1109   PORT_START("ADC2")  // throttle
1299   PORT_START("mainpcb:ADC2")  // throttle
11101300   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_SENSITIVITY(100) PORT_KEYDELTA(79)
11111301
1112   PORT_START("ADC3")  // motor Y
1302   PORT_START("mainpcb:ADC3")  // motor Y
11131303   PORT_BIT( 0xff, (0xb0+0x50)/2, IPT_SPECIAL )
11141304
1115   PORT_START("ADC4")  // motor X
1305   PORT_START("mainpcb:ADC4")  // motor X
11161306   PORT_BIT( 0xff, (0xb0+0x50)/2, IPT_SPECIAL )
11171307INPUT_PORTS_END
11181308
r249131r249132
11201310static INPUT_PORTS_START( aburner2 )
11211311   PORT_INCLUDE( aburner )
11221312
1123   PORT_MODIFY("IO1PORTD")
1313   PORT_MODIFY("mainpcb:IO1PORTD")
11241314   PORT_DIPNAME( 0x03, 0x01, "Cabinet Type" ) PORT_DIPLOCATION("SWB:1,2")
11251315   PORT_DIPSETTING(    0x03, "Moving Deluxe" )
11261316   PORT_DIPSETTING(    0x02, "Moving Standard" )
r249131r249132
11481338static INPUT_PORTS_START( thndrbld )
11491339   PORT_INCLUDE( xboard_generic )
11501340
1151   PORT_MODIFY("IO1PORTA")
1341   PORT_MODIFY("mainpcb:IO1PORTA")
11521342   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Cannon")
11531343   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Missile")
11541344
1155   PORT_MODIFY("IO1PORTD")
1345   PORT_MODIFY("mainpcb:IO1PORTD")
11561346   PORT_DIPNAME( 0x01, 0x01, "Cabinet Type" ) PORT_DIPLOCATION("SWB:1")
11571347   PORT_DIPSETTING(    0x01, "Econ Upright" )
11581348   PORT_DIPSETTING(    0x00, "Mini Upright" )  // see note about inputs below
r249131r249132
11801370   //  On the "Standing" cabinet, the joystick Y axis is reversed.
11811371   //  On the "Mini Upright" cabinet, the inputs conform to After Burner II:
11821372   //  the X axis is (un-)reversed, and the throttle and Y axis switch places
1183   PORT_START("ADC0")  // stick X
1373   PORT_START("mainpcb:ADC0")  // stick X
11841374   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
11851375
1186   PORT_START("ADC1")  // "slottle"
1376   PORT_START("mainpcb:ADC1")  // "slottle"
11871377   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_SENSITIVITY(100) PORT_KEYDELTA(79)
11881378
1189   PORT_START("ADC2")  // stick Y
1379   PORT_START("mainpcb:ADC2")  // stick Y
11901380   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4)
11911381INPUT_PORTS_END
11921382
r249131r249132
11941384static INPUT_PORTS_START( thndrbd1 )
11951385   PORT_INCLUDE( thndrbld )
11961386
1197   PORT_MODIFY("IO1PORTD")
1387   PORT_MODIFY("mainpcb:IO1PORTD")
11981388   PORT_DIPNAME( 0x01, 0x01, "Cabinet Type" ) PORT_DIPLOCATION("SWB:1")
11991389   PORT_DIPSETTING(    0x01, "Deluxe" )
12001390   PORT_DIPSETTING(    0x00, "Standing" )  // see note about inputs above
r249131r249132
12341424static INPUT_PORTS_START( lastsurv )
12351425   PORT_INCLUDE( xboard_generic )
12361426
1237   PORT_MODIFY("IO1PORTA")
1427   PORT_MODIFY("mainpcb:IO1PORTA")
12381428   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 )
12391429
1240   PORT_START("MUX0")
1430   PORT_START("mainpcb:MUX0")
12411431   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
12421432   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
12431433   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
12441434   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
12451435   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)
12461436
1247   PORT_START("MUX1")
1437   PORT_START("mainpcb:MUX1")
12481438   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
12491439   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
12501440   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
12511441   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
12521442   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)
12531443
1254   PORT_START("MUX2")
1444   PORT_START("mainpcb:MUX2")
12551445   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
12561446   PORT_BIT( 0x0e, IP_ACTIVE_LOW, IPT_UNUSED )
12571447   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
12581448   PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
12591449
1260   PORT_START("MUX3")
1450   PORT_START("mainpcb:MUX3")
12611451   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
12621452
1263   PORT_MODIFY("IO1PORTD")
1453   PORT_MODIFY("mainpcb:IO1PORTD")
12641454   PORT_DIPNAME( 0x03, 0x03, "I.D. No" ) PORT_DIPLOCATION("SWB:1,2")
12651455   PORT_DIPSETTING(    0x03, "1" )
12661456   PORT_DIPSETTING(    0x02, "2" )
r249131r249132
12881478static INPUT_PORTS_START( loffire )
12891479   PORT_INCLUDE( xboard_generic )
12901480
1291   PORT_MODIFY("IO1PORTA")
1481   PORT_MODIFY("mainpcb:IO1PORTA")
12921482   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
12931483   PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW )
12941484   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE2 )
12951485   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 )
12961486   PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNKNOWN )
12971487
1298   PORT_MODIFY("IO1PORTB")
1488   PORT_MODIFY("mainpcb:IO1PORTB")
12991489   PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN )
13001490   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
13011491   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
13021492   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
13031493   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
13041494
1305   PORT_MODIFY("IO1PORTD")
1495   PORT_MODIFY("mainpcb:IO1PORTD")
13061496   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Language ) ) PORT_DIPLOCATION("SWB:1")
13071497   PORT_DIPSETTING(    0x01, DEF_STR( Japanese ) )
13081498   PORT_DIPSETTING(    0x00, DEF_STR( English ) )
r249131r249132
13271517   PORT_DIPSETTING(    0x80, DEF_STR( Single ) )
13281518   PORT_DIPSETTING(    0x00, "Twin" )
13291519
1330   PORT_START("ADC0")
1520   PORT_START("mainpcb:ADC0")
13311521   PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(5)
13321522
1333   PORT_START("ADC1")
1523   PORT_START("mainpcb:ADC1")
13341524   PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(5)
13351525
1336   PORT_START("ADC2")
1526   PORT_START("mainpcb:ADC2")
13371527   PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_PLAYER(2)
13381528
1339   PORT_START("ADC3")
1529   PORT_START("mainpcb:ADC3")
13401530   PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_PLAYER(2)
13411531INPUT_PORTS_END
13421532
r249131r249132
13441534static INPUT_PORTS_START( rachero )
13451535   PORT_INCLUDE( xboard_generic )
13461536
1347   PORT_MODIFY("IO1PORTA")
1537   PORT_MODIFY("mainpcb:IO1PORTA")
13481538   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Move to Center")
13491539   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Suicide")
13501540
1351   PORT_MODIFY("IO1PORTD")
1541   PORT_MODIFY("mainpcb:IO1PORTD")
13521542   PORT_DIPNAME( 0x01, 0x01, "Credits" ) PORT_DIPLOCATION("SWB:1")
13531543   PORT_DIPSETTING(    0x01, "1 to Start, 1 to Continue" )
13541544   PORT_DIPSETTING(    0x00, "2 to Start, 1 to Continue" )
r249131r249132
13691559   PORT_DIPSETTING(    0x80, DEF_STR( Hard ) )
13701560   PORT_DIPSETTING(    0x00, DEF_STR( Very_Hard ) )
13711561
1372   PORT_START("ADC0")  // steering
1562   PORT_START("mainpcb:ADC0")  // steering
13731563   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
13741564
1375   PORT_START("ADC1")  // gas pedal
1565   PORT_START("mainpcb:ADC1")  // gas pedal
13761566   PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20)
13771567
1378   PORT_START("ADC2")  // brake
1568   PORT_START("mainpcb:ADC2")  // brake
13791569   PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(100) PORT_KEYDELTA(40)
13801570INPUT_PORTS_END
13811571
r249131r249132
13831573static INPUT_PORTS_START( smgp )
13841574   PORT_INCLUDE( xboard_generic )
13851575
1386   PORT_MODIFY("IO1PORTA")
1576   PORT_MODIFY("mainpcb:IO1PORTA")
13871577   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Shift Down") PORT_CODE(KEYCODE_A)
13881578   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Shift Up") PORT_CODE(KEYCODE_Z)
13891579
1390   PORT_MODIFY("IO1PORTD")
1580   PORT_MODIFY("mainpcb:IO1PORTD")
13911581   PORT_DIPNAME( 0x07, 0x07, "Machine ID" ) PORT_DIPLOCATION("SWB:1,2,3")
13921582   PORT_DIPSETTING(    0x07, "1" )
13931583   PORT_DIPSETTING(    0x06, "2" )
r249131r249132
14121602   PORT_DIPSETTING(    0x40, DEF_STR( Upright ) )
14131603//  PORT_DIPSETTING(    0x00, "Deluxe" )
14141604
1415   PORT_START("ADC0")  // steering
1605   PORT_START("mainpcb:ADC0")  // steering
14161606   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x38,0xc8) PORT_SENSITIVITY(100) PORT_KEYDELTA(4)
14171607
1418   PORT_START("ADC1")  // gas pedal
1608   PORT_START("mainpcb:ADC1")  // gas pedal
14191609   PORT_BIT( 0xff, 0x38, IPT_PEDAL ) PORT_MINMAX(0x38,0xb8) PORT_SENSITIVITY(100) PORT_KEYDELTA(20)
14201610
1421   PORT_START("ADC2")  // brake
1611   PORT_START("mainpcb:ADC2")  // brake
14221612   PORT_BIT( 0xff, 0x28, IPT_PEDAL2 ) PORT_MINMAX(0x28,0xa8) PORT_SENSITIVITY(100) PORT_KEYDELTA(40)
14231613INPUT_PORTS_END
14241614
r249131r249132
14261616static INPUT_PORTS_START( abcop )
14271617   PORT_INCLUDE( xboard_generic )
14281618
1429   PORT_MODIFY("IO1PORTA")
1619   PORT_MODIFY("mainpcb:IO1PORTA")
14301620   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Jump")
14311621
1432   PORT_MODIFY("IO1PORTD")
1622   PORT_MODIFY("mainpcb:IO1PORTD")
14331623   PORT_DIPNAME( 0x01, 0x01, "Credits" ) PORT_DIPLOCATION("SWB:1")
14341624   PORT_DIPSETTING(    0x01, "1 to Start, 1 to Continue" )
14351625   PORT_DIPSETTING(    0x00, "2 to Start, 1 to Continue" )
r249131r249132
14501640   PORT_DIPSETTING(    0x80, DEF_STR( Hard ) )
14511641   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
14521642
1453   PORT_START("ADC0")  // steering
1643   PORT_START("mainpcb:ADC0")  // steering
14541644   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
14551645
1456   PORT_START("ADC1")  // accelerator
1646   PORT_START("mainpcb:ADC1")  // accelerator
14571647   PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20)
14581648INPUT_PORTS_END
14591649
14601650
14611651static INPUT_PORTS_START( gprider )
1462   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 )
14631656
1464   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 )
14651665   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Shift Down") PORT_CODE(KEYCODE_A)
14661666   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 )
14671669
1468   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")
14691677   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1,2")
14701678   PORT_DIPSETTING(    0x03, "Ride On" )
14711679   PORT_DIPSETTING(    0x02, DEF_STR( Upright ) )
14721680//  PORT_DIPSETTING(    0x01, DEF_STR( Unused ) )
14731681//  PORT_DIPSETTING(    0x00, DEF_STR( Unused ) )
1682   PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SWB:3" )
14741683   PORT_DIPNAME( 0x08, 0x08, "ID No." ) PORT_DIPLOCATION("SWB:4")
14751684   PORT_DIPSETTING(    0x08, "Main" ) // Player 1 (Blue)
14761685   PORT_DIPSETTING(    0x00, "Slave" ) // Player 2 (Red)
14771686   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:5")
14781687   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
14791688   PORT_DIPSETTING(    0x10, DEF_STR( On ) )
1689   PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SWB:6" )
14801690   PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:7,8")
14811691   PORT_DIPSETTING(    0x80, DEF_STR( Easy ) )
14821692   PORT_DIPSETTING(    0xc0, DEF_STR( Normal ) )
14831693   PORT_DIPSETTING(    0x40, DEF_STR( Hard ) )
14841694   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
14851695
1486   PORT_START("ADC0")  // steering
1696   PORT_START("mainpcb:ADC0")  // steering
14871697   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4)
14881698
1489   PORT_START("ADC1")  // gas pedal
1699   PORT_START("mainpcb:ADC1")  // gas pedal
14901700   PORT_BIT( 0xff, 0x10, IPT_PEDAL ) PORT_MINMAX(0x10,0xef) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_REVERSE
14911701
1492   PORT_START("ADC2")  // brake
1702   PORT_START("mainpcb:ADC2")  // brake
14931703   PORT_BIT( 0xff, 0x10, IPT_PEDAL2 ) PORT_MINMAX(0x10,0xef) PORT_SENSITIVITY(100) PORT_KEYDELTA(40) PORT_REVERSE
14941704INPUT_PORTS_END
14951705
1706static INPUT_PORTS_START( gprider_double )
1707   PORT_INCLUDE( gprider )
14961708
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
14971765static INPUT_PORTS_START( rascot )
14981766   PORT_INCLUDE( xboard_generic )
14991767
r249131r249132
15151783//  GENERIC MACHINE DRIVERS
15161784//**************************************************************************
15171785
1518static MACHINE_CONFIG_START( xboard, segaxbd_state )
1786static MACHINE_CONFIG_FRAGMENT( xboard )
15191787
15201788   // basic machine hardware
15211789   MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK/4)
r249131r249132
15551823   MCFG_SEGA_XBOARD_SPRITES_ADD("sprites")
15561824   MCFG_SEGAIC16VID_ADD("segaic16vid")
15571825   MCFG_SEGAIC16VID_GFXDECODE("gfxdecode")
1826   MCFG_VIDEO_SET_SCREEN("screen")
1827
15581828   MCFG_SEGAIC16_ROAD_ADD("segaic16road")
15591829
15601830   // sound hardware
r249131r249132
15711841   MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
15721842MACHINE_CONFIG_END
15731843
1574static 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
15751865   MCFG_CPU_REPLACE("maincpu", FD1094, MASTER_CLOCK/4)
15761866   MCFG_CPU_PROGRAM_MAP(main_map)
1867   MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
15771868MACHINE_CONFIG_END
15781869
1870const device_type SEGA_XBD_FD1094_DEVICE = &device_creator<segaxbd_fd1094_state>;
15791871
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}
15801876
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
15811894//**************************************************************************
15821895//  GAME-SPECIFIC MACHINE DRIVERS
15831896//**************************************************************************
15841897
1585static MACHINE_CONFIG_DERIVED( lastsurv_fd1094, xboard_fd1094 )
1898static MACHINE_CONFIG_FRAGMENT( lastsurv_fd1094 )
15861899
1900   MCFG_FRAGMENT_ADD( xboard_fd1094 )
1901
15871902   // basic machine hardware
15881903   // TODO: network board
15891904
r249131r249132
15941909   MCFG_SOUND_ROUTE(1, "lspeaker", 0.43)
15951910MACHINE_CONFIG_END
15961911
1597static MACHINE_CONFIG_DERIVED( smgp_fd1094, xboard_fd1094 )
1912const device_type SEGA_XBD_LASTSURV_FD1094_DEVICE = &device_creator<segaxbd_lastsurv_fd1094_state>;
15981913
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
15991934   // basic machine hardware
16001935   MCFG_CPU_ADD("soundcpu2", Z80, SOUND_CLOCK/4)
16011936   MCFG_CPU_PROGRAM_MAP(smgp_sound2_map)
r249131r249132
16181953   MCFG_SOUND_ROUTE(1, "rearright", 1.0)
16191954MACHINE_CONFIG_END
16201955
1621static MACHINE_CONFIG_DERIVED( rascot, xboard )
1956const device_type SEGA_XBD_SMGP_FD1094_DEVICE = &device_creator<segaxbd_smgp_fd1094_state>;
16221957
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
16231977   // basic machine hardware
16241978   MCFG_CPU_MODIFY("soundcpu")
16251979   MCFG_CPU_PROGRAM_MAP(rascot_z80_map)
16261980   MCFG_CPU_IO_MAP(rascot_z80_portmap)
16271981MACHINE_CONFIG_END
16281982
1983const device_type SEGA_XBD_RASCOT_DEVICE = &device_creator<segaxbd_rascot_state>;
16291984
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}
16301989
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
16312000//**************************************************************************
16322001//  ROM DEFINITIONS
16332002//**************************************************************************
r249131r249132
16652034//     EPR-10929.13
16662035//
16672036ROM_START( aburner )
1668   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2037   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
16692038   ROM_LOAD16_BYTE( "epr-10940.58", 0x00000, 0x20000, CRC(4d132c4e) SHA1(007af52167c369177b86fc0f8b007ebceba2a30c) )
16702039   ROM_LOAD16_BYTE( "epr-10941.63", 0x00001, 0x20000, CRC(136ea264) SHA1(606ac67db53a6002ed1bd71287aed2e3e720cdf4) )
16712040
1672   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2041   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
16732042   ROM_LOAD16_BYTE( "epr-10927.20", 0x00000, 0x20000, CRC(66d36757) SHA1(c7f6d653fb6bfd629bb62057010d41f3ccfccc4d) )
16742043   ROM_LOAD16_BYTE( "epr-10928.29", 0x00001, 0x20000, CRC(7c01d40b) SHA1(d95b4702a9c813db8bc24c8cd7e0933cbe54a573) )
16752044
1676   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2045   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
16772046   ROM_LOAD( "epr-10926.154", 0x00000, 0x10000, CRC(ed8bd632) SHA1(d5bbd5e257ebef8cfb3baf5fa530b189d9cddb57) )
16782047   ROM_LOAD( "epr-10925.153", 0x10000, 0x10000, CRC(4ef048cc) SHA1(3b386b3bfa600f114dbc19796bb6864a88ff4562) )
16792048   ROM_LOAD( "epr-10924.152", 0x20000, 0x10000, CRC(50c15a6d) SHA1(fc202cc583fc6804647abc884fdf332e72ea3100) )
16802049
1681   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2050   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
16822051   ROM_LOAD32_BYTE( "mpr-10932.90",  0x000000, 0x20000, CRC(cc0821d6) SHA1(22e84419a585209bbda1466d2180504c316a9b7f) ) // First 8 roms are MPR, the rest are EPR
16832052   ROM_LOAD32_BYTE( "mpr-10934.94",  0x000001, 0x20000, CRC(4a51b1fa) SHA1(2eed018a5a1e935bb72b6f440a794466a1397dc5) )
16842053   ROM_LOAD32_BYTE( "mpr-10936.98",  0x000002, 0x20000, CRC(ada70d64) SHA1(ba6203b0fdb4c4998b7be5b446eb8354751d553a) )
r249131r249132
16962065   ROM_LOAD32_BYTE( "epr-10948.101", 0x180002, 0x20000, CRC(64284761) SHA1(9594c671900f7f49d8fb965bc17b4380ce2c68d5) )
16972066   ROM_LOAD32_BYTE( "epr-10949.105", 0x180003, 0x20000, CRC(d8437d92) SHA1(480291358c3d197645d7bd149bdfe5d41071d52d) )
16982067
1699   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
2068   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
17002069   ROM_LOAD( "epr-10922.40", 0x000000, 0x10000, CRC(b49183d4) SHA1(71d87bfbce858049ccde9597ab15575b3cdba892) )
17012070
1702   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2071   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
17032072   ROM_LOAD( "epr-10923.17", 0x00000, 0x10000, CRC(6888eb8f) SHA1(8f8fffb214842a5d356e33f5a97099bc6407384f) )
17042073
1705   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2074   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
17062075   ROM_LOAD( "mpr-10931.11", 0x00000, 0x20000, CRC(9209068f) SHA1(01f3dda1c066d00080c55f2c86c506b6b2407f98) )
17072076   ROM_LOAD( "mpr-10930.12", 0x20000, 0x20000, CRC(6493368b) SHA1(328aff19ff1d1344e9115f519d3962390c4e5ba4) )
17082077   ROM_LOAD( "epr-10929.13", 0x40000, 0x20000, CRC(6c07c78d) SHA1(3868b1824f43e4f2b4fbcd9274bfb3000c889d12) )
r249131r249132
17162085//  CPU: 68000 (317-????)
17172086//
17182087ROM_START( aburner2 )
1719   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2088   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
17202089   ROM_LOAD16_BYTE( "epr-11107.58",  0x00000, 0x20000, CRC(6d87bab7) SHA1(ab34fe78f1f216037b3e3dca3e61f1b31c05cedf) )
17212090   ROM_LOAD16_BYTE( "epr-11108.63", 0x00001, 0x20000, CRC(202a3e1d) SHA1(cf2018bbad366de4b222eae35942636ca68aa581) )
17222091
1723   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2092   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
17242093   ROM_LOAD16_BYTE( "epr-11109.20", 0x00000, 0x20000, CRC(85a0fe07) SHA1(5a3a8fda6cb4898cfece4ec865b81b9b60f9ad55) )
17252094   ROM_LOAD16_BYTE( "epr-11110.29", 0x00001, 0x20000, CRC(f3d6797c) SHA1(17487b89ddbfbcc32a0b52268259f1c8d10fd0b2) )
17262095
1727   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2096   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
17282097   ROM_LOAD( "epr-11115.154", 0x00000, 0x10000, CRC(e8e32921) SHA1(30a96e6b514a475c778296228ba5b6fb96b211b0) )
17292098   ROM_LOAD( "epr-11114.153", 0x10000, 0x10000, CRC(2e97f633) SHA1(074125c106dd00785903b2e10cd7e28d5036eb60) )
17302099   ROM_LOAD( "epr-11113.152", 0x20000, 0x10000, CRC(36058c8c) SHA1(52befe6c6c53f10b6fd4971098abc8f8d3eef9d4) )
17312100
1732   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2101   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
17332102   ROM_LOAD32_BYTE( "mpr-10932.90",  0x000000, 0x20000, CRC(cc0821d6) SHA1(22e84419a585209bbda1466d2180504c316a9b7f) ) // First 8 roms are MPR, the rest are EPR
17342103   ROM_LOAD32_BYTE( "mpr-10934.94",  0x000001, 0x20000, CRC(4a51b1fa) SHA1(2eed018a5a1e935bb72b6f440a794466a1397dc5) )
17352104   ROM_LOAD32_BYTE( "mpr-10936.98",  0x000002, 0x20000, CRC(ada70d64) SHA1(ba6203b0fdb4c4998b7be5b446eb8354751d553a) )
r249131r249132
17472116   ROM_LOAD32_BYTE( "epr-11118.101", 0x180002, 0x20000, CRC(8f38540b) SHA1(1fdfb157d1aca96cb635bd3d64f94545eb88c133) )
17482117   ROM_LOAD32_BYTE( "epr-11119.105", 0x180003, 0x20000, CRC(d0343a8e) SHA1(8c0c0addb6dfd0ea04c3900a9f7f7c731ca6e9ea) )
17492118
1750   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
2119   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
17512120   ROM_LOAD( "epr-10922.40", 0x000000, 0x10000, CRC(b49183d4) SHA1(71d87bfbce858049ccde9597ab15575b3cdba892) )
17522121
1753   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2122   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
17542123   ROM_LOAD( "epr-11112.17",    0x00000, 0x10000, CRC(d777fc6d) SHA1(46ce1c3875437044c0a172960d560d6acd6eaa92) )
17552124
1756   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2125   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
17572126   ROM_LOAD( "mpr-10931.11", 0x00000, 0x20000, CRC(9209068f) SHA1(01f3dda1c066d00080c55f2c86c506b6b2407f98) )
17582127   ROM_LOAD( "mpr-10930.12", 0x20000, 0x20000, CRC(6493368b) SHA1(328aff19ff1d1344e9115f519d3962390c4e5ba4) )
17592128   ROM_LOAD( "epr-11102.13", 0x40000, 0x20000, CRC(6c07c78d) SHA1(3868b1824f43e4f2b4fbcd9274bfb3000c889d12) )
r249131r249132
17652134//  Sega Game ID #: 834-6335-04 AFTER BURNER
17662135//
17672136ROM_START( aburner2g )
1768   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2137   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
17692138   ROM_LOAD16_BYTE( "epr-11173a.58", 0x00000, 0x20000, CRC(cbf480f4) SHA1(f5bab7b2889cdd3f3f2a3e9edd3f17b4d2a5b8a9) )
17702139   ROM_LOAD16_BYTE( "epr-11174a.63", 0x00001, 0x20000, CRC(ed7cba77) SHA1(e81f24fa93329ad25150eada7717cce55fa3887d) )
17712140
1772   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2141   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
17732142   ROM_LOAD16_BYTE( "epr-11109.20", 0x00000, 0x20000, CRC(85a0fe07) SHA1(5a3a8fda6cb4898cfece4ec865b81b9b60f9ad55) )
17742143   ROM_LOAD16_BYTE( "epr-11110.29", 0x00001, 0x20000, CRC(f3d6797c) SHA1(17487b89ddbfbcc32a0b52268259f1c8d10fd0b2) )
17752144
1776   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2145   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
17772146   ROM_LOAD( "epr-11115.154", 0x00000, 0x10000, CRC(e8e32921) SHA1(30a96e6b514a475c778296228ba5b6fb96b211b0) )
17782147   ROM_LOAD( "epr-11114.153", 0x10000, 0x10000, CRC(2e97f633) SHA1(074125c106dd00785903b2e10cd7e28d5036eb60) )
17792148   ROM_LOAD( "epr-11113.152", 0x20000, 0x10000, CRC(36058c8c) SHA1(52befe6c6c53f10b6fd4971098abc8f8d3eef9d4) )
17802149
1781   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2150   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
17822151   ROM_LOAD32_BYTE( "mpr-10932.90",  0x000000, 0x20000, CRC(cc0821d6) SHA1(22e84419a585209bbda1466d2180504c316a9b7f) ) // First 8 roms are MPR, the rest are EPR
17832152   ROM_LOAD32_BYTE( "mpr-10934.94",  0x000001, 0x20000, CRC(4a51b1fa) SHA1(2eed018a5a1e935bb72b6f440a794466a1397dc5) )
17842153   ROM_LOAD32_BYTE( "mpr-10936.98",  0x000002, 0x20000, CRC(ada70d64) SHA1(ba6203b0fdb4c4998b7be5b446eb8354751d553a) )
r249131r249132
17962165   ROM_LOAD32_BYTE( "epr-11118.101", 0x180002, 0x20000, CRC(8f38540b) SHA1(1fdfb157d1aca96cb635bd3d64f94545eb88c133) )
17972166   ROM_LOAD32_BYTE( "epr-11119.105", 0x180003, 0x20000, CRC(d0343a8e) SHA1(8c0c0addb6dfd0ea04c3900a9f7f7c731ca6e9ea) )
17982167
1799   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
2168   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
18002169   ROM_LOAD( "epr-10922.40", 0x000000, 0x10000, CRC(b49183d4) SHA1(71d87bfbce858049ccde9597ab15575b3cdba892) )
18012170
1802   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2171   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
18032172   ROM_LOAD( "epr-11112.17",    0x00000, 0x10000, CRC(d777fc6d) SHA1(46ce1c3875437044c0a172960d560d6acd6eaa92) )
18042173
1805   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2174   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
18062175   ROM_LOAD( "mpr-10931.11", 0x00000, 0x20000, CRC(9209068f) SHA1(01f3dda1c066d00080c55f2c86c506b6b2407f98) ) // There is known to exist German Sample roms
18072176   ROM_LOAD( "mpr-10930.12", 0x20000, 0x20000, CRC(6493368b) SHA1(328aff19ff1d1344e9115f519d3962390c4e5ba4) )
18082177   ROM_LOAD( "epr-10929.13", 0x40000, 0x20000, CRC(6c07c78d) SHA1(3868b1824f43e4f2b4fbcd9274bfb3000c889d12) )
r249131r249132
18172186//  Sega game ID# 834-7218-02
18182187//
18192188ROM_START( loffire )
1820   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2189   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
18212190   ROM_LOAD16_BYTE( "epr-12849.58", 0x000000, 0x20000, CRC(61cfd2fe) SHA1(b47ae9cdf741574ab9128dd3556b1ef35e81a149) )
18222191   ROM_LOAD16_BYTE( "epr-12850.63", 0x000001, 0x20000, CRC(14598f2a) SHA1(13a51529ed32acefd733d9f638621c3e023dbd6d) )
18232192
r249131r249132
18312200   // Nicola Salmoria
18322201   //
18332202
1834   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2203   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
18352204   ROM_LOAD( "317-0136.key", 0x0000, 0x2000, BAD_DUMP CRC(344bfe0c) SHA1(f6bb8045b46f90f8abadf1dc2e1ae1d7cef9c810) )
18362205
1837   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2206   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
18382207   ROM_LOAD16_BYTE( "epr-12804.20", 0x000000, 0x20000, CRC(b853480e) SHA1(de0889e99251da7ea50316282ebf6f434cc2db11) )
18392208   ROM_LOAD16_BYTE( "epr-12805.29", 0x000001, 0x20000, CRC(4a7200c3) SHA1(3e6febed36a55438e0d24441b68f2b7952791584) )
18402209   ROM_LOAD16_BYTE( "epr-12802.21", 0x040000, 0x20000, CRC(d746bb39) SHA1(08dc8cf565997c7e52329961bf7a229a15900cff) )
18412210   ROM_LOAD16_BYTE( "epr-12803.30", 0x040001, 0x20000, CRC(c1d9e751) SHA1(98b3d0b3b31702f6234b5fea2b82d512fc5d3ad2) )
18422211
1843   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2212   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
18442213   ROM_LOAD( "opr-12791.154", 0x00000, 0x10000, CRC(acfa69ba) SHA1(353c43dda6c2282a785646b0a58c90cfd173cd7b) )
18452214   ROM_LOAD( "opr-12792.153", 0x10000, 0x10000, CRC(e506723c) SHA1(d04dc29686fe348f8f715d14c027de0e508c770f) )
18462215   ROM_LOAD( "opr-12793.152", 0x20000, 0x10000, CRC(0ce8cce3) SHA1(1a6b1af2b0b9e8240e681f7b15e9d08595753fe6) )
18472216
1848   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2217   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
18492218   ROM_LOAD32_BYTE( "epr-12787.90",  0x000000, 0x20000, CRC(6431a3a6) SHA1(63a732b7dfd2b83fe7684d47fea26063c4ece099) )
18502219   ROM_LOAD32_BYTE( "epr-12788.94",  0x000001, 0x20000, CRC(1982a0ce) SHA1(e4756f31b0094e0e9ddb2df53a5c938ac5559230) )
18512220   ROM_LOAD32_BYTE( "epr-12789.98",  0x000002, 0x20000, CRC(97d03274) SHA1(b4b9921db53949bc8e91f8a2992e89c172fe8893) )
r249131r249132
18632232   ROM_LOAD32_BYTE( "epr-12777.101", 0x180002, 0x20000, CRC(29d5b953) SHA1(0c932a67e2aecffa7a1dbaa587c96214e1a2cc7f) )
18642233   ROM_LOAD32_BYTE( "epr-12778.105", 0x180003, 0x20000, CRC(2fb68e07) SHA1(8685e72aed115cbc9c6c7511217996a573b30d16) )
18652234
1866   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
2235   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
18672236   // none
18682237
1869   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2238   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
18702239   ROM_LOAD( "epr-12798.17", 0x00000, 0x10000, CRC(0587738d) SHA1(24c79b0c73616d5532a49a2c9121dfabe3a80c7d) )
18712240
1872   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2241   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
18732242   ROM_LOAD( "epr-12799.11", 0x00000, 0x20000, CRC(bc60181c) SHA1(3c89161348db7cafb5636ab4eaba91fbd3541f90) )
18742243   ROM_LOAD( "epr-12800.12", 0x20000, 0x20000, CRC(1158c1a3) SHA1(e1d664a203eed5a0130b39ced7bea8328f06f107) )
18752244   ROM_LOAD( "epr-12801.13", 0x40000, 0x20000, CRC(2d6567c4) SHA1(542be9d8e91cf2df18d95f4e259cfda0560697cb) )
r249131r249132
18812250//  Sega game ID# 834-7218-01
18822251//
18832252ROM_START( loffireu )
1884   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2253   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
18852254   ROM_LOAD16_BYTE( "epr-12847a.58", 0x000000, 0x20000, CRC(c50eb4ed) SHA1(18a46c97aec2fefd160338c1760b6ee367dcb57f) )
18862255   ROM_LOAD16_BYTE( "epr-12848a.63", 0x000001, 0x20000, CRC(f8ff8640) SHA1(193bb8f42f3c5011ad1fbf87215f012de5e950fb) )
18872256
1888   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2257   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
18892258   ROM_LOAD( "317-0135.key", 0x0000, 0x2000, CRC(c53ad019) SHA1(7e6dc2b35ebfeefb507d4d03f5a59574944177d1) )
18902259
1891   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2260   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
18922261   ROM_LOAD16_BYTE( "epr-12804.20", 0x000000, 0x20000, CRC(b853480e) SHA1(de0889e99251da7ea50316282ebf6f434cc2db11) )
18932262   ROM_LOAD16_BYTE( "epr-12805.29", 0x000001, 0x20000, CRC(4a7200c3) SHA1(3e6febed36a55438e0d24441b68f2b7952791584) )
18942263   ROM_LOAD16_BYTE( "epr-12802.21", 0x040000, 0x20000, CRC(d746bb39) SHA1(08dc8cf565997c7e52329961bf7a229a15900cff) )
18952264   ROM_LOAD16_BYTE( "epr-12803.30", 0x040001, 0x20000, CRC(c1d9e751) SHA1(98b3d0b3b31702f6234b5fea2b82d512fc5d3ad2) )
18962265
1897   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2266   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
18982267   ROM_LOAD( "opr-12791.154", 0x00000, 0x10000, CRC(acfa69ba) SHA1(353c43dda6c2282a785646b0a58c90cfd173cd7b) )
18992268   ROM_LOAD( "opr-12792.153", 0x10000, 0x10000, CRC(e506723c) SHA1(d04dc29686fe348f8f715d14c027de0e508c770f) )
19002269   ROM_LOAD( "opr-12793.152", 0x20000, 0x10000, CRC(0ce8cce3) SHA1(1a6b1af2b0b9e8240e681f7b15e9d08595753fe6) )
19012270
1902   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2271   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
19032272   ROM_LOAD32_BYTE( "epr-12787.90",  0x000000, 0x20000, CRC(6431a3a6) SHA1(63a732b7dfd2b83fe7684d47fea26063c4ece099) )
19042273   ROM_LOAD32_BYTE( "epr-12788.94",  0x000001, 0x20000, CRC(1982a0ce) SHA1(e4756f31b0094e0e9ddb2df53a5c938ac5559230) )
19052274   ROM_LOAD32_BYTE( "epr-12789.98",  0x000002, 0x20000, CRC(97d03274) SHA1(b4b9921db53949bc8e91f8a2992e89c172fe8893) )
r249131r249132
19172286   ROM_LOAD32_BYTE( "epr-12777.101", 0x180002, 0x20000, CRC(29d5b953) SHA1(0c932a67e2aecffa7a1dbaa587c96214e1a2cc7f) )
19182287   ROM_LOAD32_BYTE( "epr-12778.105", 0x180003, 0x20000, CRC(2fb68e07) SHA1(8685e72aed115cbc9c6c7511217996a573b30d16) )
19192288
1920   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
2289   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
19212290   // none
19222291
1923   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2292   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
19242293   ROM_LOAD( "epr-12798.17", 0x00000, 0x10000, CRC(0587738d) SHA1(24c79b0c73616d5532a49a2c9121dfabe3a80c7d) )
19252294
1926   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2295   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
19272296   ROM_LOAD( "epr-12799.11", 0x00000, 0x20000, CRC(bc60181c) SHA1(3c89161348db7cafb5636ab4eaba91fbd3541f90) )
19282297   ROM_LOAD( "epr-12800.12", 0x20000, 0x20000, CRC(1158c1a3) SHA1(e1d664a203eed5a0130b39ced7bea8328f06f107) )
19292298   ROM_LOAD( "epr-12801.13", 0x40000, 0x20000, CRC(2d6567c4) SHA1(542be9d8e91cf2df18d95f4e259cfda0560697cb) )
r249131r249132
19352304//  Sega game ID# 834-7218
19362305//
19372306ROM_START( loffirej )
1938   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2307   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
19392308   // repaired using data from the loffire set since they are mostly identical
19402309   // when decrypted, they pass the rom check so are assumed to be ok but double
19412310   // checking them when possible never hurts
19422311   ROM_LOAD16_BYTE( "epr-12794.58", 0x000000, 0x20000, CRC(1e588992) SHA1(fe7107e83c12643e7d22fd4b4cd0c7bcff0d84c3) )
19432312   ROM_LOAD16_BYTE( "epr-12795.63", 0x000001, 0x20000, CRC(d43d7427) SHA1(ecbd425bab6aa65ffbd441d6a0936ac055d5f06d) )
19442313
1945   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2314   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
19462315   ROM_LOAD( "317-0134.key", 0x0000, 0x2000, CRC(732626d4) SHA1(75ed7ca417758dd62afb4edbb9daee754932c392) )
19472316
1948   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2317   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
19492318   ROM_LOAD16_BYTE( "epr-12804.20", 0x000000, 0x20000, CRC(b853480e) SHA1(de0889e99251da7ea50316282ebf6f434cc2db11) )
19502319   ROM_LOAD16_BYTE( "epr-12805.29", 0x000001, 0x20000, CRC(4a7200c3) SHA1(3e6febed36a55438e0d24441b68f2b7952791584) )
19512320   ROM_LOAD16_BYTE( "epr-12802.21", 0x040000, 0x20000, CRC(d746bb39) SHA1(08dc8cf565997c7e52329961bf7a229a15900cff) )
19522321   ROM_LOAD16_BYTE( "epr-12803.30", 0x040001, 0x20000, CRC(c1d9e751) SHA1(98b3d0b3b31702f6234b5fea2b82d512fc5d3ad2) )
19532322
1954   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2323   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
19552324   ROM_LOAD( "opr-12791.154", 0x00000, 0x10000, CRC(acfa69ba) SHA1(353c43dda6c2282a785646b0a58c90cfd173cd7b) )
19562325   ROM_LOAD( "opr-12792.153", 0x10000, 0x10000, CRC(e506723c) SHA1(d04dc29686fe348f8f715d14c027de0e508c770f) )
19572326   ROM_LOAD( "opr-12793.152", 0x20000, 0x10000, CRC(0ce8cce3) SHA1(1a6b1af2b0b9e8240e681f7b15e9d08595753fe6) )
19582327
1959   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2328   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
19602329   ROM_LOAD32_BYTE( "epr-12787.90",  0x000000, 0x20000, CRC(6431a3a6) SHA1(63a732b7dfd2b83fe7684d47fea26063c4ece099) )
19612330   ROM_LOAD32_BYTE( "epr-12788.94",  0x000001, 0x20000, CRC(1982a0ce) SHA1(e4756f31b0094e0e9ddb2df53a5c938ac5559230) )
19622331   ROM_LOAD32_BYTE( "epr-12789.98",  0x000002, 0x20000, CRC(97d03274) SHA1(b4b9921db53949bc8e91f8a2992e89c172fe8893) )
r249131r249132
19742343   ROM_LOAD32_BYTE( "epr-12777.101", 0x180002, 0x20000, CRC(29d5b953) SHA1(0c932a67e2aecffa7a1dbaa587c96214e1a2cc7f) )
19752344   ROM_LOAD32_BYTE( "epr-12778.105", 0x180003, 0x20000, CRC(2fb68e07) SHA1(8685e72aed115cbc9c6c7511217996a573b30d16) )
19762345
1977   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
2346   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
19782347   // none
19792348
1980   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2349   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
19812350   ROM_LOAD( "epr-12798.17", 0x00000, 0x10000, CRC(0587738d) SHA1(24c79b0c73616d5532a49a2c9121dfabe3a80c7d) )
19822351
1983   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2352   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
19842353   ROM_LOAD( "epr-12799.11", 0x00000, 0x20000, CRC(bc60181c) SHA1(3c89161348db7cafb5636ab4eaba91fbd3541f90) )
19852354   ROM_LOAD( "epr-12800.12", 0x20000, 0x20000, CRC(1158c1a3) SHA1(e1d664a203eed5a0130b39ced7bea8328f06f107) )
19862355   ROM_LOAD( "epr-12801.13", 0x40000, 0x20000, CRC(2d6567c4) SHA1(542be9d8e91cf2df18d95f4e259cfda0560697cb) )
r249131r249132
19962365//  GAME BD NO. 834-6493-03 (Uses "MPR" mask roms) or 834-6493-05 (Uses "EPR" eproms)
19972366//
19982367ROM_START( thndrbld )
1999   ROM_REGION( 0x100000, "maincpu", 0 ) // 68000 code
2368   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) // 68000 code
20002369   ROM_LOAD16_BYTE( "epr-11405.ic58", 0x000000, 0x20000, CRC(e057dd5a) SHA1(4c032db4752dfb44dba3def5ee5377fffd94b79c) )
20012370   ROM_LOAD16_BYTE( "epr-11406.ic63", 0x000001, 0x20000, CRC(c6b994b8) SHA1(098b2ae30c4aafea35222369d60f8e89f87639eb) )
20022371   ROM_LOAD16_BYTE( "epr-11306.ic57", 0x040000, 0x20000, CRC(4b95f2b4) SHA1(9e0ff898a2af05c35db3551e52c7485748698c28) )
20032372   ROM_LOAD16_BYTE( "epr-11307.ic62", 0x040001, 0x20000, CRC(2d6833e4) SHA1(b39a744370014237121f0010d18897e63f7058cf) )
20042373
2005   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2374   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
20062375   ROM_LOAD( "317-0056.key", 0x0000, 0x2000, CRC(b40cd2c5) SHA1(865e70bce4f55f6702960d6eaa780b7b1f880e41) )
20072376
2008   ROM_REGION( 0x100000, "subcpu", 0 ) // 2nd 68000 code
2377   ROM_REGION( 0x100000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
20092378   ROM_LOAD16_BYTE( "epr-11390.ic20", 0x000000, 0x20000, CRC(ed988fdb) SHA1(b809b0b7dabd5cb29f5387522c6dfb993d1d0271) )
20102379   ROM_LOAD16_BYTE( "epr-11391.ic29", 0x000001, 0x20000, CRC(12523bc1) SHA1(54635d6c4cc97cf4148dcac3bb2056fc414252f7) )
20112380   ROM_LOAD16_BYTE( "epr-11310.ic21", 0x040000, 0x20000, CRC(5d9fa02c) SHA1(0ca71e35cf9740e38a52960f7d1ef96e7e1dda94) )
20122381   ROM_LOAD16_BYTE( "epr-11311.ic30", 0x040001, 0x20000, CRC(483de21b) SHA1(871f0e856dcc81dcef1d9846261b3c011fa26dde) )
20132382
2014   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2383   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
20152384   ROM_LOAD( "epr-11314.ic154", 0x00000, 0x10000, CRC(d4f954a9) SHA1(93ee8cf8fcf4e1d0dd58329bba9b594431193449) )
20162385   ROM_LOAD( "epr-11315.ic153", 0x10000, 0x10000, CRC(35813088) SHA1(ea1ec982d1509efb26e7b6a150825a6a905efed9) )
20172386   ROM_LOAD( "epr-11316.ic152", 0x20000, 0x10000, CRC(84290dff) SHA1(c13fb6ef12a991f79a95072f953a02b5c992aa2d) )
20182387
2019   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2388   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
20202389   ROM_LOAD32_BYTE( "epr-11323.ic90",  0x000000, 0x20000, CRC(27e40735) SHA1(284ddb88efe741fb78199ea619c9b230ee689803) )
20212390   ROM_LOAD32_BYTE( "epr-11322.ic94",  0x000001, 0x20000, CRC(10364d74) SHA1(393b19a972b5d8817ffd438f13ded73cd58ebe56) )
20222391   ROM_LOAD32_BYTE( "epr-11321.ic98",  0x000002, 0x20000, CRC(8e738f58) SHA1(9f2dceebf01e582cf60f072ae411000d8503894b) )
r249131r249132
20342403   ROM_LOAD32_BYTE( "epr-11393.ic101", 0x180002, 0x20000, CRC(525e2e1d) SHA1(6fd09f775e7e6cad8078513d1af0a8ff40fb1360) ) // replaced from original rev?
20352404   ROM_LOAD32_BYTE( "epr-11392.ic105", 0x180003, 0x20000, CRC(b4a382f7) SHA1(c03a05ba521f654db1a9c5f5717b7a15e5a29d4e) ) //
20362405
2037   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // Road Data
2406   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // Road Data
20382407   ROM_LOAD( "epr-11313.ic29", 0x00000, 0x10000, CRC(6a56c4c3) SHA1(c1b8023cb2ba4e96be052031c24b6ae424225c71) )
20392408
2040   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2409   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
20412410   ROM_LOAD( "epr-11396.ic17", 0x00000, 0x10000, CRC(d37b54a4) SHA1(c230fe7241a1f13ca13506d1492f348f506c40a7) )
20422411
2043   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2412   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
20442413   ROM_LOAD( "epr-11317.ic11", 0x00000, 0x20000, CRC(d4e7ac1f) SHA1(ec5d6e4949938adf56e5613801ae56ff2c3dede5) )
20452414   ROM_LOAD( "epr-11318.ic12", 0x20000, 0x20000, CRC(70d3f02c) SHA1(391aac2bc5673e06150de27e19c7c6359da8ca82) )
20462415   ROM_LOAD( "epr-11319.ic13", 0x40000, 0x20000, CRC(50d9242e) SHA1(a106371bf680c3088ec61f07fc5c4ce467973c15) )
r249131r249132
20532422//  GAME BD NO. 834-6493-03 (Uses "MPR" mask roms) or 834-6493-05 (Uses "EPR" eproms)
20542423//
20552424ROM_START( thndrbld1 )
2056   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2425   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
20572426   ROM_LOAD16_BYTE( "epr-11304.ic58", 0x000000, 0x20000, CRC(a90630ef) SHA1(8f29e020119b2243b1c95e15546af1773327ae85) ) // patched?
20582427   ROM_LOAD16_BYTE( "epr-11305.ic63", 0x000001, 0x20000, CRC(9ba3ef61) SHA1(f75748b37ce35b0ef881804f73417643068dfbb2) ) // patched?
20592428   ROM_LOAD16_BYTE( "epr-11306.ic57", 0x040000, 0x20000, CRC(4b95f2b4) SHA1(9e0ff898a2af05c35db3551e52c7485748698c28) )
20602429   ROM_LOAD16_BYTE( "epr-11307.ic62", 0x040001, 0x20000, CRC(2d6833e4) SHA1(b39a744370014237121f0010d18897e63f7058cf) )
20612430
2062   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2431   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
20632432   ROM_LOAD16_BYTE( "epr-11308.ic20", 0x00000, 0x20000, CRC(7956c238) SHA1(4608225cfd6ea3d38317cbe970f26a5fc2f8e320) )
20642433   ROM_LOAD16_BYTE( "epr-11309.ic29", 0x00001, 0x20000, CRC(c887f620) SHA1(644c47cc2cf75cbe489ea084c13c59d94631e83f) )
20652434   ROM_LOAD16_BYTE( "epr-11310.ic21", 0x040000, 0x20000, CRC(5d9fa02c) SHA1(0ca71e35cf9740e38a52960f7d1ef96e7e1dda94) )
20662435   ROM_LOAD16_BYTE( "epr-11311.ic30", 0x040001, 0x20000, CRC(483de21b) SHA1(871f0e856dcc81dcef1d9846261b3c011fa26dde) )
20672436
2068   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2437   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
20692438   ROM_LOAD( "epr-11314.ic154", 0x00000, 0x10000, CRC(d4f954a9) SHA1(93ee8cf8fcf4e1d0dd58329bba9b594431193449) )
20702439   ROM_LOAD( "epr-11315.ic153", 0x10000, 0x10000, CRC(35813088) SHA1(ea1ec982d1509efb26e7b6a150825a6a905efed9) )
20712440   ROM_LOAD( "epr-11316.ic152", 0x20000, 0x10000, CRC(84290dff) SHA1(c13fb6ef12a991f79a95072f953a02b5c992aa2d) )
20722441
2073   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2442   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
20742443   ROM_LOAD32_BYTE( "epr-11323.ic90",  0x000000, 0x20000, CRC(27e40735) SHA1(284ddb88efe741fb78199ea619c9b230ee689803) )
20752444   ROM_LOAD32_BYTE( "epr-11322.ic94",  0x000001, 0x20000, CRC(10364d74) SHA1(393b19a972b5d8817ffd438f13ded73cd58ebe56) )
20762445   ROM_LOAD32_BYTE( "epr-11321.ic98",  0x000002, 0x20000, CRC(8e738f58) SHA1(9f2dceebf01e582cf60f072ae411000d8503894b) )
r249131r249132
20882457   ROM_LOAD32_BYTE( "epr-11333.ic101", 0x180002, 0x20000, CRC(05a2333f) SHA1(70f213945fa7fe056fe17a02558638e87f2c001e) )
20892458   ROM_LOAD32_BYTE( "epr-11332.ic105", 0x180003, 0x20000, CRC(dc089ec6) SHA1(d72390c45138a507e79af112addbc015560fc248) )
20902459
2091   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // Road Data
2460   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // Road Data
20922461   ROM_LOAD( "epr-11313.ic29", 0x00000, 0x10000, CRC(6a56c4c3) SHA1(c1b8023cb2ba4e96be052031c24b6ae424225c71) )
20932462
2094   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2463   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
20952464   ROM_LOAD( "epr-11312.ic17",   0x00000, 0x10000, CRC(3b974ed2) SHA1(cf18a2d0f01643c747a884bf00e5b7037ba2e64a) )
20962465
2097   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2466   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
20982467   ROM_LOAD( "epr-11317.ic11", 0x00000, 0x20000, CRC(d4e7ac1f) SHA1(ec5d6e4949938adf56e5613801ae56ff2c3dede5) )
20992468   ROM_LOAD( "epr-11318.ic12", 0x20000, 0x20000, CRC(70d3f02c) SHA1(391aac2bc5673e06150de27e19c7c6359da8ca82) )
21002469   ROM_LOAD( "epr-11319.ic13", 0x40000, 0x20000, CRC(50d9242e) SHA1(a106371bf680c3088ec61f07fc5c4ce467973c15) )
r249131r249132
21082477//  CPU: FD1094 (317-0083)
21092478//
21102479ROM_START( lastsurv )
2111   ROM_REGION( 0x100000, "maincpu", 0 ) // 68000 code
2480   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) // 68000 code
21122481   ROM_LOAD16_BYTE( "epr-12046.ic58", 0x000000, 0x20000, CRC(f94f3a1a) SHA1(f509cbccb1f36ce52ed3e44d4d7b31a047050700) )
21132482   ROM_LOAD16_BYTE( "epr-12047.ic63", 0x000001, 0x20000, CRC(1b45c116) SHA1(c46ad622a145baea52d918537fa43a2009ed0cca) )
21142483   ROM_LOAD16_BYTE( "epr-12048.ic57", 0x040000, 0x20000, CRC(648e38ca) SHA1(e5f7fd42f49dbbddd1a812a04d8b95c1a73e640b) )
21152484   ROM_LOAD16_BYTE( "epr-12049.ic62", 0x040001, 0x20000, CRC(6c5c4753) SHA1(6834542005bc8cad7918ae17d3764306d7f9a959) )
21162485
2117   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2486   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
21182487   ROM_LOAD( "317-0083.key", 0x0000, 0x2000, CRC(dca0b9cc) SHA1(77510804d36d486ffa1e0bb5b0a36d43adc63415) )
21192488
2120   ROM_REGION( 0x100000, "subcpu", 0 ) // 2nd 68000 code
2489   ROM_REGION( 0x100000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
21212490   ROM_LOAD16_BYTE( "epr-12050.ic20", 0x000000, 0x20000, CRC(985a0f36) SHA1(bd0a93aa16565c8338db0c67b031bfa409bce5a9) )
21222491   ROM_LOAD16_BYTE( "epr-12051.ic29", 0x000001, 0x20000, CRC(f967d5a8) SHA1(16d742da755b5b7c3c3a9f6b4baaf242e5e54441) )
21232492   ROM_LOAD16_BYTE( "epr-12052.ic21", 0x040000, 0x20000, CRC(9f7a424d) SHA1(b8c2d3aa08ba71f08f2c1f403edac16bf4334184) )
21242493   ROM_LOAD16_BYTE( "epr-12053.ic30", 0x040001, 0x20000, CRC(efcf30f6) SHA1(55cd42c78f117995a89844529386ae3d11c718c1) )
21252494
2126   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2495   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
21272496   ROM_LOAD( "epr-12055.ic154", 0x00000, 0x10000, CRC(150014a4) SHA1(9fbab916ee903c541f61014e137ccecd071b5c3a) )
21282497   ROM_LOAD( "epr-12056.ic153", 0x10000, 0x10000, CRC(3cd4c306) SHA1(b0f178688870c67936a15383024c392072e3bc66) )
21292498   ROM_LOAD( "epr-12057.ic152", 0x20000, 0x10000, CRC(37e91770) SHA1(69e26f4d3c4ebfaf0225a9b1c60038595929ef05) )
21302499
2131   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2500   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
21322501   ROM_LOAD32_BYTE( "mpr-12064.ic90",  0x000000, 0x20000, CRC(84562a69) SHA1(815189a65065def213ef171fe40a44a455dfe75a) )
21332502   ROM_LOAD32_BYTE( "mpr-12063.ic94",  0x000001, 0x20000, CRC(d163727c) SHA1(50ed2b401e107a359874dad5d86eec788f5504eb) )
21342503   ROM_LOAD32_BYTE( "mpr-12062.ic98",  0x000002, 0x20000, CRC(6b57833b) SHA1(1d70894c81a4cd39f43067701a598d2c4fbffa58) )
r249131r249132
21462515   ROM_LOAD32_BYTE( "epr-12074.ic101", 0x180002, 0x20000, CRC(ee6cbb73) SHA1(c68d825ded83dd06ba7b816622db3d57631b4fcc) )
21472516   ROM_LOAD32_BYTE( "epr-12073.ic105", 0x180003, 0x20000, CRC(167e6342) SHA1(2f87074d6821a974cbb137ca2bec28fafc0df46f) )
21482517
2149   ROM_REGION( 0x20000, "gfx3", ROMREGION_ERASE00 ) // Road Data
2518   ROM_REGION( 0x20000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // Road Data
21502519   // none
21512520
2152   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2521   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
21532522   ROM_LOAD( "epr-12054.ic17", 0x00000, 0x10000, CRC(e9b39216) SHA1(142764b40b4db69ff08d28338d1b12b1dd1ed0a0) )
21542523
2155   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2524   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
21562525   ROM_LOAD( "epr-12058.ic11", 0x00000, 0x20000, CRC(4671cb46) SHA1(03ecaa4409a5b86a558313d4ccfb2334f79cff17) )
21572526   ROM_LOAD( "epr-12059.ic12", 0x20000, 0x20000, CRC(8c99aff4) SHA1(818418e4e92f601b09fcaa0979802a2c2c85b435) )
21582527   ROM_LOAD( "epr-12060.ic13", 0x40000, 0x20000, CRC(7ed382b3) SHA1(c87306d1b9edb8b4b97aee4af1317526750e2da2) )
r249131r249132
21662535//  CPU: FD1094 (317-0144)
21672536//
21682537ROM_START( rachero )
2169   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2538   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
21702539   ROM_LOAD16_BYTE( "epr-13129.ic58", 0x00000, 0x20000,CRC(ad9f32e7) SHA1(dbcb3436782bee88dcac05d4f59c97f170a7387d) )
21712540   ROM_LOAD16_BYTE( "epr-13130.ic63", 0x00001, 0x20000,CRC(6022777b) SHA1(965c76565d740be3355c4b403a1629cffb9fcd78) )
21722541   ROM_LOAD16_BYTE( "epr-12855.ic57", 0x40000, 0x20000,CRC(cecf1e73) SHA1(3f8631379f32dbfda7720ef345276f9be23ada06) )
21732542   ROM_LOAD16_BYTE( "epr-12856.ic62", 0x40001, 0x20000,CRC(da900ebb) SHA1(595ed65248185ddf8666b3f30ad6329162116448) )
21742543
2175   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2544   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
21762545   ROM_LOAD( "317-0144.key", 0x0000, 0x2000, CRC(8740bbff) SHA1(de96e606c04a09258b966532fb01a6b4d4db86a6) )
21772546
2178   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2547   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
21792548   ROM_LOAD16_BYTE( "epr-12857.ic20", 0x00000, 0x20000, CRC(8a2328cc) SHA1(c34498428ddfb3eeb986f4153a6165a685d8fc8a) )
21802549   ROM_LOAD16_BYTE( "epr-12858.ic29", 0x00001, 0x20000, CRC(38a248b7) SHA1(a17672123665403c1c56fedab6c8abf44b1131f9) )
21812550
2182   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2551   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
21832552   ROM_LOAD( "epr-12879.ic154", 0x00000, 0x10000, CRC(c1a9de7a) SHA1(2425456a9d4ba92e1f2da6c2f164a6d5a5dee7c7) )
21842553   ROM_LOAD( "epr-12880.ic153", 0x10000, 0x10000, CRC(27ff04a5) SHA1(b554a6e060f4803100be8efa52977b503eb0f31d) )
21852554   ROM_LOAD( "epr-12881.ic152", 0x20000, 0x10000, CRC(72f14491) SHA1(b7a6cbd08470a5edda77cdd0337abd502c4905fd) )
21862555
2187   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2556   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
21882557   ROM_LOAD32_BYTE( "epr-12872.ic90",  0x000000, 0x20000, CRC(68d56139) SHA1(b5f32edbda10c31d52f90defea2bae226676069f) )
21892558   ROM_LOAD32_BYTE( "epr-12873.ic94",  0x000001, 0x20000, CRC(3d3ec450) SHA1(ac96ad8c7b365478bd1e5826a073e242f1208247) )
21902559   ROM_LOAD32_BYTE( "epr-12874.ic98",  0x000002, 0x20000, CRC(7d6bde23) SHA1(88b12ec6386cdad60b0028b72033a0037a0cdbdb) )
r249131r249132
22022571   ROM_LOAD32_BYTE( "epr-12862.ic101", 0x180002, 0x20000, CRC(7d4c3b05) SHA1(4e25a077b403549c681c5047912d0e28f4c07720) )
22032572   ROM_LOAD32_BYTE( "epr-12863.ic105", 0x180003, 0x20000, CRC(85095053) SHA1(f93194ecc0300956280cc0515b3e3ba2c9f71364) )
22042573
2205   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // ground data
2574   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // ground data
22062575   // none
22072576
2208   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2577   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
22092578   ROM_LOAD( "epr-12859.ic17",    0x00000, 0x10000, CRC(d57881da) SHA1(75b7f331ea8c2e33d6236e0c8fc8dabe5eef8160) )
22102579
2211   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2580   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
22122581   ROM_LOAD( "epr-12876.ic11",    0x00000, 0x20000, CRC(f72a34a0) SHA1(28f7d077c24352557da3a91a7e49b0c5b79f2a2e) )
22132582   ROM_LOAD( "epr-12877.ic12",    0x20000, 0x20000, CRC(18c1b6d2) SHA1(860cbb96999ab76c40ce96996bba70c42d845abc) )
22142583   ROM_LOAD( "epr-12878.ic13",    0x40000, 0x20000, CRC(7c212c15) SHA1(360b332d2fb32d88949ff8b357a863ffaaca39c2) )
r249131r249132
22642633//  Ep12587.14
22652634//
22662635ROM_START( smgp )
2267   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2636   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
22682637   ROM_LOAD16_BYTE( "epr-12563b.58", 0x00000, 0x20000, CRC(baf1f333) SHA1(f91a7a311237b9940a44b815716d4226a7ae1e8b) )
22692638   ROM_LOAD16_BYTE( "epr-12564b.63", 0x00001, 0x20000, CRC(b5191af0) SHA1(d6fb19552e4816eefe751907ec55a2e07ad24879) )
22702639
2271   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2640   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
22722641   ROM_LOAD( "317-0126a.key", 0x0000, 0x2000, CRC(2abc1982) SHA1(cc4c36e6ba52431df17c6e36ba08d3a89be7b7e7) )
22732642
2274   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2643   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
22752644   ROM_LOAD16_BYTE( "epr-12576a.20", 0x00000, 0x20000, CRC(2c9599c1) SHA1(79206f38c2976bd9299ed37bf62ac26dd3fba801) )
22762645   ROM_LOAD16_BYTE( "epr-12577a.29", 0x00001, 0x20000, CRC(abf9a50b) SHA1(e367b305cd45900aae4849af4904543f05456dc6) )
22772646
2278   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2647   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
22792648   ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
22802649   ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
22812650   ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
22822651
2283   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2652   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
22842653   ROM_LOAD32_BYTE( "mpr-12425.90",  0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
22852654   ROM_LOAD32_BYTE( "mpr-12426.94",  0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
22862655   ROM_LOAD32_BYTE( "mpr-12427.98",  0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
r249131r249132
22982667   ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set
22992668   ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) //
23002669
2301   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
2670   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
23022671   // none??
23032672
2304   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2673   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
23052674   ROM_LOAD( "epr-12436.17",    0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
23062675
2307   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2676   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
23082677   ROM_LOAD( "mpr-12437.11",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
23092678   ROM_LOAD( "mpr-12438.12",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
23102679   ROM_LOAD( "mpr-12439.13",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
23112680
2312   ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
2681   ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
23132682   ROM_LOAD( "epr-12535.8",     0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
23142683
2315   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..)
23162685   ROM_LOAD( "mpr-12437.20",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
23172686   ROM_LOAD( "mpr-12438.21",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
23182687   ROM_LOAD( "mpr-12439.22",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
23192688
2320   ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
2689   ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
23212690   ROM_LOAD( "epr-12587.14",    0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) )
23222691
2323   ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
2692   ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
23242693   ROM_LOAD( "epr-12505.8",     0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
23252694ROM_END
23262695
r249131r249132
23302699//
23312700// this set contained only prg roms
23322701ROM_START( smgp6 )
2333   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2702   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
23342703   ROM_LOAD16_BYTE( "epr-12563a.58", 0x00000, 0x20000, CRC(2e64b10e) SHA1(2be1ffb3120e4af6a61880e2a2602db07a73f373) )
23352704   ROM_LOAD16_BYTE( "epr-12564a.63", 0x00001, 0x20000, CRC(5baba3e7) SHA1(37194d5a4d3ee48a276f6aeb35b2f20a7661caa2) )
23362705
2337   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2706   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
23382707   ROM_LOAD( "317-0126a.key", 0x0000, 0x2000, CRC(2abc1982) SHA1(cc4c36e6ba52431df17c6e36ba08d3a89be7b7e7) )
23392708
2340   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2709   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
23412710   ROM_LOAD16_BYTE( "epr-12576a.20", 0x00000, 0x20000, CRC(2c9599c1) SHA1(79206f38c2976bd9299ed37bf62ac26dd3fba801) )
23422711   ROM_LOAD16_BYTE( "epr-12577a.29", 0x00001, 0x20000, CRC(abf9a50b) SHA1(e367b305cd45900aae4849af4904543f05456dc6) )
23432712
2344   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2713   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
23452714   ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
23462715   ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
23472716   ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
23482717
2349   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2718   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
23502719   ROM_LOAD32_BYTE( "mpr-12425.90",  0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
23512720   ROM_LOAD32_BYTE( "mpr-12426.94",  0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
23522721   ROM_LOAD32_BYTE( "mpr-12427.98",  0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
r249131r249132
23642733   ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set
23652734   ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) //
23662735
2367   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
2736   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
23682737   // none??
23692738
2370   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2739   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
23712740   ROM_LOAD( "epr-12436.17",    0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
23722741
2373   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2742   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
23742743   ROM_LOAD( "mpr-12437.11",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
23752744   ROM_LOAD( "mpr-12438.12",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
23762745   ROM_LOAD( "mpr-12439.13",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
23772746
2378   ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
2747   ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
23792748   ROM_LOAD( "epr-12535.8",     0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
23802749
2381   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..)
23822751   ROM_LOAD( "mpr-12437.20",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
23832752   ROM_LOAD( "mpr-12438.21",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
23842753   ROM_LOAD( "mpr-12439.22",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
23852754
2386   ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
2755   ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
23872756   ROM_LOAD( "epr-12587.14",    0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
23882757
2389   ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
2758   ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
23902759   ROM_LOAD( "epr-12505.8",     0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
23912760ROM_END
23922761
r249131r249132
24462815//  Ep12505.8
24472816//
24482817ROM_START( smgp5 )
2449   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2818   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
24502819   ROM_LOAD16_BYTE( "epr-12563.58", 0x00000, 0x20000, CRC(6d7325ae) SHA1(bf88ceddc49dab5b439080d5bf0e7e084a79546c) )
24512820   ROM_LOAD16_BYTE( "epr-12564.63", 0x00001, 0x20000, CRC(adfbf921) SHA1(f3321e03dc37b14db065b85d63e321810e4ea797) )
24522821
2453   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2822   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
24542823   ROM_LOAD( "317-0126.key", 0x0000, 0x2000, CRC(4d917996) SHA1(17232c0e35d439a12db3d966064cf00104088903) )
24552824
2456   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2825   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
24572826   ROM_LOAD16_BYTE( "epr-12576.20", 0x00000, 0x20000, CRC(23266b26) SHA1(240b9bf198fd2975851e769766566ec4e8379f87) )
24582827   ROM_LOAD16_BYTE( "epr-12577.29", 0x00001, 0x20000, CRC(d5b53211) SHA1(b11f5c5094eb7ea9578f15489b00d8bbac1edee6) )
24592828
2460   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2829   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
24612830   ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
24622831   ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
24632832   ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
24642833
2465   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2834   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
24662835   ROM_LOAD32_BYTE( "mpr-12425.90",  0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
24672836   ROM_LOAD32_BYTE( "mpr-12426.94",  0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
24682837   ROM_LOAD32_BYTE( "mpr-12427.98",  0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
r249131r249132
24802849   ROM_LOAD32_BYTE( "epr-12415.101", 0x180002, 0x20000, CRC(6080e9ed) SHA1(eb1b871453f76e6a65d20fa9d4bddc1c9f940b4d) )
24812850   ROM_LOAD32_BYTE( "epr-12416.105", 0x180003, 0x20000, CRC(6f1f2769) SHA1(d00d26cd1052d4b46c432b6b69cb2d83179d52a6) )
24822851
2483   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
2852   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
24842853   // none??
24852854
2486   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2855   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
24872856   ROM_LOAD( "epr-12436.17",    0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
24882857
2489   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2858   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
24902859   ROM_LOAD( "mpr-12437.11",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
24912860   ROM_LOAD( "mpr-12438.12",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
24922861   ROM_LOAD( "mpr-12439.13",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
24932862
2494   ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
2863   ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
24952864   ROM_LOAD( "epr-12535.8",     0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) )
24962865
2497   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..)
24982867   ROM_LOAD( "mpr-12437.20",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
24992868   ROM_LOAD( "mpr-12438.21",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
25002869   ROM_LOAD( "mpr-12439.22",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) )
25012870
2502   ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
2871   ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
25032872   ROM_LOAD( "epr-12587.14",    0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
25042873
2505   ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
2874   ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
25062875   ROM_LOAD( "epr-12505.8",     0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) )
25072876ROM_END
25082877
r249131r249132
25112880//  CPU: FD1094 (317-0125a)
25122881//
25132882ROM_START( smgpu )
2514   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2883   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
25152884   ROM_LOAD16_BYTE( "epr-12561c.58", 0x00000, 0x20000, CRC(a5b0f3fe) SHA1(17103e56f822fdb52e72f597c01415ed375aa102) )
25162885   ROM_LOAD16_BYTE( "epr-12562c.63", 0x00001, 0x20000, CRC(799e55f4) SHA1(2e02cdc63bda47b087c81021018287cfa961c083) )
25172886
2518   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2887   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
25192888   ROM_LOAD( "317-0125a.key", 0x0000, 0x2000, CRC(3ecdb120) SHA1(c484198e4509d79214e78d4a47e9a7e339f7a2ed) )
25202889
2521   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2890   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
25222891   ROM_LOAD16_BYTE( "epr-12574a.20", 0x00000, 0x20000, CRC(f8b5c38b) SHA1(0184d5a1b71fb42d33dbaaad99d2c0fbc5750e7e) )
25232892   ROM_LOAD16_BYTE( "epr-12575a.29", 0x00001, 0x20000, CRC(248b1d17) SHA1(22f1e0d0d698abdf0cb1954f1f6382432a12c186) )
25242893
2525   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2894   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
25262895   ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
25272896   ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
25282897   ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
25292898
2530   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2899   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
25312900   ROM_LOAD32_BYTE( "mpr-12425.90",  0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
25322901   ROM_LOAD32_BYTE( "mpr-12426.94",  0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
25332902   ROM_LOAD32_BYTE( "mpr-12427.98",  0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
r249131r249132
25452914   ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set
25462915   ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) //
25472916
2548   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
2917   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
25492918   // none??
25502919
2551   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2920   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
25522921   ROM_LOAD( "epr-12436.17",    0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
25532922
2554   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2923   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
25552924   ROM_LOAD( "mpr-12437.11",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
25562925   ROM_LOAD( "mpr-12438.12",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
25572926   ROM_LOAD( "mpr-12439.13",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
25582927
2559   ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
2928   ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
25602929   ROM_LOAD( "epr-12535.8",     0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
25612930
2562   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..)
25632932   ROM_LOAD( "mpr-12437.20",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
25642933   ROM_LOAD( "mpr-12438.21",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
25652934   ROM_LOAD( "mpr-12439.22",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
25662935
2567   ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
2936   ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
25682937   ROM_LOAD( "epr-12587.14",    0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
25692938
2570   ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
2939   ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
25712940   ROM_LOAD( "epr-12505.8",     0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
25722941ROM_END
25732942
r249131r249132
25772946//
25782947// very first US version with demo sound on by default
25792948ROM_START( smgpu1 )
2580   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
2949   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
25812950   ROM_LOAD16_BYTE( "epr-12561b.58", 0x00000, 0x20000, CRC(80a32655) SHA1(fe1ffa8af9f1ca175ba90b24a0853329b08d19af) )
25822951   ROM_LOAD16_BYTE( "epr-12562b.63", 0x00001, 0x20000, CRC(d525f2a8) SHA1(f3241e11485c7428cd9f081ec6768fda39ae3250) )
25832952
2584   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
2953   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
25852954   ROM_LOAD( "317-0125a.key", 0x0000, 0x2000, CRC(3ecdb120) SHA1(c484198e4509d79214e78d4a47e9a7e339f7a2ed) )
25862955
2587   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
2956   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
25882957   ROM_LOAD16_BYTE( "epr-12574a.20", 0x00000, 0x20000, CRC(f8b5c38b) SHA1(0184d5a1b71fb42d33dbaaad99d2c0fbc5750e7e) )
25892958   ROM_LOAD16_BYTE( "epr-12575a.29", 0x00001, 0x20000, CRC(248b1d17) SHA1(22f1e0d0d698abdf0cb1954f1f6382432a12c186) )
25902959
2591   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
2960   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
25922961   ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
25932962   ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
25942963   ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
25952964
2596   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
2965   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
25972966   ROM_LOAD32_BYTE( "mpr-12425.90",  0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
25982967   ROM_LOAD32_BYTE( "mpr-12426.94",  0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
25992968   ROM_LOAD32_BYTE( "mpr-12427.98",  0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
r249131r249132
26112980   ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set
26122981   ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) //
26132982
2614   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
2983   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
26152984   // none??
26162985
2617   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
2986   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
26182987   ROM_LOAD( "epr-12436.17",    0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
26192988
2620   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2989   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
26212990   ROM_LOAD( "mpr-12437.11",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
26222991   ROM_LOAD( "mpr-12438.12",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
26232992   ROM_LOAD( "mpr-12439.13",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
26242993
2625   ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
2994   ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
26262995   ROM_LOAD( "epr-12535.8",     0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
26272996
2628   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..)
26292998   ROM_LOAD( "mpr-12437.20",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
26302999   ROM_LOAD( "mpr-12438.21",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
26313000   ROM_LOAD( "mpr-12439.22",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
26323001
2633   ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
3002   ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
26343003   ROM_LOAD( "epr-12587.14",    0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
26353004
2636   ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
3005   ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
26373006   ROM_LOAD( "epr-12505.8",     0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
26383007ROM_END
26393008
r249131r249132
26853054//         IC152: epr-12431.152 (27C512 EPROM)
26863055//
26873056ROM_START( smgpu2 )
2688   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
3057   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
26893058   ROM_LOAD16_BYTE( "epr-12561a.58", 0x00000, 0x20000, CRC(e505eb89) SHA1(bfb9a7a8b13ae454a92349e57215562477cd2cd2) )
26903059   ROM_LOAD16_BYTE( "epr-12562a.63", 0x00001, 0x20000, CRC(c3af4215) SHA1(c46829e08d5492515de5d3269b0e899705d0b108) )
26913060
2692   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
3061   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
26933062   ROM_LOAD( "317-0125a.key", 0x0000, 0x2000, CRC(3ecdb120) SHA1(c484198e4509d79214e78d4a47e9a7e339f7a2ed) )
26943063
2695   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
3064   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
26963065   ROM_LOAD16_BYTE( "epr-12574a.20", 0x00000, 0x20000, CRC(f8b5c38b) SHA1(0184d5a1b71fb42d33dbaaad99d2c0fbc5750e7e) )
26973066   ROM_LOAD16_BYTE( "epr-12575a.29", 0x00001, 0x20000, CRC(248b1d17) SHA1(22f1e0d0d698abdf0cb1954f1f6382432a12c186) )
26983067
2699   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3068   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
27003069   ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
27013070   ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
27023071   ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
27033072
2704   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
3073   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
27053074   ROM_LOAD32_BYTE( "mpr-12425.90",  0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
27063075   ROM_LOAD32_BYTE( "mpr-12426.94",  0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
27073076   ROM_LOAD32_BYTE( "mpr-12427.98",  0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
r249131r249132
27193088   ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set
27203089   ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) //
27213090
2722   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
3091   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
27233092   // none??
27243093
2725   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3094   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
27263095   ROM_LOAD( "epr-12436.17",    0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
27273096
2728   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
3097   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
27293098   ROM_LOAD( "mpr-12437.11",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
27303099   ROM_LOAD( "mpr-12438.12",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
27313100   ROM_LOAD( "mpr-12439.13",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
27323101
2733   ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
3102   ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
27343103   ROM_LOAD( "epr-12535.8",     0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
27353104
2736   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..)
27373106   ROM_LOAD( "mpr-12437.20",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
27383107   ROM_LOAD( "mpr-12438.21",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
27393108   ROM_LOAD( "mpr-12439.22",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
27403109
2741   ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
3110   ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
27423111   ROM_LOAD( "epr-12587.14",    0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) )
27433112
2744   ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
3113   ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
27453114   ROM_LOAD( "epr-12505.8",     0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
27463115ROM_END
27473116
r249131r249132
27503119//  CPU: FD1094 (317-0124a)
27513120//
27523121ROM_START( smgpj )
2753   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
3122   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
27543123   ROM_LOAD16_BYTE( "epr-12432b.58", 0x00000, 0x20000, CRC(c1a29db1) SHA1(0122d366899f98f7a60b0c9bddeece7995cebf83) )
27553124   ROM_LOAD16_BYTE( "epr-12433b.63", 0x00001, 0x20000, CRC(97199eb1) SHA1(3baccf8159821d4b4d5caedf5eb691f07372be93) )
27563125
2757   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
3126   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
27583127   ROM_LOAD( "317-0124a.key", 0x0000, 0x2000, CRC(022a8a16) SHA1(4fd80105cb85ccba77cf1e76a21d6e245d5d2e7d) )
27593128
2760   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
3129   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
27613130   ROM_LOAD16_BYTE( "epr-12441a.20", 0x00000, 0x20000, CRC(2c9599c1) SHA1(79206f38c2976bd9299ed37bf62ac26dd3fba801) )
27623131   ROM_LOAD16_BYTE( "epr-12442a.29", 0x00001, 0x20000, CRC(77a5ec16) SHA1(b8cf6a3f12689d89bbdd9fb39d1cb7d1a3c10602) )
27633132
2764   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3133   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
27653134   ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
27663135   ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
27673136   ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
27683137
2769   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
3138   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
27703139   ROM_LOAD32_BYTE( "mpr-12425.90",  0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
27713140   ROM_LOAD32_BYTE( "mpr-12426.94",  0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
27723141   ROM_LOAD32_BYTE( "mpr-12427.98",  0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
r249131r249132
27843153   ROM_LOAD32_BYTE( "epr-12415.101", 0x180002, 0x20000, CRC(6080e9ed) SHA1(eb1b871453f76e6a65d20fa9d4bddc1c9f940b4d) )
27853154   ROM_LOAD32_BYTE( "epr-12416.105", 0x180003, 0x20000, CRC(6f1f2769) SHA1(d00d26cd1052d4b46c432b6b69cb2d83179d52a6) )
27863155
2787   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
3156   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
27883157   // none??
27893158
2790   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3159   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
27913160   ROM_LOAD( "epr-12436.17",    0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
27923161
2793   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
3162   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
27943163   ROM_LOAD( "mpr-12437.11",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
27953164   ROM_LOAD( "mpr-12438.12",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
27963165   ROM_LOAD( "mpr-12439.13",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
27973166
2798   ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
3167   ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
27993168   ROM_LOAD( "epr-12535.8",     0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
28003169
2801   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..)
28023171   ROM_LOAD( "mpr-12437.20",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
28033172   ROM_LOAD( "mpr-12438.21",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
28043173   ROM_LOAD( "mpr-12439.22",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
28053174
2806   ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
3175   ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
28073176   ROM_LOAD( "epr-12587.14",    0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
28083177
2809   ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
3178   ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
28103179   ROM_LOAD( "epr-12505.8",     0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
28113180ROM_END
28123181
r249131r249132
28153184//  CPU: FD1094 (317-0124a)
28163185//
28173186ROM_START( smgpja )
2818   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
3187   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
28193188   ROM_LOAD16_BYTE( "epr-12432a.58", 0x00000, 0x20000, CRC(22517672) SHA1(db9ac40e83e9786bc9dad70f62c2080d3df694ee) )
28203189   ROM_LOAD16_BYTE( "epr-12433a.63", 0x00001, 0x20000, CRC(a46b5d13) SHA1(3a7de5cb6f3e6d726f0ea886a87125dedc6f849f) )
28213190
2822   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
3191   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
28233192   ROM_LOAD( "317-0124a.key", 0x0000, 0x2000, CRC(022a8a16) SHA1(4fd80105cb85ccba77cf1e76a21d6e245d5d2e7d) )
28243193
2825   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
3194   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
28263195   ROM_LOAD16_BYTE( "epr-12441a.20", 0x00000, 0x20000, CRC(2c9599c1) SHA1(79206f38c2976bd9299ed37bf62ac26dd3fba801) )
28273196   ROM_LOAD16_BYTE( "epr-12442a.29", 0x00001, 0x20000, CRC(77a5ec16) SHA1(b8cf6a3f12689d89bbdd9fb39d1cb7d1a3c10602) )
28283197
2829   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3198   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
28303199   ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
28313200   ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
28323201   ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
28333202
2834   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
3203   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
28353204   ROM_LOAD32_BYTE( "mpr-12425.90",  0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
28363205   ROM_LOAD32_BYTE( "mpr-12426.94",  0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
28373206   ROM_LOAD32_BYTE( "mpr-12427.98",  0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
r249131r249132
28493218   ROM_LOAD32_BYTE( "epr-12415.101", 0x180002, 0x20000, CRC(6080e9ed) SHA1(eb1b871453f76e6a65d20fa9d4bddc1c9f940b4d) )
28503219   ROM_LOAD32_BYTE( "epr-12416.105", 0x180003, 0x20000, CRC(6f1f2769) SHA1(d00d26cd1052d4b46c432b6b69cb2d83179d52a6) )
28513220
2852   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
3221   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
28533222   // none??
28543223
2855   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3224   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
28563225   ROM_LOAD( "epr-12436.17",    0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
28573226
2858   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
3227   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
28593228   ROM_LOAD( "mpr-12437.11",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
28603229   ROM_LOAD( "mpr-12438.12",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
28613230   ROM_LOAD( "mpr-12439.13",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
28623231
2863   ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
3232   ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
28643233   ROM_LOAD( "epr-12535.8",     0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
28653234
2866   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..)
28673236   ROM_LOAD( "mpr-12437.20",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
28683237   ROM_LOAD( "mpr-12438.21",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
28693238   ROM_LOAD( "mpr-12439.22",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
28703239
2871   ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
3240   ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
28723241   ROM_LOAD( "epr-12587.14",    0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
28733242
2874   ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
3243   ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
28753244   ROM_LOAD( "epr-12505.8",     0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
28763245ROM_END
28773246
r249131r249132
28833252//  CPU: FD1094 (317-0169b)
28843253//
28853254ROM_START( abcop )
2886   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
3255   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
28873256   ROM_LOAD16_BYTE( "epr-13568b.ic58", 0x00000, 0x20000, CRC(f88db35b) SHA1(7d85c1194a2aa08427333d2ffc2a8d4f7e1beff0) )
28883257   ROM_LOAD16_BYTE( "epr-13556b.ic63", 0x00001, 0x20000, CRC(337bf32e) SHA1(dafb9d9b3baf79ca76355278e8a14294f186790a) )
28893258   ROM_LOAD16_BYTE( "epr-13559.ic57",  0x40000, 0x20000, CRC(4588bf19) SHA1(6a8b3d4450ac0bc41b46e6a4e1b44d82112fcd64) )
28903259   ROM_LOAD16_BYTE( "epr-13558.ic62",  0x40001, 0x20000, CRC(11259ed4) SHA1(e7de174a0bdb1d1111e5e419f1d501ab5be1d32d) )
28913260
2892   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
3261   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
28933262   ROM_LOAD( "317-0169b.key", 0x0000, 0x2000, CRC(058da36e) SHA1(ab3f68a90725063c68fc5d0f8dbece1f8940dc7d) )
28943263
2895   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
3264   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
28963265   ROM_LOAD16_BYTE( "epr-13566.ic20", 0x00000, 0x20000, CRC(22e52f32) SHA1(c67a4ccb88becc58dddcbfea0a1ac2017f7b2929) )
28973266   ROM_LOAD16_BYTE( "epr-13565.ic29", 0x00001, 0x20000, CRC(a21784bd) SHA1(b40ba0ef65bbfe514625253f6aeec14bf4bcf08c) )
28983267
2899   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3268   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
29003269   ROM_LOAD( "opr-13553.ic154", 0x00000, 0x10000, CRC(8c418837) SHA1(e325db39fae768865e20d2cd1ee2b91a9b0165f5) )
29013270   ROM_LOAD( "opr-13554.ic153", 0x10000, 0x10000, CRC(4e3df9f0) SHA1(8b481c2cd25c58612ac8ac3ffb7eeae9ca247d2e) )
29023271   ROM_LOAD( "opr-13555.ic152", 0x20000, 0x10000, CRC(6c4a1d42) SHA1(6c37b045b21173f1e2f7bd19d01c00979b8107fb) )
29033272
2904   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
3273   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
29053274   ROM_LOAD32_BYTE( "opr-13552.ic90",  0x000000, 0x20000, CRC(cc2cf706) SHA1(ad39c22e652ebcd90ffb5e17ae35985645f93c71) )
29063275   ROM_LOAD32_BYTE( "opr-13551.ic94",  0x000001, 0x20000, CRC(d6f276c1) SHA1(9ec68157ea460e09ef4b69aa8ea17687dc47ea59) )
29073276   ROM_LOAD32_BYTE( "opr-13550.ic98",  0x000002, 0x20000, CRC(f16518dd) SHA1(a5f1785cd28f03069cb238ac92c6afb5a26cbd37) )
r249131r249132
29193288   ROM_LOAD32_BYTE( "opr-13538.ic101", 0x180002, 0x20000, CRC(bf9a4586) SHA1(6013dee83375d72d262c8c04c2e668afea2e216c) )
29203289   ROM_LOAD32_BYTE( "opr-13537.ic105", 0x180003, 0x20000, CRC(fa14ed3e) SHA1(d684496ade2517696a56c1423dd4686d283c133f) )
29213290
2922   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // ground data
3291   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // ground data
29233292   ROM_LOAD( "opr-13564.ic40",  0x00000, 0x10000, CRC(e70ba138) SHA1(85eb6618f408642227056d278f10dec8dcc5a80d) )
29243293
2925   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3294   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
29263295   ROM_LOAD( "epr-13560.ic17",    0x00000, 0x10000, CRC(83050925) SHA1(118710e5789c7999bb7326df4d7bd207cbffdfd4) )
29273296
2928   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
3297   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
29293298   ROM_LOAD( "opr-13563.ic11",    0x00000, 0x20000, CRC(4083e74f) SHA1(e48c7ce0aa3406af0bbf79c169a8157693c97041) )
29303299   ROM_LOAD( "opr-13562.ic12",    0x20000, 0x20000, CRC(3cc3968f) SHA1(d25647f6a3fa939ba30e03e7334362ef0749b23a) )
29313300   ROM_LOAD( "opr-13561.ic13",    0x40000, 0x20000, CRC(80a7c02a) SHA1(7e8c1b9ba270d8657dbe90ed8be2e4b6463e5928) )
r249131r249132
29363305//  CPU: FD1094 (317-0169b)
29373306//
29383307ROM_START( abcopj )
2939   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
3308   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
29403309   ROM_LOAD16_BYTE( "epr-13557b.ic58", 0x00000, 0x20000, CRC(554e106a) SHA1(3166957ded67c82d4710bdd20eb88006e14c6a3e) )
29413310   ROM_LOAD16_BYTE( "epr-13556b.ic63", 0x00001, 0x20000, CRC(337bf32e) SHA1(dafb9d9b3baf79ca76355278e8a14294f186790a) )
29423311   ROM_LOAD16_BYTE( "epr-13559.ic57",  0x40000, 0x20000, CRC(4588bf19) SHA1(6a8b3d4450ac0bc41b46e6a4e1b44d82112fcd64) )
29433312   ROM_LOAD16_BYTE( "epr-13558.ic62",  0x40001, 0x20000, CRC(11259ed4) SHA1(e7de174a0bdb1d1111e5e419f1d501ab5be1d32d) )
29443313
2945   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
3314   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
29463315   ROM_LOAD( "317-0169b.key", 0x0000, 0x2000, CRC(058da36e) SHA1(ab3f68a90725063c68fc5d0f8dbece1f8940dc7d) )
29473316
2948   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
3317   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
29493318   ROM_LOAD16_BYTE( "epr-13566.ic20", 0x00000, 0x20000, CRC(22e52f32) SHA1(c67a4ccb88becc58dddcbfea0a1ac2017f7b2929) )
29503319   ROM_LOAD16_BYTE( "epr-13565.ic29", 0x00001, 0x20000, CRC(a21784bd) SHA1(b40ba0ef65bbfe514625253f6aeec14bf4bcf08c) )
29513320
2952   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3321   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
29533322   ROM_LOAD( "opr-13553.ic154", 0x00000, 0x10000, CRC(8c418837) SHA1(e325db39fae768865e20d2cd1ee2b91a9b0165f5) )
29543323   ROM_LOAD( "opr-13554.ic153", 0x10000, 0x10000, CRC(4e3df9f0) SHA1(8b481c2cd25c58612ac8ac3ffb7eeae9ca247d2e) )
29553324   ROM_LOAD( "opr-13555.ic152", 0x20000, 0x10000, CRC(6c4a1d42) SHA1(6c37b045b21173f1e2f7bd19d01c00979b8107fb) )
29563325
2957   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
3326   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
29583327   ROM_LOAD32_BYTE( "opr-13552.ic90",  0x000000, 0x20000, CRC(cc2cf706) SHA1(ad39c22e652ebcd90ffb5e17ae35985645f93c71) )
29593328   ROM_LOAD32_BYTE( "opr-13551.ic94",  0x000001, 0x20000, CRC(d6f276c1) SHA1(9ec68157ea460e09ef4b69aa8ea17687dc47ea59) )
29603329   ROM_LOAD32_BYTE( "opr-13550.ic98",  0x000002, 0x20000, CRC(f16518dd) SHA1(a5f1785cd28f03069cb238ac92c6afb5a26cbd37) )
r249131r249132
29723341   ROM_LOAD32_BYTE( "opr-13538.ic101", 0x180002, 0x20000, CRC(bf9a4586) SHA1(6013dee83375d72d262c8c04c2e668afea2e216c) )
29733342   ROM_LOAD32_BYTE( "opr-13537.ic105", 0x180003, 0x20000, CRC(fa14ed3e) SHA1(d684496ade2517696a56c1423dd4686d283c133f) )
29743343
2975   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // ground data
3344   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // ground data
29763345   ROM_LOAD( "opr-13564.ic40",  0x00000, 0x10000, CRC(e70ba138) SHA1(85eb6618f408642227056d278f10dec8dcc5a80d) )
29773346
2978   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3347   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
29793348   ROM_LOAD( "epr-13560.ic17",    0x00000, 0x10000, CRC(83050925) SHA1(118710e5789c7999bb7326df4d7bd207cbffdfd4) )
29803349
2981   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
3350   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
29823351   ROM_LOAD( "opr-13563.ic11",    0x00000, 0x20000, CRC(4083e74f) SHA1(e48c7ce0aa3406af0bbf79c169a8157693c97041) )
29833352   ROM_LOAD( "opr-13562.ic12",    0x20000, 0x20000, CRC(3cc3968f) SHA1(d25647f6a3fa939ba30e03e7334362ef0749b23a) )
29843353   ROM_LOAD( "opr-13561.ic13",    0x40000, 0x20000, CRC(80a7c02a) SHA1(7e8c1b9ba270d8657dbe90ed8be2e4b6463e5928) )
r249131r249132
29943363//  IC BD Number: 834-7626-03 (roms are "MPR") / 834-7626-05 (roms are "EPR")
29953364//
29963365ROM_START( gprider )
2997   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
3366   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
29983367   ROM_LOAD16_BYTE( "epr-13409.ic58", 0x00000, 0x20000, CRC(9abb81b6) SHA1(f6308f3ec99ee66677e86f6a915e4dff8557d25f) )
29993368   ROM_LOAD16_BYTE( "epr-13408.ic63", 0x00001, 0x20000, CRC(8e410e97) SHA1(2021d738064e57d175b59ba053d9ee35ed4516c8) )
30003369
3001   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
3370   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
30023371   ROM_LOAD( "317-0163.key", 0x0000, 0x2000, CRC(c1d4d207) SHA1(c35b0a49fb6a1e0e9a1c087f0ccd190ad5c2bb2c) )
30033372
3004   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
3373   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
30053374   ROM_LOAD16_BYTE( "epr-13395.ic20", 0x00000, 0x20000,CRC(d6ccfac7) SHA1(9287ab08600163a0d9bd33618c629f99391316bd) )
30063375   ROM_LOAD16_BYTE( "epr-13394.ic29", 0x00001, 0x20000,CRC(914a55ec) SHA1(84fe1df12478990418b46b6800425e5599e9eff9) )
30073376   ROM_LOAD16_BYTE( "epr-13393.ic21", 0x40000, 0x20000,CRC(08d023cc) SHA1(d008d57e494f484a1a84896065d53fb9b1d8d60e) )
30083377   ROM_LOAD16_BYTE( "epr-13392.ic30", 0x40001, 0x20000,CRC(f927cd42) SHA1(67eab328c1fb878fe3d086d0639f5051b135a037) )
30093378
3010   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3379   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
30113380   ROM_LOAD( "epr-13383.ic154", 0x00000, 0x10000, CRC(24f897a7) SHA1(68ba17067d90f07bb5a549017be4773b33ae81d0) )
30123381   ROM_LOAD( "epr-13384.ic153", 0x10000, 0x10000, CRC(fe8238bd) SHA1(601910bd86536e6b08f5308b298c8f01fa60f233) )
30133382   ROM_LOAD( "epr-13385.ic152", 0x20000, 0x10000, CRC(6df1b995) SHA1(5aab19b87a9ef162c30ccf5974cb795e37dba91f) )
30143383
3015   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
3384   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
30163385   ROM_LOAD32_BYTE( "epr-13382.ic90",  0x000000, 0x20000, CRC(01dac209) SHA1(4c6b03308193c472f6cdbcede306f8ce6db0cc4b) )
30173386   ROM_LOAD32_BYTE( "epr-13381.ic94",  0x000001, 0x20000, CRC(3a50d931) SHA1(9d9cb1793f3b8f562ce0ea49f2afeef099f20859) )
30183387   ROM_LOAD32_BYTE( "epr-13380.ic98",  0x000002, 0x20000, CRC(ad1024c8) SHA1(86e941424b2e2e00940886e5daed640a78ed7403) )
r249131r249132
30303399   ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) )
30313400   ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) )
30323401
3033   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
3402   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
30343403   // none??
30353404
3036   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3405   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
30373406   ROM_LOAD( "epr-13388.ic17",    0x00000, 0x10000, CRC(706581e4) SHA1(51c9dbf2bf0d6b8826de24cd33596f5c95136870) )
30383407
3039   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
3408   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
30403409   ROM_LOAD( "epr-13391.ic11",    0x00000, 0x20000, CRC(8c30c867) SHA1(0d735291b1311890938f8a1143fae6af9feb2a69) )
30413410   ROM_LOAD( "epr-13390.ic12",    0x20000, 0x20000, CRC(8c93cd05) SHA1(bb08094abac6c104eddf14f634e9791f03122946) )
30423411   ROM_LOAD( "epr-13389.ic13",    0x40000, 0x20000, CRC(4e4c758e) SHA1(181750dfcdd6d5b28b063c980c251991163d9474) )
30433412ROM_END
30443413
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
30453512//*************************************************************************************************************************
30463513//  GP Rider (US), Sega X-board
30473514//  CPU: FD1094 (317-0162)
r249131r249132
30493516//  IC BD Number: 834-7626-01 (roms are "MPR") / 834-7626-04 (roms are "EPR")
30503517//
30513518ROM_START( gprideru )
3052   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
3519   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
30533520   ROM_LOAD16_BYTE( "epr-13407.ic58", 0x00000, 0x20000, CRC(03553ebd) SHA1(041a71a2dce2ad56360f500cb11e29a629020160) )
30543521   ROM_LOAD16_BYTE( "epr-13406.ic63", 0x00001, 0x20000, CRC(122c711f) SHA1(2bcc51347e771a7e7f770e68b24d82497d24aa2e) )
30553522
3056   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
3523   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
30573524   ROM_LOAD( "317-0162.key", 0x0000, 0x2000, CRC(8067de53) SHA1(e8cd1dfbad94856c6bd51569557667e72f0a5dd4) )
30583525
3059   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
3526   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
30603527   ROM_LOAD16_BYTE( "epr-13395.ic20", 0x00000, 0x20000,CRC(d6ccfac7) SHA1(9287ab08600163a0d9bd33618c629f99391316bd) )
30613528   ROM_LOAD16_BYTE( "epr-13394.ic29", 0x00001, 0x20000,CRC(914a55ec) SHA1(84fe1df12478990418b46b6800425e5599e9eff9) )
30623529   ROM_LOAD16_BYTE( "epr-13393.ic21", 0x40000, 0x20000,CRC(08d023cc) SHA1(d008d57e494f484a1a84896065d53fb9b1d8d60e) )
30633530   ROM_LOAD16_BYTE( "epr-13392.ic30", 0x40001, 0x20000,CRC(f927cd42) SHA1(67eab328c1fb878fe3d086d0639f5051b135a037) )
30643531
3065   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3532   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
30663533   ROM_LOAD( "epr-13383.ic154", 0x00000, 0x10000, CRC(24f897a7) SHA1(68ba17067d90f07bb5a549017be4773b33ae81d0) )
30673534   ROM_LOAD( "epr-13384.ic153", 0x10000, 0x10000, CRC(fe8238bd) SHA1(601910bd86536e6b08f5308b298c8f01fa60f233) )
30683535   ROM_LOAD( "epr-13385.ic152", 0x20000, 0x10000, CRC(6df1b995) SHA1(5aab19b87a9ef162c30ccf5974cb795e37dba91f) )
30693536
3070   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
3537   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
30713538   ROM_LOAD32_BYTE( "epr-13382.ic90",  0x000000, 0x20000, CRC(01dac209) SHA1(4c6b03308193c472f6cdbcede306f8ce6db0cc4b) )
30723539   ROM_LOAD32_BYTE( "epr-13381.ic94",  0x000001, 0x20000, CRC(3a50d931) SHA1(9d9cb1793f3b8f562ce0ea49f2afeef099f20859) )
30733540   ROM_LOAD32_BYTE( "epr-13380.ic98",  0x000002, 0x20000, CRC(ad1024c8) SHA1(86e941424b2e2e00940886e5daed640a78ed7403) )
r249131r249132
30853552   ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) )
30863553   ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) )
30873554
3088   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
3555   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
30893556   // none??
30903557
3091   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3558   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
30923559   ROM_LOAD( "epr-13388.ic17",    0x00000, 0x10000, CRC(706581e4) SHA1(51c9dbf2bf0d6b8826de24cd33596f5c95136870) )
30933560
3094   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
3561   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
30953562   ROM_LOAD( "epr-13391.ic11",    0x00000, 0x20000, CRC(8c30c867) SHA1(0d735291b1311890938f8a1143fae6af9feb2a69) )
30963563   ROM_LOAD( "epr-13390.ic12",    0x20000, 0x20000, CRC(8c93cd05) SHA1(bb08094abac6c104eddf14f634e9791f03122946) )
30973564   ROM_LOAD( "epr-13389.ic13",    0x40000, 0x20000, CRC(4e4c758e) SHA1(181750dfcdd6d5b28b063c980c251991163d9474) )
r249131r249132
31043571//  IC BD Number: 834-7626-01 (roms are "MPR") / 834-7626-04 (roms are "EPR")
31053572//
31063573ROM_START( gpriderj )
3107   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
3574   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
31083575   ROM_LOAD16_BYTE( "epr-13387.ic58", 0x00000, 0x20000, CRC(a1e8b2c5) SHA1(22b70a9074263af808bb9dffee29cbcff7e304e3) )
31093576   ROM_LOAD16_BYTE( "epr-13386.ic63", 0x00001, 0x20000, CRC(d8be9e66) SHA1(d81c03b08fd6b971554b94e0adac131a1dcf3248) )
31103577
3111   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
3578   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
31123579   ROM_LOAD( "317-0161.key", 0x0000, 0x2000, CRC(e38ddc16) SHA1(d1f7f261320cbc605b4f7e5a9c28f49af5471d87) )
31133580
3114   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
3581   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
31153582   ROM_LOAD16_BYTE( "epr-13395.ic20", 0x00000, 0x20000,CRC(d6ccfac7) SHA1(9287ab08600163a0d9bd33618c629f99391316bd) )
31163583   ROM_LOAD16_BYTE( "epr-13394.ic29", 0x00001, 0x20000,CRC(914a55ec) SHA1(84fe1df12478990418b46b6800425e5599e9eff9) )
31173584   ROM_LOAD16_BYTE( "epr-13393.ic21", 0x40000, 0x20000,CRC(08d023cc) SHA1(d008d57e494f484a1a84896065d53fb9b1d8d60e) )
31183585   ROM_LOAD16_BYTE( "epr-13392.ic30", 0x40001, 0x20000,CRC(f927cd42) SHA1(67eab328c1fb878fe3d086d0639f5051b135a037) )
31193586
3120   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3587   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
31213588   ROM_LOAD( "epr-13383.ic154", 0x00000, 0x10000, CRC(24f897a7) SHA1(68ba17067d90f07bb5a549017be4773b33ae81d0) )
31223589   ROM_LOAD( "epr-13384.ic153", 0x10000, 0x10000, CRC(fe8238bd) SHA1(601910bd86536e6b08f5308b298c8f01fa60f233) )
31233590   ROM_LOAD( "epr-13385.ic152", 0x20000, 0x10000, CRC(6df1b995) SHA1(5aab19b87a9ef162c30ccf5974cb795e37dba91f) )
31243591
3125   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
3592   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
31263593   ROM_LOAD32_BYTE( "epr-13382.ic90",  0x000000, 0x20000, CRC(01dac209) SHA1(4c6b03308193c472f6cdbcede306f8ce6db0cc4b) )
31273594   ROM_LOAD32_BYTE( "epr-13381.ic94",  0x000001, 0x20000, CRC(3a50d931) SHA1(9d9cb1793f3b8f562ce0ea49f2afeef099f20859) )
31283595   ROM_LOAD32_BYTE( "epr-13380.ic98",  0x000002, 0x20000, CRC(ad1024c8) SHA1(86e941424b2e2e00940886e5daed640a78ed7403) )
r249131r249132
31403607   ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) )
31413608   ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) )
31423609
3143   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
3610   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
31443611   // none??
31453612
3146   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3613   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
31473614   ROM_LOAD( "epr-13388.ic17",    0x00000, 0x10000, CRC(706581e4) SHA1(51c9dbf2bf0d6b8826de24cd33596f5c95136870) )
31483615
3149   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
3616   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
31503617   ROM_LOAD( "epr-13391.ic11",    0x00000, 0x20000, CRC(8c30c867) SHA1(0d735291b1311890938f8a1143fae6af9feb2a69) )
31513618   ROM_LOAD( "epr-13390.ic12",    0x20000, 0x20000, CRC(8c93cd05) SHA1(bb08094abac6c104eddf14f634e9791f03122946) )
31523619   ROM_LOAD( "epr-13389.ic13",    0x40000, 0x20000, CRC(4e4c758e) SHA1(181750dfcdd6d5b28b063c980c251991163d9474) )
r249131r249132
31603627//  and we only have the ROMs for one of those parts..
31613628//
31623629ROM_START( rascot )
3163   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
3630   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
31643631   ROM_LOAD16_BYTE( "epr-13965a.ic58", 0x00000, 0x20000, CRC(7eacdfb3) SHA1(fad23352d9c5e266ad9f7fe3ccbd29b5b912b90b) )
31653632   ROM_LOAD16_BYTE( "epr-13694a.ic63", 0x00001, 0x20000, CRC(15b86498) SHA1(ccb57063ca53347b5f771b0d7ceaeb9cd50d246a) ) // 13964a?
31663633
3167   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
3634   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
31683635   ROM_LOAD16_BYTE( "epr-13967.ic20", 0x00000, 0x20000, CRC(3b92e2b8) SHA1(5d456d7d6fa540709facda1fd8813707ebfd99d8) )
31693636   ROM_LOAD16_BYTE( "epr-13966.ic29", 0x00001, 0x20000, CRC(eaa644e1) SHA1(b9cc171523995f5120ea7b9748af2f8de697b933) )
31703637
3171   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
3638   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
31723639   ROM_LOAD( "epr-13961", 0x00000, 0x10000, CRC(68038629) SHA1(fbe8605840331096c5156d695772e5f36b2e131a) )
31733640   ROM_LOAD( "epr-13962", 0x10000, 0x10000, CRC(7d7605bc) SHA1(20d3a7116807db7c831e285233d8c67317980e4a) )
31743641   ROM_LOAD( "epr-13963", 0x20000, 0x10000, CRC(f3376b65) SHA1(36b9292518a112409d03b97ea048b7ab22734841) )
31753642
3176   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
3643   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
31773644   ROM_LOAD32_BYTE( "epr-13960",  0x000000, 0x20000, CRC(b974128d) SHA1(14450615b3a10b1de6d098a282f80f80c98c34b8) )
31783645   ROM_LOAD32_BYTE( "epr-13959",  0x000001, 0x20000, CRC(db245b22) SHA1(301b7caea7a3b42ab1ab21894ad61b8b14ef1e7c) )
31793646   ROM_LOAD32_BYTE( "epr-13958",  0x000002, 0x20000, CRC(7803a027) SHA1(ff659da334e4440a6de9be43dde9dfa21dae5f14) )
31803647   ROM_LOAD32_BYTE( "epr-13957",  0x000003, 0x20000, CRC(6d50fb54) SHA1(d21462c30a5555980b964930ddef4dc1963e1d8e) )
31813648
3182   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
3649   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
31833650   // none??
31843651
3185   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
3652   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
31863653   // is this really a sound rom, or a terminal / link rom? accesses unexpected addresses
31873654   ROM_LOAD( "epr-14221a",    0x00000, 0x10000, CRC(0d429ac4) SHA1(9cd4c7e858874f372eb3e409ba37964f1ebf07d5) )
31883655
3189   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
3656   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
31903657   // none??
31913658ROM_END
31923659
r249131r249132
31973664//**************************************************************************
31983665
31993666//-------------------------------------------------
3200//  init_generic - common initialization
3201//-------------------------------------------------
3202
3203DRIVER_INIT_MEMBER(segaxbd_state,generic)
3204{
3205   // allocate a scanline timer
3206   m_scanline_timer = timer_alloc(TID_SCANLINE);
3207
3208   // reset the custom handlers and other pointers
3209   m_iochip_custom_io_w[0][3] = iowrite_delegate(FUNC(segaxbd_state::generic_iochip0_lamps_w), this);
3210
3211   // point globals to allocated memory regions
3212   m_segaic16road->segaic16_roadram_0 = reinterpret_cast<UINT16 *>(memshare("roadram")->ptr());
3213
3214   // save state
3215   save_item(NAME(m_timer_irq_state));
3216   save_item(NAME(m_vblank_irq_state));
3217   save_item(NAME(m_iochip_regs[0]));
3218   save_item(NAME(m_iochip_regs[1]));
3219   save_item(NAME(m_lastsurv_mux));
3220}
3221
3222
3223//-------------------------------------------------
32243667//  init_* - game-specific initialization
32253668//-------------------------------------------------
32263669
3227DRIVER_INIT_MEMBER(segaxbd_state,aburner2)
3670void segaxbd_state::install_aburner2(void)
32283671{
3229   DRIVER_INIT_CALL(generic);
32303672   m_road_priority = 0;
32313673   m_iochip_custom_io_r[0][0] = ioread_delegate(FUNC(segaxbd_state::aburner2_iochip0_motor_r), this);
32323674   m_iochip_custom_io_w[0][1] = iowrite_delegate(FUNC(segaxbd_state::aburner2_iochip0_motor_w), this);
32333675}
32343676
3235DRIVER_INIT_MEMBER(segaxbd_state,lastsurv)
3677DRIVER_INIT_MEMBER(segaxbd_new_state,aburner2)
32363678{
3237   DRIVER_INIT_CALL(generic);
3679   m_mainpcb->install_aburner2();
3680}
3681
3682void segaxbd_state::install_lastsurv(void)
3683{
32383684   m_iochip_custom_io_r[1][1] = ioread_delegate(FUNC(segaxbd_state::lastsurv_iochip1_port_r), this);
32393685   m_iochip_custom_io_w[0][3] = iowrite_delegate(FUNC(segaxbd_state::lastsurv_iochip0_muxer_w), this);
32403686}
32413687
3242DRIVER_INIT_MEMBER(segaxbd_state,loffire)
3688DRIVER_INIT_MEMBER(segaxbd_new_state,lastsurv)
32433689{
3244   DRIVER_INIT_CALL(generic);
3690   m_mainpcb->install_lastsurv();
3691}
3692
3693void segaxbd_state::install_loffire(void)
3694{
32453695   m_adc_reverse[1] = m_adc_reverse[3] = true;
32463696
32473697   // install sync hack on core shared memory
32483698   m_loffire_sync = m_maincpu->space(AS_PROGRAM).install_write_handler(0x29c000, 0x29c011, write16_delegate(FUNC(segaxbd_state::loffire_sync0_w), this));
32493699}
32503700
3251DRIVER_INIT_MEMBER(segaxbd_state,smgp)
3701
3702DRIVER_INIT_MEMBER(segaxbd_new_state,loffire)
32523703{
3253   DRIVER_INIT_CALL(generic);
3704   m_mainpcb->install_loffire();
3705}
3706
3707void segaxbd_state::install_smgp(void)
3708{
32543709   m_iochip_custom_io_r[0][0] = ioread_delegate(FUNC(segaxbd_state::smgp_iochip0_motor_r), this);
32553710   m_iochip_custom_io_w[0][1] = iowrite_delegate(FUNC(segaxbd_state::smgp_iochip0_motor_w), this);
32563711
r249131r249132
32583713   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));
32593714}
32603715
3261DRIVER_INIT_MEMBER(segaxbd_state,rascot)
3716DRIVER_INIT_MEMBER(segaxbd_new_state,smgp)
32623717{
3263   DRIVER_INIT_CALL(generic);
3718   m_mainpcb->install_smgp();
3719}
32643720
3721DRIVER_INIT_MEMBER(segaxbd_new_state,rascot)
3722{
3723#if 0
32653724   // patch out bootup link test
3266   UINT16 *rom = reinterpret_cast<UINT16 *>(memregion("subcpu")->base());
3725   UINT16 *rom = reinterpret_cast<UINT16 *>(memregion("mainpcb:subcpu")->base());
32673726   rom[0xb78/2] = 0x601e; // subrom checksum test
32683727   rom[0x57e/2] = 0x4e71;
32693728   rom[0x5d0/2] = 0x6008;
32703729   rom[0x606/2] = 0x4e71;
32713730
32723731   // map /EXCS space
3273   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
32743734}
32753735
3276DRIVER_INIT_MEMBER(segaxbd_state,gprider)
3736void segaxbd_state::install_gprider(void)
32773737{
3278   DRIVER_INIT_CALL(generic);
32793738   m_gprider_hack = true;
3739
32803740}
32813741
3742DRIVER_INIT_MEMBER(segaxbd_new_state,gprider)
3743{
3744   m_mainpcb->install_gprider();
3745}
32823746
32833747
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
32843758//**************************************************************************
32853759//  GAME DRIVERS
32863760//**************************************************************************
32873761
32883762//    YEAR, NAME,     PARENT,   MACHINE,        INPUT,    INIT,                    MONITOR,COMPANY,FULLNAME,FLAGS
3289GAME( 1987, aburner2, 0,        xboard,         aburner2, segaxbd_state, aburner2, ROT0,   "Sega", "After Burner II", 0 )
3290GAME( 1987, aburner2g,aburner2, xboard,         aburner2, segaxbd_state, aburner2, ROT0,   "Sega", "After Burner II (German)", 0 )
3291GAME( 1987, aburner,  aburner2, xboard,         aburner,  segaxbd_state, aburner2, ROT0,   "Sega", "After Burner", 0 )
3292GAME( 1987, thndrbld, 0,        xboard_fd1094,  thndrbld, segaxbd_state, generic,  ROT0,   "Sega", "Thunder Blade (upright, FD1094 317-0056)", 0 )
3293GAME( 1987, thndrbld1,thndrbld, xboard,         thndrbd1, segaxbd_state, generic,  ROT0,   "Sega", "Thunder Blade (deluxe/standing, unprotected)", 0 )
3294GAME( 1989, lastsurv, 0,        lastsurv_fd1094,lastsurv, segaxbd_state, lastsurv, ROT0,   "Sega", "Last Survivor (Japan, FD1094 317-0083)", 0 )
3295GAME( 1989, loffire,  0,        xboard_fd1094,  loffire,  segaxbd_state, loffire,  ROT0,   "Sega", "Line of Fire / Bakudan Yarou (World, FD1094 317-0136)", 0 )
3296GAME( 1989, loffireu, loffire,  xboard_fd1094,  loffire,  segaxbd_state, loffire,  ROT0,   "Sega", "Line of Fire / Bakudan Yarou (US, FD1094 317-0135)", 0 )
3297GAME( 1989, loffirej, loffire,  xboard_fd1094,  loffire,  segaxbd_state, loffire,  ROT0,   "Sega", "Line of Fire / Bakudan Yarou (Japan, FD1094 317-0134)", 0 )
3298GAME( 1989, rachero,  0,        xboard_fd1094,  rachero,  segaxbd_state, generic,  ROT0,   "Sega", "Racing Hero (FD1094 317-0144)", 0 )
3299GAME( 1989, smgp,     0,        smgp_fd1094,    smgp,     segaxbd_state, smgp,     ROT0,   "Sega", "Super Monaco GP (World, Rev B, FD1094 317-0126a)", 0 )
3300GAME( 1989, smgp6,    smgp,     smgp_fd1094,    smgp,     segaxbd_state, smgp,     ROT0,   "Sega", "Super Monaco GP (World, Rev A, FD1094 317-0126a)", 0 )
3301GAME( 1989, smgp5,    smgp,     smgp_fd1094,    smgp,     segaxbd_state, smgp,     ROT0,   "Sega", "Super Monaco GP (World, FD1094 317-0126)", 0 )
3302GAME( 1989, smgpu,    smgp,     smgp_fd1094,    smgp,     segaxbd_state, smgp,     ROT0,   "Sega", "Super Monaco GP (US, Rev C, FD1094 317-0125a)", 0 )
3303GAME( 1989, smgpu1,   smgp,     smgp_fd1094,    smgp,     segaxbd_state, smgp,     ROT0,   "Sega", "Super Monaco GP (US, Rev B, FD1094 317-0125a)", 0 )
3304GAME( 1989, smgpu2,   smgp,     smgp_fd1094,    smgp,     segaxbd_state, smgp,     ROT0,   "Sega", "Super Monaco GP (US, Rev A, FD1094 317-0125a)", 0 )
3305GAME( 1989, smgpj,    smgp,     smgp_fd1094,    smgp,     segaxbd_state, smgp,     ROT0,   "Sega", "Super Monaco GP (Japan, Rev B, FD1094 317-0124a)", 0 )
3306GAME( 1989, smgpja,   smgp,     smgp_fd1094,    smgp,     segaxbd_state, smgp,     ROT0,   "Sega", "Super Monaco GP (Japan, Rev A, FD1094 317-0124a)", 0 )
3307GAME( 1990, abcop,    0,        xboard_fd1094,  abcop,    segaxbd_state, generic,  ROT0,   "Sega", "A.B. Cop (World, FD1094 317-0169b)", 0 )
3308GAME( 1990, abcopj,   abcop,    xboard_fd1094,  abcop,    segaxbd_state, generic,  ROT0,   "Sega", "A.B. Cop (Japan, FD1094 317-0169b)", 0 )
3309GAME( 1990, gprider,  0,        xboard_fd1094,  gprider,  segaxbd_state, gprider,  ROT0,   "Sega", "GP Rider (World, FD1094 317-0163)", 0 )
3310GAME( 1990, gprideru, gprider,  xboard_fd1094,  gprider,  segaxbd_state, gprider,  ROT0,   "Sega", "GP Rider (US, FD1094 317-0162)", 0 )
3311GAME( 1990, gpriderj, gprider,  xboard_fd1094,  gprider,  segaxbd_state, gprider,  ROT0,   "Sega", "GP Rider (Japan, FD1094 317-0161)", 0 )
3312GAME( 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/drivers/seta.c
r249131r249132
80448044
80458045   /* video hardware */
80468046   MCFG_SCREEN_ADD("screen", RASTER)
8047   MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
80478048   MCFG_SCREEN_REFRESH_RATE(60)
80488049   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
80498050   MCFG_SCREEN_SIZE(64*8, 32*8)
r249131r249132
80818082
80828083   /* video hardware */
80838084   MCFG_SCREEN_ADD("screen", RASTER)
8085   MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
80848086   MCFG_SCREEN_REFRESH_RATE(60)
80858087   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
80868088   MCFG_SCREEN_SIZE(64*8, 32*8)
trunk/src/mame/drivers/suna8.c
r249131r249132
2727
2828- hardhea2: in test mode press P1&P2 button 2 to see a picture of each level
2929- Rough Ranger default dipswitch settings are based on the settings listed in
30  the Sharp Image licensed Rough Ranger manaul / NOTICE sheet dated 8-5-88
31- starfigh video: http://youtu.be/SIwV7wjvnHM -> missing starfield effect!
30  the Sharp Image licensed Rough Ranger manual / NOTICE sheet dated 8-5-88
31- rranger  video: http://www.nicovideo.jp/watch/sm15788808 (not perfect: fireball masking, lev. 5; masking/missing legs, lev. 10)
32- hardhead video: https://youtu.be/zamQvXr9_xs
33- starfigh video: http://youtu.be/SIwV7wjvnHM (missing starfield effect!)
3234- brickzn  video: http://youtu.be/yfU1C7A3iZI (recorded from v6.0, Joystick version)
3335
3436***************************************************************************/
r249131r249132
18851887   MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
18861888   MCFG_PALETTE_ENDIANNESS(ENDIANNESS_BIG)
18871889
1888   MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_textdim12)
1890   MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_text)
18891891
18901892   /* sound hardware */
18911893   MCFG_SPEAKER_STANDARD_MONO("mono")
r249131r249132
19391941   MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
19401942   MCFG_PALETTE_ENDIANNESS(ENDIANNESS_BIG)
19411943
1942   MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_textdim8)
1944   MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_text)
19431945
19441946   /* sound hardware */
19451947   MCFG_SPEAKER_STANDARD_MONO("mono")
r249131r249132
29212923   m_bank1->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000);
29222924}
29232925
2924GAME( 1988, sranger,   0,        rranger,  rranger,  suna8_state, suna8,     ROT0,  "SunA",                       "Super Ranger (v2.0)",                0 )
2925GAME( 1988, rranger,   sranger,  rranger,  rranger,  suna8_state, suna8,     ROT0,  "SunA (Sharp Image license)", "Rough Ranger (v2.0)",                0 )
2926GAME( 1988, rrangerb,  sranger,  rranger,  rranger,  suna8_state, suna8,     ROT0,  "bootleg",                    "Rough Ranger (v2.0, bootleg)",       0 )
2927GAME( 1988, srangero,  sranger,  rranger,  rranger,  suna8_state, suna8,     ROT0,  "SunA",                       "Super Ranger (older)",               0 )
2928GAME( 1988, srangern,  sranger,  rranger,  rranger,  suna8_state, suna8,     ROT0,  "SunA (NOVA license)",        "Super Ranger (older, NOVA license)", 0 )
2929GAME( 1988, srangerw,  sranger,  rranger,  rranger,  suna8_state, suna8,     ROT0,  "SunA (WDK license)",         "Super Ranger (older, WDK license)",  0 )
2930GAME( 1988, srangerb,  sranger,  rranger,  rranger,  suna8_state, suna8,     ROT0,  "bootleg (NYWA)",             "Super Ranger (older, bootleg)",      0 )
2926GAME( 1988, sranger,   0,        rranger,  rranger,  suna8_state, suna8,     ROT0,  "SunA",                       "Super Ranger (v2.0)",                MACHINE_IMPERFECT_GRAPHICS )
2927GAME( 1988, rranger,   sranger,  rranger,  rranger,  suna8_state, suna8,     ROT0,  "SunA (Sharp Image license)", "Rough Ranger (v2.0)",                MACHINE_IMPERFECT_GRAPHICS )
2928GAME( 1988, rrangerb,  sranger,  rranger,  rranger,  suna8_state, suna8,     ROT0,  "bootleg",                    "Rough Ranger (v2.0, bootleg)",       MACHINE_IMPERFECT_GRAPHICS )
2929GAME( 1988, srangero,  sranger,  rranger,  rranger,  suna8_state, suna8,     ROT0,  "SunA",                       "Super Ranger (older)",               MACHINE_IMPERFECT_GRAPHICS )
2930GAME( 1988, srangern,  sranger,  rranger,  rranger,  suna8_state, suna8,     ROT0,  "SunA (NOVA license)",        "Super Ranger (older, NOVA license)", MACHINE_IMPERFECT_GRAPHICS )
2931GAME( 1988, srangerw,  sranger,  rranger,  rranger,  suna8_state, suna8,     ROT0,  "SunA (WDK license)",         "Super Ranger (older, WDK license)",  MACHINE_IMPERFECT_GRAPHICS )
2932GAME( 1988, srangerb,  sranger,  rranger,  rranger,  suna8_state, suna8,     ROT0,  "bootleg (NYWA)",             "Super Ranger (older, bootleg)",      MACHINE_IMPERFECT_GRAPHICS )
29312933
29322934GAME( 1988, hardhead,  0,        hardhead, hardhead, suna8_state, hardhead,  ROT0,  "SunA",                       "Hard Head",                   0 )
29332935GAME( 1988, hardheadb, hardhead, hardhead, hardhead, suna8_state, hardhedb,  ROT0,  "bootleg",                    "Hard Head (bootleg)",         0 )
trunk/src/mame/includes/konamigx.h
r249131r249132
4343      m_light0_y(*this, "LIGHT0_Y"),
4444      m_light1_x(*this, "LIGHT1_X"),
4545      m_light1_y(*this, "LIGHT1_Y"),
46      m_eepromout(*this, "EEPROMOUT")
46      m_eepromout(*this, "EEPROMOUT"),
47      m_use_68020_post_clock_hack(0)
4748      { }
4849
4950   required_device<cpu_device> m_maincpu;
r249131r249132
252253
253254   int m_konamigx_type3_psac2_actual_bank;
254255   //int m_konamigx_type3_psac2_actual_last_bank = 0;
256
257   DECLARE_DRIVER_INIT(posthack);
258   int m_use_68020_post_clock_hack;
255259};
256260
257261// Sprite Callbacks
trunk/src/mame/includes/segaxbd.h
r249131r249132
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();
r249131r249132
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;
r249131r249132
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
r249131r249132
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;
r249131r249132
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];
r249131r249132
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/includes/suna8.h
r249131r249132
6464   }   m_gfxbank_type;
6565   UINT8 m_gfxbank;
6666
67   int m_text_dim; // vertical size of the text layer (0 = no text layer)
67   bool m_has_text; // has text sprites (older games)
6868
6969   // samples
7070   INT16 *m_samplebuf;
r249131r249132
148148   DECLARE_DRIVER_INIT(hardhead);
149149   DECLARE_DRIVER_INIT(suna8);
150150
151   void suna8_vh_start_common(int text_dim, GFXBANK_TYPE_T gfxbank_type);
152   DECLARE_VIDEO_START(suna8_textdim8);
153   DECLARE_VIDEO_START(suna8_textdim12);
151   void suna8_vh_start_common(bool has_text, GFXBANK_TYPE_T gfxbank_type);
152   DECLARE_VIDEO_START(suna8_text);
154153   DECLARE_VIDEO_START(suna8_sparkman);
155154   DECLARE_VIDEO_START(suna8_brickzn);
156155   DECLARE_VIDEO_START(suna8_starfigh);
r249131r249132
168167   void play_sample(int index);
169168   SAMPLES_START_CB_MEMBER(sh_start);
170169
171   void draw_normal_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect, int which);
172   void draw_text_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect);
170   void draw_sprites     (screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int start, int end, int which);
171   void draw_text_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int start, int end, int ypos, bool write_mask);
173172   UINT8 *brickzn_decrypt();
174173};
trunk/src/mame/includes/system1.h
r249131r249132
1313      m_spriteram(*this, "spriteram"),
1414      m_nob_mcu_latch(*this, "nob_mcu_latch"),
1515      m_nob_mcu_status(*this, "nob_mcu_status"),
16      m_paletteram(*this, "palette"),
1617      m_maincpu(*this, "maincpu"),
1718      m_soundcpu(*this, "soundcpu"),
1819      m_mcu(*this, "mcu"),
r249131r249132
3132   required_shared_ptr<UINT8> m_spriteram;
3233   optional_shared_ptr<UINT8> m_nob_mcu_latch;
3334   optional_shared_ptr<UINT8> m_nob_mcu_status;
35   required_shared_ptr<UINT8> m_paletteram;
3436
3537   UINT8 *m_videoram;
3638   void (system1_state::*m_videomode_custom)(UINT8 data, UINT8 prevdata);
trunk/src/mame/machine/fd1094.c
r249131r249132
472472   0xde3a,0xde7a,0xdeba,0xdefa,    0xdffa
473473};
474474
475static ADDRESS_MAP_START( decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 16, fd1094_device )
476   AM_RANGE(0x00000, 0xfffff) AM_ROMBANK(":fd1094_decrypted_opcodes")
477ADDRESS_MAP_END
478475
479476
477
480478//**************************************************************************
481479//  DECRYPTION CACHE HELPER
482480//**************************************************************************
r249131r249132
556554
557555fd1094_device::fd1094_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
558556   : m68000_device(mconfig, tag, owner, clock, "fd1094", __FILE__),
559      m_decrypted_opcodes_bank(*this, ":fd1094_decrypted_opcodes"),
557      m_decrypted_opcodes_bank(*this, "^fd1094_decrypted_opcodes"),
560558      m_state(0x00),
561559      m_irqmode(false),
562560      m_cache(*this),
r249131r249132
568566   m_name.assign("FD1094");
569567
570568   // add the decrypted opcodes map
571   m_address_map[AS_DECRYPTED_OPCODES] = ADDRESS_MAP_NAME(decrypted_opcodes_map);
569//   m_address_map[AS_DECRYPTED_OPCODES] = ADDRESS_MAP_NAME(decrypted_opcodes_map);
572570
573571   // create the initial masked opcode table
574572   memset(m_masked_opcodes_lookup, 0, sizeof(m_masked_opcodes_lookup));
r249131r249132
588586}
589587
590588
589
590
591591//-------------------------------------------------
592592//  change_state - set the current state of the
593593//  chip
trunk/src/mame/mess.lst
r249131r249132
433433prav8m  // Pravetz 8M
434434uniap2en // 1982 Unitron AP II (in English)
435435uniap2pt // 1982 Unitron AP II (in Brazilian Portuguese)
436uniap2ti // 1982 Unitron AP II+ (Teclado Inteligente)
436437apple2jp  // ??? ???? Apple ][j+
437438apple2e   // Jan 1983 Apple //e
438439apple2euk // Jan 1983 Apple //e (UK)
trunk/src/mame/video/hng64.c
r249131r249132
11// license:LGPL-2.1+
22// copyright-holders:David Haywood, Angelo Salese, ElSemi, Andrew Gardner
33#include "emu.h"
4#include "drawgfxm.h"
54#include "includes/hng64.h"
65
76#define BLEND_TEST 0
trunk/src/mame/video/k057714.c
r249131r249132
332332      int li = ((j+y) * fb_pitch) + x;
333333      UINT32 fbaddr0 = m_frame[0].base + li;
334334      UINT32 fbaddr1 = m_frame[1].base + li;
335//      UINT32 fbaddr2 = m_frame[2].base + li;
335      UINT32 fbaddr2 = m_frame[2].base + li;
336336//      UINT32 fbaddr3 = m_frame[3].base + li;
337337
338338      for (int i=0; i < width; i++)
339339      {
340340         UINT16 pix0 = vram16[fbaddr0 ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)];
341341         UINT16 pix1 = vram16[fbaddr1 ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)];
342//          UINT16 pix2 = vram16[fbaddr2 ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)];
342         UINT16 pix2 = vram16[fbaddr2 ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)];
343343//          UINT16 pix3 = vram16[fbaddr3 ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)];
344344
345         if (pix0 & 0x8000)
345         d[i] = 0;
346                     
347         if (pix2 & 0x8000)
346348         {
347            d[i] = pix0 & 0x7fff;
349            d[i] = pix2 & 0x7fff;
348350         }
349         else
351         if (pix1 & 0x8000)
350352         {
351353            d[i] = pix1 & 0x7fff;
352354         }
355         if (pix0 & 0x8000)
356         {
357            d[i] = pix0 & 0x7fff;
358         }
353359
354360         fbaddr0++;
355361         fbaddr1++;
356//          fbaddr2++;
362         fbaddr2++;
357363//          fbaddr3++;
358364      }
359365   }
r249131r249132
472478                  if (sg > 0x1f) sg = 0x1f;
473479                  if (sb > 0x1f) sb = 0x1f;
474480
475                  vram16[fbaddr ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)] = (sr << 10) | (sg << 5) | sb | 0x8000;
481                  vram16[fbaddr ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)] = (sr << 10) | (sg << 5) | sb | (pix & 0x8000);
476482               }
477483            }
478484         }
r249131r249132
480486         {
481487            if (draw)
482488            {
483               vram16[fbaddr ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)] = pix | 0x8000;
489               vram16[fbaddr ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)] = pix;
484490            }
485491         }
486492
r249131r249132
559565   // 0x00: -------- xxxxxxxx xxxxxxxx xxxxxxxx   character data address in vram
560566
561567   // 0x01: -------- -------- ------xx xxxxxxxx   character x
562   // 0x01: -------- ----xxxx xxxxxx-- --------   character y
568   // 0x01: -------- xxxxxxxx xxxxxx-- --------   character y
563569   // 0x01: -------x -------- -------- --------   double height
570   // 0x01: -x------ -------- -------- --------   transparency enable
564571
565572   // 0x02: xxxxxxxx xxxxxxxx -------- --------   color 0
566573   // 0x02: -------- -------- xxxxxxxx xxxxxxxx   color 1
r249131r249132
569576   // 0x03: -------- -------- xxxxxxxx xxxxxxxx   color 3
570577
571578   int x = cmd[1] & 0x3ff;
572   int y = (cmd[1] >> 10) & 0x3ff;
579   int y = (cmd[1] >> 10) & 0x3fff;
573580   UINT32 address = cmd[0] & 0xffffff;
574581   UINT16 color[4];
575582   bool relative_coords = (cmd[0] & 0x10000000) ? true : false;
576583   bool double_height = (cmd[1] & 0x01000000) ? true : false;
584   bool trans_enable = (cmd[1] & 0x40000000) ? true : false;
577585
578586   if (relative_coords)
579587   {
r249131r249132
604612      for (int i=0; i < 8; i++)
605613      {
606614         int p = (line >> ((7-i) * 2)) & 3;
607         vram16[(fbaddr+x+i) ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)] = color[p] | 0x8000;
615         bool draw = !trans_enable || (trans_enable && (color[p] & 0x8000));
616         if (draw)
617            vram16[(fbaddr+x+i) ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)] = color[p] | 0x8000;
608618      }
609619   }
610620}
trunk/src/mame/video/pc080sn.c
r249131r249132
4242*/
4343
4444#include "emu.h"
45#include "drawgfxm.h"
4645#include "pc080sn.h"
4746#include "video/taito_helper.h"
4847
trunk/src/mame/video/pc090oj.c
r249131r249132
6060*/
6161
6262#include "emu.h"
63#include "drawgfxm.h"
6463#include "pc090oj.h"
6564
6665#define PC090OJ_RAM_SIZE 0x4000
trunk/src/mame/video/segaic16.c
r249131r249132
377377   : device_t(mconfig, SEGAIC16VID, "Sega 16-bit Video", tag, owner, clock, "segaic16_video", __FILE__),
378378      device_video_interface(mconfig, *this),
379379      m_display_enable(0),
380      m_tileram(*this, ":tileram"),
381      m_textram(*this, ":textram"),
382      m_rotateram(*this, ":rotateram"),
380      m_tileram(*this, "^tileram"),
381      m_textram(*this, "^textram"),
382      m_rotateram(*this, "^rotateram"),
383383      m_gfxdecode(*this)
384384{
385385   memset(m_rotate, 0, sizeof(m_rotate));
r249131r249132
399399
400400void segaic16_video_device::device_start()
401401{
402   if(!m_gfxdecode->started())
403      throw device_missing_dependencies();
404
402405   save_item(NAME(m_display_enable));
403406}
404407
trunk/src/mame/video/segaic16_road.c
r249131r249132
7373
7474
7575
76static void segaic16_road_hangon_decode(running_machine &machine, struct road_info *info)
76void segaic16_road_device::segaic16_road_hangon_decode(running_machine &machine, struct road_info *info)
7777{
7878   int x, y;
79   const UINT8 *gfx = machine.root_device().memregion("gfx3")->base();
80   int len = machine.root_device().memregion("gfx3")->bytes();
79   const UINT8 *gfx = memregion("^gfx3")->base();
80   int len = memregion("^gfx3")->bytes();
8181
8282   /* allocate memory for the unpacked road data */
8383   info->gfx = auto_alloc_array(machine, UINT8, 256 * 512);
r249131r249132
334334 *
335335 *******************************************************************************************/
336336
337static void segaic16_road_outrun_decode(running_machine &machine, struct road_info *info)
337void segaic16_road_device::segaic16_road_outrun_decode(running_machine &machine, struct road_info *info)
338338{
339339   int x, y;
340   const UINT8 *gfx = machine.root_device().memregion("gfx3")->base();
341   int len = machine.root_device().memregion("gfx3")->bytes();
340   const UINT8 *gfx = memregion("^gfx3")->base();
341   int len = memregion("^gfx3")->bytes();
342342
343343   /* allocate memory for the unpacked road data */
344344   info->gfx = auto_alloc_array(machine, UINT8, (256 * 2 + 1) * 512);
trunk/src/mame/video/segaic16_road.h
r249131r249132
4545   ~segaic16_road_device() {}
4646
4747   UINT16 *segaic16_roadram_0;
48   void segaic16_road_hangon_decode(running_machine &machine, struct road_info *info);
49   void segaic16_road_outrun_decode(running_machine &machine, struct road_info *info);
4850
4951   struct road_info segaic16_road[SEGAIC16_MAX_ROADS];
5052   void segaic16_road_init(running_machine &machine, int which, int type, int colorbase1, int colorbase2, int colorbase3, int xoffs);
trunk/src/mame/video/segaxbd.c
r249131r249132
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
trunk/src/mame/video/suna8.c
r249131r249132
1717    sent to the screen. Each sprite uses 4 bytes, held within the last
1818    page of tiles.
1919
20    * Note: later games use a more complex format than the following,
21            which is yet to be completely understood.
22
23                            [ Sprites Format ]
24
25    Offset:         Bits:               Value:
26
27        0.b                             Y (Bottom up)
28
29        1.b         7--- ----           Sprite Size (1 = 2x32 tiles; 0 = 2x2)
30
31                    2x2 Sprites:
32                    -65- ----           Tiles Row (height = 8 tiles)
33                    ---4 ----           Page
34
35                    2x32 Sprites:
36                    -6-- ----           Ignore X (Multisprite)
37                    --54 ----           Page
38
39                    ---- 3210           Tiles Column (width = 2 tiles)
40
41        2.b                             X
42
43        3.b         7--- ----
44                    -6-- ----           X (Sign Bit)
45                    --54 3---
46                    ---- -210           Tiles Bank
47
48
49                        [ Sprite's Tiles Format ]
50
51
52    Offset:         Bits:                   Value:
53
54        0.b                             Code (Low Bits)
55
56        1.b         7--- ----           Flip Y
57                    -6-- ----           Flip X
58                    --54 32--           Color
59                    ---- --10           Code (High Bits)
60
61
62
6320    Set TILEMAPS to 1 to debug.
6421    Press Z (you see the "tilemaps" in RAM) or
6522    Press X (you see the "tilemaps" in ROM) then
r249131r249132
7229
7330#include "emu.h"
7431#include "includes/suna8.h"
32#include "drawgfxm.h"
7533
7634/***************************************************************************
7735    For Debug: there's no tilemap, just sprites.
r249131r249132
180138
181139
182140
183void suna8_state::suna8_vh_start_common(int text_dim, GFXBANK_TYPE_T gfxbank_type)
141void suna8_state::suna8_vh_start_common(bool has_text, GFXBANK_TYPE_T gfxbank_type)
184142{
185   m_text_dim      =   text_dim;
143   m_has_text      =   has_text;
186144   m_spritebank    =   0;
187145   m_gfxbank       =   0;
188146   m_gfxbank_type  =   gfxbank_type;
189147   m_palettebank   =   0;
190148
191   if (!m_text_dim)
149   if (!m_has_text)
192150   {
193151      m_banked_paletteram.allocate(0x200 * 2);
194152
r249131r249132
199157#if TILEMAPS
200158   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(suna8_state::get_tile_info),this), TILEMAP_SCAN_COLS,
201159
202                        8, 8, 0x20*(m_text_dim ? 4 : 16), 0x20);
160                        8, 8, 0x20*(m_has_text ? 4 : 16), 0x20);
203161
204162   m_bg_tilemap->set_transparent_pen(15);
205163#endif
206164}
207165
208VIDEO_START_MEMBER(suna8_state,suna8_textdim8)          { suna8_vh_start_common(  8, GFXBANK_TYPE_SPARKMAN); }
209VIDEO_START_MEMBER(suna8_state,suna8_textdim12)         { suna8_vh_start_common( 12, GFXBANK_TYPE_SPARKMAN); }
210VIDEO_START_MEMBER(suna8_state,suna8_sparkman)          { suna8_vh_start_common(  0, GFXBANK_TYPE_SPARKMAN); }
211VIDEO_START_MEMBER(suna8_state,suna8_brickzn)           { suna8_vh_start_common(  0, GFXBANK_TYPE_BRICKZN);  }
212VIDEO_START_MEMBER(suna8_state,suna8_starfigh)          { suna8_vh_start_common(  0, GFXBANK_TYPE_STARFIGH); }
166VIDEO_START_MEMBER(suna8_state,suna8_text)              { suna8_vh_start_common( true,  GFXBANK_TYPE_SPARKMAN); }
167VIDEO_START_MEMBER(suna8_state,suna8_sparkman)          { suna8_vh_start_common( false, GFXBANK_TYPE_SPARKMAN); }
168VIDEO_START_MEMBER(suna8_state,suna8_brickzn)           { suna8_vh_start_common( false, GFXBANK_TYPE_BRICKZN);  }
169VIDEO_START_MEMBER(suna8_state,suna8_starfigh)          { suna8_vh_start_common( false, GFXBANK_TYPE_STARFIGH); }
213170
214171/***************************************************************************
215172
r249131r249132
219176
220177***************************************************************************/
221178
222void suna8_state::draw_normal_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect, int which)
179#define PIXEL_OP_REBASE_TRANSPEN_PRIORITY_MASK(DEST, PRIORITY, SOURCE)              \
180do                                                                                  \
181{                                                                                   \
182   UINT32 srcdata = (SOURCE);                                                      \
183   if (srcdata != trans_pen)                                                       \
184   {                                                                               \
185      if ((PRIORITY) == 0)                                                        \
186         (DEST) = color + srcdata;                                               \
187   }                                                                               \
188}                                                                                   \
189while (0)
190
191class mygfx_element : public gfx_element
223192{
193public:
194   void prio_mask_transpen(bitmap_ind16 &dest, const rectangle &cliprect,
195         UINT32 code, UINT32 color, int flipx, int flipy, INT32 destx, INT32 desty,
196         bitmap_ind8 &priority, UINT32 trans_pen)
197   {
198      color = colorbase() + granularity() * (color % colors());
199      code %= elements();
200      DRAWGFX_CORE(UINT16, PIXEL_OP_REBASE_TRANSPEN_PRIORITY_MASK, UINT8);
201   }
202};
203
204/***************************************************************************
205
206                          [ Sprites Format ]
207
208    * Note: later games use a more complex format than the following
209
210    Offset:         Bits:               Value:
211
212        0.b                             Y (Bottom up)
213
214        1.b         7--- ----           Sprite Size (1 = 2x32 tiles; 0 = 2x2)
215
216                    2x2 Sprites:
217                    -65- ----           Tiles Row (height = 8 tiles)
218                    ---4 ----           Page
219
220                    2x32 Sprites:
221                    -6-- ----           Ignore X (Multisprite)
222                    --54 ----           Page
223
224                    ---- 3210           Tiles Column (width = 2 tiles)
225
226        2.b                             X
227
228        3.b         7--- ----           Text Sprite
229                    -6-- ----           X (Sign Bit) <- Also Set For Text Sprites
230                    --54 3210           Tiles Bank ($400 tiles each)
231
232
233                        [ Sprite's Tiles Format ]
234
235
236    Offset:         Bits:                   Value:
237
238        0.b                             Code (Low Bits)
239
240        1.b         7--- ----           Flip Y
241                    -6-- ----           Flip X
242                    --54 32--           Color
243                    ---- --10           Code (High Bits)
244
245***************************************************************************/
246
247void suna8_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int start, int end, int which)
248{
224249   UINT8 *spriteram = m_spriteram + which * 0x2000 * 2;
225250
226   int i;
227251   int mx = 0; // multisprite x counter
228252
229253   int max_x = m_screen->width() - 8;
230254   int max_y = m_screen->height() - 8;
231255
232   for (i = 0x1d00; i < 0x2000; i += 4)
256   if (m_has_text)
257      screen.priority().fill(0, cliprect);
258
259   for (int i = start; i < end; i += 4)
233260   {
234261      int srcpg, srcx,srcy, dimx,dimy, tx, ty;
235262      int gfxbank, colorbank = 0, flipx,flipy, multisprite;
r249131r249132
239266      int x       =   spriteram[i + 2];
240267      int bank    =   spriteram[i + 3];
241268
242      if (m_text_dim)
269      bool read_mask = false;
270
271      if (m_has_text)
243272      {
244273         // Older, simpler hardware: hardhead, rranger
274
275         // rranger (20:18):
276         //   fireball (fe00: 19 00 28 07) not masked by text (fd48: e0 00 00 c0, fd4c: 10 00 00 c0), fire (fdb0: 30 00 00 c0, fdb4: 20 00 00 c0)
277         //   fireball (fe00: 20 00 ba 07) is masked!? But only by fire?
278         // rranger (33:04, 35:17):
279         //   generally no masking by fire, but there are missing legs on some enemies.
280         //   Could be a sprite limit hit, as there are many sprites on that line, and it's affected by the horizontal (dead) player
281         read_mask = true;
282
283         if ((bank & 0xc0) == 0xc0)
284         {
285            // hardhead: fd88/8c/90 -> f994..f9c0
286            // rranger:  fd48/4c    -> f980..f9ac
287            //           fdb0/b4    -> f9c0..f9fc
288            //           note: fireballs in level 5 (fe20/40) should go above flames and score (text sprites)
289            int text_list  = (i - start) & 0x20;
290            int text_start = text_list ? 0x19c0 : 0x1980;
291            bool write_mask = (text_list == 0);   // hack?
292            draw_text_sprites(screen, bitmap, cliprect, text_start, text_start + 0x80, y, write_mask);
293            continue;
294         }
295
245296         flipx = 0;
246297         flipy = 0;
247298         gfxbank = bank & 0x3f;
r249131r249132
263314      }
264315      else
265316      {
266         // Newer, more complex hardware: brickzn, hardhea2, sparkman?, starfigh
317         // Newer, more complex hardware: brickzn, hardhea2, sparkman, starfigh
267318         switch( code & 0xc0 )
268319         {
269320         case 0xc0:
r249131r249132
282333            gfxbank = bank & 0x1f;
283334            srcpg = (code >> 4) & 3;
284335            break;
285// hardhea2: fire code=52/54 bank=a4; player code=02/04/06 bank=08; arrow:code=16 bank=27
286336         case 0x40:
337            // hardhea2: fire code=52/54 bank=a4; player code=02/04/06 bank=08; arrow:code=16 bank=27
287338            dimx = 4;                   dimy = 4;
288339            srcx  = (code & 0xe) * 2;
289340            flipx = code & 0x01;
r249131r249132
347398      x = x - ((bank & 0x40) ? 0x100 : 0);
348399      y = (0x100 - y - dimy*8 ) & 0xff;
349400
350      /* Multi Sprite */
401      // Multi Sprite
351402      if ( multisprite )  {   mx += dimx*8;   x = mx; }
352403      else                    mx = x;
353404
r249131r249132
379430               sy = max_y - sy;    tile_flipy = !tile_flipy;
380431            }
381432
382            m_gfxdecode->gfx(which)->transpen(bitmap,cliprect,
383                     tile + (attr & 0x3)*0x100 + gfxbank,
384                     (((attr >> 2) & 0xf) ^ colorbank) + 0x10 * m_palettebank,    // player2 in hardhea2 and sparkman
385                     tile_flipx, tile_flipy,
386                     sx, sy, 0xf);
433            int code  = tile + (attr & 0x3)*0x100 + gfxbank;
434            int color = (((attr >> 2) & 0xf) ^ colorbank) + 0x10 * m_palettebank;    // player2 in hardhea2 and sparkman
435
436            if (read_mask)
437               ((mygfx_element*)(m_gfxdecode->gfx(which)))->prio_mask_transpen(bitmap, cliprect,
438                        code, color, tile_flipx, tile_flipy, sx, sy, screen.priority(), 0xf);
439            else
440               m_gfxdecode->gfx(which)->transpen(bitmap, cliprect,
441                        code, color, tile_flipx, tile_flipy, sx, sy, 0xf);
387442         }
388443      }
389
390444   }
391445}
392446
393void suna8_state::draw_text_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect)
447/***************************************************************************
448
449                          [ Text Sprites Format ]
450
451    Offset:         Bits:               Value:
452
453        0.b                             Tiles Y (height = 2 tiles)
454
455        1.b         7--- ----           0 = Skip Sprite
456                    -6-- ----
457                    --54 ----           Page
458                    ---- 3210           Tiles Column (width = 2 tiles)
459
460        2.b                             X
461
462        3.b         7--- ----         0 = Last Sprite
463                    -6-- ----           X (Sign Bit)
464                    --54 3210           Tiles Bank ($400 tiles each)
465
466    Each text sprite is 2x2 tiles
467
468***************************************************************************/
469
470void suna8_state::draw_text_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int start, int end, int ypos, bool write_mask)
394471{
395472   UINT8 *spriteram = m_spriteram;
396   int i;
397473
398474   int max_x = m_screen->width() - 8;
399475   int max_y = m_screen->height() - 8;
400476
401   for (i = 0x1900; i < 0x19ff; i += 4)
477   bool last = false;
478   for (int i = start; i < end && !last; i += 4)
402479   {
403480      int srcpg, srcx,srcy, dimx,dimy, tx, ty;
404481
r249131r249132
408485      int bank    =   spriteram[i + 3];
409486
410487      if (~code & 0x80)   continue;
488      last = !(bank & 0x80);
411489
412      dimx = 2;                   dimy = m_text_dim;
413      srcx  = (code & 0xf) * 2;   srcy = (y & 0xf0) / 8;
490      dimx = 2;                   dimy = 2;
491      srcx  = (code & 0xf) * 2;   srcy = ((y & 0xf8) - (ypos & 0xf8) - 0x10) / 8;
414492      srcpg = (code >> 4) & 3;
415493
416494      x = x - ((bank & 0x40) ? 0x100 : 0);
417      y = 0;
418495
419496      bank    =   (bank & 0x3f) * 0x400;
420497
r249131r249132
422499      {
423500         for (tx = 0; tx < dimx; tx ++)
424501         {
425            int real_ty =   (ty < (dimy/2)) ? ty : (ty + 0x20 - dimy);
426
427502            int addr    =   (srcpg * 0x20 * 0x20) +
428503                        ((srcx + tx) & 0x1f) * 0x20 +
429                        ((srcy + real_ty) & 0x1f);
504                        ((srcy + ty) & 0x1f);
430505
431506            int tile    =   spriteram[addr*2 + 0];
432507            int attr    =   spriteram[addr*2 + 1];
r249131r249132
435510            int flipy   =   attr & 0x80;
436511
437512            int sx      =    x + tx * 8;
438            int sy      =   (y + real_ty * 8) & 0xff;
513            int sy      =   (0xf0 - ypos + ty * 8) & 0xff;
439514
440515            if (flip_screen())
441516            {
r249131r249132
443518               sy = max_y - sy;    flipy = !flipy;
444519            }
445520
446            m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
521            m_gfxdecode->gfx(0)->transpen(bitmap, cliprect,
447522                     tile + (attr & 0x3)*0x100 + bank,
448523                     (attr >> 2) & 0xf,
449524                     flipx, flipy,
450                     sx, sy, 0xf);
525                     sx, sy, 0xf );
451526         }
452527      }
528   }
453529
530   if (write_mask)
531   {
532      // Fill the text sprites row with high priority for masking
533      int sy = (0xf0 - ypos) & 0xff;
534      if (flip_screen())
535         sy = max_y - sy - 8;
536      rectangle text_clip(cliprect.min_x, cliprect.max_x, sy, sy + 0x10 - 1);
537      text_clip &= cliprect;
538      screen.priority().fill(1, text_clip);
454539   }
455540}
456541
r249131r249132
464549
465550UINT32 suna8_state::screen_update_suna8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
466551{
467   /* see hardhead, hardhea2 test mode (press button 2 for both players) */
552   // see hardhead, hardhea2 test mode (press button 2 for both players)
468553   bitmap.fill(0xff, cliprect);
469554
470555#ifdef MAME_DEBUG
r249131r249132
481566      if (machine().input().code_pressed_once(KEYCODE_S)) { m_trombank++; machine().tilemap().mark_all_dirty();   }
482567
483568      m_trombank  &=  0xf;
484      m_page      &=  m_text_dim ? 3 : (m_gfxdecode->gfx(1) ? 15 : 7);
569      m_page      &=  m_has_text ? 3 : (m_gfxdecode->gfx(1) ? 15 : 7);
485570      m_tiles     %=  max_tiles;
486571      if (m_tiles < 0) m_tiles += max_tiles;
487572
r249131r249132
493578                  m_rombank, m_palettebank, m_spritebank,
494579                  m_page, m_tiles, m_trombank);
495580#endif
581      return 0;
496582   }
497   else
498583#endif
499584#endif
500   {
501      // Normal sprites
502      draw_normal_sprites(bitmap,cliprect, 0);
503585
504      // More normal sprites (second sprite "chip" in sparkman)
505      if (m_gfxdecode->gfx(1))
506         draw_normal_sprites(bitmap,cliprect, 1);
586   // Sprites
587   draw_sprites(screen, bitmap, cliprect, 0x1d00, 0x2000, 0);
507588
508      // Text sprites (earlier games only)
509      if (m_text_dim)
510         draw_text_sprites(bitmap,cliprect);
511   }
589   // More sprites (second sprite "chip" in sparkman)
590   if (m_gfxdecode->gfx(1))
591      draw_sprites(screen, bitmap, cliprect, 0x1d00, 0x2000, 1);
592
512593   return 0;
513594}
trunk/src/mame/video/system1.c
r249131r249132
315315
316316   if (m_color_prom != NULL)
317317   {
318      m_paletteram[offset] = data;
318319      UINT8 val;
319320
320321      val = m_color_prom[data + 0 * 256];
trunk/src/mame/video/tc0100scn.c
r249131r249132
141141*/
142142
143143#include "emu.h"
144#include "drawgfxm.h"
145144#include "tc0100scn.h"
146145
147146#define TC0100SCN_RAM_SIZE        0x14000   /* enough for double-width tilemaps */
trunk/src/mame/video/tc0110pcr.c
r249131r249132
1313*/
1414
1515#include "emu.h"
16#include "drawgfxm.h"
1716#include "tc0110pcr.h"
1817
1918#define TC0110PCR_RAM_SIZE 0x2000
trunk/src/mame/video/tc0150rod.c
r249131r249132
77*/
88
99#include "emu.h"
10#include "drawgfxm.h"
1110#include "tc0150rod.h"
1211#include "video/taito_helper.h"
1312
trunk/src/mame/video/tc0180vcu.c
r249131r249132
33/* Taito TC0180VCU */
44
55#include "emu.h"
6#include "drawgfxm.h"
76#include "tc0180vcu.h"
87
98#define TC0180VCU_RAM_SIZE          0x10000
trunk/src/mame/video/tc0280grd.c
r249131r249132
2121*/
2222
2323#include "emu.h"
24#include "drawgfxm.h"
2524#include "tc0280grd.h"
2625
2726#define TC0280GRD_RAM_SIZE 0x2000
trunk/src/mame/video/tc0360pri.c
r249131r249132
4040*/
4141
4242#include "emu.h"
43#include "drawgfxm.h"
4443#include "tc0360pri.h"
4544
4645
trunk/src/mame/video/tc0480scp.c
r249131r249132
142142*/
143143
144144#include "emu.h"
145#include "drawgfxm.h"
146145#include "tc0480scp.h"
147146#include "video/taito_helper.h"
148147
trunk/src/mess/drivers/apple2.c
r249131r249132
12661266   MCFG_DEVICE_ADD(A2_VIDEO_TAG, APPLE2_VIDEO, XTAL_14_31818MHz)
12671267
12681268   MCFG_SCREEN_ADD("screen", RASTER)
1269   MCFG_SCREEN_REFRESH_RATE(60)
1270   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
1271   MCFG_SCREEN_SIZE(280*2, 262)
1272   MCFG_SCREEN_VISIBLE_AREA(0, (280*2)-1,0,192-1)
1269   MCFG_SCREEN_RAW_PARAMS(1021800*14, (65*7)*2, 0, (40*7)*2, 262, 0, 192)
12731270   MCFG_SCREEN_UPDATE_DRIVER(napple2_state, screen_update)
12741271   MCFG_SCREEN_PALETTE("palette")
12751272
r249131r249132
14511448   ROM_LOAD ( "unitron.f0"   , 0x3000, 0x1000, CRC(8e047c4a) SHA1(78c57c0e00dfce7fdec9437fe2b4c25def447e5d))
14521449ROM_END
14531450
1451ROM_START(uniap2ti)
1452   ROM_REGION(0x1000,"gfx1",0)
1453   ROM_LOAD ( "unitron.chr", 0x0000, 0x1000, CRC(7fdd1af6) SHA1(2f4f90d90f2f3a8c1fbea304e1072780fb22e698))
1454
1455   ROM_REGION(0x4000,"maincpu",0)
1456   ROM_LOAD ( "unitron_pt.d0", 0x1000, 0x1000, CRC(311beae6) SHA1(f6379aba9ac982850edc314c93a393844a3349ef))
1457   ROM_LOAD ( "unitron.e0"   , 0x2000, 0x1000, CRC(0d494efd) SHA1(a2fd1223a3ca0cfee24a6afe66ea3c4c144dd98e))
1458   ROM_LOAD ( "unitron.f0"   , 0x3000, 0x1000, CRC(8e047c4a) SHA1(78c57c0e00dfce7fdec9437fe2b4c25def447e5d))
1459
1460   ROM_REGION(0x4000,"keyboard",0)
1461   ROM_LOAD ( "unitron_apii_keyboard.ic3", 0x1000, 0x1000, CRC(311beae6) SHA1(f6379aba9ac982850edc314c93a393844a3349ef))
1462ROM_END
1463
1464
14541465/*
14551466    J-Plus ROM numbers confirmed by:
14561467    http://mirrors.apple2.org.za/Apple%20II%20Documentation%20Project/Computers/Apple%20II/Apple%20II%20j-plus/Photos/Apple%20II%20j-plus%20-%20Motherboard.jpg
r249131r249132
15901601COMP( 1982, maxxi,    apple2,   0,        apple2p,     apple2p, driver_device,  0,        "Polymax",  "Maxxi", MACHINE_SUPPORTS_SAVE )
15911602COMP( 1982, prav82,   apple2,   0,        apple2p,     apple2p, driver_device,  0,        "Pravetz",           "Pravetz 82", MACHINE_SUPPORTS_SAVE )
15921603COMP( 1982, ace100,   apple2,   0,        apple2,      apple2p, driver_device,  0,        "Franklin Computer", "Franklin Ace 100", MACHINE_SUPPORTS_SAVE )
1593COMP( 1982, uniap2en, apple2,   0,        apple2p,     apple2p, driver_device,  0,        "Unitron Eletr??nica", "Unitron AP II (in English)", MACHINE_SUPPORTS_SAVE )
1594COMP( 1982, uniap2pt, apple2,   0,        apple2p,     apple2p, driver_device,  0,        "Unitron Eletr??nica", "Unitron AP II (in Brazilian Portuguese)", MACHINE_SUPPORTS_SAVE )
1604COMP( 1982, uniap2en, apple2,   0,        apple2p,     apple2p, driver_device,  0,        "Unitron Eletronica", "Unitron AP II (in English)", MACHINE_SUPPORTS_SAVE )
1605COMP( 1982, uniap2pt, apple2,   0,        apple2p,     apple2p, driver_device,  0,        "Unitron Eletronica", "Unitron AP II (in Brazilian Portuguese)", MACHINE_SUPPORTS_SAVE )
1606COMP( 198?, uniap2ti, apple2,   0,        apple2p,     apple2p, driver_device,  0,        "Unitron Eletronica", "Unitron AP II+", MACHINE_SUPPORTS_SAVE )
15951607COMP( 1983, agat7,    apple2,   0,        apple2p,     apple2p, driver_device,  0,        "Agat",              "Agat-7", MACHINE_NOT_WORKING) // disk controller ROM JSRs to $FCA8 which is a delay on apple II, illegal instruction crash here :(
15961608// reverse font direction -\/
15971609COMP( 1984, ivelultr, apple2,   0,        apple2p,     apple2p, driver_device,  0,        "Ivasim",            "Ivel Ultra", MACHINE_SUPPORTS_SAVE )
trunk/src/mess/drivers/apple2e.c
r249131r249132
30373037   MCFG_DEVICE_ADD(A2_VIDEO_TAG, APPLE2_VIDEO, XTAL_14_31818MHz)
30383038
30393039   MCFG_SCREEN_ADD("screen", RASTER)
3040   MCFG_SCREEN_REFRESH_RATE(60)
3041   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
3042   MCFG_SCREEN_SIZE(280*2, 262)
3043   MCFG_SCREEN_VISIBLE_AREA(0, (280*2)-1,0,192-1)
3040   MCFG_SCREEN_RAW_PARAMS(1021800*14, (65*7)*2, 0, (40*7)*2, 262, 0, 192)
30443041   MCFG_SCREEN_UPDATE_DRIVER(apple2e_state, screen_update)
30453042   MCFG_SCREEN_PALETTE("palette")
30463043
trunk/src/mess/drivers/ie15.c
r249131r249132
396396
397397static ADDRESS_MAP_START( ie15_io, AS_IO, 8, ie15_state )
398398   ADDRESS_MAP_UNMAP_HIGH
399   AM_RANGE(000, 000) AM_READ(mem_r) AM_WRITE(mem_w)   // 00h W: memory request, R: memory data [6.1.2.2]
399   AM_RANGE(000, 000) AM_READWRITE(mem_r, mem_w)   // 00h W: memory request, R: memory data [6.1.2.2]
400400   AM_RANGE(001, 001) AM_READ(serial_rx_ready_r) AM_WRITENOP   // 01h W: memory latch [6.1.2.2]
401401   AM_RANGE(002, 002) AM_WRITE(mem_addr_hi_w)      // 02h W: memory address high [6.1.2.2]
402402   AM_RANGE(003, 003) AM_WRITE(mem_addr_lo_w)      // 03h W: memory address low [6.1.2.2]
403403   AM_RANGE(004, 004) AM_WRITE(mem_addr_inc_w)     // 04h W: memory address counter + [6.1.2.2]
404404   AM_RANGE(005, 005) AM_WRITE(mem_addr_dec_w)     // 05h W: memory address counter - [6.1.2.2]
405   AM_RANGE(006, 006) AM_READ(serial_r) AM_WRITE(serial_w)     // 06h W: serial port data [6.1.5.4]
405   AM_RANGE(006, 006) AM_READWRITE(serial_r, serial_w)     // 06h W: serial port data [6.1.5.4]
406406// port 7 is handled in cpu core
407   AM_RANGE(010, 010) AM_READ(serial_tx_ready_r) AM_WRITE(beep_w)  // 08h W: speaker control [6.1.5.4]
407   AM_RANGE(010, 010) AM_READWRITE(serial_tx_ready_r, beep_w)  // 08h W: speaker control [6.1.5.4]
408408   AM_RANGE(011, 011) AM_READ(kb_r)            // 09h R: keyboard data [6.1.5.2]
409409   AM_RANGE(012, 012) AM_READ(kb_s_red_r)          // 0Ah I: keyboard mode "RED" [6.1.5.2]
410410   AM_RANGE(013, 013) AM_READ(kb_ready_r)          // 0Bh R: keyboard data ready [6.1.5.2]
411   AM_RANGE(014, 014) AM_READ(kb_s_sdv_r) AM_WRITE(serial_speed_w) // 0Ch W: serial port speed [6.1.3.1], R: keyboard mode "SDV" [6.1.5.2]
412   AM_RANGE(015, 015) AM_READ(kb_s_dk_r) AM_WRITE(kb_ready_w)  // 0Dh I: keyboard mode "DK" [6.1.5.2]
411   AM_RANGE(014, 014) AM_READWRITE(kb_s_sdv_r, serial_speed_w) // 0Ch W: serial port speed [6.1.3.1], R: keyboard mode "SDV" [6.1.5.2]
412   AM_RANGE(015, 015) AM_READWRITE(kb_s_dk_r, kb_ready_w)  // 0Dh I: keyboard mode "DK" [6.1.5.2]
413413   AM_RANGE(016, 016) AM_READ(kb_s_dupl_r)         // 0Eh I: keyboard mode "DUPL" [6.1.5.2]
414414   AM_RANGE(017, 017) AM_READ(kb_s_lin_r)          // 0Fh I: keyboard mode "LIN" [6.1.5.2]
415415// simulation of flag registers
416   AM_RANGE(020, 027) AM_READ(flag_r) AM_WRITE(flag_w)
416   AM_RANGE(020, 027) AM_READWRITE(flag_r, flag_w)
417417ADDRESS_MAP_END
418418
419419/* Input ports */
r249131r249132
454454   m_serial_tx_ready = m_serial_rx_ready = IE_TRUE;
455455   set_data_frame(1 /* start bits */, 8 /* data bits */, PARITY_NONE, STOP_BITS_1);
456456   // device supports rates from 150 to 9600 baud but null_modem has hardcoded 9600
457   set_tra_rate(9600);
458   set_rcv_rate(9600);
457   set_rate(9600);
459458}
460459
461460void ie15_state::video_start()
trunk/src/mess/drivers/orao.c
r249131r249132
1414
1515#include "emu.h"
1616#include "cpu/m6502/m6502.h"
17#include "sound/dac.h"
17#include "sound/speaker.h"
1818#include "sound/wave.h"
1919#include "includes/orao.h"
2020#include "imagedev/cassette.h"
r249131r249132
183183
184184   /* audio hardware */
185185   MCFG_SPEAKER_STANDARD_MONO("mono")
186   MCFG_SOUND_ADD("dac", DAC, 0)
187   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 8.00)
186   MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
187   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
188188   MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
189189   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
190190
trunk/src/mess/includes/orao.h
r249131r249132
88
99#ifndef ORAO_H_
1010#define ORAO_H_
11#include "sound/dac.h"
11#include "sound/speaker.h"
1212#include "imagedev/cassette.h"
1313
1414class orao_state : public driver_device
r249131r249132
1919      m_memory(*this, "memory"),
2020      m_video_ram(*this, "video_ram"),
2121      m_maincpu(*this, "maincpu"),
22      m_dac(*this, "dac"),
22      m_speaker(*this, "speaker"),
2323      m_cassette(*this, "cassette"),
24      m_line(*this, "LINE")
24      m_line(*this, "LINE"),
25      m_beep(0)
2526   { }
2627
2728   DECLARE_READ8_MEMBER(orao_io_r);
r249131r249132
3637   required_shared_ptr<UINT8> m_memory;
3738   required_shared_ptr<UINT8> m_video_ram;
3839   required_device<cpu_device> m_maincpu;
39   required_device<dac_device> m_dac;
40   required_device<speaker_sound_device> m_speaker;
4041   required_device<cassette_image_device> m_cassette;
4142   required_ioport_array<20> m_line;
43   UINT8 m_beep;
4244};
4345
4446#endif /* ORAO_H_ */
trunk/src/mess/machine/orao.c
r249131r249132
7474{
7575   if (offset == 0x0800)
7676   {
77      m_dac->write_unsigned8(data); //beeper
77      m_speaker->level_w(m_beep);
78      m_beep ^= 1;
7879   }
7980}
trunk/src/osd/modules/render/drawogl.c
r249131r249132
31173117         GL_CHECK_ERROR_NORMAL();
31183118         glViewport(0.0, 0.0, (GLsizei)texture->rawwidth, (GLsizei)texture->rawheight);
31193119      }
3120      else if ( shaderIdx==m_glsl_program_mb2sc )
3120
3121      if ( shaderIdx==m_glsl_program_mb2sc )
31213122      {
31223123         assert ( m_glsl_program_mb2sc < m_glsl_program_num-1 );
31233124         glPopAttrib(); // glViewport(0.0, 0.0, (GLsizei)window().width, (GLsizei)window().height)


Previous 199869 Revisions Next


© 1997-2024 The MAME Team