summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/model3.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/model3.cpp')
-rw-r--r--src/mame/drivers/model3.cpp210
1 files changed, 105 insertions, 105 deletions
diff --git a/src/mame/drivers/model3.cpp b/src/mame/drivers/model3.cpp
index e88e75f90cf..61a664a27d3 100644
--- a/src/mame/drivers/model3.cpp
+++ b/src/mame/drivers/model3.cpp
@@ -6005,7 +6005,7 @@ void model3_state::interleave_vroms()
}
-DRIVER_INIT_MEMBER(model3_state,model3_10)
+void model3_state::init_model3_10()
{
interleave_vroms();
@@ -6018,7 +6018,7 @@ DRIVER_INIT_MEMBER(model3_state,model3_10)
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(FUNC(model3_state::mpc105_reg_r),this), write64_delegate(FUNC(model3_state::mpc105_reg_w),this));
}
-DRIVER_INIT_MEMBER(model3_state,model3_15)
+void model3_state::init_model3_15()
{
interleave_vroms();
m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1" );
@@ -6028,7 +6028,7 @@ DRIVER_INIT_MEMBER(model3_state,model3_15)
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(FUNC(model3_state::mpc105_reg_r),this), write64_delegate(FUNC(model3_state::mpc105_reg_w),this));
}
-DRIVER_INIT_MEMBER(model3_state,model3_20)
+void model3_state::init_model3_20()
{
interleave_vroms();
m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1" );
@@ -6040,19 +6040,19 @@ DRIVER_INIT_MEMBER(model3_state,model3_20)
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(FUNC(model3_state::mpc106_reg_r),this), write64_delegate(FUNC(model3_state::mpc106_reg_w),this));
}
-DRIVER_INIT_MEMBER(model3_state,lostwsga)
+void model3_state::init_lostwsga()
{
uint32_t *rom = (uint32_t*)memregion("user1")->base();
- DRIVER_INIT_CALL(model3_15);
+ init_model3_15();
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc1000000, 0xc10000ff, read64_delegate(FUNC(model3_state::scsi_r),this), write64_delegate(FUNC(model3_state::scsi_w),this));
rom[0x7374f0/4] = 0x38840004; /* This seems to be an actual bug in the original code */
}
-DRIVER_INIT_MEMBER(model3_state,scud)
+void model3_state::init_scud()
{
- DRIVER_INIT_CALL(model3_15);
+ init_model3_15();
/* TODO: network device at 0xC0000000 - FF */
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf9000000, 0xf90000ff, read64_delegate(FUNC(model3_state::scsi_r),this), write64_delegate(FUNC(model3_state::scsi_w),this));
@@ -6060,32 +6060,32 @@ DRIVER_INIT_MEMBER(model3_state,scud)
// rom[(0x799de8^4)/4] = 0x00050208; // secret debug menu
}
-DRIVER_INIT_MEMBER(model3_state,scudplus)
+void model3_state::init_scudplus()
{
- DRIVER_INIT_CALL(model3_15);
+ init_model3_15();
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc1000000, 0xc10000ff, read64_delegate(FUNC(model3_state::scsi_r),this), write64_delegate(FUNC(model3_state::scsi_w),this));
}
-DRIVER_INIT_MEMBER(model3_state,scudplusa)
+void model3_state::init_scudplusa()
{
- DRIVER_INIT_CALL(model3_15);
+ init_model3_15();
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc1000000, 0xc10000ff, read64_delegate(FUNC(model3_state::scsi_r),this), write64_delegate(FUNC(model3_state::scsi_w),this));
}
-DRIVER_INIT_MEMBER(model3_state,lemans24)
+void model3_state::init_lemans24()
{
- DRIVER_INIT_CALL(model3_15);
+ init_model3_15();
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xc1000000, 0xc10000ff, read64_delegate(FUNC(model3_state::scsi_r),this), write64_delegate(FUNC(model3_state::scsi_w),this));
// rom[(0x73fe38^4)/4] = 0x38840004; /* This seems to be an actual bug in the original code */
}
-DRIVER_INIT_MEMBER(model3_state,vf3)
+void model3_state::init_vf3()
{
//uint32_t *rom = (uint32_t*)memregion("user1")->base();
- DRIVER_INIT_CALL(model3_10);
+ init_model3_10();
/*
rom[(0x713c7c^4)/4] = 0x60000000;
@@ -6095,7 +6095,7 @@ DRIVER_INIT_MEMBER(model3_state,vf3)
*/
}
-DRIVER_INIT_MEMBER(model3_state,vs215)
+void model3_state::init_vs215()
{
m_step15_with_mpc106 = true;
@@ -6111,7 +6111,7 @@ DRIVER_INIT_MEMBER(model3_state,vs215)
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(FUNC(model3_state::mpc106_reg_r),this), write64_delegate(FUNC(model3_state::mpc106_reg_w),this));
}
-DRIVER_INIT_MEMBER(model3_state,vs29815)
+void model3_state::init_vs29815()
{
m_step15_with_mpc106 = true;
@@ -6132,7 +6132,7 @@ DRIVER_INIT_MEMBER(model3_state,vs29815)
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(FUNC(model3_state::mpc106_reg_r),this), write64_delegate(FUNC(model3_state::mpc106_reg_w),this));
}
-DRIVER_INIT_MEMBER(model3_state,bass)
+void model3_state::init_bass()
{
m_step15_with_mpc106 = true;
@@ -6148,7 +6148,7 @@ DRIVER_INIT_MEMBER(model3_state,bass)
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(FUNC(model3_state::mpc106_reg_r),this), write64_delegate(FUNC(model3_state::mpc106_reg_w),this));
}
-DRIVER_INIT_MEMBER(model3_state,getbass)
+void model3_state::init_getbass()
{
interleave_vroms();
m_maincpu->space(AS_PROGRAM).install_read_bank(0xff000000, 0xff7fffff, "bank1" );
@@ -6160,34 +6160,34 @@ DRIVER_INIT_MEMBER(model3_state,getbass)
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf8fff000, 0xf8fff0ff, read64_delegate(FUNC(model3_state::mpc105_reg_r),this), write64_delegate(FUNC(model3_state::mpc105_reg_w),this));
}
-DRIVER_INIT_MEMBER(model3_state,vs2)
+void model3_state::init_vs2()
{
- DRIVER_INIT_CALL(model3_20);
+ init_model3_20();
}
-DRIVER_INIT_MEMBER(model3_state,vs298)
+void model3_state::init_vs298()
{
- DRIVER_INIT_CALL(model3_20);
+ init_model3_20();
}
-DRIVER_INIT_MEMBER(model3_state,vs299)
+void model3_state::init_vs299()
{
- DRIVER_INIT_CALL(model3_20);
+ init_model3_20();
}
-DRIVER_INIT_MEMBER(model3_state,harley)
+void model3_state::init_harley()
{
- DRIVER_INIT_CALL(model3_20);
+ init_model3_20();
}
-DRIVER_INIT_MEMBER(model3_state,harleya)
+void model3_state::init_harleya()
{
- DRIVER_INIT_CALL(model3_20);
+ init_model3_20();
}
-DRIVER_INIT_MEMBER(model3_state,srally2)
+void model3_state::init_srally2()
{
- DRIVER_INIT_CALL(model3_20);
+ init_model3_20();
uint32_t *rom = (uint32_t*)memregion("user1")->base();
rom[(0x7c0c4^4)/4] = 0x60000000;
@@ -6199,10 +6199,10 @@ DRIVER_INIT_MEMBER(model3_state,srally2)
// Writes command 000023FFFFFFFFFE, expects result 0x01000000000 (?? bits)
}
-DRIVER_INIT_MEMBER(model3_state,swtrilgy)
+void model3_state::init_swtrilgy()
{
uint32_t *rom = (uint32_t*)memregion("user1")->base();
- DRIVER_INIT_CALL(model3_20);
+ init_model3_20();
// Unemulated JTAG stuff, see srally2
rom[(0xf776c^4)/4] = 0x60000000;
@@ -6213,32 +6213,32 @@ DRIVER_INIT_MEMBER(model3_state,swtrilgy)
rom[(0xf6e44^4)/4] = 0x60000000;
}
-DRIVER_INIT_MEMBER(model3_state,swtrilga)
+void model3_state::init_swtrilga()
{
//uint32_t *rom = (uint32_t*)memregion("user1")->base();
- DRIVER_INIT_CALL(model3_20);
+ init_model3_20();
//rom[(0xf6dd0^4)/4] = 0x60000000;
}
-DRIVER_INIT_MEMBER(model3_state,von2)
+void model3_state::init_von2()
{
m_step20_with_old_real3d = true;
- DRIVER_INIT_CALL(model3_20);
+ init_model3_20();
}
-DRIVER_INIT_MEMBER(model3_state,dirtdvls)
+void model3_state::init_dirtdvls()
{
m_step20_with_old_real3d = true;
- DRIVER_INIT_CALL(model3_20);
+ init_model3_20();
}
-DRIVER_INIT_MEMBER(model3_state,daytona2)
+void model3_state::init_daytona2()
{
// uint32_t *rom = (uint32_t*)memregion("user1")->base();
- DRIVER_INIT_CALL(model3_20);
+ init_model3_20();
m_maincpu->space(AS_PROGRAM).install_write_handler(0xc3800000, 0xc3800007, write64_delegate(FUNC(model3_state::daytona2_rombank_w),this));
m_maincpu->space(AS_PROGRAM).install_read_bank(0xc3000000, 0xc37fffff, "bank2" );
@@ -6249,10 +6249,10 @@ DRIVER_INIT_MEMBER(model3_state,daytona2)
//rom[(0x69f4e4^4)/4] = 0x60000000;
}
-DRIVER_INIT_MEMBER(model3_state,dayto2pe)
+void model3_state::init_dayto2pe()
{
// uint32_t *rom = (uint32_t*)memregion("user1")->base();
- DRIVER_INIT_CALL(model3_20);
+ init_model3_20();
m_maincpu->space(AS_PROGRAM).install_write_handler(0xc3800000, 0xc3800007, write64_delegate(FUNC(model3_state::daytona2_rombank_w),this));
m_maincpu->space(AS_PROGRAM).install_read_bank(0xc3000000, 0xc37fffff, "bank2" );
@@ -6264,27 +6264,27 @@ DRIVER_INIT_MEMBER(model3_state,dayto2pe)
// rom[(0x64ca34^4)/4] = 0x60000000; // dec
}
-DRIVER_INIT_MEMBER(model3_state,spikeout)
+void model3_state::init_spikeout()
{
uint32_t *rom = (uint32_t*)memregion("user1")->base();
- DRIVER_INIT_CALL(model3_20);
+ init_model3_20();
rom[(0x6059cc^4)/4] = 0x60000000;
rom[(0x6059ec^4)/4] = 0x60000000;
}
-DRIVER_INIT_MEMBER(model3_state,spikeofe)
+void model3_state::init_spikeofe()
{
uint32_t *rom = (uint32_t*)memregion("user1")->base();
- DRIVER_INIT_CALL(model3_20);
+ init_model3_20();
rom[(0x6059cc^4)/4] = 0x60000000;
rom[(0x6059ec^4)/4] = 0x60000000;
}
-DRIVER_INIT_MEMBER(model3_state,eca)
+void model3_state::init_eca()
{
- DRIVER_INIT_CALL(model3_20);
+ init_model3_20();
// base = 0xffc80000
uint32_t *rom = (uint32_t*)memregion("user1")->base();
@@ -6297,10 +6297,10 @@ DRIVER_INIT_MEMBER(model3_state,eca)
rom[(0x5523d4^4)/4] = 0x60000000;
}
-DRIVER_INIT_MEMBER(model3_state,skichamp)
+void model3_state::init_skichamp()
{
//uint32_t *rom = (uint32_t*)memregion("user1")->base();
- DRIVER_INIT_CALL(model3_20);
+ init_model3_20();
/*
rom[(0x5263c8^4)/4] = 0x60000000;
@@ -6310,81 +6310,81 @@ DRIVER_INIT_MEMBER(model3_state,skichamp)
*/
}
-DRIVER_INIT_MEMBER(model3_state,oceanhun)
+void model3_state::init_oceanhun()
{
uint32_t *rom = (uint32_t*)memregion("user1")->base();
- DRIVER_INIT_CALL(model3_20);
+ init_model3_20();
rom[(0x57995c^4)/4] = 0x60000000; // decrementer
}
-DRIVER_INIT_MEMBER(model3_state,magtruck)
+void model3_state::init_magtruck()
{
m_step20_with_old_real3d = true;
- DRIVER_INIT_CALL(model3_20);
+ init_model3_20();
}
-DRIVER_INIT_MEMBER(model3_state,lamachin)
+void model3_state::init_lamachin()
{
m_step20_with_old_real3d = true;
- DRIVER_INIT_CALL(model3_20);
+ init_model3_20();
}
/* Model 3 Step 1.0 */
-GAME( 1996, vf3, 0, model3_10, model3, model3_state, vf3, ROT0, "Sega", "Virtua Fighter 3 (Revision D)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1996, vf3c, vf3, model3_10, model3, model3_state, vf3, ROT0, "Sega", "Virtua Fighter 3 (Revision C)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1996, vf3a, vf3, model3_10, model3, model3_state, vf3, ROT0, "Sega", "Virtua Fighter 3 (Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1996, vf3tb, vf3, model3_10, model3, model3_state, model3_10, ROT0, "Sega", "Virtua Fighter 3 Team Battle", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1997, bass, 0, model3_10, bass, model3_state, bass, ROT0, "Sega", "Sega Bass Fishing (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1997, bassdx, bass, model3_10, bass, model3_state, getbass, ROT0, "Sega", "Sega Bass Fishing Deluxe (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1997, getbass, bass, model3_10, bass, model3_state, getbass, ROT0, "Sega", "Get Bass", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, vf3, 0, model3_10, model3, model3_state, init_vf3, ROT0, "Sega", "Virtua Fighter 3 (Revision D)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, vf3c, vf3, model3_10, model3, model3_state, init_vf3, ROT0, "Sega", "Virtua Fighter 3 (Revision C)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, vf3a, vf3, model3_10, model3, model3_state, init_vf3, ROT0, "Sega", "Virtua Fighter 3 (Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, vf3tb, vf3, model3_10, model3, model3_state, init_model3_10, ROT0, "Sega", "Virtua Fighter 3 Team Battle", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, bass, 0, model3_10, bass, model3_state, init_bass, ROT0, "Sega", "Sega Bass Fishing (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, bassdx, bass, model3_10, bass, model3_state, init_getbass, ROT0, "Sega", "Sega Bass Fishing Deluxe (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, getbass, bass, model3_10, bass, model3_state, init_getbass, ROT0, "Sega", "Get Bass", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
/* Model 3 Step 1.5 */
-GAME( 1996, scud, 0, scud, scud, model3_state, scud, ROT0, "Sega", "Scud Race Twin (Australia)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1996, scudj, scud, scud, scud, model3_state, scud, ROT0, "Sega", "Scud Race Deluxe (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1996, scuda, scud, scud, scud, model3_state, scud, ROT0, "Sega", "Scud Race Twin (Export)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1997, scudplus, scud, scud, scud, model3_state, scudplus, ROT0, "Sega", "Scud Race Plus (Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1997, scudplusa, scud, scud, scud, model3_state,scudplusa, ROT0, "Sega", "Scud Race Plus", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1997, lostwsga, 0, model3_15, lostwsga, model3_state, lostwsga, ROT0, "Sega", "The Lost World (Japan, Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1997, vs215, vs2, model3_15, model3, model3_state, vs215, ROT0, "Sega", "Virtua Striker 2 (Step 1.5)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1997, vs215o, vs2, model3_15, model3, model3_state, vs215, ROT0, "Sega", "Virtua Striker 2 (Step 1.5, older)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1997, lemans24, 0, model3_15, scud, model3_state, lemans24, ROT0, "Sega", "Le Mans 24 (Revision B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, vs29815, vs298, model3_15, model3, model3_state, vs29815, ROT0, "Sega", "Virtua Striker 2 '98 (Step 1.5)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, vs29915, vs2v991, model3_15, model3, model3_state, vs215, ROT0, "Sega", "Virtua Striker 2 '99 (Step 1.5)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, scud, 0, scud, scud, model3_state, init_scud, ROT0, "Sega", "Scud Race Twin (Australia)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, scudj, scud, scud, scud, model3_state, init_scud, ROT0, "Sega", "Scud Race Deluxe (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1996, scuda, scud, scud, scud, model3_state, init_scud, ROT0, "Sega", "Scud Race Twin (Export)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, scudplus, scud, scud, scud, model3_state, init_scudplus, ROT0, "Sega", "Scud Race Plus (Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, scudplusa, scud, scud, scud, model3_state,init_scudplusa, ROT0, "Sega", "Scud Race Plus", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, lostwsga, 0, model3_15, lostwsga, model3_state, init_lostwsga, ROT0, "Sega", "The Lost World (Japan, Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, vs215, vs2, model3_15, model3, model3_state, init_vs215, ROT0, "Sega", "Virtua Striker 2 (Step 1.5)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, vs215o, vs2, model3_15, model3, model3_state, init_vs215, ROT0, "Sega", "Virtua Striker 2 (Step 1.5, older)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, lemans24, 0, model3_15, scud, model3_state, init_lemans24, ROT0, "Sega", "Le Mans 24 (Revision B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, vs29815, vs298, model3_15, model3, model3_state, init_vs29815, ROT0, "Sega", "Virtua Striker 2 '98 (Step 1.5)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, vs29915, vs2v991, model3_15, model3, model3_state, init_vs215, ROT0, "Sega", "Virtua Striker 2 '99 (Step 1.5)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
/* Model 3 Step 2.0 */
-GAME( 1997, vs2, 0, model3_20, model3, model3_state, vs2, ROT0, "Sega", "Virtua Striker 2 (Step 2.0)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1997, harley, 0, model3_20, harley, model3_state, harley, ROT0, "Sega", "Harley-Davidson and L.A. Riders (Revision B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1997, harleya, harley, model3_20, harley, model3_state, harleya, ROT0, "Sega", "Harley-Davidson and L.A. Riders (Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, lamachin, 0, model3_20_5881, model3, model3_state, lamachin, ROT0, "Sega", "L.A. Machineguns (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, oceanhun, 0, model3_20_5881, model3, model3_state, oceanhun, ROT0, "Sega", "The Ocean Hunter", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, skichamp, 0, model3_20, skichamp, model3_state, skichamp, ROT0, "Sega", "Ski Champ (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, srally2, 0, model3_20, scud, model3_state, srally2, ROT0, "Sega", "Sega Rally 2", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, srally2x, 0, model3_20, scud, model3_state, srally2, ROT0, "Sega", "Sega Rally 2 DX", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, von2, 0, model3_20_5881, von2, model3_state, von2, ROT0, "Sega", "Virtual On 2: Oratorio Tangram (Revision B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, von2a, von2, model3_20_5881, von2, model3_state, von2, ROT0, "Sega", "Virtual On 2: Oratorio Tangram (Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, von254g, von2, model3_20_5881, von2, model3_state, von2, ROT0, "Sega", "Virtual On 2: Oratorio Tangram (ver 5.4g)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, fvipers2, 0, model3_20_5881, model3, model3_state, vs299, ROT0, "Sega", "Fighting Vipers 2 (Japan, Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, vs298, 0, model3_20_5881, model3, model3_state, vs298, ROT0, "Sega", "Virtua Striker 2 '98 (Step 2.0)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, vs2v991, 0, model3_20_5881, model3, model3_state, vs299, ROT0, "Sega", "Virtua Striker 2 '99.1 (Revision B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, vs299b, vs2v991, model3_20_5881, model3, model3_state, vs299, ROT0, "Sega", "Virtua Striker 2 '99 (Revision B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, vs299a, vs2v991, model3_20_5881, model3, model3_state, vs299, ROT0, "Sega", "Virtua Striker 2 '99 (Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, vs299, vs2v991, model3_20_5881, model3, model3_state, vs299, ROT0, "Sega", "Virtua Striker 2 '99", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, vs2, 0, model3_20, model3, model3_state, init_vs2, ROT0, "Sega", "Virtua Striker 2 (Step 2.0)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, harley, 0, model3_20, harley, model3_state, init_harley, ROT0, "Sega", "Harley-Davidson and L.A. Riders (Revision B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1997, harleya, harley, model3_20, harley, model3_state, init_harleya, ROT0, "Sega", "Harley-Davidson and L.A. Riders (Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, lamachin, 0, model3_20_5881, model3, model3_state, init_lamachin, ROT0, "Sega", "L.A. Machineguns (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, oceanhun, 0, model3_20_5881, model3, model3_state, init_oceanhun, ROT0, "Sega", "The Ocean Hunter", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, skichamp, 0, model3_20, skichamp, model3_state, init_skichamp, ROT0, "Sega", "Ski Champ (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, srally2, 0, model3_20, scud, model3_state, init_srally2, ROT0, "Sega", "Sega Rally 2", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, srally2x, 0, model3_20, scud, model3_state, init_srally2, ROT0, "Sega", "Sega Rally 2 DX", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, von2, 0, model3_20_5881, von2, model3_state, init_von2, ROT0, "Sega", "Virtual On 2: Oratorio Tangram (Revision B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, von2a, von2, model3_20_5881, von2, model3_state, init_von2, ROT0, "Sega", "Virtual On 2: Oratorio Tangram (Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, von254g, von2, model3_20_5881, von2, model3_state, init_von2, ROT0, "Sega", "Virtual On 2: Oratorio Tangram (ver 5.4g)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, fvipers2, 0, model3_20_5881, model3, model3_state, init_vs299, ROT0, "Sega", "Fighting Vipers 2 (Japan, Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, vs298, 0, model3_20_5881, model3, model3_state, init_vs298, ROT0, "Sega", "Virtua Striker 2 '98 (Step 2.0)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, vs2v991, 0, model3_20_5881, model3, model3_state, init_vs299, ROT0, "Sega", "Virtua Striker 2 '99.1 (Revision B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, vs299b, vs2v991, model3_20_5881, model3, model3_state, init_vs299, ROT0, "Sega", "Virtua Striker 2 '99 (Revision B)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, vs299a, vs2v991, model3_20_5881, model3, model3_state, init_vs299, ROT0, "Sega", "Virtua Striker 2 '99 (Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, vs299, vs2v991, model3_20_5881, model3, model3_state, init_vs299, ROT0, "Sega", "Virtua Striker 2 '99", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
/* Model 3 Step 2.1 */
-GAME( 1998, daytona2, 0, model3_21_5881, daytona2, model3_state, daytona2, ROT0, "Sega", "Daytona USA 2 (Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, dayto2pe, 0, model3_21_5881, daytona2, model3_state, dayto2pe, ROT0, "Sega", "Daytona USA 2 Power Edition", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, dirtdvls, 0, model3_21_5881, scud, model3_state, dirtdvls, ROT0, "Sega", "Dirt Devils (Export, Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, dirtdvlsa, dirtdvls, model3_21_5881, scud, model3_state, dirtdvls, ROT0, "Sega", "Dirt Devils (Australia, Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, dirtdvlsj, dirtdvls, model3_21_5881, scud, model3_state, dirtdvls, ROT0, "Sega", "Dirt Devils (Japan, Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, swtrilgy, 0, model3_21_5881, swtrilgy, model3_state, swtrilgy, ROT0, "Sega / LucasArts", "Star Wars Trilogy Arcade (Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, swtrilgya, swtrilgy, model3_21_5881, swtrilgy, model3_state, swtrilga, ROT0, "Sega / LucasArts", "Star Wars Trilogy Arcade", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, spikeout, 0, model3_21_5881, model3, model3_state, spikeout, ROT0, "Sega", "Spikeout (Revision C)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1999, spikeofe, 0, model3_21_5881, model3, model3_state, spikeofe, ROT0, "Sega", "Spikeout Final Edition", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1998, magtruck, 0, model3_21_5881, eca, model3_state, magtruck, ROT0, "Sega", "Magical Truck Adventure (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1999, eca, 0, model3_21_5881, eca, model3_state, eca, ROT0, "Sega", "Emergency Call Ambulance (Export)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1999, ecau, eca, model3_21_5881, eca, model3_state, eca, ROT0, "Sega", "Emergency Call Ambulance (USA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
-GAME( 1999, ecap, eca, model3_21_5881, eca, model3_state, eca, ROT0, "Sega", "Emergency Call Ambulance (US location test?)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, daytona2, 0, model3_21_5881, daytona2, model3_state, init_daytona2, ROT0, "Sega", "Daytona USA 2 (Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, dayto2pe, 0, model3_21_5881, daytona2, model3_state, init_dayto2pe, ROT0, "Sega", "Daytona USA 2 Power Edition", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, dirtdvls, 0, model3_21_5881, scud, model3_state, init_dirtdvls, ROT0, "Sega", "Dirt Devils (Export, Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, dirtdvlsa, dirtdvls, model3_21_5881, scud, model3_state, init_dirtdvls, ROT0, "Sega", "Dirt Devils (Australia, Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, dirtdvlsj, dirtdvls, model3_21_5881, scud, model3_state, init_dirtdvls, ROT0, "Sega", "Dirt Devils (Japan, Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, swtrilgy, 0, model3_21_5881, swtrilgy, model3_state, init_swtrilgy, ROT0, "Sega / LucasArts", "Star Wars Trilogy Arcade (Revision A)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, swtrilgya, swtrilgy, model3_21_5881, swtrilgy, model3_state, init_swtrilga, ROT0, "Sega / LucasArts", "Star Wars Trilogy Arcade", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, spikeout, 0, model3_21_5881, model3, model3_state, init_spikeout, ROT0, "Sega", "Spikeout (Revision C)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1999, spikeofe, 0, model3_21_5881, model3, model3_state, init_spikeofe, ROT0, "Sega", "Spikeout Final Edition", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1998, magtruck, 0, model3_21_5881, eca, model3_state, init_magtruck, ROT0, "Sega", "Magical Truck Adventure (Japan)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1999, eca, 0, model3_21_5881, eca, model3_state, init_eca, ROT0, "Sega", "Emergency Call Ambulance (Export)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1999, ecau, eca, model3_21_5881, eca, model3_state, init_eca, ROT0, "Sega", "Emergency Call Ambulance (USA)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )
+GAME( 1999, ecap, eca, model3_21_5881, eca, model3_state, init_eca, ROT0, "Sega", "Emergency Call Ambulance (US location test?)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND )