Previous 199869 Revisions Next

r40619 Thursday 3rd September, 2015 at 22:44:46 UTC by LuigiBlood
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 n64.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 n64.c orao.c
[src/mess/includes]orao.h
[src/mess/machine]orao.c
[src/osd/modules/render]drawogl.c

trunk/hash/tutor.xml
r249130r249131
1515005E Frogger ~ フロッガー    [dumped]
1616006E Scramble ~ スクランブル  [dumped]
1717007E NightFlight ~ ナイトフライト  [dumped]
18008E Marine Adventure ~ マリン アドベンチャ    [dumped]
18008E Marine Adventure ~ マリン アドベンチャ    [dumped]
1919009E Mission Attack ~ ミッション アタック    [dumped]
20010E Traffic Jam ~ トラフィック ジャム    [dumped]
21011E Mystery Gold ~ ミステリー ゴールド    [dumped]
20010E Traffic Jam ~ トラフィック ジャム
21011E Mystery Gold ~ ミステリー ゴールド
2222012E DonPan ~ ドンバン [dumped]
2323013E Mickey Athletic Land ~ ミッキー アスレチックランド [dumped]
2424014E Pooyan ~ プーヤン
2525015E Jungler ~ ジャングラー
2626016E Guttang Gottong ~ ガッタンゴットン
27017E Maze Patrol ~ メイズ パトロール    [dumped]
27017E Maze Patrol ~ メイズ パトロール
2828018E Tron ~ トロン
29019E Mr. Do! ~ Mr.DO!    [dumped]
29019E Mr. Do! ~ Mr.DO!
3030020E Bermuda Triangle ~ バミューダ・ トライアングル
3131021E 4-nin Mahjan ~ 四人麻雀
3232022E Triplecommand ~ トリプルコマンド
r249130r249131
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>
234221
235222   <software name="athland">
236223      <description>Mickey Athletic Land (Jpn)</description>
r249130r249131
270257         </dataarea>
271258      </part>
272259   </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>
299260
300261   <software name="nflight">
301262      <description>Night Flight (Jpn)</description>
r249130r249131
375336
376337   <software name="trafjam">
377338   <!-- Stock No: 8103, (Japanese 010E)-->
378      <description>Traffic Jam (Jpn)</description>
379      <year>1982</year>
339      <description>Traffic Jam</description>
340      <year>1983</year>
380341      <publisher>Tomy</publisher>
381342      <part name="cart" interface="tutor_cart">
382343         <dataarea name="rom" size="8192">
383            <rom name="tomy 33.5.ic1" size="8192" crc="c970f2c3" sha1="086825470d349f3bbd598bbb8b8c9e13aa2458b6" offset="0" />
344            <rom name="trafjam.bin" size="8192" crc="c0c78141" sha1="2ba074955a1507ca9f6cde8987695f495e81aeab" offset="0" />
384345         </dataarea>
385346      </part>
386347   </software>
387348
388349   <software name="trafjama" cloneof="trafjam">
389350   <!-- Stock No: 8103, (Japanese 010E)-->
390      <description>Traffic Jam (USA)</description>
391      <year>1983</year>
351      <description>Traffic Jam (Alt)</description>
352      <year>1982</year>
392353      <publisher>Tomy</publisher>
393354      <part name="cart" interface="tutor_cart">
394355         <dataarea name="rom" size="8192">
395            <rom name="trafjama.bin" size="8192" crc="c0c78141" sha1="2ba074955a1507ca9f6cde8987695f495e81aeab" offset="0" />
356            <rom name="trafjama.bin" size="8192" crc="c970f2c3" sha1="086825470d349f3bbd598bbb8b8c9e13aa2458b6" offset="0" />
396357         </dataarea>
397358      </part>
398359   </software>
trunk/makefile
r249130r249131
9292
9393# DRIVERS = src/mame/drivers/1942.c,src/mame/drivers/cops.c
9494
95# FORCE_VERSION_COMPILE = 1
96
9795-include useroptions.mak
9896
9997###########################################################################
r249130r249131
632630PARAMS += --DRIVERS='$(DRIVERS)'
633631endif
634632
635ifdef FORCE_VERSION_COMPILE
636PARAMS += --FORCE_VERSION_COMPILE='$(FORCE_VERSION_COMPILE)'
637endif
638
639633#-------------------------------------------------
640634# All scripts
641635#-------------------------------------------------
trunk/scripts/genie.lua
r249130r249131
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
386377if _OPTIONS["SHLIB"]=="1" then
387378   LIBTYPE = "SharedLib"
388379else
trunk/scripts/src/machine.lua
r249130r249131
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
r249130r249131
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
239237   configuration { "gmake" }
240238      dependency {
241239         { ".PHONY", ".FORCE", true },
242240         { "$(OBJDIR)/src/version.o", ".FORCE", true },
243241      }
244end
242
245243   configuration { "mingw*" }
246244      custombuildtask {   
247245         { 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
r249130r249131
561561MACHINES["WOZFDC"] = true
562562MACHINES["DIABLO_HD"] = true
563563MACHINES["TMS1024"] = true
564MACHINES["NSC810"] = true
565564
566565--------------------------------------------------
567566-- specify available bus cores
r249130r249131
26532652   MAME_DIR .. "src/mess/drivers/hpz80unk.c",
26542653   MAME_DIR .. "src/mess/drivers/ht68k.c",
26552654   MAME_DIR .. "src/mess/drivers/hunter2.c",
2655   MAME_DIR .. "src/emu/machine/nsc810.c",
2656   MAME_DIR .. "src/emu/machine/nsc810.h",
26562657   MAME_DIR .. "src/mess/drivers/i7000.c",
26572658   MAME_DIR .. "src/mess/drivers/ibm6580.c",
26582659   MAME_DIR .. "src/mess/drivers/icatel.c",
trunk/src/emu/machine/at_keybc.c
r249130r249131
2828static INPUT_PORTS_START( at_keybc )
2929   PORT_START("DSW")
3030   PORT_BIT(     0xbf, 0xbf, IPT_UNUSED )
31   PORT_DIPNAME( 0x40, 0x00, "Display switch")
31   PORT_DIPNAME( 0x40, 0x40, "Display switch")
3232   PORT_DIPSETTING(    0x40, "Monochrome adapter" )
3333   PORT_DIPSETTING(    0x00, "Color/Graphics adapter" )
3434INPUT_PORTS_END
trunk/src/mame/arcade.lst
r249130r249131
48044804abcopj          // 1991.01 A.B.Cop (Japan, FD1094)
48054805gpriderj        // 1990.10 GP Rider (Japan, FD1094)
48064806gprider         // 1990.?? GP Rider (World, FD1094)
4807gpridert      // as above
48084807gprideru        // 1990.12 GP Rider (US, FD1094)
48094808rascot          // 1991.?? Royal Ascot (Japan)
48104809
trunk/src/mame/drivers/goldstar.c
r249130r249131
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_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")
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")
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, "'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 */
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 */
17571757   PORT_DIPSETTING(    0x00, "80%" )
17581758   PORT_DIPSETTING(    0x10, "90%" )
1759   PORT_DIPNAME( 0x20, 0x00, "Double Up Game" )            PORT_DIPLOCATION("DSW1:6")  /* OK */
1759   PORT_DIPNAME( 0x20, 0x00, "W-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" )
r249130r249131
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, "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 ) )
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 ) )
18001797   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
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 */
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 */
18021800   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
18031801   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
18041802INPUT_PORTS_END
trunk/src/mame/drivers/konamigx.c
r249130r249131
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, 2, "none")
1753   MCFG_K056832_CONFIG("gfx1", 0, K056832_BPP_6, 0, 0, "none")
17541754
17551755   MCFG_DEVICE_MODIFY("k055673")
17561756   MCFG_K055673_CONFIG("gfx2", 0, K055673_LAYOUT_GX6, -132, -23)
r249130r249131
26222622   ROM_LOAD( "dragoona.nv", 0x0000, 0x080, CRC(7980ad2b) SHA1(dccaab02d23edbd81ae13441fbac0dbd7112c258) )
26232623ROM_END
26242624
2625/* Soccer Superstars (94.12.19 - Europe ver EAC) Writes EAA to EEPROM and reports as EAA despite chip labels EAC */
2625/* Soccer Superstars (Europe ver EAC)*/
26262626ROM_START( soccerss )
26272627   /* main program */
26282628   ROM_REGION( 0x800000, "maincpu", 0 )
r249130r249131
26812681   ROM_LOAD( "soccerss.nv", 0x0000, 0x080, CRC(f222dae4) SHA1(fede48a4e1fe91cf2b17ff3f3996bca4816fc283) )
26822682ROM_END
26832683
2684/* Soccer Superstars (94.12.19 - U.S.A. ver UAC) Writes UAA to EEPROM and reports as UAA despite chip labels UAC */
2684/* Soccer Superstars (USA ver UAC)*/
26852685ROM_START( soccerssu )
26862686   /* main program */
26872687   ROM_REGION( 0x800000, "maincpu", 0 )
r249130r249131
27402740   ROM_LOAD( "soccerssu.nv", 0x0000, 0x080, CRC(812f6878) SHA1(fc4975211720a7eb413bceda8109231cb1c00834) )
27412741ROM_END
27422742
2743/* Soccer Superstars (94.12.19 - Japan ver JAC) Writes JAB to EEPROM and reports as JAC */
2743/* Soccer Superstars (Japan ver JAC)*/
27442744ROM_START( soccerssj )
27452745   /* main program */
27462746   ROM_REGION( 0x800000, "maincpu", 0 )
r249130r249131
27872787   ROM_LOAD( "soccerssj.nv", 0x0000, 0x080, CRC(7440255e) SHA1(af379b5b1f765f9050f18fbd41c5031c5ad4918b) )
27882788ROM_END
27892789
2790/* Soccer Superstars (94.12.3 - Japan ver JAA) Writes JAA to EEPROM and reports as JAA */
2790/* Soccer Superstars (Japan ver JAA)*/
27912791ROM_START( soccerssja )
27922792   /* main program */
27932793   ROM_REGION( 0x800000, "maincpu", 0 )
r249130r249131
28342834   ROM_LOAD( "soccerssja.nv", 0x0000, 0x080, CRC(60dba700) SHA1(087b086b29748727b41fdd4c154ff9b4bef42959) )
28352835ROM_END
28362836
2837/* Soccer Superstars (94.12.19 - Asia ver AAA) Writes AAA to EEPROM and reports as AAA */
2837/* Soccer Superstars (Asian ver AAA) */
28382838ROM_START( soccerssa )
28392839   /* main program */
28402840   ROM_REGION( 0x800000, "maincpu", 0 )
r249130r249131
36583658
36593659   const char *setname = machine().system().name;
36603660
3661   if (m_use_68020_post_clock_hack)
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"))
36623667   {
36633668      // [HACK] The 68020 instruction cache is disabled during POST.
36643669      // We don't emulate this nor the slow program ROM access times (120ns)
36653670      // so some games that rely on wait loops timeout far too quickly
36663671      // waiting for the sound system tests to complete.
36673672
3668      // To hack around this, we underclock the 68020 for 12 seconds during POST (soccerss requires longest)
3673      // To hack around this, we underclock the 68020 for 10 seconds during POST
36693674      m_maincpu->set_clock_scale(0.66f);
3670      m_boothack_timer->adjust(attotime::from_seconds(12));
3675      m_boothack_timer->adjust(attotime::from_seconds(10));
36713676   }
36723677
36733678   if (!strcmp(setname, "le2") ||
r249130r249131
38263831#undef BPP66
38273832}
38283833
3829DRIVER_INIT_MEMBER(konamigx_state,posthack)
3830{
3831   m_use_68020_post_clock_hack = 1;
3832   DRIVER_INIT_CALL(konamigx);
3833}
3834
3835
38363834/**********************************************************************************/
38373835/*     year  ROM       parent    machine   inp       init */
38383836
r249130r249131
38453843/* needs the ROZ layer to be playable */
38463844/* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
38473845
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  )
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  )
38503848
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 )
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 )
38543852
38553853/* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
38563854/* Type 2: totally stock, sometimes with funny protection chips on the ROM board */
r249130r249131
38653863GAME( 1994, fantjoura,fantjour, gokuparo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Fantastic Journey (ver AAA)", MACHINE_IMPERFECT_GRAPHICS )
38663864GAME( 1994, gokuparo, fantjour, gokuparo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Gokujyou Parodius (ver JAD)", MACHINE_IMPERFECT_GRAPHICS )
38673865
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 )
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 )
38703868
3871GAME( 1995, tbyahhoo, konamigx, tbyahhoo, gokuparo, konamigx_state, posthack, ROT0, "Konami", "Twin Bee Yahhoo! (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
3869GAME( 1995, tbyahhoo, konamigx, tbyahhoo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Twin Bee Yahhoo! (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
38723870
38733871GAME( 1995, tkmmpzdm, konamigx, konamigx_6bpp, puzldama, konamigx_state, konamigx, ROT0, "Konami", "Tokimeki Memorial Taisen Puzzle-dama (ver JAB)", MACHINE_IMPERFECT_GRAPHICS )
38743872
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 )
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 )
38773875
38783876GAME( 1996, sexyparo, konamigx, sexyparo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Sexy Parodius (ver JAA)", MACHINE_IMPERFECT_GRAPHICS )
38793877GAME( 1996, sexyparoa,sexyparo, sexyparo, gokuparo, konamigx_state, konamigx, ROT0, "Konami", "Sexy Parodius (ver AAA)", MACHINE_IMPERFECT_GRAPHICS )
r249130r249131
38943892/* Type 3: dual monitor output and 53936 on the ROM board, external palette RAM */
38953893/* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
38963894
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 )
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 )
39023900
39033901/* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
39043902/* Type 4: dual monitor output and 53936 on the ROM board, external palette RAM, DMA protection */
trunk/src/mame/drivers/konendev.c
r249130r249131
6363
6464   DECLARE_READ32_MEMBER(mcu2_r);
6565   DECLARE_READ32_MEMBER(ifu2_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);
66   DECLARE_READ32_MEMBER(unk_78800004_r);
67   DECLARE_READ32_MEMBER(unk_78a00000_r);
68   DECLARE_READ32_MEMBER(unk_78e00000_r);
7169   DECLARE_WRITE32_MEMBER(eeprom_w);
72   DECLARE_READ32_MEMBER(sound_data_r);
73   DECLARE_WRITE32_MEMBER(sound_data_w);
7470
7571   DECLARE_WRITE_LINE_MEMBER(gcu_interrupt);
76   INTERRUPT_GEN_MEMBER(vbl_interrupt);
7772
78   UINT8 rtc_dev_r(UINT32 reg);
79
8073   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8174};
8275
r249130r249131
10194   {
10295      r &= ~0x4000;       // MCU2 presence
10396      r &= ~0x2000;       // IFU2 presence
104      r &= ~0x1000;       // FMU2 presence   
97      r &= ~0x1000;       // FMU2 presence
10598   }
10699   if (ACCESSING_BITS_0_7)
107100   {
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     
101      r |= 0x40;          // logic door
102      r |= 0x04;          // battery 1 status
103      r |= 0x10;          // battery 2 status
114104   }
115105
116106   return r;
r249130r249131
128118   return r;
129119}
130120
131// This seems to be Epson RTC-72423
132UINT8 konendev_state::rtc_dev_r(UINT32 reg)
121READ32_MEMBER(konendev_state::unk_78800004_r)
133122{
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;
123   return 0xffffffff;
152124}
153125
154READ32_MEMBER(konendev_state::rtc_r)
126READ32_MEMBER(konendev_state::unk_78a00000_r)
155127{
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;
128   return 0xffffffff;
168129}
169130
170WRITE32_MEMBER(konendev_state::rtc_w)
131READ32_MEMBER(konendev_state::unk_78e00000_r)
171132{
133   return 0xffffffff;
172134}
173135
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
192136WRITE32_MEMBER(konendev_state::eeprom_w)
193137{
194138   if (ACCESSING_BITS_0_7)
r249130r249131
199143   }
200144}
201145
202READ32_MEMBER(konendev_state::sound_data_r)
203{
204   return 0xffffffff;
205}
206
207WRITE32_MEMBER(konendev_state::sound_data_w)
208{
209}
210
211146static ADDRESS_MAP_START( konendev_map, AS_PROGRAM, 32, konendev_state )
212147   AM_RANGE(0x00000000, 0x00ffffff) AM_RAM
213148   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)
216149   AM_RANGE(0x78100000, 0x78100003) AM_WRITE(eeprom_w)
217150   AM_RANGE(0x78800000, 0x78800003) AM_READ(ifu2_r)
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)
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
221157   AM_RANGE(0x79000000, 0x79000003) AM_DEVWRITE("gcu", k057714_device, fifo_w)
222158   AM_RANGE(0x79800000, 0x798000ff) AM_DEVREADWRITE("gcu", k057714_device, read, write)
223159   AM_RANGE(0x7a000000, 0x7a01ffff) AM_RAM AM_SHARE("nvram0")
r249130r249131
228164
229165
230166static 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 ) )
284167INPUT_PORTS_END
285168
286169
287170WRITE_LINE_MEMBER(konendev_state::gcu_interrupt)
288171{
289   m_maincpu->set_input_line(INPUT_LINE_IRQ1, state);
290   m_maincpu->set_input_line(INPUT_LINE_IRQ3, state);
172   m_maincpu->set_input_line(INPUT_LINE_IRQ0, state);
291173}
292174
293175
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}
299176
300177static MACHINE_CONFIG_START( konendev, konendev_state )
301178   /* basic machine hardware */
302179   MCFG_CPU_ADD("maincpu", PPC403GCX, 32000000) // Clock unknown
303180   MCFG_CPU_PROGRAM_MAP(konendev_map)
304   MCFG_CPU_VBLANK_INT_DRIVER("screen", konendev_state, vbl_interrupt)
305181
306182   /* video hardware */
307183   MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB("palette")
r249130r249131
482358DRIVER_INIT_MEMBER(konendev_state,enchlamp)
483359{
484360   UINT32 *rom = (UINT32*)memregion("program")->base();
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;
361   rom[0x24/4] = 0x00002743;       // patch flash checksum for now
492362
493   rom[0] = 0x5782b930;               // new checksum for program rom
363   rom[0] = 0xd43eb930;                // new checksum for program rom
494364}
495365
496366// has a flash dump?
trunk/src/mame/drivers/segahang.c
r249130r249131
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
465462
463
466464//**************************************************************************
467465//  SOUND CPU ADDRESS MAPS
468466//**************************************************************************
r249130r249131
940938static MACHINE_CONFIG_DERIVED( shangonro, shangupb )
941939   MCFG_CPU_REPLACE("subcpu", FD1094, 10000000)
942940   MCFG_CPU_PROGRAM_MAP(sub_map)
943   MCFG_CPU_DECRYPTED_OPCODES_MAP(fd1094_decrypted_opcodes_map)
944941MACHINE_CONFIG_END
945942
946943
trunk/src/mame/drivers/segaorun.c
r249130r249131
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
903900
901
904902//**************************************************************************
905903//  SECOND CPU MEMORY MAP
906904//**************************************************************************
r249130r249131
12311229   // basic machine hardware
12321230   MCFG_CPU_REPLACE("maincpu", FD1094, MASTER_CLOCK/4)
12331231   MCFG_CPU_PROGRAM_MAP(outrun_map)
1234   MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
12351232MACHINE_CONFIG_END
12361233
12371234static MACHINE_CONFIG_DERIVED( outrun_fd1089a, outrun )
trunk/src/mame/drivers/segas16a.c
r249130r249131
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
967964
965
968966//**************************************************************************
969967//  SOUND CPU ADDRESS MAPS
970968//**************************************************************************
r249130r249131
19481946static MACHINE_CONFIG_DERIVED( system16a_fd1094, system16a )
19491947   MCFG_CPU_REPLACE("maincpu", FD1094, 10000000)
19501948   MCFG_CPU_PROGRAM_MAP(system16a_map)
1951   MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
19521949   MCFG_CPU_VBLANK_INT_DRIVER("screen", segas16a_state, irq4_line_hold)
19531950MACHINE_CONFIG_END
19541951
trunk/src/mame/drivers/segas16b.c
r249130r249131
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
17201717
17211718static ADDRESS_MAP_START( system16c_map, AS_PROGRAM, 16, segas16b_state )
17221719   ADDRESS_MAP_UNMAP_HIGH
r249130r249131
33493346static MACHINE_CONFIG_DERIVED( system16b_fd1094, system16b )
33503347   MCFG_CPU_REPLACE("maincpu", FD1094, MASTER_CLOCK_10MHz)
33513348   MCFG_CPU_PROGRAM_MAP(system16b_map)
3352   MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
33533349   MCFG_CPU_VBLANK_INT_DRIVER("screen", segas16b_state, irq4_line_hold)
33543350MACHINE_CONFIG_END
33553351
trunk/src/mame/drivers/segas18.c
r249130r249131
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
528525
526
529527/*************************************
530528 *
531529 *  Sound CPU memory handlers
r249130r249131
12641262   // basic machine hardware
12651263   MCFG_CPU_REPLACE("maincpu", FD1094, 10000000)
12661264   MCFG_CPU_PROGRAM_MAP(system18_map)
1267   MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
12681265   MCFG_CPU_VBLANK_INT_DRIVER("screen", segas18_state, irq4_line_hold)
12691266MACHINE_CONFIG_END
12701267
trunk/src/mame/drivers/segas24.c
r249130r249131
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
12511248
1249
12521250/*************************************
12531251 *
12541252 *  Generic driver initialization
r249130r249131
19651963static MACHINE_CONFIG_DERIVED( system24_floppy_fd1094, system24_floppy )
19661964   MCFG_CPU_REPLACE("subcpu", FD1094, MASTER_CLOCK/2)
19671965   MCFG_CPU_PROGRAM_MAP(system24_cpu2_map)
1968   MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
19691966MACHINE_CONFIG_END
19701967
19711968
trunk/src/mame/drivers/segaxbd.c
r249130r249131
270270#include "sound/segapcm.h"
271271#include "includes/segaipt.h"
272272
273const device_type SEGA_XBD_PCB = &device_creator<segaxbd_state>;
274273
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
396274//**************************************************************************
397275//  CONSTANTS
398276//**************************************************************************
r249130r249131
757635//**************************************************************************
758636
759637//-------------------------------------------------
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//-------------------------------------------------
760654//  device_timer - handle device timers
761655//-------------------------------------------------
762656
r249130r249131
971865}
972866
973867
974//-------------------------------------------------
975//  palette_init - precompute weighted RGB values
976//  for each input value 0-31
977//-------------------------------------------------
978868
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
1057869//**************************************************************************
1058870//  MAIN CPU ADDRESS MAPS
1059871//**************************************************************************
r249130r249131
1089901   AM_RANGE(0x3fc000, 0x3fffff) AM_RAM AM_SHARE("backup2")
1090902ADDRESS_MAP_END
1091903
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
1095904
905
1096906//**************************************************************************
1097907//  SUB CPU ADDRESS MAPS
1098908//**************************************************************************
r249130r249131
12171027//**************************************************************************
12181028
12191029static INPUT_PORTS_START( xboard_generic )
1220   PORT_START("mainpcb:IO0PORTA")
1030   PORT_START("IO0PORTA")
12211031   PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNKNOWN )
12221032   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SPECIAL )    // /INTR of ADC0804
12231033   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
12241034
1225   PORT_START("mainpcb:IO0PORTB")
1035   PORT_START("IO0PORTB")
12261036   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
12271037
1228   PORT_START("mainpcb:IO1PORTA")
1038   PORT_START("IO1PORTA")
12291039   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )    // button? not used by any game we have
12301040   PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW )
12311041   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE1 )
r249130r249131
12351045   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )
12361046   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 )
12371047
1238   PORT_START("mainpcb:IO1PORTB")
1048   PORT_START("IO1PORTB")
12391049   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNKNOWN )
12401050
1241   PORT_START("mainpcb:IO1PORTC")
1051   PORT_START("IO1PORTC")
12421052   SEGA_COINAGE_LOC(SWA)
12431053
1244   PORT_START("mainpcb:IO1PORTD")
1054   PORT_START("IO1PORTD")
12451055   PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_LOW, "SWB:1" )
12461056   PORT_DIPUNUSED_DIPLOC( 0x02, IP_ACTIVE_LOW, "SWB:2" )
12471057   PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SWB:3" )
r249130r249131
12611071static INPUT_PORTS_START( aburner )
12621072   PORT_INCLUDE( xboard_generic )
12631073
1264   PORT_MODIFY("mainpcb:IO1PORTA")
1074   PORT_MODIFY("IO1PORTA")
12651075   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Vulcan")
12661076   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Missile")
12671077
1268   PORT_MODIFY("mainpcb:IO1PORTD")
1078   PORT_MODIFY("IO1PORTD")
12691079   PORT_DIPNAME( 0x03, 0x01, "Cabinet Type" ) PORT_DIPLOCATION("SWB:1,2")
12701080   PORT_DIPSETTING(    0x03, "Moving Deluxe" )
12711081   PORT_DIPSETTING(    0x02, "Moving Standard" )
r249130r249131
12901100   PORT_DIPSETTING(    0x40, DEF_STR( Hard ) )
12911101   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
12921102
1293   PORT_START("mainpcb:ADC0")  // stick X
1103   PORT_START("ADC0")  // stick X
12941104   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4)
12951105
1296   PORT_START("mainpcb:ADC1")  // stick Y
1106   PORT_START("ADC1")  // stick Y
12971107   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x40,0xc0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
12981108
1299   PORT_START("mainpcb:ADC2")  // throttle
1109   PORT_START("ADC2")  // throttle
13001110   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_SENSITIVITY(100) PORT_KEYDELTA(79)
13011111
1302   PORT_START("mainpcb:ADC3")  // motor Y
1112   PORT_START("ADC3")  // motor Y
13031113   PORT_BIT( 0xff, (0xb0+0x50)/2, IPT_SPECIAL )
13041114
1305   PORT_START("mainpcb:ADC4")  // motor X
1115   PORT_START("ADC4")  // motor X
13061116   PORT_BIT( 0xff, (0xb0+0x50)/2, IPT_SPECIAL )
13071117INPUT_PORTS_END
13081118
r249130r249131
13101120static INPUT_PORTS_START( aburner2 )
13111121   PORT_INCLUDE( aburner )
13121122
1313   PORT_MODIFY("mainpcb:IO1PORTD")
1123   PORT_MODIFY("IO1PORTD")
13141124   PORT_DIPNAME( 0x03, 0x01, "Cabinet Type" ) PORT_DIPLOCATION("SWB:1,2")
13151125   PORT_DIPSETTING(    0x03, "Moving Deluxe" )
13161126   PORT_DIPSETTING(    0x02, "Moving Standard" )
r249130r249131
13381148static INPUT_PORTS_START( thndrbld )
13391149   PORT_INCLUDE( xboard_generic )
13401150
1341   PORT_MODIFY("mainpcb:IO1PORTA")
1151   PORT_MODIFY("IO1PORTA")
13421152   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Cannon")
13431153   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Missile")
13441154
1345   PORT_MODIFY("mainpcb:IO1PORTD")
1155   PORT_MODIFY("IO1PORTD")
13461156   PORT_DIPNAME( 0x01, 0x01, "Cabinet Type" ) PORT_DIPLOCATION("SWB:1")
13471157   PORT_DIPSETTING(    0x01, "Econ Upright" )
13481158   PORT_DIPSETTING(    0x00, "Mini Upright" )  // see note about inputs below
r249130r249131
13701180   //  On the "Standing" cabinet, the joystick Y axis is reversed.
13711181   //  On the "Mini Upright" cabinet, the inputs conform to After Burner II:
13721182   //  the X axis is (un-)reversed, and the throttle and Y axis switch places
1373   PORT_START("mainpcb:ADC0")  // stick X
1183   PORT_START("ADC0")  // stick X
13741184   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
13751185
1376   PORT_START("mainpcb:ADC1")  // "slottle"
1186   PORT_START("ADC1")  // "slottle"
13771187   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_SENSITIVITY(100) PORT_KEYDELTA(79)
13781188
1379   PORT_START("mainpcb:ADC2")  // stick Y
1189   PORT_START("ADC2")  // stick Y
13801190   PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4)
13811191INPUT_PORTS_END
13821192
r249130r249131
13841194static INPUT_PORTS_START( thndrbd1 )
13851195   PORT_INCLUDE( thndrbld )
13861196
1387   PORT_MODIFY("mainpcb:IO1PORTD")
1197   PORT_MODIFY("IO1PORTD")
13881198   PORT_DIPNAME( 0x01, 0x01, "Cabinet Type" ) PORT_DIPLOCATION("SWB:1")
13891199   PORT_DIPSETTING(    0x01, "Deluxe" )
13901200   PORT_DIPSETTING(    0x00, "Standing" )  // see note about inputs above
r249130r249131
14241234static INPUT_PORTS_START( lastsurv )
14251235   PORT_INCLUDE( xboard_generic )
14261236
1427   PORT_MODIFY("mainpcb:IO1PORTA")
1237   PORT_MODIFY("IO1PORTA")
14281238   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE2 )
14291239
1430   PORT_START("mainpcb:MUX0")
1240   PORT_START("MUX0")
14311241   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
14321242   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
14331243   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
14341244   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
14351245   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)
14361246
1437   PORT_START("mainpcb:MUX1")
1247   PORT_START("MUX1")
14381248   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(1)
14391249   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(1)
14401250   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(1)
14411251   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(1)
14421252   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)
14431253
1444   PORT_START("mainpcb:MUX2")
1254   PORT_START("MUX2")
14451255   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
14461256   PORT_BIT( 0x0e, IP_ACTIVE_LOW, IPT_UNUSED )
14471257   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
14481258   PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED )
14491259
1450   PORT_START("mainpcb:MUX3")
1260   PORT_START("MUX3")
14511261   PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
14521262
1453   PORT_MODIFY("mainpcb:IO1PORTD")
1263   PORT_MODIFY("IO1PORTD")
14541264   PORT_DIPNAME( 0x03, 0x03, "I.D. No" ) PORT_DIPLOCATION("SWB:1,2")
14551265   PORT_DIPSETTING(    0x03, "1" )
14561266   PORT_DIPSETTING(    0x02, "2" )
r249130r249131
14781288static INPUT_PORTS_START( loffire )
14791289   PORT_INCLUDE( xboard_generic )
14801290
1481   PORT_MODIFY("mainpcb:IO1PORTA")
1291   PORT_MODIFY("IO1PORTA")
14821292   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
14831293   PORT_SERVICE_NO_TOGGLE( 0x02, IP_ACTIVE_LOW )
14841294   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE2 )
14851295   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 )
14861296   PORT_BIT( 0x30, IP_ACTIVE_LOW, IPT_UNKNOWN )
14871297
1488   PORT_MODIFY("mainpcb:IO1PORTB")
1298   PORT_MODIFY("IO1PORTB")
14891299   PORT_BIT( 0x0f, IP_ACTIVE_LOW, IPT_UNKNOWN )
14901300   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
14911301   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
14921302   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(1)
14931303   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(1)
14941304
1495   PORT_MODIFY("mainpcb:IO1PORTD")
1305   PORT_MODIFY("IO1PORTD")
14961306   PORT_DIPNAME( 0x01, 0x00, DEF_STR( Language ) ) PORT_DIPLOCATION("SWB:1")
14971307   PORT_DIPSETTING(    0x01, DEF_STR( Japanese ) )
14981308   PORT_DIPSETTING(    0x00, DEF_STR( English ) )
r249130r249131
15171327   PORT_DIPSETTING(    0x80, DEF_STR( Single ) )
15181328   PORT_DIPSETTING(    0x00, "Twin" )
15191329
1520   PORT_START("mainpcb:ADC0")
1330   PORT_START("ADC0")
15211331   PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(5)
15221332
1523   PORT_START("mainpcb:ADC1")
1333   PORT_START("ADC1")
15241334   PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(5)
15251335
1526   PORT_START("mainpcb:ADC2")
1336   PORT_START("ADC2")
15271337   PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_PLAYER(2)
15281338
1529   PORT_START("mainpcb:ADC3")
1339   PORT_START("ADC3")
15301340   PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_PLAYER(2)
15311341INPUT_PORTS_END
15321342
r249130r249131
15341344static INPUT_PORTS_START( rachero )
15351345   PORT_INCLUDE( xboard_generic )
15361346
1537   PORT_MODIFY("mainpcb:IO1PORTA")
1347   PORT_MODIFY("IO1PORTA")
15381348   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Move to Center")
15391349   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Suicide")
15401350
1541   PORT_MODIFY("mainpcb:IO1PORTD")
1351   PORT_MODIFY("IO1PORTD")
15421352   PORT_DIPNAME( 0x01, 0x01, "Credits" ) PORT_DIPLOCATION("SWB:1")
15431353   PORT_DIPSETTING(    0x01, "1 to Start, 1 to Continue" )
15441354   PORT_DIPSETTING(    0x00, "2 to Start, 1 to Continue" )
r249130r249131
15591369   PORT_DIPSETTING(    0x80, DEF_STR( Hard ) )
15601370   PORT_DIPSETTING(    0x00, DEF_STR( Very_Hard ) )
15611371
1562   PORT_START("mainpcb:ADC0")  // steering
1372   PORT_START("ADC0")  // steering
15631373   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
15641374
1565   PORT_START("mainpcb:ADC1")  // gas pedal
1375   PORT_START("ADC1")  // gas pedal
15661376   PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20)
15671377
1568   PORT_START("mainpcb:ADC2")  // brake
1378   PORT_START("ADC2")  // brake
15691379   PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(100) PORT_KEYDELTA(40)
15701380INPUT_PORTS_END
15711381
r249130r249131
15731383static INPUT_PORTS_START( smgp )
15741384   PORT_INCLUDE( xboard_generic )
15751385
1576   PORT_MODIFY("mainpcb:IO1PORTA")
1386   PORT_MODIFY("IO1PORTA")
15771387   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Shift Down") PORT_CODE(KEYCODE_A)
15781388   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Shift Up") PORT_CODE(KEYCODE_Z)
15791389
1580   PORT_MODIFY("mainpcb:IO1PORTD")
1390   PORT_MODIFY("IO1PORTD")
15811391   PORT_DIPNAME( 0x07, 0x07, "Machine ID" ) PORT_DIPLOCATION("SWB:1,2,3")
15821392   PORT_DIPSETTING(    0x07, "1" )
15831393   PORT_DIPSETTING(    0x06, "2" )
r249130r249131
16021412   PORT_DIPSETTING(    0x40, DEF_STR( Upright ) )
16031413//  PORT_DIPSETTING(    0x00, "Deluxe" )
16041414
1605   PORT_START("mainpcb:ADC0")  // steering
1415   PORT_START("ADC0")  // steering
16061416   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x38,0xc8) PORT_SENSITIVITY(100) PORT_KEYDELTA(4)
16071417
1608   PORT_START("mainpcb:ADC1")  // gas pedal
1418   PORT_START("ADC1")  // gas pedal
16091419   PORT_BIT( 0xff, 0x38, IPT_PEDAL ) PORT_MINMAX(0x38,0xb8) PORT_SENSITIVITY(100) PORT_KEYDELTA(20)
16101420
1611   PORT_START("mainpcb:ADC2")  // brake
1421   PORT_START("ADC2")  // brake
16121422   PORT_BIT( 0xff, 0x28, IPT_PEDAL2 ) PORT_MINMAX(0x28,0xa8) PORT_SENSITIVITY(100) PORT_KEYDELTA(40)
16131423INPUT_PORTS_END
16141424
r249130r249131
16161426static INPUT_PORTS_START( abcop )
16171427   PORT_INCLUDE( xboard_generic )
16181428
1619   PORT_MODIFY("mainpcb:IO1PORTA")
1429   PORT_MODIFY("IO1PORTA")
16201430   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Jump")
16211431
1622   PORT_MODIFY("mainpcb:IO1PORTD")
1432   PORT_MODIFY("IO1PORTD")
16231433   PORT_DIPNAME( 0x01, 0x01, "Credits" ) PORT_DIPLOCATION("SWB:1")
16241434   PORT_DIPSETTING(    0x01, "1 to Start, 1 to Continue" )
16251435   PORT_DIPSETTING(    0x00, "2 to Start, 1 to Continue" )
r249130r249131
16401450   PORT_DIPSETTING(    0x80, DEF_STR( Hard ) )
16411451   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
16421452
1643   PORT_START("mainpcb:ADC0")  // steering
1453   PORT_START("ADC0")  // steering
16441454   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE
16451455
1646   PORT_START("mainpcb:ADC1")  // accelerator
1456   PORT_START("ADC1")  // accelerator
16471457   PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20)
16481458INPUT_PORTS_END
16491459
16501460
16511461static INPUT_PORTS_START( gprider )
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 )
1462   PORT_INCLUDE( xboard_generic )
16561463
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 )
1464   PORT_MODIFY("IO1PORTA")
16651465   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Shift Down") PORT_CODE(KEYCODE_A)
16661466   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 )
16691467
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")
1468   PORT_MODIFY("IO1PORTD")
16771469   PORT_DIPNAME( 0x03, 0x02, DEF_STR( Cabinet ) ) PORT_DIPLOCATION("SWB:1,2")
16781470   PORT_DIPSETTING(    0x03, "Ride On" )
16791471   PORT_DIPSETTING(    0x02, DEF_STR( Upright ) )
16801472//  PORT_DIPSETTING(    0x01, DEF_STR( Unused ) )
16811473//  PORT_DIPSETTING(    0x00, DEF_STR( Unused ) )
1682   PORT_DIPUNUSED_DIPLOC( 0x04, IP_ACTIVE_LOW, "SWB:3" )
16831474   PORT_DIPNAME( 0x08, 0x08, "ID No." ) PORT_DIPLOCATION("SWB:4")
16841475   PORT_DIPSETTING(    0x08, "Main" ) // Player 1 (Blue)
16851476   PORT_DIPSETTING(    0x00, "Slave" ) // Player 2 (Red)
16861477   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SWB:5")
16871478   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
16881479   PORT_DIPSETTING(    0x10, DEF_STR( On ) )
1689   PORT_DIPUNUSED_DIPLOC( 0x20, IP_ACTIVE_LOW, "SWB:6" )
16901480   PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SWB:7,8")
16911481   PORT_DIPSETTING(    0x80, DEF_STR( Easy ) )
16921482   PORT_DIPSETTING(    0xc0, DEF_STR( Normal ) )
16931483   PORT_DIPSETTING(    0x40, DEF_STR( Hard ) )
16941484   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
16951485
1696   PORT_START("mainpcb:ADC0")  // steering
1486   PORT_START("ADC0")  // steering
16971487   PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4)
16981488
1699   PORT_START("mainpcb:ADC1")  // gas pedal
1489   PORT_START("ADC1")  // gas pedal
17001490   PORT_BIT( 0xff, 0x10, IPT_PEDAL ) PORT_MINMAX(0x10,0xef) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_REVERSE
17011491
1702   PORT_START("mainpcb:ADC2")  // brake
1492   PORT_START("ADC2")  // brake
17031493   PORT_BIT( 0xff, 0x10, IPT_PEDAL2 ) PORT_MINMAX(0x10,0xef) PORT_SENSITIVITY(100) PORT_KEYDELTA(40) PORT_REVERSE
17041494INPUT_PORTS_END
17051495
1706static INPUT_PORTS_START( gprider_double )
1707   PORT_INCLUDE( gprider )
17081496
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
17651497static INPUT_PORTS_START( rascot )
17661498   PORT_INCLUDE( xboard_generic )
17671499
r249130r249131
17831515//  GENERIC MACHINE DRIVERS
17841516//**************************************************************************
17851517
1786static MACHINE_CONFIG_FRAGMENT( xboard )
1518static MACHINE_CONFIG_START( xboard, segaxbd_state )
17871519
17881520   // basic machine hardware
17891521   MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK/4)
r249130r249131
18231555   MCFG_SEGA_XBOARD_SPRITES_ADD("sprites")
18241556   MCFG_SEGAIC16VID_ADD("segaic16vid")
18251557   MCFG_SEGAIC16VID_GFXDECODE("gfxdecode")
1826   MCFG_VIDEO_SET_SCREEN("screen")
1827
18281558   MCFG_SEGAIC16_ROAD_ADD("segaic16road")
18291559
18301560   // sound hardware
r249130r249131
18411571   MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
18421572MACHINE_CONFIG_END
18431573
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
1574static MACHINE_CONFIG_DERIVED( xboard_fd1094, xboard )
18651575   MCFG_CPU_REPLACE("maincpu", FD1094, MASTER_CLOCK/4)
18661576   MCFG_CPU_PROGRAM_MAP(main_map)
1867   MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map)
18681577MACHINE_CONFIG_END
18691578
1870const device_type SEGA_XBD_FD1094_DEVICE = &device_creator<segaxbd_fd1094_state>;
18711579
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}
18761580
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
18941581//**************************************************************************
18951582//  GAME-SPECIFIC MACHINE DRIVERS
18961583//**************************************************************************
18971584
1898static MACHINE_CONFIG_FRAGMENT( lastsurv_fd1094 )
1585static MACHINE_CONFIG_DERIVED( lastsurv_fd1094, xboard_fd1094 )
18991586
1900   MCFG_FRAGMENT_ADD( xboard_fd1094 )
1901
19021587   // basic machine hardware
19031588   // TODO: network board
19041589
r249130r249131
19091594   MCFG_SOUND_ROUTE(1, "lspeaker", 0.43)
19101595MACHINE_CONFIG_END
19111596
1912const device_type SEGA_XBD_LASTSURV_FD1094_DEVICE = &device_creator<segaxbd_lastsurv_fd1094_state>;
1597static MACHINE_CONFIG_DERIVED( smgp_fd1094, xboard_fd1094 )
19131598
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
19341599   // basic machine hardware
19351600   MCFG_CPU_ADD("soundcpu2", Z80, SOUND_CLOCK/4)
19361601   MCFG_CPU_PROGRAM_MAP(smgp_sound2_map)
r249130r249131
19531618   MCFG_SOUND_ROUTE(1, "rearright", 1.0)
19541619MACHINE_CONFIG_END
19551620
1956const device_type SEGA_XBD_SMGP_FD1094_DEVICE = &device_creator<segaxbd_smgp_fd1094_state>;
1621static MACHINE_CONFIG_DERIVED( rascot, xboard )
19571622
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
19771623   // basic machine hardware
19781624   MCFG_CPU_MODIFY("soundcpu")
19791625   MCFG_CPU_PROGRAM_MAP(rascot_z80_map)
19801626   MCFG_CPU_IO_MAP(rascot_z80_portmap)
19811627MACHINE_CONFIG_END
19821628
1983const device_type SEGA_XBD_RASCOT_DEVICE = &device_creator<segaxbd_rascot_state>;
19841629
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}
19891630
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
20001631//**************************************************************************
20011632//  ROM DEFINITIONS
20021633//**************************************************************************
r249130r249131
20341665//     EPR-10929.13
20351666//
20361667ROM_START( aburner )
2037   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
1668   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
20381669   ROM_LOAD16_BYTE( "epr-10940.58", 0x00000, 0x20000, CRC(4d132c4e) SHA1(007af52167c369177b86fc0f8b007ebceba2a30c) )
20391670   ROM_LOAD16_BYTE( "epr-10941.63", 0x00001, 0x20000, CRC(136ea264) SHA1(606ac67db53a6002ed1bd71287aed2e3e720cdf4) )
20401671
2041   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
1672   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
20421673   ROM_LOAD16_BYTE( "epr-10927.20", 0x00000, 0x20000, CRC(66d36757) SHA1(c7f6d653fb6bfd629bb62057010d41f3ccfccc4d) )
20431674   ROM_LOAD16_BYTE( "epr-10928.29", 0x00001, 0x20000, CRC(7c01d40b) SHA1(d95b4702a9c813db8bc24c8cd7e0933cbe54a573) )
20441675
2045   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
1676   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
20461677   ROM_LOAD( "epr-10926.154", 0x00000, 0x10000, CRC(ed8bd632) SHA1(d5bbd5e257ebef8cfb3baf5fa530b189d9cddb57) )
20471678   ROM_LOAD( "epr-10925.153", 0x10000, 0x10000, CRC(4ef048cc) SHA1(3b386b3bfa600f114dbc19796bb6864a88ff4562) )
20481679   ROM_LOAD( "epr-10924.152", 0x20000, 0x10000, CRC(50c15a6d) SHA1(fc202cc583fc6804647abc884fdf332e72ea3100) )
20491680
2050   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
1681   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
20511682   ROM_LOAD32_BYTE( "mpr-10932.90",  0x000000, 0x20000, CRC(cc0821d6) SHA1(22e84419a585209bbda1466d2180504c316a9b7f) ) // First 8 roms are MPR, the rest are EPR
20521683   ROM_LOAD32_BYTE( "mpr-10934.94",  0x000001, 0x20000, CRC(4a51b1fa) SHA1(2eed018a5a1e935bb72b6f440a794466a1397dc5) )
20531684   ROM_LOAD32_BYTE( "mpr-10936.98",  0x000002, 0x20000, CRC(ada70d64) SHA1(ba6203b0fdb4c4998b7be5b446eb8354751d553a) )
r249130r249131
20651696   ROM_LOAD32_BYTE( "epr-10948.101", 0x180002, 0x20000, CRC(64284761) SHA1(9594c671900f7f49d8fb965bc17b4380ce2c68d5) )
20661697   ROM_LOAD32_BYTE( "epr-10949.105", 0x180003, 0x20000, CRC(d8437d92) SHA1(480291358c3d197645d7bd149bdfe5d41071d52d) )
20671698
2068   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
1699   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
20691700   ROM_LOAD( "epr-10922.40", 0x000000, 0x10000, CRC(b49183d4) SHA1(71d87bfbce858049ccde9597ab15575b3cdba892) )
20701701
2071   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
1702   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
20721703   ROM_LOAD( "epr-10923.17", 0x00000, 0x10000, CRC(6888eb8f) SHA1(8f8fffb214842a5d356e33f5a97099bc6407384f) )
20731704
2074   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
1705   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
20751706   ROM_LOAD( "mpr-10931.11", 0x00000, 0x20000, CRC(9209068f) SHA1(01f3dda1c066d00080c55f2c86c506b6b2407f98) )
20761707   ROM_LOAD( "mpr-10930.12", 0x20000, 0x20000, CRC(6493368b) SHA1(328aff19ff1d1344e9115f519d3962390c4e5ba4) )
20771708   ROM_LOAD( "epr-10929.13", 0x40000, 0x20000, CRC(6c07c78d) SHA1(3868b1824f43e4f2b4fbcd9274bfb3000c889d12) )
r249130r249131
20851716//  CPU: 68000 (317-????)
20861717//
20871718ROM_START( aburner2 )
2088   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
1719   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
20891720   ROM_LOAD16_BYTE( "epr-11107.58",  0x00000, 0x20000, CRC(6d87bab7) SHA1(ab34fe78f1f216037b3e3dca3e61f1b31c05cedf) )
20901721   ROM_LOAD16_BYTE( "epr-11108.63", 0x00001, 0x20000, CRC(202a3e1d) SHA1(cf2018bbad366de4b222eae35942636ca68aa581) )
20911722
2092   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
1723   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
20931724   ROM_LOAD16_BYTE( "epr-11109.20", 0x00000, 0x20000, CRC(85a0fe07) SHA1(5a3a8fda6cb4898cfece4ec865b81b9b60f9ad55) )
20941725   ROM_LOAD16_BYTE( "epr-11110.29", 0x00001, 0x20000, CRC(f3d6797c) SHA1(17487b89ddbfbcc32a0b52268259f1c8d10fd0b2) )
20951726
2096   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
1727   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
20971728   ROM_LOAD( "epr-11115.154", 0x00000, 0x10000, CRC(e8e32921) SHA1(30a96e6b514a475c778296228ba5b6fb96b211b0) )
20981729   ROM_LOAD( "epr-11114.153", 0x10000, 0x10000, CRC(2e97f633) SHA1(074125c106dd00785903b2e10cd7e28d5036eb60) )
20991730   ROM_LOAD( "epr-11113.152", 0x20000, 0x10000, CRC(36058c8c) SHA1(52befe6c6c53f10b6fd4971098abc8f8d3eef9d4) )
21001731
2101   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
1732   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
21021733   ROM_LOAD32_BYTE( "mpr-10932.90",  0x000000, 0x20000, CRC(cc0821d6) SHA1(22e84419a585209bbda1466d2180504c316a9b7f) ) // First 8 roms are MPR, the rest are EPR
21031734   ROM_LOAD32_BYTE( "mpr-10934.94",  0x000001, 0x20000, CRC(4a51b1fa) SHA1(2eed018a5a1e935bb72b6f440a794466a1397dc5) )
21041735   ROM_LOAD32_BYTE( "mpr-10936.98",  0x000002, 0x20000, CRC(ada70d64) SHA1(ba6203b0fdb4c4998b7be5b446eb8354751d553a) )
r249130r249131
21161747   ROM_LOAD32_BYTE( "epr-11118.101", 0x180002, 0x20000, CRC(8f38540b) SHA1(1fdfb157d1aca96cb635bd3d64f94545eb88c133) )
21171748   ROM_LOAD32_BYTE( "epr-11119.105", 0x180003, 0x20000, CRC(d0343a8e) SHA1(8c0c0addb6dfd0ea04c3900a9f7f7c731ca6e9ea) )
21181749
2119   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
1750   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
21201751   ROM_LOAD( "epr-10922.40", 0x000000, 0x10000, CRC(b49183d4) SHA1(71d87bfbce858049ccde9597ab15575b3cdba892) )
21211752
2122   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
1753   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
21231754   ROM_LOAD( "epr-11112.17",    0x00000, 0x10000, CRC(d777fc6d) SHA1(46ce1c3875437044c0a172960d560d6acd6eaa92) )
21241755
2125   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
1756   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
21261757   ROM_LOAD( "mpr-10931.11", 0x00000, 0x20000, CRC(9209068f) SHA1(01f3dda1c066d00080c55f2c86c506b6b2407f98) )
21271758   ROM_LOAD( "mpr-10930.12", 0x20000, 0x20000, CRC(6493368b) SHA1(328aff19ff1d1344e9115f519d3962390c4e5ba4) )
21281759   ROM_LOAD( "epr-11102.13", 0x40000, 0x20000, CRC(6c07c78d) SHA1(3868b1824f43e4f2b4fbcd9274bfb3000c889d12) )
r249130r249131
21341765//  Sega Game ID #: 834-6335-04 AFTER BURNER
21351766//
21361767ROM_START( aburner2g )
2137   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
1768   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
21381769   ROM_LOAD16_BYTE( "epr-11173a.58", 0x00000, 0x20000, CRC(cbf480f4) SHA1(f5bab7b2889cdd3f3f2a3e9edd3f17b4d2a5b8a9) )
21391770   ROM_LOAD16_BYTE( "epr-11174a.63", 0x00001, 0x20000, CRC(ed7cba77) SHA1(e81f24fa93329ad25150eada7717cce55fa3887d) )
21401771
2141   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
1772   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
21421773   ROM_LOAD16_BYTE( "epr-11109.20", 0x00000, 0x20000, CRC(85a0fe07) SHA1(5a3a8fda6cb4898cfece4ec865b81b9b60f9ad55) )
21431774   ROM_LOAD16_BYTE( "epr-11110.29", 0x00001, 0x20000, CRC(f3d6797c) SHA1(17487b89ddbfbcc32a0b52268259f1c8d10fd0b2) )
21441775
2145   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
1776   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
21461777   ROM_LOAD( "epr-11115.154", 0x00000, 0x10000, CRC(e8e32921) SHA1(30a96e6b514a475c778296228ba5b6fb96b211b0) )
21471778   ROM_LOAD( "epr-11114.153", 0x10000, 0x10000, CRC(2e97f633) SHA1(074125c106dd00785903b2e10cd7e28d5036eb60) )
21481779   ROM_LOAD( "epr-11113.152", 0x20000, 0x10000, CRC(36058c8c) SHA1(52befe6c6c53f10b6fd4971098abc8f8d3eef9d4) )
21491780
2150   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
1781   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
21511782   ROM_LOAD32_BYTE( "mpr-10932.90",  0x000000, 0x20000, CRC(cc0821d6) SHA1(22e84419a585209bbda1466d2180504c316a9b7f) ) // First 8 roms are MPR, the rest are EPR
21521783   ROM_LOAD32_BYTE( "mpr-10934.94",  0x000001, 0x20000, CRC(4a51b1fa) SHA1(2eed018a5a1e935bb72b6f440a794466a1397dc5) )
21531784   ROM_LOAD32_BYTE( "mpr-10936.98",  0x000002, 0x20000, CRC(ada70d64) SHA1(ba6203b0fdb4c4998b7be5b446eb8354751d553a) )
r249130r249131
21651796   ROM_LOAD32_BYTE( "epr-11118.101", 0x180002, 0x20000, CRC(8f38540b) SHA1(1fdfb157d1aca96cb635bd3d64f94545eb88c133) )
21661797   ROM_LOAD32_BYTE( "epr-11119.105", 0x180003, 0x20000, CRC(d0343a8e) SHA1(8c0c0addb6dfd0ea04c3900a9f7f7c731ca6e9ea) )
21671798
2168   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
1799   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
21691800   ROM_LOAD( "epr-10922.40", 0x000000, 0x10000, CRC(b49183d4) SHA1(71d87bfbce858049ccde9597ab15575b3cdba892) )
21701801
2171   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
1802   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
21721803   ROM_LOAD( "epr-11112.17",    0x00000, 0x10000, CRC(d777fc6d) SHA1(46ce1c3875437044c0a172960d560d6acd6eaa92) )
21731804
2174   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
1805   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
21751806   ROM_LOAD( "mpr-10931.11", 0x00000, 0x20000, CRC(9209068f) SHA1(01f3dda1c066d00080c55f2c86c506b6b2407f98) ) // There is known to exist German Sample roms
21761807   ROM_LOAD( "mpr-10930.12", 0x20000, 0x20000, CRC(6493368b) SHA1(328aff19ff1d1344e9115f519d3962390c4e5ba4) )
21771808   ROM_LOAD( "epr-10929.13", 0x40000, 0x20000, CRC(6c07c78d) SHA1(3868b1824f43e4f2b4fbcd9274bfb3000c889d12) )
r249130r249131
21861817//  Sega game ID# 834-7218-02
21871818//
21881819ROM_START( loffire )
2189   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
1820   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
21901821   ROM_LOAD16_BYTE( "epr-12849.58", 0x000000, 0x20000, CRC(61cfd2fe) SHA1(b47ae9cdf741574ab9128dd3556b1ef35e81a149) )
21911822   ROM_LOAD16_BYTE( "epr-12850.63", 0x000001, 0x20000, CRC(14598f2a) SHA1(13a51529ed32acefd733d9f638621c3e023dbd6d) )
21921823
r249130r249131
22001831   // Nicola Salmoria
22011832   //
22021833
2203   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
1834   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
22041835   ROM_LOAD( "317-0136.key", 0x0000, 0x2000, BAD_DUMP CRC(344bfe0c) SHA1(f6bb8045b46f90f8abadf1dc2e1ae1d7cef9c810) )
22051836
2206   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
1837   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
22071838   ROM_LOAD16_BYTE( "epr-12804.20", 0x000000, 0x20000, CRC(b853480e) SHA1(de0889e99251da7ea50316282ebf6f434cc2db11) )
22081839   ROM_LOAD16_BYTE( "epr-12805.29", 0x000001, 0x20000, CRC(4a7200c3) SHA1(3e6febed36a55438e0d24441b68f2b7952791584) )
22091840   ROM_LOAD16_BYTE( "epr-12802.21", 0x040000, 0x20000, CRC(d746bb39) SHA1(08dc8cf565997c7e52329961bf7a229a15900cff) )
22101841   ROM_LOAD16_BYTE( "epr-12803.30", 0x040001, 0x20000, CRC(c1d9e751) SHA1(98b3d0b3b31702f6234b5fea2b82d512fc5d3ad2) )
22111842
2212   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
1843   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
22131844   ROM_LOAD( "opr-12791.154", 0x00000, 0x10000, CRC(acfa69ba) SHA1(353c43dda6c2282a785646b0a58c90cfd173cd7b) )
22141845   ROM_LOAD( "opr-12792.153", 0x10000, 0x10000, CRC(e506723c) SHA1(d04dc29686fe348f8f715d14c027de0e508c770f) )
22151846   ROM_LOAD( "opr-12793.152", 0x20000, 0x10000, CRC(0ce8cce3) SHA1(1a6b1af2b0b9e8240e681f7b15e9d08595753fe6) )
22161847
2217   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
1848   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
22181849   ROM_LOAD32_BYTE( "epr-12787.90",  0x000000, 0x20000, CRC(6431a3a6) SHA1(63a732b7dfd2b83fe7684d47fea26063c4ece099) )
22191850   ROM_LOAD32_BYTE( "epr-12788.94",  0x000001, 0x20000, CRC(1982a0ce) SHA1(e4756f31b0094e0e9ddb2df53a5c938ac5559230) )
22201851   ROM_LOAD32_BYTE( "epr-12789.98",  0x000002, 0x20000, CRC(97d03274) SHA1(b4b9921db53949bc8e91f8a2992e89c172fe8893) )
r249130r249131
22321863   ROM_LOAD32_BYTE( "epr-12777.101", 0x180002, 0x20000, CRC(29d5b953) SHA1(0c932a67e2aecffa7a1dbaa587c96214e1a2cc7f) )
22331864   ROM_LOAD32_BYTE( "epr-12778.105", 0x180003, 0x20000, CRC(2fb68e07) SHA1(8685e72aed115cbc9c6c7511217996a573b30d16) )
22341865
2235   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
1866   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
22361867   // none
22371868
2238   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
1869   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
22391870   ROM_LOAD( "epr-12798.17", 0x00000, 0x10000, CRC(0587738d) SHA1(24c79b0c73616d5532a49a2c9121dfabe3a80c7d) )
22401871
2241   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
1872   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
22421873   ROM_LOAD( "epr-12799.11", 0x00000, 0x20000, CRC(bc60181c) SHA1(3c89161348db7cafb5636ab4eaba91fbd3541f90) )
22431874   ROM_LOAD( "epr-12800.12", 0x20000, 0x20000, CRC(1158c1a3) SHA1(e1d664a203eed5a0130b39ced7bea8328f06f107) )
22441875   ROM_LOAD( "epr-12801.13", 0x40000, 0x20000, CRC(2d6567c4) SHA1(542be9d8e91cf2df18d95f4e259cfda0560697cb) )
r249130r249131
22501881//  Sega game ID# 834-7218-01
22511882//
22521883ROM_START( loffireu )
2253   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
1884   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
22541885   ROM_LOAD16_BYTE( "epr-12847a.58", 0x000000, 0x20000, CRC(c50eb4ed) SHA1(18a46c97aec2fefd160338c1760b6ee367dcb57f) )
22551886   ROM_LOAD16_BYTE( "epr-12848a.63", 0x000001, 0x20000, CRC(f8ff8640) SHA1(193bb8f42f3c5011ad1fbf87215f012de5e950fb) )
22561887
2257   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
1888   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
22581889   ROM_LOAD( "317-0135.key", 0x0000, 0x2000, CRC(c53ad019) SHA1(7e6dc2b35ebfeefb507d4d03f5a59574944177d1) )
22591890
2260   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
1891   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
22611892   ROM_LOAD16_BYTE( "epr-12804.20", 0x000000, 0x20000, CRC(b853480e) SHA1(de0889e99251da7ea50316282ebf6f434cc2db11) )
22621893   ROM_LOAD16_BYTE( "epr-12805.29", 0x000001, 0x20000, CRC(4a7200c3) SHA1(3e6febed36a55438e0d24441b68f2b7952791584) )
22631894   ROM_LOAD16_BYTE( "epr-12802.21", 0x040000, 0x20000, CRC(d746bb39) SHA1(08dc8cf565997c7e52329961bf7a229a15900cff) )
22641895   ROM_LOAD16_BYTE( "epr-12803.30", 0x040001, 0x20000, CRC(c1d9e751) SHA1(98b3d0b3b31702f6234b5fea2b82d512fc5d3ad2) )
22651896
2266   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
1897   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
22671898   ROM_LOAD( "opr-12791.154", 0x00000, 0x10000, CRC(acfa69ba) SHA1(353c43dda6c2282a785646b0a58c90cfd173cd7b) )
22681899   ROM_LOAD( "opr-12792.153", 0x10000, 0x10000, CRC(e506723c) SHA1(d04dc29686fe348f8f715d14c027de0e508c770f) )
22691900   ROM_LOAD( "opr-12793.152", 0x20000, 0x10000, CRC(0ce8cce3) SHA1(1a6b1af2b0b9e8240e681f7b15e9d08595753fe6) )
22701901
2271   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
1902   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
22721903   ROM_LOAD32_BYTE( "epr-12787.90",  0x000000, 0x20000, CRC(6431a3a6) SHA1(63a732b7dfd2b83fe7684d47fea26063c4ece099) )
22731904   ROM_LOAD32_BYTE( "epr-12788.94",  0x000001, 0x20000, CRC(1982a0ce) SHA1(e4756f31b0094e0e9ddb2df53a5c938ac5559230) )
22741905   ROM_LOAD32_BYTE( "epr-12789.98",  0x000002, 0x20000, CRC(97d03274) SHA1(b4b9921db53949bc8e91f8a2992e89c172fe8893) )
r249130r249131
22861917   ROM_LOAD32_BYTE( "epr-12777.101", 0x180002, 0x20000, CRC(29d5b953) SHA1(0c932a67e2aecffa7a1dbaa587c96214e1a2cc7f) )
22871918   ROM_LOAD32_BYTE( "epr-12778.105", 0x180003, 0x20000, CRC(2fb68e07) SHA1(8685e72aed115cbc9c6c7511217996a573b30d16) )
22881919
2289   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
1920   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
22901921   // none
22911922
2292   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
1923   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
22931924   ROM_LOAD( "epr-12798.17", 0x00000, 0x10000, CRC(0587738d) SHA1(24c79b0c73616d5532a49a2c9121dfabe3a80c7d) )
22941925
2295   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
1926   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
22961927   ROM_LOAD( "epr-12799.11", 0x00000, 0x20000, CRC(bc60181c) SHA1(3c89161348db7cafb5636ab4eaba91fbd3541f90) )
22971928   ROM_LOAD( "epr-12800.12", 0x20000, 0x20000, CRC(1158c1a3) SHA1(e1d664a203eed5a0130b39ced7bea8328f06f107) )
22981929   ROM_LOAD( "epr-12801.13", 0x40000, 0x20000, CRC(2d6567c4) SHA1(542be9d8e91cf2df18d95f4e259cfda0560697cb) )
r249130r249131
23041935//  Sega game ID# 834-7218
23051936//
23061937ROM_START( loffirej )
2307   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
1938   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
23081939   // repaired using data from the loffire set since they are mostly identical
23091940   // when decrypted, they pass the rom check so are assumed to be ok but double
23101941   // checking them when possible never hurts
23111942   ROM_LOAD16_BYTE( "epr-12794.58", 0x000000, 0x20000, CRC(1e588992) SHA1(fe7107e83c12643e7d22fd4b4cd0c7bcff0d84c3) )
23121943   ROM_LOAD16_BYTE( "epr-12795.63", 0x000001, 0x20000, CRC(d43d7427) SHA1(ecbd425bab6aa65ffbd441d6a0936ac055d5f06d) )
23131944
2314   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
1945   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
23151946   ROM_LOAD( "317-0134.key", 0x0000, 0x2000, CRC(732626d4) SHA1(75ed7ca417758dd62afb4edbb9daee754932c392) )
23161947
2317   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
1948   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
23181949   ROM_LOAD16_BYTE( "epr-12804.20", 0x000000, 0x20000, CRC(b853480e) SHA1(de0889e99251da7ea50316282ebf6f434cc2db11) )
23191950   ROM_LOAD16_BYTE( "epr-12805.29", 0x000001, 0x20000, CRC(4a7200c3) SHA1(3e6febed36a55438e0d24441b68f2b7952791584) )
23201951   ROM_LOAD16_BYTE( "epr-12802.21", 0x040000, 0x20000, CRC(d746bb39) SHA1(08dc8cf565997c7e52329961bf7a229a15900cff) )
23211952   ROM_LOAD16_BYTE( "epr-12803.30", 0x040001, 0x20000, CRC(c1d9e751) SHA1(98b3d0b3b31702f6234b5fea2b82d512fc5d3ad2) )
23221953
2323   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
1954   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
23241955   ROM_LOAD( "opr-12791.154", 0x00000, 0x10000, CRC(acfa69ba) SHA1(353c43dda6c2282a785646b0a58c90cfd173cd7b) )
23251956   ROM_LOAD( "opr-12792.153", 0x10000, 0x10000, CRC(e506723c) SHA1(d04dc29686fe348f8f715d14c027de0e508c770f) )
23261957   ROM_LOAD( "opr-12793.152", 0x20000, 0x10000, CRC(0ce8cce3) SHA1(1a6b1af2b0b9e8240e681f7b15e9d08595753fe6) )
23271958
2328   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
1959   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
23291960   ROM_LOAD32_BYTE( "epr-12787.90",  0x000000, 0x20000, CRC(6431a3a6) SHA1(63a732b7dfd2b83fe7684d47fea26063c4ece099) )
23301961   ROM_LOAD32_BYTE( "epr-12788.94",  0x000001, 0x20000, CRC(1982a0ce) SHA1(e4756f31b0094e0e9ddb2df53a5c938ac5559230) )
23311962   ROM_LOAD32_BYTE( "epr-12789.98",  0x000002, 0x20000, CRC(97d03274) SHA1(b4b9921db53949bc8e91f8a2992e89c172fe8893) )
r249130r249131
23431974   ROM_LOAD32_BYTE( "epr-12777.101", 0x180002, 0x20000, CRC(29d5b953) SHA1(0c932a67e2aecffa7a1dbaa587c96214e1a2cc7f) )
23441975   ROM_LOAD32_BYTE( "epr-12778.105", 0x180003, 0x20000, CRC(2fb68e07) SHA1(8685e72aed115cbc9c6c7511217996a573b30d16) )
23451976
2346   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
1977   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
23471978   // none
23481979
2349   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
1980   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
23501981   ROM_LOAD( "epr-12798.17", 0x00000, 0x10000, CRC(0587738d) SHA1(24c79b0c73616d5532a49a2c9121dfabe3a80c7d) )
23511982
2352   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
1983   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
23531984   ROM_LOAD( "epr-12799.11", 0x00000, 0x20000, CRC(bc60181c) SHA1(3c89161348db7cafb5636ab4eaba91fbd3541f90) )
23541985   ROM_LOAD( "epr-12800.12", 0x20000, 0x20000, CRC(1158c1a3) SHA1(e1d664a203eed5a0130b39ced7bea8328f06f107) )
23551986   ROM_LOAD( "epr-12801.13", 0x40000, 0x20000, CRC(2d6567c4) SHA1(542be9d8e91cf2df18d95f4e259cfda0560697cb) )
r249130r249131
23651996//  GAME BD NO. 834-6493-03 (Uses "MPR" mask roms) or 834-6493-05 (Uses "EPR" eproms)
23661997//
23671998ROM_START( thndrbld )
2368   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) // 68000 code
1999   ROM_REGION( 0x100000, "maincpu", 0 ) // 68000 code
23692000   ROM_LOAD16_BYTE( "epr-11405.ic58", 0x000000, 0x20000, CRC(e057dd5a) SHA1(4c032db4752dfb44dba3def5ee5377fffd94b79c) )
23702001   ROM_LOAD16_BYTE( "epr-11406.ic63", 0x000001, 0x20000, CRC(c6b994b8) SHA1(098b2ae30c4aafea35222369d60f8e89f87639eb) )
23712002   ROM_LOAD16_BYTE( "epr-11306.ic57", 0x040000, 0x20000, CRC(4b95f2b4) SHA1(9e0ff898a2af05c35db3551e52c7485748698c28) )
23722003   ROM_LOAD16_BYTE( "epr-11307.ic62", 0x040001, 0x20000, CRC(2d6833e4) SHA1(b39a744370014237121f0010d18897e63f7058cf) )
23732004
2374   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
2005   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
23752006   ROM_LOAD( "317-0056.key", 0x0000, 0x2000, CRC(b40cd2c5) SHA1(865e70bce4f55f6702960d6eaa780b7b1f880e41) )
23762007
2377   ROM_REGION( 0x100000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
2008   ROM_REGION( 0x100000, "subcpu", 0 ) // 2nd 68000 code
23782009   ROM_LOAD16_BYTE( "epr-11390.ic20", 0x000000, 0x20000, CRC(ed988fdb) SHA1(b809b0b7dabd5cb29f5387522c6dfb993d1d0271) )
23792010   ROM_LOAD16_BYTE( "epr-11391.ic29", 0x000001, 0x20000, CRC(12523bc1) SHA1(54635d6c4cc97cf4148dcac3bb2056fc414252f7) )
23802011   ROM_LOAD16_BYTE( "epr-11310.ic21", 0x040000, 0x20000, CRC(5d9fa02c) SHA1(0ca71e35cf9740e38a52960f7d1ef96e7e1dda94) )
23812012   ROM_LOAD16_BYTE( "epr-11311.ic30", 0x040001, 0x20000, CRC(483de21b) SHA1(871f0e856dcc81dcef1d9846261b3c011fa26dde) )
23822013
2383   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
2014   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
23842015   ROM_LOAD( "epr-11314.ic154", 0x00000, 0x10000, CRC(d4f954a9) SHA1(93ee8cf8fcf4e1d0dd58329bba9b594431193449) )
23852016   ROM_LOAD( "epr-11315.ic153", 0x10000, 0x10000, CRC(35813088) SHA1(ea1ec982d1509efb26e7b6a150825a6a905efed9) )
23862017   ROM_LOAD( "epr-11316.ic152", 0x20000, 0x10000, CRC(84290dff) SHA1(c13fb6ef12a991f79a95072f953a02b5c992aa2d) )
23872018
2388   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
2019   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
23892020   ROM_LOAD32_BYTE( "epr-11323.ic90",  0x000000, 0x20000, CRC(27e40735) SHA1(284ddb88efe741fb78199ea619c9b230ee689803) )
23902021   ROM_LOAD32_BYTE( "epr-11322.ic94",  0x000001, 0x20000, CRC(10364d74) SHA1(393b19a972b5d8817ffd438f13ded73cd58ebe56) )
23912022   ROM_LOAD32_BYTE( "epr-11321.ic98",  0x000002, 0x20000, CRC(8e738f58) SHA1(9f2dceebf01e582cf60f072ae411000d8503894b) )
r249130r249131
24032034   ROM_LOAD32_BYTE( "epr-11393.ic101", 0x180002, 0x20000, CRC(525e2e1d) SHA1(6fd09f775e7e6cad8078513d1af0a8ff40fb1360) ) // replaced from original rev?
24042035   ROM_LOAD32_BYTE( "epr-11392.ic105", 0x180003, 0x20000, CRC(b4a382f7) SHA1(c03a05ba521f654db1a9c5f5717b7a15e5a29d4e) ) //
24052036
2406   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // Road Data
2037   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // Road Data
24072038   ROM_LOAD( "epr-11313.ic29", 0x00000, 0x10000, CRC(6a56c4c3) SHA1(c1b8023cb2ba4e96be052031c24b6ae424225c71) )
24082039
2409   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
2040   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
24102041   ROM_LOAD( "epr-11396.ic17", 0x00000, 0x10000, CRC(d37b54a4) SHA1(c230fe7241a1f13ca13506d1492f348f506c40a7) )
24112042
2412   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2043   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
24132044   ROM_LOAD( "epr-11317.ic11", 0x00000, 0x20000, CRC(d4e7ac1f) SHA1(ec5d6e4949938adf56e5613801ae56ff2c3dede5) )
24142045   ROM_LOAD( "epr-11318.ic12", 0x20000, 0x20000, CRC(70d3f02c) SHA1(391aac2bc5673e06150de27e19c7c6359da8ca82) )
24152046   ROM_LOAD( "epr-11319.ic13", 0x40000, 0x20000, CRC(50d9242e) SHA1(a106371bf680c3088ec61f07fc5c4ce467973c15) )
r249130r249131
24222053//  GAME BD NO. 834-6493-03 (Uses "MPR" mask roms) or 834-6493-05 (Uses "EPR" eproms)
24232054//
24242055ROM_START( thndrbld1 )
2425   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
2056   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
24262057   ROM_LOAD16_BYTE( "epr-11304.ic58", 0x000000, 0x20000, CRC(a90630ef) SHA1(8f29e020119b2243b1c95e15546af1773327ae85) ) // patched?
24272058   ROM_LOAD16_BYTE( "epr-11305.ic63", 0x000001, 0x20000, CRC(9ba3ef61) SHA1(f75748b37ce35b0ef881804f73417643068dfbb2) ) // patched?
24282059   ROM_LOAD16_BYTE( "epr-11306.ic57", 0x040000, 0x20000, CRC(4b95f2b4) SHA1(9e0ff898a2af05c35db3551e52c7485748698c28) )
24292060   ROM_LOAD16_BYTE( "epr-11307.ic62", 0x040001, 0x20000, CRC(2d6833e4) SHA1(b39a744370014237121f0010d18897e63f7058cf) )
24302061
2431   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
2062   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
24322063   ROM_LOAD16_BYTE( "epr-11308.ic20", 0x00000, 0x20000, CRC(7956c238) SHA1(4608225cfd6ea3d38317cbe970f26a5fc2f8e320) )
24332064   ROM_LOAD16_BYTE( "epr-11309.ic29", 0x00001, 0x20000, CRC(c887f620) SHA1(644c47cc2cf75cbe489ea084c13c59d94631e83f) )
24342065   ROM_LOAD16_BYTE( "epr-11310.ic21", 0x040000, 0x20000, CRC(5d9fa02c) SHA1(0ca71e35cf9740e38a52960f7d1ef96e7e1dda94) )
24352066   ROM_LOAD16_BYTE( "epr-11311.ic30", 0x040001, 0x20000, CRC(483de21b) SHA1(871f0e856dcc81dcef1d9846261b3c011fa26dde) )
24362067
2437   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
2068   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
24382069   ROM_LOAD( "epr-11314.ic154", 0x00000, 0x10000, CRC(d4f954a9) SHA1(93ee8cf8fcf4e1d0dd58329bba9b594431193449) )
24392070   ROM_LOAD( "epr-11315.ic153", 0x10000, 0x10000, CRC(35813088) SHA1(ea1ec982d1509efb26e7b6a150825a6a905efed9) )
24402071   ROM_LOAD( "epr-11316.ic152", 0x20000, 0x10000, CRC(84290dff) SHA1(c13fb6ef12a991f79a95072f953a02b5c992aa2d) )
24412072
2442   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
2073   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
24432074   ROM_LOAD32_BYTE( "epr-11323.ic90",  0x000000, 0x20000, CRC(27e40735) SHA1(284ddb88efe741fb78199ea619c9b230ee689803) )
24442075   ROM_LOAD32_BYTE( "epr-11322.ic94",  0x000001, 0x20000, CRC(10364d74) SHA1(393b19a972b5d8817ffd438f13ded73cd58ebe56) )
24452076   ROM_LOAD32_BYTE( "epr-11321.ic98",  0x000002, 0x20000, CRC(8e738f58) SHA1(9f2dceebf01e582cf60f072ae411000d8503894b) )
r249130r249131
24572088   ROM_LOAD32_BYTE( "epr-11333.ic101", 0x180002, 0x20000, CRC(05a2333f) SHA1(70f213945fa7fe056fe17a02558638e87f2c001e) )
24582089   ROM_LOAD32_BYTE( "epr-11332.ic105", 0x180003, 0x20000, CRC(dc089ec6) SHA1(d72390c45138a507e79af112addbc015560fc248) )
24592090
2460   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // Road Data
2091   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // Road Data
24612092   ROM_LOAD( "epr-11313.ic29", 0x00000, 0x10000, CRC(6a56c4c3) SHA1(c1b8023cb2ba4e96be052031c24b6ae424225c71) )
24622093
2463   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
2094   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
24642095   ROM_LOAD( "epr-11312.ic17",   0x00000, 0x10000, CRC(3b974ed2) SHA1(cf18a2d0f01643c747a884bf00e5b7037ba2e64a) )
24652096
2466   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2097   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
24672098   ROM_LOAD( "epr-11317.ic11", 0x00000, 0x20000, CRC(d4e7ac1f) SHA1(ec5d6e4949938adf56e5613801ae56ff2c3dede5) )
24682099   ROM_LOAD( "epr-11318.ic12", 0x20000, 0x20000, CRC(70d3f02c) SHA1(391aac2bc5673e06150de27e19c7c6359da8ca82) )
24692100   ROM_LOAD( "epr-11319.ic13", 0x40000, 0x20000, CRC(50d9242e) SHA1(a106371bf680c3088ec61f07fc5c4ce467973c15) )
r249130r249131
24772108//  CPU: FD1094 (317-0083)
24782109//
24792110ROM_START( lastsurv )
2480   ROM_REGION( 0x100000, "mainpcb:maincpu", 0 ) // 68000 code
2111   ROM_REGION( 0x100000, "maincpu", 0 ) // 68000 code
24812112   ROM_LOAD16_BYTE( "epr-12046.ic58", 0x000000, 0x20000, CRC(f94f3a1a) SHA1(f509cbccb1f36ce52ed3e44d4d7b31a047050700) )
24822113   ROM_LOAD16_BYTE( "epr-12047.ic63", 0x000001, 0x20000, CRC(1b45c116) SHA1(c46ad622a145baea52d918537fa43a2009ed0cca) )
24832114   ROM_LOAD16_BYTE( "epr-12048.ic57", 0x040000, 0x20000, CRC(648e38ca) SHA1(e5f7fd42f49dbbddd1a812a04d8b95c1a73e640b) )
24842115   ROM_LOAD16_BYTE( "epr-12049.ic62", 0x040001, 0x20000, CRC(6c5c4753) SHA1(6834542005bc8cad7918ae17d3764306d7f9a959) )
24852116
2486   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
2117   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
24872118   ROM_LOAD( "317-0083.key", 0x0000, 0x2000, CRC(dca0b9cc) SHA1(77510804d36d486ffa1e0bb5b0a36d43adc63415) )
24882119
2489   ROM_REGION( 0x100000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
2120   ROM_REGION( 0x100000, "subcpu", 0 ) // 2nd 68000 code
24902121   ROM_LOAD16_BYTE( "epr-12050.ic20", 0x000000, 0x20000, CRC(985a0f36) SHA1(bd0a93aa16565c8338db0c67b031bfa409bce5a9) )
24912122   ROM_LOAD16_BYTE( "epr-12051.ic29", 0x000001, 0x20000, CRC(f967d5a8) SHA1(16d742da755b5b7c3c3a9f6b4baaf242e5e54441) )
24922123   ROM_LOAD16_BYTE( "epr-12052.ic21", 0x040000, 0x20000, CRC(9f7a424d) SHA1(b8c2d3aa08ba71f08f2c1f403edac16bf4334184) )
24932124   ROM_LOAD16_BYTE( "epr-12053.ic30", 0x040001, 0x20000, CRC(efcf30f6) SHA1(55cd42c78f117995a89844529386ae3d11c718c1) )
24942125
2495   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
2126   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
24962127   ROM_LOAD( "epr-12055.ic154", 0x00000, 0x10000, CRC(150014a4) SHA1(9fbab916ee903c541f61014e137ccecd071b5c3a) )
24972128   ROM_LOAD( "epr-12056.ic153", 0x10000, 0x10000, CRC(3cd4c306) SHA1(b0f178688870c67936a15383024c392072e3bc66) )
24982129   ROM_LOAD( "epr-12057.ic152", 0x20000, 0x10000, CRC(37e91770) SHA1(69e26f4d3c4ebfaf0225a9b1c60038595929ef05) )
24992130
2500   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
2131   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
25012132   ROM_LOAD32_BYTE( "mpr-12064.ic90",  0x000000, 0x20000, CRC(84562a69) SHA1(815189a65065def213ef171fe40a44a455dfe75a) )
25022133   ROM_LOAD32_BYTE( "mpr-12063.ic94",  0x000001, 0x20000, CRC(d163727c) SHA1(50ed2b401e107a359874dad5d86eec788f5504eb) )
25032134   ROM_LOAD32_BYTE( "mpr-12062.ic98",  0x000002, 0x20000, CRC(6b57833b) SHA1(1d70894c81a4cd39f43067701a598d2c4fbffa58) )
r249130r249131
25152146   ROM_LOAD32_BYTE( "epr-12074.ic101", 0x180002, 0x20000, CRC(ee6cbb73) SHA1(c68d825ded83dd06ba7b816622db3d57631b4fcc) )
25162147   ROM_LOAD32_BYTE( "epr-12073.ic105", 0x180003, 0x20000, CRC(167e6342) SHA1(2f87074d6821a974cbb137ca2bec28fafc0df46f) )
25172148
2518   ROM_REGION( 0x20000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // Road Data
2149   ROM_REGION( 0x20000, "gfx3", ROMREGION_ERASE00 ) // Road Data
25192150   // none
25202151
2521   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
2152   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
25222153   ROM_LOAD( "epr-12054.ic17", 0x00000, 0x10000, CRC(e9b39216) SHA1(142764b40b4db69ff08d28338d1b12b1dd1ed0a0) )
25232154
2524   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2155   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
25252156   ROM_LOAD( "epr-12058.ic11", 0x00000, 0x20000, CRC(4671cb46) SHA1(03ecaa4409a5b86a558313d4ccfb2334f79cff17) )
25262157   ROM_LOAD( "epr-12059.ic12", 0x20000, 0x20000, CRC(8c99aff4) SHA1(818418e4e92f601b09fcaa0979802a2c2c85b435) )
25272158   ROM_LOAD( "epr-12060.ic13", 0x40000, 0x20000, CRC(7ed382b3) SHA1(c87306d1b9edb8b4b97aee4af1317526750e2da2) )
r249130r249131
25352166//  CPU: FD1094 (317-0144)
25362167//
25372168ROM_START( rachero )
2538   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
2169   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
25392170   ROM_LOAD16_BYTE( "epr-13129.ic58", 0x00000, 0x20000,CRC(ad9f32e7) SHA1(dbcb3436782bee88dcac05d4f59c97f170a7387d) )
25402171   ROM_LOAD16_BYTE( "epr-13130.ic63", 0x00001, 0x20000,CRC(6022777b) SHA1(965c76565d740be3355c4b403a1629cffb9fcd78) )
25412172   ROM_LOAD16_BYTE( "epr-12855.ic57", 0x40000, 0x20000,CRC(cecf1e73) SHA1(3f8631379f32dbfda7720ef345276f9be23ada06) )
25422173   ROM_LOAD16_BYTE( "epr-12856.ic62", 0x40001, 0x20000,CRC(da900ebb) SHA1(595ed65248185ddf8666b3f30ad6329162116448) )
25432174
2544   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
2175   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
25452176   ROM_LOAD( "317-0144.key", 0x0000, 0x2000, CRC(8740bbff) SHA1(de96e606c04a09258b966532fb01a6b4d4db86a6) )
25462177
2547   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
2178   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
25482179   ROM_LOAD16_BYTE( "epr-12857.ic20", 0x00000, 0x20000, CRC(8a2328cc) SHA1(c34498428ddfb3eeb986f4153a6165a685d8fc8a) )
25492180   ROM_LOAD16_BYTE( "epr-12858.ic29", 0x00001, 0x20000, CRC(38a248b7) SHA1(a17672123665403c1c56fedab6c8abf44b1131f9) )
25502181
2551   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
2182   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
25522183   ROM_LOAD( "epr-12879.ic154", 0x00000, 0x10000, CRC(c1a9de7a) SHA1(2425456a9d4ba92e1f2da6c2f164a6d5a5dee7c7) )
25532184   ROM_LOAD( "epr-12880.ic153", 0x10000, 0x10000, CRC(27ff04a5) SHA1(b554a6e060f4803100be8efa52977b503eb0f31d) )
25542185   ROM_LOAD( "epr-12881.ic152", 0x20000, 0x10000, CRC(72f14491) SHA1(b7a6cbd08470a5edda77cdd0337abd502c4905fd) )
25552186
2556   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
2187   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
25572188   ROM_LOAD32_BYTE( "epr-12872.ic90",  0x000000, 0x20000, CRC(68d56139) SHA1(b5f32edbda10c31d52f90defea2bae226676069f) )
25582189   ROM_LOAD32_BYTE( "epr-12873.ic94",  0x000001, 0x20000, CRC(3d3ec450) SHA1(ac96ad8c7b365478bd1e5826a073e242f1208247) )
25592190   ROM_LOAD32_BYTE( "epr-12874.ic98",  0x000002, 0x20000, CRC(7d6bde23) SHA1(88b12ec6386cdad60b0028b72033a0037a0cdbdb) )
r249130r249131
25712202   ROM_LOAD32_BYTE( "epr-12862.ic101", 0x180002, 0x20000, CRC(7d4c3b05) SHA1(4e25a077b403549c681c5047912d0e28f4c07720) )
25722203   ROM_LOAD32_BYTE( "epr-12863.ic105", 0x180003, 0x20000, CRC(85095053) SHA1(f93194ecc0300956280cc0515b3e3ba2c9f71364) )
25732204
2574   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // ground data
2205   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // ground data
25752206   // none
25762207
2577   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
2208   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
25782209   ROM_LOAD( "epr-12859.ic17",    0x00000, 0x10000, CRC(d57881da) SHA1(75b7f331ea8c2e33d6236e0c8fc8dabe5eef8160) )
25792210
2580   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2211   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
25812212   ROM_LOAD( "epr-12876.ic11",    0x00000, 0x20000, CRC(f72a34a0) SHA1(28f7d077c24352557da3a91a7e49b0c5b79f2a2e) )
25822213   ROM_LOAD( "epr-12877.ic12",    0x20000, 0x20000, CRC(18c1b6d2) SHA1(860cbb96999ab76c40ce96996bba70c42d845abc) )
25832214   ROM_LOAD( "epr-12878.ic13",    0x40000, 0x20000, CRC(7c212c15) SHA1(360b332d2fb32d88949ff8b357a863ffaaca39c2) )
r249130r249131
26332264//  Ep12587.14
26342265//
26352266ROM_START( smgp )
2636   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
2267   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
26372268   ROM_LOAD16_BYTE( "epr-12563b.58", 0x00000, 0x20000, CRC(baf1f333) SHA1(f91a7a311237b9940a44b815716d4226a7ae1e8b) )
26382269   ROM_LOAD16_BYTE( "epr-12564b.63", 0x00001, 0x20000, CRC(b5191af0) SHA1(d6fb19552e4816eefe751907ec55a2e07ad24879) )
26392270
2640   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
2271   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
26412272   ROM_LOAD( "317-0126a.key", 0x0000, 0x2000, CRC(2abc1982) SHA1(cc4c36e6ba52431df17c6e36ba08d3a89be7b7e7) )
26422273
2643   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
2274   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
26442275   ROM_LOAD16_BYTE( "epr-12576a.20", 0x00000, 0x20000, CRC(2c9599c1) SHA1(79206f38c2976bd9299ed37bf62ac26dd3fba801) )
26452276   ROM_LOAD16_BYTE( "epr-12577a.29", 0x00001, 0x20000, CRC(abf9a50b) SHA1(e367b305cd45900aae4849af4904543f05456dc6) )
26462277
2647   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
2278   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
26482279   ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
26492280   ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
26502281   ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
26512282
2652   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
2283   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
26532284   ROM_LOAD32_BYTE( "mpr-12425.90",  0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
26542285   ROM_LOAD32_BYTE( "mpr-12426.94",  0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
26552286   ROM_LOAD32_BYTE( "mpr-12427.98",  0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
r249130r249131
26672298   ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set
26682299   ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) //
26692300
2670   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
2301   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
26712302   // none??
26722303
2673   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
2304   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
26742305   ROM_LOAD( "epr-12436.17",    0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
26752306
2676   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2307   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
26772308   ROM_LOAD( "mpr-12437.11",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
26782309   ROM_LOAD( "mpr-12438.12",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
26792310   ROM_LOAD( "mpr-12439.13",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
26802311
2681   ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
2312   ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
26822313   ROM_LOAD( "epr-12535.8",     0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
26832314
2684   ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
2315   ROM_REGION( 0x80000, "pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
26852316   ROM_LOAD( "mpr-12437.20",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
26862317   ROM_LOAD( "mpr-12438.21",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
26872318   ROM_LOAD( "mpr-12439.22",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
26882319
2689   ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
2320   ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
26902321   ROM_LOAD( "epr-12587.14",    0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) )
26912322
2692   ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
2323   ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
26932324   ROM_LOAD( "epr-12505.8",     0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
26942325ROM_END
26952326
r249130r249131
26992330//
27002331// this set contained only prg roms
27012332ROM_START( smgp6 )
2702   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
2333   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
27032334   ROM_LOAD16_BYTE( "epr-12563a.58", 0x00000, 0x20000, CRC(2e64b10e) SHA1(2be1ffb3120e4af6a61880e2a2602db07a73f373) )
27042335   ROM_LOAD16_BYTE( "epr-12564a.63", 0x00001, 0x20000, CRC(5baba3e7) SHA1(37194d5a4d3ee48a276f6aeb35b2f20a7661caa2) )
27052336
2706   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
2337   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
27072338   ROM_LOAD( "317-0126a.key", 0x0000, 0x2000, CRC(2abc1982) SHA1(cc4c36e6ba52431df17c6e36ba08d3a89be7b7e7) )
27082339
2709   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
2340   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
27102341   ROM_LOAD16_BYTE( "epr-12576a.20", 0x00000, 0x20000, CRC(2c9599c1) SHA1(79206f38c2976bd9299ed37bf62ac26dd3fba801) )
27112342   ROM_LOAD16_BYTE( "epr-12577a.29", 0x00001, 0x20000, CRC(abf9a50b) SHA1(e367b305cd45900aae4849af4904543f05456dc6) )
27122343
2713   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
2344   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
27142345   ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
27152346   ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
27162347   ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
27172348
2718   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
2349   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
27192350   ROM_LOAD32_BYTE( "mpr-12425.90",  0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
27202351   ROM_LOAD32_BYTE( "mpr-12426.94",  0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
27212352   ROM_LOAD32_BYTE( "mpr-12427.98",  0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
r249130r249131
27332364   ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set
27342365   ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) //
27352366
2736   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
2367   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
27372368   // none??
27382369
2739   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
2370   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
27402371   ROM_LOAD( "epr-12436.17",    0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
27412372
2742   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2373   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
27432374   ROM_LOAD( "mpr-12437.11",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
27442375   ROM_LOAD( "mpr-12438.12",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
27452376   ROM_LOAD( "mpr-12439.13",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
27462377
2747   ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
2378   ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
27482379   ROM_LOAD( "epr-12535.8",     0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
27492380
2750   ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
2381   ROM_REGION( 0x80000, "pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
27512382   ROM_LOAD( "mpr-12437.20",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
27522383   ROM_LOAD( "mpr-12438.21",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
27532384   ROM_LOAD( "mpr-12439.22",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
27542385
2755   ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
2386   ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
27562387   ROM_LOAD( "epr-12587.14",    0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
27572388
2758   ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
2389   ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
27592390   ROM_LOAD( "epr-12505.8",     0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
27602391ROM_END
27612392
r249130r249131
28152446//  Ep12505.8
28162447//
28172448ROM_START( smgp5 )
2818   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
2449   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
28192450   ROM_LOAD16_BYTE( "epr-12563.58", 0x00000, 0x20000, CRC(6d7325ae) SHA1(bf88ceddc49dab5b439080d5bf0e7e084a79546c) )
28202451   ROM_LOAD16_BYTE( "epr-12564.63", 0x00001, 0x20000, CRC(adfbf921) SHA1(f3321e03dc37b14db065b85d63e321810e4ea797) )
28212452
2822   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
2453   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
28232454   ROM_LOAD( "317-0126.key", 0x0000, 0x2000, CRC(4d917996) SHA1(17232c0e35d439a12db3d966064cf00104088903) )
28242455
2825   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
2456   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
28262457   ROM_LOAD16_BYTE( "epr-12576.20", 0x00000, 0x20000, CRC(23266b26) SHA1(240b9bf198fd2975851e769766566ec4e8379f87) )
28272458   ROM_LOAD16_BYTE( "epr-12577.29", 0x00001, 0x20000, CRC(d5b53211) SHA1(b11f5c5094eb7ea9578f15489b00d8bbac1edee6) )
28282459
2829   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
2460   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
28302461   ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
28312462   ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
28322463   ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
28332464
2834   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
2465   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
28352466   ROM_LOAD32_BYTE( "mpr-12425.90",  0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
28362467   ROM_LOAD32_BYTE( "mpr-12426.94",  0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
28372468   ROM_LOAD32_BYTE( "mpr-12427.98",  0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
r249130r249131
28492480   ROM_LOAD32_BYTE( "epr-12415.101", 0x180002, 0x20000, CRC(6080e9ed) SHA1(eb1b871453f76e6a65d20fa9d4bddc1c9f940b4d) )
28502481   ROM_LOAD32_BYTE( "epr-12416.105", 0x180003, 0x20000, CRC(6f1f2769) SHA1(d00d26cd1052d4b46c432b6b69cb2d83179d52a6) )
28512482
2852   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
2483   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
28532484   // none??
28542485
2855   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
2486   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
28562487   ROM_LOAD( "epr-12436.17",    0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
28572488
2858   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2489   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
28592490   ROM_LOAD( "mpr-12437.11",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
28602491   ROM_LOAD( "mpr-12438.12",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
28612492   ROM_LOAD( "mpr-12439.13",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
28622493
2863   ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
2494   ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
28642495   ROM_LOAD( "epr-12535.8",     0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) )
28652496
2866   ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
2497   ROM_REGION( 0x80000, "pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
28672498   ROM_LOAD( "mpr-12437.20",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
28682499   ROM_LOAD( "mpr-12438.21",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
28692500   ROM_LOAD( "mpr-12439.22",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) )
28702501
2871   ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
2502   ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
28722503   ROM_LOAD( "epr-12587.14",    0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
28732504
2874   ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
2505   ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
28752506   ROM_LOAD( "epr-12505.8",     0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) )
28762507ROM_END
28772508
r249130r249131
28802511//  CPU: FD1094 (317-0125a)
28812512//
28822513ROM_START( smgpu )
2883   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
2514   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
28842515   ROM_LOAD16_BYTE( "epr-12561c.58", 0x00000, 0x20000, CRC(a5b0f3fe) SHA1(17103e56f822fdb52e72f597c01415ed375aa102) )
28852516   ROM_LOAD16_BYTE( "epr-12562c.63", 0x00001, 0x20000, CRC(799e55f4) SHA1(2e02cdc63bda47b087c81021018287cfa961c083) )
28862517
2887   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
2518   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
28882519   ROM_LOAD( "317-0125a.key", 0x0000, 0x2000, CRC(3ecdb120) SHA1(c484198e4509d79214e78d4a47e9a7e339f7a2ed) )
28892520
2890   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
2521   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
28912522   ROM_LOAD16_BYTE( "epr-12574a.20", 0x00000, 0x20000, CRC(f8b5c38b) SHA1(0184d5a1b71fb42d33dbaaad99d2c0fbc5750e7e) )
28922523   ROM_LOAD16_BYTE( "epr-12575a.29", 0x00001, 0x20000, CRC(248b1d17) SHA1(22f1e0d0d698abdf0cb1954f1f6382432a12c186) )
28932524
2894   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
2525   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
28952526   ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
28962527   ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
28972528   ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
28982529
2899   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
2530   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
29002531   ROM_LOAD32_BYTE( "mpr-12425.90",  0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
29012532   ROM_LOAD32_BYTE( "mpr-12426.94",  0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
29022533   ROM_LOAD32_BYTE( "mpr-12427.98",  0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
r249130r249131
29142545   ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set
29152546   ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) //
29162547
2917   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
2548   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
29182549   // none??
29192550
2920   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
2551   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
29212552   ROM_LOAD( "epr-12436.17",    0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
29222553
2923   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2554   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
29242555   ROM_LOAD( "mpr-12437.11",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
29252556   ROM_LOAD( "mpr-12438.12",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
29262557   ROM_LOAD( "mpr-12439.13",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
29272558
2928   ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
2559   ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
29292560   ROM_LOAD( "epr-12535.8",     0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
29302561
2931   ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
2562   ROM_REGION( 0x80000, "pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
29322563   ROM_LOAD( "mpr-12437.20",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
29332564   ROM_LOAD( "mpr-12438.21",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
29342565   ROM_LOAD( "mpr-12439.22",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
29352566
2936   ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
2567   ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
29372568   ROM_LOAD( "epr-12587.14",    0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
29382569
2939   ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
2570   ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
29402571   ROM_LOAD( "epr-12505.8",     0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
29412572ROM_END
29422573
r249130r249131
29462577//
29472578// very first US version with demo sound on by default
29482579ROM_START( smgpu1 )
2949   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
2580   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
29502581   ROM_LOAD16_BYTE( "epr-12561b.58", 0x00000, 0x20000, CRC(80a32655) SHA1(fe1ffa8af9f1ca175ba90b24a0853329b08d19af) )
29512582   ROM_LOAD16_BYTE( "epr-12562b.63", 0x00001, 0x20000, CRC(d525f2a8) SHA1(f3241e11485c7428cd9f081ec6768fda39ae3250) )
29522583
2953   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
2584   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
29542585   ROM_LOAD( "317-0125a.key", 0x0000, 0x2000, CRC(3ecdb120) SHA1(c484198e4509d79214e78d4a47e9a7e339f7a2ed) )
29552586
2956   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
2587   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
29572588   ROM_LOAD16_BYTE( "epr-12574a.20", 0x00000, 0x20000, CRC(f8b5c38b) SHA1(0184d5a1b71fb42d33dbaaad99d2c0fbc5750e7e) )
29582589   ROM_LOAD16_BYTE( "epr-12575a.29", 0x00001, 0x20000, CRC(248b1d17) SHA1(22f1e0d0d698abdf0cb1954f1f6382432a12c186) )
29592590
2960   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
2591   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
29612592   ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
29622593   ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
29632594   ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
29642595
2965   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
2596   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
29662597   ROM_LOAD32_BYTE( "mpr-12425.90",  0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
29672598   ROM_LOAD32_BYTE( "mpr-12426.94",  0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
29682599   ROM_LOAD32_BYTE( "mpr-12427.98",  0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
r249130r249131
29802611   ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set
29812612   ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) //
29822613
2983   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
2614   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
29842615   // none??
29852616
2986   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
2617   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
29872618   ROM_LOAD( "epr-12436.17",    0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
29882619
2989   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2620   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
29902621   ROM_LOAD( "mpr-12437.11",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
29912622   ROM_LOAD( "mpr-12438.12",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
29922623   ROM_LOAD( "mpr-12439.13",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
29932624
2994   ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
2625   ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
29952626   ROM_LOAD( "epr-12535.8",     0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
29962627
2997   ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
2628   ROM_REGION( 0x80000, "pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
29982629   ROM_LOAD( "mpr-12437.20",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
29992630   ROM_LOAD( "mpr-12438.21",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
30002631   ROM_LOAD( "mpr-12439.22",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
30012632
3002   ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
2633   ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
30032634   ROM_LOAD( "epr-12587.14",    0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
30042635
3005   ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
2636   ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
30062637   ROM_LOAD( "epr-12505.8",     0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
30072638ROM_END
30082639
r249130r249131
30542685//         IC152: epr-12431.152 (27C512 EPROM)
30552686//
30562687ROM_START( smgpu2 )
3057   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
2688   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
30582689   ROM_LOAD16_BYTE( "epr-12561a.58", 0x00000, 0x20000, CRC(e505eb89) SHA1(bfb9a7a8b13ae454a92349e57215562477cd2cd2) )
30592690   ROM_LOAD16_BYTE( "epr-12562a.63", 0x00001, 0x20000, CRC(c3af4215) SHA1(c46829e08d5492515de5d3269b0e899705d0b108) )
30602691
3061   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
2692   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
30622693   ROM_LOAD( "317-0125a.key", 0x0000, 0x2000, CRC(3ecdb120) SHA1(c484198e4509d79214e78d4a47e9a7e339f7a2ed) )
30632694
3064   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
2695   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
30652696   ROM_LOAD16_BYTE( "epr-12574a.20", 0x00000, 0x20000, CRC(f8b5c38b) SHA1(0184d5a1b71fb42d33dbaaad99d2c0fbc5750e7e) )
30662697   ROM_LOAD16_BYTE( "epr-12575a.29", 0x00001, 0x20000, CRC(248b1d17) SHA1(22f1e0d0d698abdf0cb1954f1f6382432a12c186) )
30672698
3068   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
2699   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
30692700   ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
30702701   ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
30712702   ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
30722703
3073   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
2704   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
30742705   ROM_LOAD32_BYTE( "mpr-12425.90",  0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
30752706   ROM_LOAD32_BYTE( "mpr-12426.94",  0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
30762707   ROM_LOAD32_BYTE( "mpr-12427.98",  0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
r249130r249131
30882719   ROM_LOAD32_BYTE( "epr-12611.101", 0x180002, 0x20000, CRC(bd5c6ab0) SHA1(7632dc4daa8eabe74769369856a8ba451e5bd420) ) // these differ from japan set
30892720   ROM_LOAD32_BYTE( "epr-12612.105", 0x180003, 0x20000, CRC(ac86e890) SHA1(7720c1c8df6de5de50254e97772c15161b796031) ) //
30902721
3091   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
2722   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
30922723   // none??
30932724
3094   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
2725   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
30952726   ROM_LOAD( "epr-12436.17",    0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
30962727
3097   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2728   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
30982729   ROM_LOAD( "mpr-12437.11",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
30992730   ROM_LOAD( "mpr-12438.12",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
31002731   ROM_LOAD( "mpr-12439.13",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
31012732
3102   ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
2733   ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
31032734   ROM_LOAD( "epr-12535.8",     0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
31042735
3105   ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
2736   ROM_REGION( 0x80000, "pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
31062737   ROM_LOAD( "mpr-12437.20",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
31072738   ROM_LOAD( "mpr-12438.21",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
31082739   ROM_LOAD( "mpr-12439.22",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
31092740
3110   ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
2741   ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
31112742   ROM_LOAD( "epr-12587.14",    0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) )
31122743
3113   ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
2744   ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
31142745   ROM_LOAD( "epr-12505.8",     0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
31152746ROM_END
31162747
r249130r249131
31192750//  CPU: FD1094 (317-0124a)
31202751//
31212752ROM_START( smgpj )
3122   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
2753   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
31232754   ROM_LOAD16_BYTE( "epr-12432b.58", 0x00000, 0x20000, CRC(c1a29db1) SHA1(0122d366899f98f7a60b0c9bddeece7995cebf83) )
31242755   ROM_LOAD16_BYTE( "epr-12433b.63", 0x00001, 0x20000, CRC(97199eb1) SHA1(3baccf8159821d4b4d5caedf5eb691f07372be93) )
31252756
3126   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
2757   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
31272758   ROM_LOAD( "317-0124a.key", 0x0000, 0x2000, CRC(022a8a16) SHA1(4fd80105cb85ccba77cf1e76a21d6e245d5d2e7d) )
31282759
3129   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
2760   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
31302761   ROM_LOAD16_BYTE( "epr-12441a.20", 0x00000, 0x20000, CRC(2c9599c1) SHA1(79206f38c2976bd9299ed37bf62ac26dd3fba801) )
31312762   ROM_LOAD16_BYTE( "epr-12442a.29", 0x00001, 0x20000, CRC(77a5ec16) SHA1(b8cf6a3f12689d89bbdd9fb39d1cb7d1a3c10602) )
31322763
3133   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
2764   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
31342765   ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
31352766   ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
31362767   ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
31372768
3138   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
2769   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
31392770   ROM_LOAD32_BYTE( "mpr-12425.90",  0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
31402771   ROM_LOAD32_BYTE( "mpr-12426.94",  0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
31412772   ROM_LOAD32_BYTE( "mpr-12427.98",  0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
r249130r249131
31532784   ROM_LOAD32_BYTE( "epr-12415.101", 0x180002, 0x20000, CRC(6080e9ed) SHA1(eb1b871453f76e6a65d20fa9d4bddc1c9f940b4d) )
31542785   ROM_LOAD32_BYTE( "epr-12416.105", 0x180003, 0x20000, CRC(6f1f2769) SHA1(d00d26cd1052d4b46c432b6b69cb2d83179d52a6) )
31552786
3156   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
2787   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
31572788   // none??
31582789
3159   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
2790   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
31602791   ROM_LOAD( "epr-12436.17",    0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
31612792
3162   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2793   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
31632794   ROM_LOAD( "mpr-12437.11",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
31642795   ROM_LOAD( "mpr-12438.12",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
31652796   ROM_LOAD( "mpr-12439.13",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
31662797
3167   ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
2798   ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
31682799   ROM_LOAD( "epr-12535.8",     0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
31692800
3170   ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
2801   ROM_REGION( 0x80000, "pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
31712802   ROM_LOAD( "mpr-12437.20",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
31722803   ROM_LOAD( "mpr-12438.21",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
31732804   ROM_LOAD( "mpr-12439.22",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
31742805
3175   ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
2806   ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
31762807   ROM_LOAD( "epr-12587.14",    0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
31772808
3178   ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
2809   ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
31792810   ROM_LOAD( "epr-12505.8",     0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
31802811ROM_END
31812812
r249130r249131
31842815//  CPU: FD1094 (317-0124a)
31852816//
31862817ROM_START( smgpja )
3187   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
2818   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
31882819   ROM_LOAD16_BYTE( "epr-12432a.58", 0x00000, 0x20000, CRC(22517672) SHA1(db9ac40e83e9786bc9dad70f62c2080d3df694ee) )
31892820   ROM_LOAD16_BYTE( "epr-12433a.63", 0x00001, 0x20000, CRC(a46b5d13) SHA1(3a7de5cb6f3e6d726f0ea886a87125dedc6f849f) )
31902821
3191   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
2822   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
31922823   ROM_LOAD( "317-0124a.key", 0x0000, 0x2000, CRC(022a8a16) SHA1(4fd80105cb85ccba77cf1e76a21d6e245d5d2e7d) )
31932824
3194   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
2825   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
31952826   ROM_LOAD16_BYTE( "epr-12441a.20", 0x00000, 0x20000, CRC(2c9599c1) SHA1(79206f38c2976bd9299ed37bf62ac26dd3fba801) )
31962827   ROM_LOAD16_BYTE( "epr-12442a.29", 0x00001, 0x20000, CRC(77a5ec16) SHA1(b8cf6a3f12689d89bbdd9fb39d1cb7d1a3c10602) )
31972828
3198   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
2829   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
31992830   ROM_LOAD( "epr-12429.154", 0x00000, 0x10000, CRC(5851e614) SHA1(3dc97237ede2c6125e92ea6efc68a748d0ec69be) )
32002831   ROM_LOAD( "epr-12430.153", 0x10000, 0x10000, CRC(05e00134) SHA1(8baaa80815d5dabd38dc8600e357975b96d23b95) )
32012832   ROM_LOAD( "epr-12431.152", 0x20000, 0x10000, CRC(35572f4a) SHA1(d66456ecf7b59f81736fb873c553926b56bb3977))
32022833
3203   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
2834   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
32042835   ROM_LOAD32_BYTE( "mpr-12425.90",  0x000000, 0x20000, CRC(14bf2a15) SHA1(84db3ac09e4a8fe470ac051d8d5de1814b48bc72) )
32052836   ROM_LOAD32_BYTE( "mpr-12426.94",  0x000001, 0x20000, CRC(28b60dc0) SHA1(ad69d449434853445a076319a55a29014217a100) )
32062837   ROM_LOAD32_BYTE( "mpr-12427.98",  0x000002, 0x20000, CRC(0a367928) SHA1(bcb558b7c23906397e66a7f046b09eb5036c0888) )
r249130r249131
32182849   ROM_LOAD32_BYTE( "epr-12415.101", 0x180002, 0x20000, CRC(6080e9ed) SHA1(eb1b871453f76e6a65d20fa9d4bddc1c9f940b4d) )
32192850   ROM_LOAD32_BYTE( "epr-12416.105", 0x180003, 0x20000, CRC(6f1f2769) SHA1(d00d26cd1052d4b46c432b6b69cb2d83179d52a6) )
32202851
3221   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
2852   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
32222853   // none??
32232854
3224   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
2855   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
32252856   ROM_LOAD( "epr-12436.17",    0x00000, 0x10000, CRC(16ec5f0a) SHA1(307b7388b5c36fd4bc2a61f7941db44858e03c5c) )
32262857
3227   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2858   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
32282859   ROM_LOAD( "mpr-12437.11",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) )
32292860   ROM_LOAD( "mpr-12438.12",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) )
32302861   ROM_LOAD( "mpr-12439.13",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // not used in deluxe
32312862
3232   ROM_REGION( 0x10000, "mainpcb:soundcpu2", 0 ) // z80 on extra sound board
2863   ROM_REGION( 0x10000, "soundcpu2", 0 ) // z80 on extra sound board
32332864   ROM_LOAD( "epr-12535.8",     0x00000, 0x10000, CRC(80453597) SHA1(d3fee7bb4a8964f5cf1cdae80fc3dde06c947839) ) // taken from deluxe cabinet dump
32342865
3235   ROM_REGION( 0x80000, "mainpcb:pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
2866   ROM_REGION( 0x80000, "pcm2", ROMREGION_ERASEFF ) // Sega PCM sound data on extra sound board (same as on main board..)
32362867   ROM_LOAD( "mpr-12437.20",    0x00000, 0x20000, CRC(a1c7e712) SHA1(fa7fa8c39690ae5dab8b28af5aeed5ffae2cd6de) ) // taken from deluxe cabinet dump
32372868   ROM_LOAD( "mpr-12438.21",    0x20000, 0x20000, CRC(6573d46b) SHA1(c4a4a0ea35250eff28a5bfd5e9cd372f52fd1308) ) // "
32382869   ROM_LOAD( "mpr-12439.22",    0x40000, 0x20000, CRC(13bf6de5) SHA1(92228a05ec33d606491a1da98c4989f69cddbb49) ) // "
32392870
3240   ROM_REGION( 0x10000, "mainpcb:commcpu", 0 ) // z80 on network board
2871   ROM_REGION( 0x10000, "commcpu", 0 ) // z80 on network board
32412872   ROM_LOAD( "epr-12587.14",    0x00000, 0x08000, CRC(2afe648b) SHA1(b5bf86f3acbcc23c136185110acecf2c971294fa) ) // taken from twin cabinet dump
32422873
3243   ROM_REGION( 0x10000, "mainpcb:motorcpu", 0 ) // z80 on air board
2874   ROM_REGION( 0x10000, "motorcpu", 0 ) // z80 on air board
32442875   ROM_LOAD( "epr-12505.8",     0x00000, 0x08000, CRC(5020788a) SHA1(ed6d1dfb8b6a62d17469e3d09a5b5b864c6b486c) ) // taken from deluxe cabinet dump
32452876ROM_END
32462877
r249130r249131
32522883//  CPU: FD1094 (317-0169b)
32532884//
32542885ROM_START( abcop )
3255   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
2886   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
32562887   ROM_LOAD16_BYTE( "epr-13568b.ic58", 0x00000, 0x20000, CRC(f88db35b) SHA1(7d85c1194a2aa08427333d2ffc2a8d4f7e1beff0) )
32572888   ROM_LOAD16_BYTE( "epr-13556b.ic63", 0x00001, 0x20000, CRC(337bf32e) SHA1(dafb9d9b3baf79ca76355278e8a14294f186790a) )
32582889   ROM_LOAD16_BYTE( "epr-13559.ic57",  0x40000, 0x20000, CRC(4588bf19) SHA1(6a8b3d4450ac0bc41b46e6a4e1b44d82112fcd64) )
32592890   ROM_LOAD16_BYTE( "epr-13558.ic62",  0x40001, 0x20000, CRC(11259ed4) SHA1(e7de174a0bdb1d1111e5e419f1d501ab5be1d32d) )
32602891
3261   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
2892   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
32622893   ROM_LOAD( "317-0169b.key", 0x0000, 0x2000, CRC(058da36e) SHA1(ab3f68a90725063c68fc5d0f8dbece1f8940dc7d) )
32632894
3264   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
2895   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
32652896   ROM_LOAD16_BYTE( "epr-13566.ic20", 0x00000, 0x20000, CRC(22e52f32) SHA1(c67a4ccb88becc58dddcbfea0a1ac2017f7b2929) )
32662897   ROM_LOAD16_BYTE( "epr-13565.ic29", 0x00001, 0x20000, CRC(a21784bd) SHA1(b40ba0ef65bbfe514625253f6aeec14bf4bcf08c) )
32672898
3268   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
2899   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
32692900   ROM_LOAD( "opr-13553.ic154", 0x00000, 0x10000, CRC(8c418837) SHA1(e325db39fae768865e20d2cd1ee2b91a9b0165f5) )
32702901   ROM_LOAD( "opr-13554.ic153", 0x10000, 0x10000, CRC(4e3df9f0) SHA1(8b481c2cd25c58612ac8ac3ffb7eeae9ca247d2e) )
32712902   ROM_LOAD( "opr-13555.ic152", 0x20000, 0x10000, CRC(6c4a1d42) SHA1(6c37b045b21173f1e2f7bd19d01c00979b8107fb) )
32722903
3273   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
2904   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
32742905   ROM_LOAD32_BYTE( "opr-13552.ic90",  0x000000, 0x20000, CRC(cc2cf706) SHA1(ad39c22e652ebcd90ffb5e17ae35985645f93c71) )
32752906   ROM_LOAD32_BYTE( "opr-13551.ic94",  0x000001, 0x20000, CRC(d6f276c1) SHA1(9ec68157ea460e09ef4b69aa8ea17687dc47ea59) )
32762907   ROM_LOAD32_BYTE( "opr-13550.ic98",  0x000002, 0x20000, CRC(f16518dd) SHA1(a5f1785cd28f03069cb238ac92c6afb5a26cbd37) )
r249130r249131
32882919   ROM_LOAD32_BYTE( "opr-13538.ic101", 0x180002, 0x20000, CRC(bf9a4586) SHA1(6013dee83375d72d262c8c04c2e668afea2e216c) )
32892920   ROM_LOAD32_BYTE( "opr-13537.ic105", 0x180003, 0x20000, CRC(fa14ed3e) SHA1(d684496ade2517696a56c1423dd4686d283c133f) )
32902921
3291   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // ground data
2922   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // ground data
32922923   ROM_LOAD( "opr-13564.ic40",  0x00000, 0x10000, CRC(e70ba138) SHA1(85eb6618f408642227056d278f10dec8dcc5a80d) )
32932924
3294   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
2925   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
32952926   ROM_LOAD( "epr-13560.ic17",    0x00000, 0x10000, CRC(83050925) SHA1(118710e5789c7999bb7326df4d7bd207cbffdfd4) )
32962927
3297   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2928   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
32982929   ROM_LOAD( "opr-13563.ic11",    0x00000, 0x20000, CRC(4083e74f) SHA1(e48c7ce0aa3406af0bbf79c169a8157693c97041) )
32992930   ROM_LOAD( "opr-13562.ic12",    0x20000, 0x20000, CRC(3cc3968f) SHA1(d25647f6a3fa939ba30e03e7334362ef0749b23a) )
33002931   ROM_LOAD( "opr-13561.ic13",    0x40000, 0x20000, CRC(80a7c02a) SHA1(7e8c1b9ba270d8657dbe90ed8be2e4b6463e5928) )
r249130r249131
33052936//  CPU: FD1094 (317-0169b)
33062937//
33072938ROM_START( abcopj )
3308   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
2939   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
33092940   ROM_LOAD16_BYTE( "epr-13557b.ic58", 0x00000, 0x20000, CRC(554e106a) SHA1(3166957ded67c82d4710bdd20eb88006e14c6a3e) )
33102941   ROM_LOAD16_BYTE( "epr-13556b.ic63", 0x00001, 0x20000, CRC(337bf32e) SHA1(dafb9d9b3baf79ca76355278e8a14294f186790a) )
33112942   ROM_LOAD16_BYTE( "epr-13559.ic57",  0x40000, 0x20000, CRC(4588bf19) SHA1(6a8b3d4450ac0bc41b46e6a4e1b44d82112fcd64) )
33122943   ROM_LOAD16_BYTE( "epr-13558.ic62",  0x40001, 0x20000, CRC(11259ed4) SHA1(e7de174a0bdb1d1111e5e419f1d501ab5be1d32d) )
33132944
3314   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
2945   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
33152946   ROM_LOAD( "317-0169b.key", 0x0000, 0x2000, CRC(058da36e) SHA1(ab3f68a90725063c68fc5d0f8dbece1f8940dc7d) )
33162947
3317   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
2948   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
33182949   ROM_LOAD16_BYTE( "epr-13566.ic20", 0x00000, 0x20000, CRC(22e52f32) SHA1(c67a4ccb88becc58dddcbfea0a1ac2017f7b2929) )
33192950   ROM_LOAD16_BYTE( "epr-13565.ic29", 0x00001, 0x20000, CRC(a21784bd) SHA1(b40ba0ef65bbfe514625253f6aeec14bf4bcf08c) )
33202951
3321   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
2952   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
33222953   ROM_LOAD( "opr-13553.ic154", 0x00000, 0x10000, CRC(8c418837) SHA1(e325db39fae768865e20d2cd1ee2b91a9b0165f5) )
33232954   ROM_LOAD( "opr-13554.ic153", 0x10000, 0x10000, CRC(4e3df9f0) SHA1(8b481c2cd25c58612ac8ac3ffb7eeae9ca247d2e) )
33242955   ROM_LOAD( "opr-13555.ic152", 0x20000, 0x10000, CRC(6c4a1d42) SHA1(6c37b045b21173f1e2f7bd19d01c00979b8107fb) )
33252956
3326   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
2957   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
33272958   ROM_LOAD32_BYTE( "opr-13552.ic90",  0x000000, 0x20000, CRC(cc2cf706) SHA1(ad39c22e652ebcd90ffb5e17ae35985645f93c71) )
33282959   ROM_LOAD32_BYTE( "opr-13551.ic94",  0x000001, 0x20000, CRC(d6f276c1) SHA1(9ec68157ea460e09ef4b69aa8ea17687dc47ea59) )
33292960   ROM_LOAD32_BYTE( "opr-13550.ic98",  0x000002, 0x20000, CRC(f16518dd) SHA1(a5f1785cd28f03069cb238ac92c6afb5a26cbd37) )
r249130r249131
33412972   ROM_LOAD32_BYTE( "opr-13538.ic101", 0x180002, 0x20000, CRC(bf9a4586) SHA1(6013dee83375d72d262c8c04c2e668afea2e216c) )
33422973   ROM_LOAD32_BYTE( "opr-13537.ic105", 0x180003, 0x20000, CRC(fa14ed3e) SHA1(d684496ade2517696a56c1423dd4686d283c133f) )
33432974
3344   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // ground data
2975   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // ground data
33452976   ROM_LOAD( "opr-13564.ic40",  0x00000, 0x10000, CRC(e70ba138) SHA1(85eb6618f408642227056d278f10dec8dcc5a80d) )
33462977
3347   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
2978   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
33482979   ROM_LOAD( "epr-13560.ic17",    0x00000, 0x10000, CRC(83050925) SHA1(118710e5789c7999bb7326df4d7bd207cbffdfd4) )
33492980
3350   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
2981   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
33512982   ROM_LOAD( "opr-13563.ic11",    0x00000, 0x20000, CRC(4083e74f) SHA1(e48c7ce0aa3406af0bbf79c169a8157693c97041) )
33522983   ROM_LOAD( "opr-13562.ic12",    0x20000, 0x20000, CRC(3cc3968f) SHA1(d25647f6a3fa939ba30e03e7334362ef0749b23a) )
33532984   ROM_LOAD( "opr-13561.ic13",    0x40000, 0x20000, CRC(80a7c02a) SHA1(7e8c1b9ba270d8657dbe90ed8be2e4b6463e5928) )
r249130r249131
33632994//  IC BD Number: 834-7626-03 (roms are "MPR") / 834-7626-05 (roms are "EPR")
33642995//
33652996ROM_START( gprider )
3366   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
2997   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
33672998   ROM_LOAD16_BYTE( "epr-13409.ic58", 0x00000, 0x20000, CRC(9abb81b6) SHA1(f6308f3ec99ee66677e86f6a915e4dff8557d25f) )
33682999   ROM_LOAD16_BYTE( "epr-13408.ic63", 0x00001, 0x20000, CRC(8e410e97) SHA1(2021d738064e57d175b59ba053d9ee35ed4516c8) )
33693000
3370   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
3001   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
33713002   ROM_LOAD( "317-0163.key", 0x0000, 0x2000, CRC(c1d4d207) SHA1(c35b0a49fb6a1e0e9a1c087f0ccd190ad5c2bb2c) )
33723003
3373   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
3004   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
33743005   ROM_LOAD16_BYTE( "epr-13395.ic20", 0x00000, 0x20000,CRC(d6ccfac7) SHA1(9287ab08600163a0d9bd33618c629f99391316bd) )
33753006   ROM_LOAD16_BYTE( "epr-13394.ic29", 0x00001, 0x20000,CRC(914a55ec) SHA1(84fe1df12478990418b46b6800425e5599e9eff9) )
33763007   ROM_LOAD16_BYTE( "epr-13393.ic21", 0x40000, 0x20000,CRC(08d023cc) SHA1(d008d57e494f484a1a84896065d53fb9b1d8d60e) )
33773008   ROM_LOAD16_BYTE( "epr-13392.ic30", 0x40001, 0x20000,CRC(f927cd42) SHA1(67eab328c1fb878fe3d086d0639f5051b135a037) )
33783009
3379   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
3010   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
33803011   ROM_LOAD( "epr-13383.ic154", 0x00000, 0x10000, CRC(24f897a7) SHA1(68ba17067d90f07bb5a549017be4773b33ae81d0) )
33813012   ROM_LOAD( "epr-13384.ic153", 0x10000, 0x10000, CRC(fe8238bd) SHA1(601910bd86536e6b08f5308b298c8f01fa60f233) )
33823013   ROM_LOAD( "epr-13385.ic152", 0x20000, 0x10000, CRC(6df1b995) SHA1(5aab19b87a9ef162c30ccf5974cb795e37dba91f) )
33833014
3384   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
3015   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
33853016   ROM_LOAD32_BYTE( "epr-13382.ic90",  0x000000, 0x20000, CRC(01dac209) SHA1(4c6b03308193c472f6cdbcede306f8ce6db0cc4b) )
33863017   ROM_LOAD32_BYTE( "epr-13381.ic94",  0x000001, 0x20000, CRC(3a50d931) SHA1(9d9cb1793f3b8f562ce0ea49f2afeef099f20859) )
33873018   ROM_LOAD32_BYTE( "epr-13380.ic98",  0x000002, 0x20000, CRC(ad1024c8) SHA1(86e941424b2e2e00940886e5daed640a78ed7403) )
r249130r249131
33993030   ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) )
34003031   ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) )
34013032
3402   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
3033   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
34033034   // none??
34043035
3405   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
3036   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
34063037   ROM_LOAD( "epr-13388.ic17",    0x00000, 0x10000, CRC(706581e4) SHA1(51c9dbf2bf0d6b8826de24cd33596f5c95136870) )
34073038
3408   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
3039   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
34093040   ROM_LOAD( "epr-13391.ic11",    0x00000, 0x20000, CRC(8c30c867) SHA1(0d735291b1311890938f8a1143fae6af9feb2a69) )
34103041   ROM_LOAD( "epr-13390.ic12",    0x20000, 0x20000, CRC(8c93cd05) SHA1(bb08094abac6c104eddf14f634e9791f03122946) )
34113042   ROM_LOAD( "epr-13389.ic13",    0x40000, 0x20000, CRC(4e4c758e) SHA1(181750dfcdd6d5b28b063c980c251991163d9474) )
34123043ROM_END
34133044
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
35123045//*************************************************************************************************************************
35133046//  GP Rider (US), Sega X-board
35143047//  CPU: FD1094 (317-0162)
r249130r249131
35163049//  IC BD Number: 834-7626-01 (roms are "MPR") / 834-7626-04 (roms are "EPR")
35173050//
35183051ROM_START( gprideru )
3519   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
3052   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
35203053   ROM_LOAD16_BYTE( "epr-13407.ic58", 0x00000, 0x20000, CRC(03553ebd) SHA1(041a71a2dce2ad56360f500cb11e29a629020160) )
35213054   ROM_LOAD16_BYTE( "epr-13406.ic63", 0x00001, 0x20000, CRC(122c711f) SHA1(2bcc51347e771a7e7f770e68b24d82497d24aa2e) )
35223055
3523   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
3056   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
35243057   ROM_LOAD( "317-0162.key", 0x0000, 0x2000, CRC(8067de53) SHA1(e8cd1dfbad94856c6bd51569557667e72f0a5dd4) )
35253058
3526   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
3059   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
35273060   ROM_LOAD16_BYTE( "epr-13395.ic20", 0x00000, 0x20000,CRC(d6ccfac7) SHA1(9287ab08600163a0d9bd33618c629f99391316bd) )
35283061   ROM_LOAD16_BYTE( "epr-13394.ic29", 0x00001, 0x20000,CRC(914a55ec) SHA1(84fe1df12478990418b46b6800425e5599e9eff9) )
35293062   ROM_LOAD16_BYTE( "epr-13393.ic21", 0x40000, 0x20000,CRC(08d023cc) SHA1(d008d57e494f484a1a84896065d53fb9b1d8d60e) )
35303063   ROM_LOAD16_BYTE( "epr-13392.ic30", 0x40001, 0x20000,CRC(f927cd42) SHA1(67eab328c1fb878fe3d086d0639f5051b135a037) )
35313064
3532   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
3065   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
35333066   ROM_LOAD( "epr-13383.ic154", 0x00000, 0x10000, CRC(24f897a7) SHA1(68ba17067d90f07bb5a549017be4773b33ae81d0) )
35343067   ROM_LOAD( "epr-13384.ic153", 0x10000, 0x10000, CRC(fe8238bd) SHA1(601910bd86536e6b08f5308b298c8f01fa60f233) )
35353068   ROM_LOAD( "epr-13385.ic152", 0x20000, 0x10000, CRC(6df1b995) SHA1(5aab19b87a9ef162c30ccf5974cb795e37dba91f) )
35363069
3537   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
3070   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
35383071   ROM_LOAD32_BYTE( "epr-13382.ic90",  0x000000, 0x20000, CRC(01dac209) SHA1(4c6b03308193c472f6cdbcede306f8ce6db0cc4b) )
35393072   ROM_LOAD32_BYTE( "epr-13381.ic94",  0x000001, 0x20000, CRC(3a50d931) SHA1(9d9cb1793f3b8f562ce0ea49f2afeef099f20859) )
35403073   ROM_LOAD32_BYTE( "epr-13380.ic98",  0x000002, 0x20000, CRC(ad1024c8) SHA1(86e941424b2e2e00940886e5daed640a78ed7403) )
r249130r249131
35523085   ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) )
35533086   ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) )
35543087
3555   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
3088   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
35563089   // none??
35573090
3558   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
3091   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
35593092   ROM_LOAD( "epr-13388.ic17",    0x00000, 0x10000, CRC(706581e4) SHA1(51c9dbf2bf0d6b8826de24cd33596f5c95136870) )
35603093
3561   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
3094   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
35623095   ROM_LOAD( "epr-13391.ic11",    0x00000, 0x20000, CRC(8c30c867) SHA1(0d735291b1311890938f8a1143fae6af9feb2a69) )
35633096   ROM_LOAD( "epr-13390.ic12",    0x20000, 0x20000, CRC(8c93cd05) SHA1(bb08094abac6c104eddf14f634e9791f03122946) )
35643097   ROM_LOAD( "epr-13389.ic13",    0x40000, 0x20000, CRC(4e4c758e) SHA1(181750dfcdd6d5b28b063c980c251991163d9474) )
r249130r249131
35713104//  IC BD Number: 834-7626-01 (roms are "MPR") / 834-7626-04 (roms are "EPR")
35723105//
35733106ROM_START( gpriderj )
3574   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
3107   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
35753108   ROM_LOAD16_BYTE( "epr-13387.ic58", 0x00000, 0x20000, CRC(a1e8b2c5) SHA1(22b70a9074263af808bb9dffee29cbcff7e304e3) )
35763109   ROM_LOAD16_BYTE( "epr-13386.ic63", 0x00001, 0x20000, CRC(d8be9e66) SHA1(d81c03b08fd6b971554b94e0adac131a1dcf3248) )
35773110
3578   ROM_REGION( 0x2000, "mainpcb:maincpu:key", 0 )  // decryption key
3111   ROM_REGION( 0x2000, "maincpu:key", 0 )  // decryption key
35793112   ROM_LOAD( "317-0161.key", 0x0000, 0x2000, CRC(e38ddc16) SHA1(d1f7f261320cbc605b4f7e5a9c28f49af5471d87) )
35803113
3581   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
3114   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
35823115   ROM_LOAD16_BYTE( "epr-13395.ic20", 0x00000, 0x20000,CRC(d6ccfac7) SHA1(9287ab08600163a0d9bd33618c629f99391316bd) )
35833116   ROM_LOAD16_BYTE( "epr-13394.ic29", 0x00001, 0x20000,CRC(914a55ec) SHA1(84fe1df12478990418b46b6800425e5599e9eff9) )
35843117   ROM_LOAD16_BYTE( "epr-13393.ic21", 0x40000, 0x20000,CRC(08d023cc) SHA1(d008d57e494f484a1a84896065d53fb9b1d8d60e) )
35853118   ROM_LOAD16_BYTE( "epr-13392.ic30", 0x40001, 0x20000,CRC(f927cd42) SHA1(67eab328c1fb878fe3d086d0639f5051b135a037) )
35863119
3587   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
3120   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
35883121   ROM_LOAD( "epr-13383.ic154", 0x00000, 0x10000, CRC(24f897a7) SHA1(68ba17067d90f07bb5a549017be4773b33ae81d0) )
35893122   ROM_LOAD( "epr-13384.ic153", 0x10000, 0x10000, CRC(fe8238bd) SHA1(601910bd86536e6b08f5308b298c8f01fa60f233) )
35903123   ROM_LOAD( "epr-13385.ic152", 0x20000, 0x10000, CRC(6df1b995) SHA1(5aab19b87a9ef162c30ccf5974cb795e37dba91f) )
35913124
3592   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
3125   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
35933126   ROM_LOAD32_BYTE( "epr-13382.ic90",  0x000000, 0x20000, CRC(01dac209) SHA1(4c6b03308193c472f6cdbcede306f8ce6db0cc4b) )
35943127   ROM_LOAD32_BYTE( "epr-13381.ic94",  0x000001, 0x20000, CRC(3a50d931) SHA1(9d9cb1793f3b8f562ce0ea49f2afeef099f20859) )
35953128   ROM_LOAD32_BYTE( "epr-13380.ic98",  0x000002, 0x20000, CRC(ad1024c8) SHA1(86e941424b2e2e00940886e5daed640a78ed7403) )
r249130r249131
36073140   ROM_LOAD32_BYTE( "epr-13368.ic101", 0x180002, 0x20000, CRC(0f50716c) SHA1(eb4c7f47e11c58fe0d58f67e6dafabc6291eabb8) )
36083141   ROM_LOAD32_BYTE( "epr-13367.ic105", 0x180003, 0x20000, CRC(4b1bb51f) SHA1(17fd5ac9e18dd6097a015e9d7b6815826f9c53f1) )
36093142
3610   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
3143   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
36113144   // none??
36123145
3613   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
3146   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
36143147   ROM_LOAD( "epr-13388.ic17",    0x00000, 0x10000, CRC(706581e4) SHA1(51c9dbf2bf0d6b8826de24cd33596f5c95136870) )
36153148
3616   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
3149   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
36173150   ROM_LOAD( "epr-13391.ic11",    0x00000, 0x20000, CRC(8c30c867) SHA1(0d735291b1311890938f8a1143fae6af9feb2a69) )
36183151   ROM_LOAD( "epr-13390.ic12",    0x20000, 0x20000, CRC(8c93cd05) SHA1(bb08094abac6c104eddf14f634e9791f03122946) )
36193152   ROM_LOAD( "epr-13389.ic13",    0x40000, 0x20000, CRC(4e4c758e) SHA1(181750dfcdd6d5b28b063c980c251991163d9474) )
r249130r249131
36273160//  and we only have the ROMs for one of those parts..
36283161//
36293162ROM_START( rascot )
3630   ROM_REGION( 0x80000, "mainpcb:maincpu", 0 ) // 68000 code
3163   ROM_REGION( 0x80000, "maincpu", 0 ) // 68000 code
36313164   ROM_LOAD16_BYTE( "epr-13965a.ic58", 0x00000, 0x20000, CRC(7eacdfb3) SHA1(fad23352d9c5e266ad9f7fe3ccbd29b5b912b90b) )
36323165   ROM_LOAD16_BYTE( "epr-13694a.ic63", 0x00001, 0x20000, CRC(15b86498) SHA1(ccb57063ca53347b5f771b0d7ceaeb9cd50d246a) ) // 13964a?
36333166
3634   ROM_REGION( 0x80000, "mainpcb:subcpu", 0 ) // 2nd 68000 code
3167   ROM_REGION( 0x80000, "subcpu", 0 ) // 2nd 68000 code
36353168   ROM_LOAD16_BYTE( "epr-13967.ic20", 0x00000, 0x20000, CRC(3b92e2b8) SHA1(5d456d7d6fa540709facda1fd8813707ebfd99d8) )
36363169   ROM_LOAD16_BYTE( "epr-13966.ic29", 0x00001, 0x20000, CRC(eaa644e1) SHA1(b9cc171523995f5120ea7b9748af2f8de697b933) )
36373170
3638   ROM_REGION( 0x30000, "mainpcb:gfx1", 0 ) // tiles
3171   ROM_REGION( 0x30000, "gfx1", 0 ) // tiles
36393172   ROM_LOAD( "epr-13961", 0x00000, 0x10000, CRC(68038629) SHA1(fbe8605840331096c5156d695772e5f36b2e131a) )
36403173   ROM_LOAD( "epr-13962", 0x10000, 0x10000, CRC(7d7605bc) SHA1(20d3a7116807db7c831e285233d8c67317980e4a) )
36413174   ROM_LOAD( "epr-13963", 0x20000, 0x10000, CRC(f3376b65) SHA1(36b9292518a112409d03b97ea048b7ab22734841) )
36423175
3643   ROM_REGION32_LE( 0x200000, "mainpcb:sprites", 0 ) // sprites
3176   ROM_REGION32_LE( 0x200000, "sprites", 0 ) // sprites
36443177   ROM_LOAD32_BYTE( "epr-13960",  0x000000, 0x20000, CRC(b974128d) SHA1(14450615b3a10b1de6d098a282f80f80c98c34b8) )
36453178   ROM_LOAD32_BYTE( "epr-13959",  0x000001, 0x20000, CRC(db245b22) SHA1(301b7caea7a3b42ab1ab21894ad61b8b14ef1e7c) )
36463179   ROM_LOAD32_BYTE( "epr-13958",  0x000002, 0x20000, CRC(7803a027) SHA1(ff659da334e4440a6de9be43dde9dfa21dae5f14) )
36473180   ROM_LOAD32_BYTE( "epr-13957",  0x000003, 0x20000, CRC(6d50fb54) SHA1(d21462c30a5555980b964930ddef4dc1963e1d8e) )
36483181
3649   ROM_REGION( 0x10000, "mainpcb:gfx3", ROMREGION_ERASE00 ) // road gfx
3182   ROM_REGION( 0x10000, "gfx3", ROMREGION_ERASE00 ) // road gfx
36503183   // none??
36513184
3652   ROM_REGION( 0x10000, "mainpcb:soundcpu", 0 ) // sound CPU
3185   ROM_REGION( 0x10000, "soundcpu", 0 ) // sound CPU
36533186   // is this really a sound rom, or a terminal / link rom? accesses unexpected addresses
36543187   ROM_LOAD( "epr-14221a",    0x00000, 0x10000, CRC(0d429ac4) SHA1(9cd4c7e858874f372eb3e409ba37964f1ebf07d5) )
36553188
3656   ROM_REGION( 0x80000, "mainpcb:pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
3189   ROM_REGION( 0x80000, "pcm", ROMREGION_ERASEFF ) // Sega PCM sound data
36573190   // none??
36583191ROM_END
36593192
r249130r249131
36643197//**************************************************************************
36653198
36663199//-------------------------------------------------
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//-------------------------------------------------
36673224//  init_* - game-specific initialization
36683225//-------------------------------------------------
36693226
3670void segaxbd_state::install_aburner2(void)
3227DRIVER_INIT_MEMBER(segaxbd_state,aburner2)
36713228{
3229   DRIVER_INIT_CALL(generic);
36723230   m_road_priority = 0;
36733231   m_iochip_custom_io_r[0][0] = ioread_delegate(FUNC(segaxbd_state::aburner2_iochip0_motor_r), this);
36743232   m_iochip_custom_io_w[0][1] = iowrite_delegate(FUNC(segaxbd_state::aburner2_iochip0_motor_w), this);
36753233}
36763234
3677DRIVER_INIT_MEMBER(segaxbd_new_state,aburner2)
3235DRIVER_INIT_MEMBER(segaxbd_state,lastsurv)
36783236{
3679   m_mainpcb->install_aburner2();
3680}
3681
3682void segaxbd_state::install_lastsurv(void)
3683{
3237   DRIVER_INIT_CALL(generic);
36843238   m_iochip_custom_io_r[1][1] = ioread_delegate(FUNC(segaxbd_state::lastsurv_iochip1_port_r), this);
36853239   m_iochip_custom_io_w[0][3] = iowrite_delegate(FUNC(segaxbd_state::lastsurv_iochip0_muxer_w), this);
36863240}
36873241
3688DRIVER_INIT_MEMBER(segaxbd_new_state,lastsurv)
3242DRIVER_INIT_MEMBER(segaxbd_state,loffire)
36893243{
3690   m_mainpcb->install_lastsurv();
3691}
3692
3693void segaxbd_state::install_loffire(void)
3694{
3244   DRIVER_INIT_CALL(generic);
36953245   m_adc_reverse[1] = m_adc_reverse[3] = true;
36963246
36973247   // install sync hack on core shared memory
36983248   m_loffire_sync = m_maincpu->space(AS_PROGRAM).install_write_handler(0x29c000, 0x29c011, write16_delegate(FUNC(segaxbd_state::loffire_sync0_w), this));
36993249}
37003250
3701
3702DRIVER_INIT_MEMBER(segaxbd_new_state,loffire)
3251DRIVER_INIT_MEMBER(segaxbd_state,smgp)
37033252{
3704   m_mainpcb->install_loffire();
3705}
3706
3707void segaxbd_state::install_smgp(void)
3708{
3253   DRIVER_INIT_CALL(generic);
37093254   m_iochip_custom_io_r[0][0] = ioread_delegate(FUNC(segaxbd_state::smgp_iochip0_motor_r), this);
37103255   m_iochip_custom_io_w[0][1] = iowrite_delegate(FUNC(segaxbd_state::smgp_iochip0_motor_w), this);
37113256
r249130r249131
37133258   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));
37143259}
37153260
3716DRIVER_INIT_MEMBER(segaxbd_new_state,smgp)
3261DRIVER_INIT_MEMBER(segaxbd_state,rascot)
37173262{
3718   m_mainpcb->install_smgp();
3719}
3263   DRIVER_INIT_CALL(generic);
37203264
3721DRIVER_INIT_MEMBER(segaxbd_new_state,rascot)
3722{
3723#if 0
37243265   // patch out bootup link test
3725   UINT16 *rom = reinterpret_cast<UINT16 *>(memregion("mainpcb:subcpu")->base());
3266   UINT16 *rom = reinterpret_cast<UINT16 *>(memregion("subcpu")->base());
37263267   rom[0xb78/2] = 0x601e; // subrom checksum test
37273268   rom[0x57e/2] = 0x4e71;
37283269   rom[0x5d0/2] = 0x6008;
37293270   rom[0x606/2] = 0x4e71;
37303271
37313272   // map /EXCS space
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
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));
37343274}
37353275
3736void segaxbd_state::install_gprider(void)
3276DRIVER_INIT_MEMBER(segaxbd_state,gprider)
37373277{
3278   DRIVER_INIT_CALL(generic);
37383279   m_gprider_hack = true;
3739
37403280}
37413281
3742DRIVER_INIT_MEMBER(segaxbd_new_state,gprider)
3743{
3744   m_mainpcb->install_gprider();
3745}
37463282
37473283
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
37583284//**************************************************************************
37593285//  GAME DRIVERS
37603286//**************************************************************************
37613287
37623288//    YEAR, NAME,     PARENT,   MACHINE,        INPUT,    INIT,                    MONITOR,COMPANY,FULLNAME,FLAGS
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 )
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 )
trunk/src/mame/drivers/seta.c
r249130r249131
80448044
80458045   /* video hardware */
80468046   MCFG_SCREEN_ADD("screen", RASTER)
8047   MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
80488047   MCFG_SCREEN_REFRESH_RATE(60)
80498048   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
80508049   MCFG_SCREEN_SIZE(64*8, 32*8)
r249130r249131
80828081
80838082   /* video hardware */
80848083   MCFG_SCREEN_ADD("screen", RASTER)
8085   MCFG_SCREEN_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
80868084   MCFG_SCREEN_REFRESH_RATE(60)
80878085   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
80888086   MCFG_SCREEN_SIZE(64*8, 32*8)
trunk/src/mame/drivers/suna8.c
r249130r249131
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 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!)
30  the Sharp Image licensed Rough Ranger manaul / NOTICE sheet dated 8-5-88
31- starfigh video: http://youtu.be/SIwV7wjvnHM -> missing starfield effect!
3432- brickzn  video: http://youtu.be/yfU1C7A3iZI (recorded from v6.0, Joystick version)
3533
3634***************************************************************************/
r249130r249131
18871885   MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
18881886   MCFG_PALETTE_ENDIANNESS(ENDIANNESS_BIG)
18891887
1890   MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_text)
1888   MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_textdim12)
18911889
18921890   /* sound hardware */
18931891   MCFG_SPEAKER_STANDARD_MONO("mono")
r249130r249131
19411939   MCFG_PALETTE_FORMAT(RRRRGGGGBBBBxxxx)
19421940   MCFG_PALETTE_ENDIANNESS(ENDIANNESS_BIG)
19431941
1944   MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_text)
1942   MCFG_VIDEO_START_OVERRIDE(suna8_state,suna8_textdim8)
19451943
19461944   /* sound hardware */
19471945   MCFG_SPEAKER_STANDARD_MONO("mono")
r249130r249131
29232921   m_bank1->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000);
29242922}
29252923
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 )
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 )
29332931
29342932GAME( 1988, hardhead,  0,        hardhead, hardhead, suna8_state, hardhead,  ROT0,  "SunA",                       "Hard Head",                   0 )
29352933GAME( 1988, hardheadb, hardhead, hardhead, hardhead, suna8_state, hardhedb,  ROT0,  "bootleg",                    "Hard Head (bootleg)",         0 )
trunk/src/mame/includes/konamigx.h
r249130r249131
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"),
47      m_use_68020_post_clock_hack(0)
46      m_eepromout(*this, "EEPROMOUT")
4847      { }
4948
5049   required_device<cpu_device> m_maincpu;
r249130r249131
253252
254253   int m_konamigx_type3_psac2_actual_bank;
255254   //int m_konamigx_type3_psac2_actual_last_bank = 0;
256
257   DECLARE_DRIVER_INIT(posthack);
258   int m_use_68020_post_clock_hack;
259255};
260256
261257// Sprite Callbacks
trunk/src/mame/includes/segaxbd.h
r249130r249131
1313#include "video/segaic16.h"
1414#include "video/segaic16_road.h"
1515#include "video/sega16sp.h"
16#include "video/resnet.h"
1716
17
1818// ======================> segaxbd_state
1919
20
21class segaxbd_state : public device_t
20class segaxbd_state : public sega_16bit_common_base
2221{
2322public:
2423   // construction/destruction
25   segaxbd_state(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
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   }
2646
2747   // compare/timer chip callbacks
2848   void timer_ack_callback();
r249130r249131
5171   // sound Z80 CPU read/write handlers
5272   DECLARE_READ8_MEMBER( sound_data_r );
5373
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);
5482
5583   // video updates
5684   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
57   
58   // palette helpers
59   DECLARE_WRITE16_MEMBER( paletteram_w );
6085
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
6786protected:
6887   // internal types
6988   typedef delegate<UINT8 (UINT8)> ioread_delegate;
r249130r249131
7897   };
7998
8099   // device overrides
81//   virtual void machine_reset();
100   virtual void machine_reset();
82101   virtual void video_start();
83102   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
84103
r249130r249131
96115   void lastsurv_iochip0_muxer_w(UINT8 data);
97116
98117   // devices
99public:
100118   required_device<m68000_device> m_maincpu;
101protected:
102119   required_device<m68000_device> m_subcpu;
103120   required_device<z80_device> m_soundcpu;
104121   optional_device<z80_device> m_soundcpu2;
r249130r249131
109126   required_device<segaic16_road_device> m_segaic16road;
110127
111128   // configuration
129   bool            m_gprider_hack;
112130   bool            m_adc_reverse[8];
113131   ioread_delegate m_iochip_custom_io_r[2][8];
114132   iowrite_delegate m_iochip_custom_io_w[2][8];
r249130r249131
123141   // game-specific state
124142   UINT16 *        m_loffire_sync;
125143   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();
158144};
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
r249130r249131
6464   }   m_gfxbank_type;
6565   UINT8 m_gfxbank;
6666
67   bool m_has_text; // has text sprites (older games)
67   int m_text_dim; // vertical size of the text layer (0 = no text layer)
6868
6969   // samples
7070   INT16 *m_samplebuf;
r249130r249131
148148   DECLARE_DRIVER_INIT(hardhead);
149149   DECLARE_DRIVER_INIT(suna8);
150150
151   void suna8_vh_start_common(bool has_text, GFXBANK_TYPE_T gfxbank_type);
152   DECLARE_VIDEO_START(suna8_text);
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);
153154   DECLARE_VIDEO_START(suna8_sparkman);
154155   DECLARE_VIDEO_START(suna8_brickzn);
155156   DECLARE_VIDEO_START(suna8_starfigh);
r249130r249131
167168   void play_sample(int index);
168169   SAMPLES_START_CB_MEMBER(sh_start);
169170
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);
171   void draw_normal_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect, int which);
172   void draw_text_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect);
172173   UINT8 *brickzn_decrypt();
173174};
trunk/src/mame/includes/system1.h
r249130r249131
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"),
1716      m_maincpu(*this, "maincpu"),
1817      m_soundcpu(*this, "soundcpu"),
1918      m_mcu(*this, "mcu"),
r249130r249131
3231   required_shared_ptr<UINT8> m_spriteram;
3332   optional_shared_ptr<UINT8> m_nob_mcu_latch;
3433   optional_shared_ptr<UINT8> m_nob_mcu_status;
35   required_shared_ptr<UINT8> m_paletteram;
3634
3735   UINT8 *m_videoram;
3836   void (system1_state::*m_videomode_custom)(UINT8 data, UINT8 prevdata);
trunk/src/mame/machine/fd1094.c
r249130r249131
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
475478
476479
477
478480//**************************************************************************
479481//  DECRYPTION CACHE HELPER
480482//**************************************************************************
r249130r249131
554556
555557fd1094_device::fd1094_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
556558   : m68000_device(mconfig, tag, owner, clock, "fd1094", __FILE__),
557      m_decrypted_opcodes_bank(*this, "^fd1094_decrypted_opcodes"),
559      m_decrypted_opcodes_bank(*this, ":fd1094_decrypted_opcodes"),
558560      m_state(0x00),
559561      m_irqmode(false),
560562      m_cache(*this),
r249130r249131
566568   m_name.assign("FD1094");
567569
568570   // add the decrypted opcodes map
569//   m_address_map[AS_DECRYPTED_OPCODES] = ADDRESS_MAP_NAME(decrypted_opcodes_map);
571   m_address_map[AS_DECRYPTED_OPCODES] = ADDRESS_MAP_NAME(decrypted_opcodes_map);
570572
571573   // create the initial masked opcode table
572574   memset(m_masked_opcodes_lookup, 0, sizeof(m_masked_opcodes_lookup));
r249130r249131
586588}
587589
588590
589
590
591591//-------------------------------------------------
592592//  change_state - set the current state of the
593593//  chip
trunk/src/mame/machine/n64.c
r249130r249131
22662266   }
22672267   else // dd read, BM Mode 1
22682268   {
2269      if(((dd_track_reg & 0xFFF) == 6) && (dd_start_block == 0))
2269      if(((dd_track_reg & 0xFFF) == 6) && (dd_start_block == 0) && ((machine().root_device().ioport("input")->read() & 0x0100) == 0x0000))
22702270      {
2271         //only fail read LBA 12 if retail disk drive
22712272         dd_status_reg &= ~DD_ASIC_STATUS_DREQ;
2273         dd_buf_status_reg |= DD_BMST_MICRO_STATUS;
22722274      }
22732275      else if(dd_current_reg < SECTORS_PER_BLOCK)
22742276      {
r249130r249131
23362338   sector = (UINT8*)machine().root_device().memregion("disk")->base();
23372339   sector += dd_track_offset;
23382340   sector += dd_start_block * SECTORS_PER_BLOCK * ddZoneSecSize[dd_zone];
2339   sector += (dd_current_reg) * ddZoneSecSize[dd_zone];
2341   sector += (dd_current_reg) * (dd_sector_size + 1);
23402342
23412343   //logerror("Read Block %d, Sector %d\n", dd_start_block, dd_current_reg);
23422344
2343   for(int i = 0; i < ddZoneSecSize[dd_zone]/4; i++)
2345   for(int i = 0; i < (dd_sector_size + 1)/4; i++)
23442346   {
23452347      dd_sector_data[i] = sector[(i*4 + 0)] << 24 | sector[(i*4 + 1)] << 16 |
23462348                     sector[(i*4 + 2)] << 8  | sector[(i*4 + 3)];
r249130r249131
24212423         ret = dd_seq_ctrl_reg;
24222424         break;
24232425      case 0x40/4: // ASIC ID
2424         ret = 0x00030000; // Japan Retail Drive
2426         if ((machine().root_device().ioport("input")->read() & 0x0100) == 0x0000)
2427            ret = 0x00030000; // Japan Retail Drive
2428         else
2429            ret = 0x00040000; // Development Drive
24252430         break;
24262431   }
24272432
trunk/src/mame/mess.lst
r249130r249131
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)
437436apple2jp  // ??? ???? Apple ][j+
438437apple2e   // Jan 1983 Apple //e
439438apple2euk // Jan 1983 Apple //e (UK)
trunk/src/mame/video/hng64.c
r249130r249131
11// license:LGPL-2.1+
22// copyright-holders:David Haywood, Angelo Salese, ElSemi, Andrew Gardner
33#include "emu.h"
4#include "drawgfxm.h"
45#include "includes/hng64.h"
56
67#define BLEND_TEST 0
trunk/src/mame/video/k057714.c
r249130r249131
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         d[i] = 0;
346                     
347         if (pix2 & 0x8000)
345         if (pix0 & 0x8000)
348346         {
349            d[i] = pix2 & 0x7fff;
347            d[i] = pix0 & 0x7fff;
350348         }
351         if (pix1 & 0x8000)
349         else
352350         {
353351            d[i] = pix1 & 0x7fff;
354352         }
355         if (pix0 & 0x8000)
356         {
357            d[i] = pix0 & 0x7fff;
358         }
359353
360354         fbaddr0++;
361355         fbaddr1++;
362         fbaddr2++;
356//          fbaddr2++;
363357//          fbaddr3++;
364358      }
365359   }
r249130r249131
478472                  if (sg > 0x1f) sg = 0x1f;
479473                  if (sb > 0x1f) sb = 0x1f;
480474
481                  vram16[fbaddr ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)] = (sr << 10) | (sg << 5) | sb | (pix & 0x8000);
475                  vram16[fbaddr ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)] = (sr << 10) | (sg << 5) | sb | 0x8000;
482476               }
483477            }
484478         }
r249130r249131
486480         {
487481            if (draw)
488482            {
489               vram16[fbaddr ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)] = pix;
483               vram16[fbaddr ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)] = pix | 0x8000;
490484            }
491485         }
492486
r249130r249131
565559   // 0x00: -------- xxxxxxxx xxxxxxxx xxxxxxxx   character data address in vram
566560
567561   // 0x01: -------- -------- ------xx xxxxxxxx   character x
568   // 0x01: -------- xxxxxxxx xxxxxx-- --------   character y
562   // 0x01: -------- ----xxxx xxxxxx-- --------   character y
569563   // 0x01: -------x -------- -------- --------   double height
570   // 0x01: -x------ -------- -------- --------   transparency enable
571564
572565   // 0x02: xxxxxxxx xxxxxxxx -------- --------   color 0
573566   // 0x02: -------- -------- xxxxxxxx xxxxxxxx   color 1
r249130r249131
576569   // 0x03: -------- -------- xxxxxxxx xxxxxxxx   color 3
577570
578571   int x = cmd[1] & 0x3ff;
579   int y = (cmd[1] >> 10) & 0x3fff;
572   int y = (cmd[1] >> 10) & 0x3ff;
580573   UINT32 address = cmd[0] & 0xffffff;
581574   UINT16 color[4];
582575   bool relative_coords = (cmd[0] & 0x10000000) ? true : false;
583576   bool double_height = (cmd[1] & 0x01000000) ? true : false;
584   bool trans_enable = (cmd[1] & 0x40000000) ? true : false;
585577
586578   if (relative_coords)
587579   {
r249130r249131
612604      for (int i=0; i < 8; i++)
613605      {
614606         int p = (line >> ((7-i) * 2)) & 3;
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;
607         vram16[(fbaddr+x+i) ^ NATIVE_ENDIAN_VALUE_LE_BE(1,0)] = color[p] | 0x8000;
618608      }
619609   }
620610}
trunk/src/mame/video/pc080sn.c
r249130r249131
4242*/
4343
4444#include "emu.h"
45#include "drawgfxm.h"
4546#include "pc080sn.h"
4647#include "video/taito_helper.h"
4748
trunk/src/mame/video/pc090oj.c
r249130r249131
6060*/
6161
6262#include "emu.h"
63#include "drawgfxm.h"
6364#include "pc090oj.h"
6465
6566#define PC090OJ_RAM_SIZE 0x4000
trunk/src/mame/video/segaic16.c
r249130r249131
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));
r249130r249131
399399
400400void segaic16_video_device::device_start()
401401{
402   if(!m_gfxdecode->started())
403      throw device_missing_dependencies();
404
405402   save_item(NAME(m_display_enable));
406403}
407404
trunk/src/mame/video/segaic16_road.c
r249130r249131
7373
7474
7575
76void segaic16_road_device::segaic16_road_hangon_decode(running_machine &machine, struct road_info *info)
76static void segaic16_road_hangon_decode(running_machine &machine, struct road_info *info)
7777{
7878   int x, y;
79   const UINT8 *gfx = memregion("^gfx3")->base();
80   int len = memregion("^gfx3")->bytes();
79   const UINT8 *gfx = machine.root_device().memregion("gfx3")->base();
80   int len = machine.root_device().memregion("gfx3")->bytes();
8181
8282   /* allocate memory for the unpacked road data */
8383   info->gfx = auto_alloc_array(machine, UINT8, 256 * 512);
r249130r249131
334334 *
335335 *******************************************************************************************/
336336
337void segaic16_road_device::segaic16_road_outrun_decode(running_machine &machine, struct road_info *info)
337static void segaic16_road_outrun_decode(running_machine &machine, struct road_info *info)
338338{
339339   int x, y;
340   const UINT8 *gfx = memregion("^gfx3")->base();
341   int len = memregion("^gfx3")->bytes();
340   const UINT8 *gfx = machine.root_device().memregion("gfx3")->base();
341   int len = machine.root_device().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
r249130r249131
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);
5048
5149   struct road_info segaic16_road[SEGAIC16_MAX_ROADS];
5250   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
r249130r249131
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
2519   // initialize the tile/text layers
2620   m_segaic16vid->tilemap_init( 0, SEGAIC16_TILEMAP_16B, 0x1c00, 0, 2);
2721
trunk/src/mame/video/suna8.c
r249130r249131
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
2063    Set TILEMAPS to 1 to debug.
2164    Press Z (you see the "tilemaps" in RAM) or
2265    Press X (you see the "tilemaps" in ROM) then
r249130r249131
2972
3073#include "emu.h"
3174#include "includes/suna8.h"
32#include "drawgfxm.h"
3375
3476/***************************************************************************
3577    For Debug: there's no tilemap, just sprites.
r249130r249131
138180
139181
140182
141void suna8_state::suna8_vh_start_common(bool has_text, GFXBANK_TYPE_T gfxbank_type)
183void suna8_state::suna8_vh_start_common(int text_dim, GFXBANK_TYPE_T gfxbank_type)
142184{
143   m_has_text      =   has_text;
185   m_text_dim      =   text_dim;
144186   m_spritebank    =   0;
145187   m_gfxbank       =   0;
146188   m_gfxbank_type  =   gfxbank_type;
147189   m_palettebank   =   0;
148190
149   if (!m_has_text)
191   if (!m_text_dim)
150192   {
151193      m_banked_paletteram.allocate(0x200 * 2);
152194
r249130r249131
157199#if TILEMAPS
158200   m_bg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(suna8_state::get_tile_info),this), TILEMAP_SCAN_COLS,
159201
160                        8, 8, 0x20*(m_has_text ? 4 : 16), 0x20);
202                        8, 8, 0x20*(m_text_dim ? 4 : 16), 0x20);
161203
162204   m_bg_tilemap->set_transparent_pen(15);
163205#endif
164206}
165207
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); }
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); }
170213
171214/***************************************************************************
172215
r249130r249131
176219
177220***************************************************************************/
178221
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
222void suna8_state::draw_normal_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect, int which)
192223{
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{
249224   UINT8 *spriteram = m_spriteram + which * 0x2000 * 2;
250225
226   int i;
251227   int mx = 0; // multisprite x counter
252228
253229   int max_x = m_screen->width() - 8;
254230   int max_y = m_screen->height() - 8;
255231
256   if (m_has_text)
257      screen.priority().fill(0, cliprect);
258
259   for (int i = start; i < end; i += 4)
232   for (i = 0x1d00; i < 0x2000; i += 4)
260233   {
261234      int srcpg, srcx,srcy, dimx,dimy, tx, ty;
262235      int gfxbank, colorbank = 0, flipx,flipy, multisprite;
r249130r249131
266239      int x       =   spriteram[i + 2];
267240      int bank    =   spriteram[i + 3];
268241
269      bool read_mask = false;
270
271      if (m_has_text)
242      if (m_text_dim)
272243      {
273244         // 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
296245         flipx = 0;
297246         flipy = 0;
298247         gfxbank = bank & 0x3f;
r249130r249131
314263      }
315264      else
316265      {
317         // Newer, more complex hardware: brickzn, hardhea2, sparkman, starfigh
266         // Newer, more complex hardware: brickzn, hardhea2, sparkman?, starfigh
318267         switch( code & 0xc0 )
319268         {
320269         case 0xc0:
r249130r249131
333282            gfxbank = bank & 0x1f;
334283            srcpg = (code >> 4) & 3;
335284            break;
285// hardhea2: fire code=52/54 bank=a4; player code=02/04/06 bank=08; arrow:code=16 bank=27
336286         case 0x40:
337            // hardhea2: fire code=52/54 bank=a4; player code=02/04/06 bank=08; arrow:code=16 bank=27
338287            dimx = 4;                   dimy = 4;
339288            srcx  = (code & 0xe) * 2;
340289            flipx = code & 0x01;
r249130r249131
398347      x = x - ((bank & 0x40) ? 0x100 : 0);
399348      y = (0x100 - y - dimy*8 ) & 0xff;
400349
401      // Multi Sprite
350      /* Multi Sprite */
402351      if ( multisprite )  {   mx += dimx*8;   x = mx; }
403352      else                    mx = x;
404353
r249130r249131
430379               sy = max_y - sy;    tile_flipy = !tile_flipy;
431380            }
432381
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);
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);
442387         }
443388      }
389
444390   }
445391}
446392
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)
393void suna8_state::draw_text_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect)
471394{
472395   UINT8 *spriteram = m_spriteram;
396   int i;
473397
474398   int max_x = m_screen->width() - 8;
475399   int max_y = m_screen->height() - 8;
476400
477   bool last = false;
478   for (int i = start; i < end && !last; i += 4)
401   for (i = 0x1900; i < 0x19ff; i += 4)
479402   {
480403      int srcpg, srcx,srcy, dimx,dimy, tx, ty;
481404
r249130r249131
485408      int bank    =   spriteram[i + 3];
486409
487410      if (~code & 0x80)   continue;
488      last = !(bank & 0x80);
489411
490      dimx = 2;                   dimy = 2;
491      srcx  = (code & 0xf) * 2;   srcy = ((y & 0xf8) - (ypos & 0xf8) - 0x10) / 8;
412      dimx = 2;                   dimy = m_text_dim;
413      srcx  = (code & 0xf) * 2;   srcy = (y & 0xf0) / 8;
492414      srcpg = (code >> 4) & 3;
493415
494416      x = x - ((bank & 0x40) ? 0x100 : 0);
417      y = 0;
495418
496419      bank    =   (bank & 0x3f) * 0x400;
497420
r249130r249131
499422      {
500423         for (tx = 0; tx < dimx; tx ++)
501424         {
425            int real_ty =   (ty < (dimy/2)) ? ty : (ty + 0x20 - dimy);
426
502427            int addr    =   (srcpg * 0x20 * 0x20) +
503428                        ((srcx + tx) & 0x1f) * 0x20 +
504                        ((srcy + ty) & 0x1f);
429                        ((srcy + real_ty) & 0x1f);
505430
506431            int tile    =   spriteram[addr*2 + 0];
507432            int attr    =   spriteram[addr*2 + 1];
r249130r249131
510435            int flipy   =   attr & 0x80;
511436
512437            int sx      =    x + tx * 8;
513            int sy      =   (0xf0 - ypos + ty * 8) & 0xff;
438            int sy      =   (y + real_ty * 8) & 0xff;
514439
515440            if (flip_screen())
516441            {
r249130r249131
518443               sy = max_y - sy;    flipy = !flipy;
519444            }
520445
521            m_gfxdecode->gfx(0)->transpen(bitmap, cliprect,
446            m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
522447                     tile + (attr & 0x3)*0x100 + bank,
523448                     (attr >> 2) & 0xf,
524449                     flipx, flipy,
525                     sx, sy, 0xf );
450                     sx, sy, 0xf);
526451         }
527452      }
528   }
529453
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);
539454   }
540455}
541456
r249130r249131
549464
550465UINT32 suna8_state::screen_update_suna8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
551466{
552   // see hardhead, hardhea2 test mode (press button 2 for both players)
467   /* see hardhead, hardhea2 test mode (press button 2 for both players) */
553468   bitmap.fill(0xff, cliprect);
554469
555470#ifdef MAME_DEBUG
r249130r249131
566481      if (machine().input().code_pressed_once(KEYCODE_S)) { m_trombank++; machine().tilemap().mark_all_dirty();   }
567482
568483      m_trombank  &=  0xf;
569      m_page      &=  m_has_text ? 3 : (m_gfxdecode->gfx(1) ? 15 : 7);
484      m_page      &=  m_text_dim ? 3 : (m_gfxdecode->gfx(1) ? 15 : 7);
570485      m_tiles     %=  max_tiles;
571486      if (m_tiles < 0) m_tiles += max_tiles;
572487
r249130r249131
578493                  m_rombank, m_palettebank, m_spritebank,
579494                  m_page, m_tiles, m_trombank);
580495#endif
581      return 0;
582496   }
497   else
583498#endif
584499#endif
500   {
501      // Normal sprites
502      draw_normal_sprites(bitmap,cliprect, 0);
585503
586   // Sprites
587   draw_sprites(screen, bitmap, cliprect, 0x1d00, 0x2000, 0);
504      // More normal sprites (second sprite "chip" in sparkman)
505      if (m_gfxdecode->gfx(1))
506         draw_normal_sprites(bitmap,cliprect, 1);
588507
589   // More sprites (second sprite "chip" in sparkman)
590   if (m_gfxdecode->gfx(1))
591      draw_sprites(screen, bitmap, cliprect, 0x1d00, 0x2000, 1);
592
508      // Text sprites (earlier games only)
509      if (m_text_dim)
510         draw_text_sprites(bitmap,cliprect);
511   }
593512   return 0;
594513}
trunk/src/mame/video/system1.c
r249130r249131
315315
316316   if (m_color_prom != NULL)
317317   {
318      m_paletteram[offset] = data;
319318      UINT8 val;
320319
321320      val = m_color_prom[data + 0 * 256];
trunk/src/mame/video/tc0100scn.c
r249130r249131
141141*/
142142
143143#include "emu.h"
144#include "drawgfxm.h"
144145#include "tc0100scn.h"
145146
146147#define TC0100SCN_RAM_SIZE        0x14000   /* enough for double-width tilemaps */
trunk/src/mame/video/tc0110pcr.c
r249130r249131
1313*/
1414
1515#include "emu.h"
16#include "drawgfxm.h"
1617#include "tc0110pcr.h"
1718
1819#define TC0110PCR_RAM_SIZE 0x2000
trunk/src/mame/video/tc0150rod.c
r249130r249131
77*/
88
99#include "emu.h"
10#include "drawgfxm.h"
1011#include "tc0150rod.h"
1112#include "video/taito_helper.h"
1213
trunk/src/mame/video/tc0180vcu.c
r249130r249131
33/* Taito TC0180VCU */
44
55#include "emu.h"
6#include "drawgfxm.h"
67#include "tc0180vcu.h"
78
89#define TC0180VCU_RAM_SIZE          0x10000
trunk/src/mame/video/tc0280grd.c
r249130r249131
2121*/
2222
2323#include "emu.h"
24#include "drawgfxm.h"
2425#include "tc0280grd.h"
2526
2627#define TC0280GRD_RAM_SIZE 0x2000
trunk/src/mame/video/tc0360pri.c
r249130r249131
4040*/
4141
4242#include "emu.h"
43#include "drawgfxm.h"
4344#include "tc0360pri.h"
4445
4546
trunk/src/mame/video/tc0480scp.c
r249130r249131
142142*/
143143
144144#include "emu.h"
145#include "drawgfxm.h"
145146#include "tc0480scp.h"
146147#include "video/taito_helper.h"
147148
trunk/src/mess/drivers/apple2.c
r249130r249131
12661266   MCFG_DEVICE_ADD(A2_VIDEO_TAG, APPLE2_VIDEO, XTAL_14_31818MHz)
12671267
12681268   MCFG_SCREEN_ADD("screen", RASTER)
1269   MCFG_SCREEN_RAW_PARAMS(1021800*14, (65*7)*2, 0, (40*7)*2, 262, 0, 192)
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)
12701273   MCFG_SCREEN_UPDATE_DRIVER(napple2_state, screen_update)
12711274   MCFG_SCREEN_PALETTE("palette")
12721275
r249130r249131
14481451   ROM_LOAD ( "unitron.f0"   , 0x3000, 0x1000, CRC(8e047c4a) SHA1(78c57c0e00dfce7fdec9437fe2b4c25def447e5d))
14491452ROM_END
14501453
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
14651454/*
14661455    J-Plus ROM numbers confirmed by:
14671456    http://mirrors.apple2.org.za/Apple%20II%20Documentation%20Project/Computers/Apple%20II/Apple%20II%20j-plus/Photos/Apple%20II%20j-plus%20-%20Motherboard.jpg
r249130r249131
16011590COMP( 1982, maxxi,    apple2,   0,        apple2p,     apple2p, driver_device,  0,        "Polymax",  "Maxxi", MACHINE_SUPPORTS_SAVE )
16021591COMP( 1982, prav82,   apple2,   0,        apple2p,     apple2p, driver_device,  0,        "Pravetz",           "Pravetz 82", MACHINE_SUPPORTS_SAVE )
16031592COMP( 1982, ace100,   apple2,   0,        apple2,      apple2p, driver_device,  0,        "Franklin Computer", "Franklin Ace 100", 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 )
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 )
16071595COMP( 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 :(
16081596// reverse font direction -\/
16091597COMP( 1984, ivelultr, apple2,   0,        apple2p,     apple2p, driver_device,  0,        "Ivasim",            "Ivel Ultra", MACHINE_SUPPORTS_SAVE )
trunk/src/mess/drivers/apple2e.c
r249130r249131
30373037   MCFG_DEVICE_ADD(A2_VIDEO_TAG, APPLE2_VIDEO, XTAL_14_31818MHz)
30383038
30393039   MCFG_SCREEN_ADD("screen", RASTER)
3040   MCFG_SCREEN_RAW_PARAMS(1021800*14, (65*7)*2, 0, (40*7)*2, 262, 0, 192)
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)
30413044   MCFG_SCREEN_UPDATE_DRIVER(apple2e_state, screen_update)
30423045   MCFG_SCREEN_PALETTE("palette")
30433046
trunk/src/mess/drivers/ie15.c
r249130r249131
396396
397397static ADDRESS_MAP_START( ie15_io, AS_IO, 8, ie15_state )
398398   ADDRESS_MAP_UNMAP_HIGH
399   AM_RANGE(000, 000) AM_READWRITE(mem_r, mem_w)   // 00h W: memory request, R: memory data [6.1.2.2]
399   AM_RANGE(000, 000) AM_READ(mem_r) AM_WRITE(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_READWRITE(serial_r, serial_w)     // 06h W: serial port data [6.1.5.4]
405   AM_RANGE(006, 006) AM_READ(serial_r) AM_WRITE(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_READWRITE(serial_tx_ready_r, beep_w)  // 08h W: speaker control [6.1.5.4]
407   AM_RANGE(010, 010) AM_READ(serial_tx_ready_r) AM_WRITE(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_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]
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]
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_READWRITE(flag_r, flag_w)
416   AM_RANGE(020, 027) AM_READ(flag_r) AM_WRITE(flag_w)
417417ADDRESS_MAP_END
418418
419419/* Input ports */
r249130r249131
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_rate(9600);
457   set_tra_rate(9600);
458   set_rcv_rate(9600);
458459}
459460
460461void ie15_state::video_start()
trunk/src/mess/drivers/n64.c
r249130r249131
8989
9090static INPUT_PORTS_START( n64 )
9191   PORT_START("input")
92   PORT_CONFNAME(0x03, 0x01, "Controller Port 0 Device")
92   PORT_CONFNAME(0x0003, 0x0001, "Controller Port 0 Device")
9393   PORT_CONFSETTING(0x00, "None")
9494   PORT_CONFSETTING(0x01, "Joypad")
9595   PORT_CONFSETTING(0x02, "Mouse")
96   PORT_CONFNAME(0x0C, 0x00, "Controller Port 1 Device")
96   PORT_CONFNAME(0x000C, 0x0000, "Controller Port 1 Device")
9797   PORT_CONFSETTING(0x00, "None")
9898   PORT_CONFSETTING(0x04, "Joypad")
9999   PORT_CONFSETTING(0x08, "Mouse")
100   PORT_CONFNAME(0x30, 0x00, "Controller Port 2 Device")
100   PORT_CONFNAME(0x0030, 0x0000, "Controller Port 2 Device")
101101   PORT_CONFSETTING(0x00, "None")
102102   PORT_CONFSETTING(0x10, "Joypad")
103103   PORT_CONFSETTING(0x20, "Mouse")
104   PORT_CONFNAME(0xC0, 0x00, "Controller Port 3 Device")
104   PORT_CONFNAME(0x00C0, 0x0000, "Controller Port 3 Device")
105105   PORT_CONFSETTING(0x00, "None")
106106   PORT_CONFSETTING(0x40, "Joypad")
107107   PORT_CONFSETTING(0x80, "Mouse")
108   
109   PORT_CONFNAME(0x0100, 0x0000, "Disk Drive")
110   PORT_CONFSETTING(0x0000, "Retail")
111   PORT_CONFSETTING(0x0100, "Development")
108112
109113   //Player 1
110114   PORT_START("P1")
trunk/src/mess/drivers/orao.c
r249130r249131
1414
1515#include "emu.h"
1616#include "cpu/m6502/m6502.h"
17#include "sound/speaker.h"
17#include "sound/dac.h"
1818#include "sound/wave.h"
1919#include "includes/orao.h"
2020#include "imagedev/cassette.h"
r249130r249131
183183
184184   /* audio hardware */
185185   MCFG_SPEAKER_STANDARD_MONO("mono")
186   MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
187   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
186   MCFG_SOUND_ADD("dac", DAC, 0)
187   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 8.00)
188188   MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
189189   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
190190
trunk/src/mess/includes/orao.h
r249130r249131
88
99#ifndef ORAO_H_
1010#define ORAO_H_
11#include "sound/speaker.h"
11#include "sound/dac.h"
1212#include "imagedev/cassette.h"
1313
1414class orao_state : public driver_device
r249130r249131
1919      m_memory(*this, "memory"),
2020      m_video_ram(*this, "video_ram"),
2121      m_maincpu(*this, "maincpu"),
22      m_speaker(*this, "speaker"),
22      m_dac(*this, "dac"),
2323      m_cassette(*this, "cassette"),
24      m_line(*this, "LINE"),
25      m_beep(0)
24      m_line(*this, "LINE")
2625   { }
2726
2827   DECLARE_READ8_MEMBER(orao_io_r);
r249130r249131
3736   required_shared_ptr<UINT8> m_memory;
3837   required_shared_ptr<UINT8> m_video_ram;
3938   required_device<cpu_device> m_maincpu;
40   required_device<speaker_sound_device> m_speaker;
39   required_device<dac_device> m_dac;
4140   required_device<cassette_image_device> m_cassette;
4241   required_ioport_array<20> m_line;
43   UINT8 m_beep;
4442};
4543
4644#endif /* ORAO_H_ */
trunk/src/mess/machine/orao.c
r249130r249131
7474{
7575   if (offset == 0x0800)
7676   {
77      m_speaker->level_w(m_beep);
78      m_beep ^= 1;
77      m_dac->write_unsigned8(data); //beeper
7978   }
8079}
trunk/src/osd/modules/render/drawogl.c
r249130r249131
31173117         GL_CHECK_ERROR_NORMAL();
31183118         glViewport(0.0, 0.0, (GLsizei)texture->rawwidth, (GLsizei)texture->rawheight);
31193119      }
3120
3121      if ( shaderIdx==m_glsl_program_mb2sc )
3120      else if ( shaderIdx==m_glsl_program_mb2sc )
31223121      {
31233122         assert ( m_glsl_program_mb2sc < m_glsl_program_num-1 );
31243123         glPopAttrib(); // glViewport(0.0, 0.0, (GLsizei)window().width, (GLsizei)window().height)


Previous 199869 Revisions Next


© 1997-2024 The MAME Team