diff options
Diffstat (limited to 'src/mame/drivers/stv.cpp')
-rw-r--r-- | src/mame/drivers/stv.cpp | 382 |
1 files changed, 189 insertions, 193 deletions
diff --git a/src/mame/drivers/stv.cpp b/src/mame/drivers/stv.cpp index 71e7da64a1e..65c4793b3b2 100644 --- a/src/mame/drivers/stv.cpp +++ b/src/mame/drivers/stv.cpp @@ -410,7 +410,7 @@ void stv_state::install_stvbios_speedups( void ) m_slave->sh2drc_add_pcflush(0x6013aee); } -DRIVER_INIT_MEMBER(stv_state,stv) +void stv_state::init_stv() { /* amount of time to boost interleave for on MINIT / SINIT, needed for communication to work */ m_minit_boost = 400; @@ -443,9 +443,9 @@ DRIVER_INIT_MEMBER(stv_state,stv) m_vdp2.pal = 0; } -DRIVER_INIT_MEMBER(stv_state,critcrsh) +void stv_state::init_critcrsh() { - DRIVER_INIT_CALL(stv); + init_stv(); m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::critcrsh_ioga_r32),this), write32_delegate(FUNC(stv_state::stv_ioga_w32),this)); m_slave->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::critcrsh_ioga_r32),this), write32_delegate(FUNC(stv_state::stv_ioga_w32),this)); } @@ -474,13 +474,13 @@ READ32_MEMBER(stv_state::magzun_rx_hack_r) return m_workram_h[0x0ff3b4/4]; } -DRIVER_INIT_MEMBER(stv_state,magzun) +void stv_state::init_magzun() { m_maincpu->sh2drc_add_pcflush(0x604bf20); m_maincpu->sh2drc_add_pcflush(0x604bfbe); m_maincpu->sh2drc_add_pcflush(0x604c006); - DRIVER_INIT_CALL(stv); + init_stv(); m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::magzun_ioga_r32),this), write32_delegate(FUNC(stv_state::magzun_ioga_w32),this)); m_slave->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::magzun_ioga_r32),this), write32_delegate(FUNC(stv_state::magzun_ioga_w32),this)); @@ -499,25 +499,25 @@ DRIVER_INIT_MEMBER(stv_state,magzun) } -DRIVER_INIT_MEMBER(stv_state,stvmp) +void stv_state::init_stvmp() { - DRIVER_INIT_CALL(stv); + init_stv(); m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::stvmp_ioga_r32),this), write32_delegate(FUNC(stv_state::stvmp_ioga_w32),this)); m_slave->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::stvmp_ioga_r32),this), write32_delegate(FUNC(stv_state::stvmp_ioga_w32),this)); } -DRIVER_INIT_MEMBER(stv_state,shienryu) +void stv_state::init_shienryu() { // master m_maincpu->sh2drc_add_pcflush(0x60041c6); // slave m_slave->sh2drc_add_pcflush(0x600440e); - DRIVER_INIT_CALL(stv); + init_stv(); } -DRIVER_INIT_MEMBER(stv_state,prikura) +void stv_state::init_prikura() { /* 06018640: MOV.B @R14,R0 // 60b9228 @@ -532,13 +532,13 @@ DRIVER_INIT_MEMBER(stv_state,prikura) // slave m_slave->sh2drc_add_pcflush(0x6018c6e); - DRIVER_INIT_CALL(stv); + init_stv(); m_minit_boost = m_sinit_boost = 0; m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(50); } -DRIVER_INIT_MEMBER(stv_state,hanagumi) +void stv_state::init_hanagumi() { /* 06013E1E: NOP @@ -559,7 +559,7 @@ DRIVER_INIT_MEMBER(stv_state,hanagumi) */ m_maincpu->sh2drc_add_pcflush(0x6010160); - DRIVER_INIT_CALL(stv); + init_stv(); } @@ -581,13 +581,13 @@ CPU0: Aids Screen */ -DRIVER_INIT_MEMBER(stv_state,puyosun) +void stv_state::init_puyosun() { m_maincpu->sh2drc_add_pcflush(0x6021cf0); m_slave->sh2drc_add_pcflush(0x60236fe); - DRIVER_INIT_CALL(stv); + init_stv(); m_minit_boost = m_sinit_boost = 0; m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(50); @@ -603,37 +603,37 @@ CPU0 Data East Logo: */ -DRIVER_INIT_MEMBER(stv_state,mausuke) +void stv_state::init_mausuke() { m_maincpu->sh2drc_add_pcflush(0x60461A0); - DRIVER_INIT_CALL(stv); + init_stv(); m_minit_boost = m_sinit_boost = 0; m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(50); } -DRIVER_INIT_MEMBER(stv_state,cottonbm) +void stv_state::init_cottonbm() { // m_maincpu->sh2drc_add_pcflush(0x6030ee2); // m_slave->sh2drc_add_pcflush(0x6032b52); - DRIVER_INIT_CALL(stv); + init_stv(); m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(10); } -DRIVER_INIT_MEMBER(stv_state,cotton2) +void stv_state::init_cotton2() { m_maincpu->sh2drc_add_pcflush(0x6031c7a); m_slave->sh2drc_add_pcflush(0x60338ea); - DRIVER_INIT_CALL(stv); + init_stv(); m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(50); } -DRIVER_INIT_MEMBER(stv_state,dnmtdeka) +void stv_state::init_dnmtdeka() { // install all 3 speedups on both master and slave m_maincpu->sh2drc_add_pcflush(0x6027c90); @@ -644,10 +644,10 @@ DRIVER_INIT_MEMBER(stv_state,dnmtdeka) m_slave->sh2drc_add_pcflush(0xd04); m_slave->sh2drc_add_pcflush(0x60051f2); - DRIVER_INIT_CALL(stv); + init_stv(); } -DRIVER_INIT_MEMBER(stv_state,diehard) +void stv_state::init_diehard() { // install all 3 speedups on both master and slave m_maincpu->sh2drc_add_pcflush(0x6027c98); @@ -658,21 +658,21 @@ DRIVER_INIT_MEMBER(stv_state,diehard) m_slave->sh2drc_add_pcflush(0xd04); m_slave->sh2drc_add_pcflush(0x60051f2); - DRIVER_INIT_CALL(stv); + init_stv(); } -DRIVER_INIT_MEMBER(stv_state,fhboxers) +void stv_state::init_fhboxers() { m_maincpu->sh2drc_add_pcflush(0x60041c2); m_maincpu->sh2drc_add_pcflush(0x600bb0a); m_maincpu->sh2drc_add_pcflush(0x600b31e); - DRIVER_INIT_CALL(stv); + init_stv(); // m_instadma_hack = 1; } -DRIVER_INIT_MEMBER(stv_state,groovef) +void stv_state::init_groovef() { m_maincpu->sh2drc_add_pcflush(0x6005e7c); m_maincpu->sh2drc_add_pcflush(0x6005e86); @@ -680,81 +680,81 @@ DRIVER_INIT_MEMBER(stv_state,groovef) m_slave->sh2drc_add_pcflush(0x60060c2); - DRIVER_INIT_CALL(stv); + init_stv(); m_minit_boost = m_sinit_boost = 0; m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(50); } -DRIVER_INIT_MEMBER(stv_state,danchih) +void stv_state::init_danchih() { m_maincpu->sh2drc_add_pcflush(0x6028b28); m_maincpu->sh2drc_add_pcflush(0x6028c8e); m_slave->sh2drc_add_pcflush(0x602ae26); - DRIVER_INIT_CALL(stvmp); + init_stvmp(); m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(5); } -DRIVER_INIT_MEMBER(stv_state,danchiq) +void stv_state::init_danchiq() { m_maincpu->sh2drc_add_pcflush(0x6028b28); m_maincpu->sh2drc_add_pcflush(0x6028c8e); m_slave->sh2drc_add_pcflush(0x602ae26); - DRIVER_INIT_CALL(stv); + init_stv(); m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(5); } -DRIVER_INIT_MEMBER(stv_state,astrass) +void stv_state::init_astrass() { m_maincpu->sh2drc_add_pcflush(0x60011ba); m_maincpu->sh2drc_add_pcflush(0x605b9da); install_common_protection(); - DRIVER_INIT_CALL(stv); + init_stv(); } -DRIVER_INIT_MEMBER(stv_state,thunt) +void stv_state::init_thunt() { m_maincpu->sh2drc_add_pcflush(0x602A024); m_maincpu->sh2drc_add_pcflush(0x6013EEA); m_slave->sh2drc_add_pcflush(0x602AAF8); - DRIVER_INIT_CALL(stv); + init_stv(); m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(1); } -DRIVER_INIT_MEMBER(stv_state,sandor) +void stv_state::init_sandor() { m_maincpu->sh2drc_add_pcflush(0x602a0f8); m_maincpu->sh2drc_add_pcflush(0x6013fbe); m_slave->sh2drc_add_pcflush(0x602abcc); - DRIVER_INIT_CALL(stv); + init_stv(); m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(1); } -DRIVER_INIT_MEMBER(stv_state,grdforce) +void stv_state::init_grdforce() { m_maincpu->sh2drc_add_pcflush(0x6041e32); m_slave->sh2drc_add_pcflush(0x6043aa2); - DRIVER_INIT_CALL(stv); + init_stv(); m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(50); } -DRIVER_INIT_MEMBER(stv_state,batmanfr) +void stv_state::init_batmanfr() { m_maincpu->sh2drc_add_pcflush(0x60121c0); m_slave->sh2drc_add_pcflush(0x60125bc); - DRIVER_INIT_CALL(stv); + init_stv(); m_maincpu->space(AS_PROGRAM).install_write_handler(0x04800000, 0x04800003, write32_delegate(FUNC(stv_state::batmanfr_sound_comms_w),this)); m_slave->space(AS_PROGRAM).install_write_handler(0x04800000, 0x04800003, write32_delegate(FUNC(stv_state::batmanfr_sound_comms_w),this)); @@ -763,211 +763,211 @@ DRIVER_INIT_MEMBER(stv_state,batmanfr) m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(50); } -DRIVER_INIT_MEMBER(stv_state,colmns97) +void stv_state::init_colmns97() { m_slave->sh2drc_add_pcflush(0x60298a2); - DRIVER_INIT_CALL(stv); + init_stv(); m_minit_boost = m_sinit_boost = 0; } -DRIVER_INIT_MEMBER(stv_state,winterht) +void stv_state::init_winterht() { m_maincpu->sh2drc_add_pcflush(0x6098aea); m_slave->sh2drc_add_pcflush(0x609ae4e); - DRIVER_INIT_CALL(stv); + init_stv(); m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(2); } -DRIVER_INIT_MEMBER(stv_state,seabass) +void stv_state::init_seabass() { m_maincpu->sh2drc_add_pcflush(0x602cbfa); m_slave->sh2drc_add_pcflush(0x60321ee); - DRIVER_INIT_CALL(stv); + init_stv(); m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(5); } -DRIVER_INIT_MEMBER(stv_state,vfremix) +void stv_state::init_vfremix() { m_maincpu->sh2drc_add_pcflush(0x602c30c); m_slave->sh2drc_add_pcflush(0x604c332); - DRIVER_INIT_CALL(stv); + init_stv(); m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(20); } -DRIVER_INIT_MEMBER(stv_state,sss) +void stv_state::init_sss() { m_maincpu->sh2drc_add_pcflush(0x6026398); m_slave->sh2drc_add_pcflush(0x6028cd6); install_common_protection(); - DRIVER_INIT_CALL(stv); + init_stv(); m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(50); } -DRIVER_INIT_MEMBER(stv_state,othellos) +void stv_state::init_othellos() { m_maincpu->sh2drc_add_pcflush(0x602bcbe); m_slave->sh2drc_add_pcflush(0x602d92e); - DRIVER_INIT_CALL(stv); + init_stv(); m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(50); } -DRIVER_INIT_MEMBER(stv_state,sasissu) +void stv_state::init_sasissu() { m_slave->sh2drc_add_pcflush(0x60710be); - DRIVER_INIT_CALL(stv); + init_stv(); m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(2); } -DRIVER_INIT_MEMBER(stv_state,gaxeduel) +void stv_state::init_gaxeduel() { // m_maincpu->sh2drc_add_pcflush(0x6012ee4); - DRIVER_INIT_CALL(stv); + init_stv(); } -DRIVER_INIT_MEMBER(stv_state,suikoenb) +void stv_state::init_suikoenb() { m_maincpu->sh2drc_add_pcflush(0x6013f7a); - DRIVER_INIT_CALL(stv); + init_stv(); } -DRIVER_INIT_MEMBER(stv_state,sokyugrt) +void stv_state::init_sokyugrt() { - DRIVER_INIT_CALL(stv); + init_stv(); m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(50); } -DRIVER_INIT_MEMBER(stv_state,znpwfv) +void stv_state::init_znpwfv() { m_maincpu->sh2drc_add_pcflush(0x6012ec2); m_slave->sh2drc_add_pcflush(0x60175a6); - DRIVER_INIT_CALL(stv); + init_stv(); m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_nsec(500); } -DRIVER_INIT_MEMBER(stv_state,twcup98) +void stv_state::init_twcup98() { m_maincpu->sh2drc_add_pcflush(0x605edde); m_slave->sh2drc_add_pcflush(0x6062bca); - DRIVER_INIT_CALL(stv); + init_stv(); install_common_protection(); m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(5); } -DRIVER_INIT_MEMBER(stv_state,smleague) +void stv_state::init_smleague() { m_maincpu->sh2drc_add_pcflush(0x6063bf4); m_slave->sh2drc_add_pcflush(0x6062bca); - DRIVER_INIT_CALL(stv); + init_stv(); /* tight sync to avoid dead locks */ m_minit_boost = m_sinit_boost = 5000; m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(5000); } -DRIVER_INIT_MEMBER(stv_state,finlarch) +void stv_state::init_finlarch() { m_maincpu->sh2drc_add_pcflush(0x6064d60); - DRIVER_INIT_CALL(stv); + init_stv(); /* tight sync to avoid dead locks */ m_minit_boost = m_sinit_boost = 5000; m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(5000); } -DRIVER_INIT_MEMBER(stv_state,maruchan) +void stv_state::init_maruchan() { m_maincpu->sh2drc_add_pcflush(0x601ba46); m_slave->sh2drc_add_pcflush(0x601ba46); - DRIVER_INIT_CALL(stv); + init_stv(); m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(50); } -DRIVER_INIT_MEMBER(stv_state,pblbeach) +void stv_state::init_pblbeach() { m_maincpu->sh2drc_add_pcflush(0x605eb78); - DRIVER_INIT_CALL(stv); + init_stv(); } -DRIVER_INIT_MEMBER(stv_state,shanhigw) +void stv_state::init_shanhigw() { m_maincpu->sh2drc_add_pcflush(0x6020c5c); - DRIVER_INIT_CALL(stv); + init_stv(); } -DRIVER_INIT_MEMBER(stv_state,elandore) +void stv_state::init_elandore() { m_maincpu->sh2drc_add_pcflush(0x604eac0); m_slave->sh2drc_add_pcflush(0x605340a); install_common_protection(); - DRIVER_INIT_CALL(stv); + init_stv(); m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(0); } -DRIVER_INIT_MEMBER(stv_state,rsgun) +void stv_state::init_rsgun() { m_maincpu->sh2drc_add_pcflush(0x6034d04); m_slave->sh2drc_add_pcflush(0x6036152); install_common_protection(); - DRIVER_INIT_CALL(stv); + init_stv(); m_minit_boost_timeslice = m_sinit_boost_timeslice = attotime::from_usec(20); } -DRIVER_INIT_MEMBER(stv_state,ffreveng) +void stv_state::init_ffreveng() { install_common_protection(); - DRIVER_INIT_CALL(stv); + init_stv(); } -DRIVER_INIT_MEMBER(stv_state,decathlt) +void stv_state::init_decathlt() { m_5838crypt->install_decathlt_protection(); - DRIVER_INIT_CALL(stv); + init_stv(); } -DRIVER_INIT_MEMBER(stv_state,nameclv3) +void stv_state::init_nameclv3() { m_maincpu->sh2drc_add_pcflush(0x601eb4c); m_slave->sh2drc_add_pcflush(0x602b80e); - DRIVER_INIT_CALL(stv); + init_stv(); } -DRIVER_INIT_MEMBER(stv_state, hopper) +void stv_state::init_hopper() { - DRIVER_INIT_CALL(stv); + init_stv(); m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::stv_ioga_r32),this), write32_delegate(FUNC(stv_state::hop_ioga_w32),this)); m_slave->space(AS_PROGRAM).install_readwrite_handler(0x00400000, 0x0040003f, read32_delegate(FUNC(stv_state::stv_ioga_r32),this), write32_delegate(FUNC(stv_state::hop_ioga_w32),this)); } @@ -1903,12 +1903,10 @@ by introdon in ST-V ("SG0000000"),and according to the manual it's even wrong! ( by Sega titles,and this is a Sunsoft game)It's likely to be a left-over... */ -DRIVER_INIT_MEMBER(stv_state,sanjeon) +void stv_state::init_sanjeon() { uint8_t *src = memregion("cart")->base(); - int x; - - for (x=0;x<0x3000000;x++) + for (int x = 0; x < 0x3000000; x++) { src[x] = src[x]^0xff; @@ -1917,11 +1915,9 @@ DRIVER_INIT_MEMBER(stv_state,sanjeon) src[x] = bitswap<8>(src[x],7,6,5,4, 2,3,1,0); src[x] = bitswap<8>(src[x],7,0,5,4, 3,2,1,6); src[x] = bitswap<8>(src[x],3,6,5,4, 7,2,1,0); - } - - DRIVER_INIT_CALL(sasissu); + init_sasissu(); } @@ -3610,127 +3606,127 @@ ROM_START( sackids ) ROM_END -GAME( 1996, stvbios, 0, stv_slot, stv, stv_state, stv, ROT0, "Sega", "ST-V Bios", MACHINE_IS_BIOS_ROOT ) +GAME( 1996, stvbios, 0, stv_slot, stv, stv_state, init_stv, ROT0, "Sega", "ST-V Bios", MACHINE_IS_BIOS_ROOT ) -//GAME YEAR, NAME, PARENT, MACH, INP, STATE, INIT, MONITOR +//GAME YEAR, NAME, PARENT, MACH, INP, STATE, INIT, MONITOR /* Playable */ -GAME( 1998, astrass, stvbios, stv_5881, stv6b, stv_state, astrass, ROT0, "Sunsoft", "Astra SuperStars (J 980514 V1.002)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1995, bakubaku, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Baku Baku Animal (J 950407 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, batmanfr, stvbios, batmanfr, batmanfr, stv_state, batmanfr, ROT0, "Acclaim", "Batman Forever (JUE 960507 V1.000)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, colmns97, stvbios, stv, stv, stv_state, colmns97, ROT0, "Sega", "Columns '97 (JET 961209 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, cotton2, stvbios, stv, stv, stv_state, cotton2, ROT0, "Success", "Cotton 2 (JUET 970902 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, cottonbm, stvbios, stv, stv, stv_state, cottonbm, ROT0, "Success", "Cotton Boomerang (JUET 980709 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, critcrsh, stvbios, stv, critcrsh, stv_state, critcrsh, ROT0, "Sega", "Critter Crusher (EA 951204 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, tatacot, critcrsh,stv, critcrsh, stv_state, critcrsh, ROT0, "Sega", "Tatacot (JA 951128 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1999, danchih, stvbios, stv, stvmp, stv_state, danchih, ROT0, "Altron (Tecmo license)", "Danchi de Hanafuda (J 990607 V1.400)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 2000, danchiq, stvbios, stv, stv, stv_state, danchiq, ROT0, "Altron", "Danchi de Quiz: Okusan Yontaku Desuyo! (J 001128 V1.200)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, diehard, stvbios, stv, stv, stv_state, diehard, ROT0, "Sega", "Die Hard Arcade (UET 960515 V1.000)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1996, dnmtdeka, diehard, stv, stv, stv_state, dnmtdeka, ROT0, "Sega", "Dynamite Deka (J 960515 V1.000)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1995, ejihon, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Ejihon Tantei Jimusyo (J 950613 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, elandore, stvbios, stv_5881, stv6b, stv_state, elandore, ROT0, "Sai-Mate", "Touryuu Densetsu Elan-Doree / Elan Doree - Legend of Dragoon (JUET 980922 V1.006)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1999, ffrevng10, ffreveng,stv_5881, stv6b, stv_state, ffreveng, ROT0, "Capcom", "Final Fight Revenge (JUET 990714 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1999, ffreveng, stvbios, stv_5881, stv6b, stv_state, ffreveng, ROT0, "Capcom", "Final Fight Revenge (JUET 990930 V1.100)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, fhboxers, stvbios, stv, stv, stv_state, fhboxers, ROT0, "Sega", "Funky Head Boxers (JUETBKAL 951218 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, findlove, stvbios, stv, stv, stv_state, stv, ROT0, "Daiki / FCF", "Zenkoku Seifuku Bishoujo Grand Prix Find Love (J 971212 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1994, gaxeduel, stvbios, stv, stv6b, stv_state, gaxeduel, ROT0, "Sega", "Golden Axe - The Duel (JUETL 950117 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS) -GAME( 1998, grdforce, stvbios, stv, stv, stv_state, grdforce, ROT0, "Success", "Guardian Force (JUET 980318 V0.105)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, groovef, stvbios, stv, stv6b, stv_state, groovef, ROT0, "Atlus", "Groove on Fight - Gouketsuji Ichizoku 3 (J 970416 V1.001)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, hanagumi, stvbios, stv, stv, stv_state, hanagumi, ROT0, "Sega", "Sakura Taisen - Hanagumi Taisen Columns (J 971007 V1.010)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1996, introdon, stvbios, stv, stv, stv_state, stv, ROT0, "Sunsoft / Success", "Karaoke Quiz Intro Don Don! (J 960213 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, kiwames, stvbios, stv, stvmp, stv_state, stvmp, ROT0, "Athena", "Pro Mahjong Kiwame S (J 951020 V1.208)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, maruchan, stvbios, stv, stv, stv_state, maruchan, ROT0, "Sega / Toyosuisan", "Maru-Chan de Goo! (J 971216 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, mausuke, stvbios, stv, stv, stv_state, mausuke, ROT0, "Data East", "Mausuke no Ojama the World (J 960314 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1999, micrombc, stvbios, hopper, micrombc, stv_state, hopper, ROT0, "Sega", "Microman Battle Charge (J 990326 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, myfairld, stvbios, stv, myfairld, stv_state, stvmp, ROT0, "Micronet", "Virtual Mahjong 2 - My Fair Lady (J 980608 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, othellos, stvbios, stv, stv, stv_state, othellos, ROT0, "Success", "Othello Shiyouyo (J 980423 V1.002)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 2001, patocar, stvbios, hopper, patocar, stv_state, hopper, ROT0, "Sega", "Hashire Patrol Car (J 990326 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, pblbeach, stvbios, stv, stv, stv_state, pblbeach, ROT0, "T&E Soft", "Pebble Beach - The Great Shot (JUE 950913 V0.990)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, prikura, stvbios, stv, stv, stv_state, prikura, ROT0, "Atlus", "Princess Clara Daisakusen (J 960910 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, puyosun, stvbios, stv, stv, stv_state, puyosun, ROT0, "Compile", "Puyo Puyo Sun (J 961115 V0.001)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1998, rsgun, stvbios, stv_5881, stv, stv_state, rsgun, ROT0, "Treasure", "Radiant Silvergun (JUET 980523 V1.000)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, sasissu, stvbios, stv, stv, stv_state, sasissu, ROT0, "Sega", "Taisen Tanto-R Sashissu!! (J 980216 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1999, sanjeon, sasissu, stv, stv, stv_state, sanjeon, ROT0, "Sega / Deniam", "DaeJeon! SanJeon SuJeon (AJTUE 990412 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, seabass, stvbios, stv, stv, stv_state, seabass, ROT0, "A wave inc. (Able license)", "Sea Bass Fishing (JUET 971110 V0.001)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, shanhigw, stvbios, stv, stv, stv_state, shanhigw, ROT0, "Sunsoft / Activision", "Shanghai - The Great Wall / Shanghai Triple Threat (JUE 950623 V1.005)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, shienryu, stvbios, stv, stv, stv_state, shienryu, ROT270, "Warashi", "Shienryu (JUET 961226 V1.000)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1998, sss, stvbios, stv_5881, stv, stv_state, sss, ROT0, "Capcom / Cave / Victor Interactive Software", "Steep Slope Sliders (JUET 981110 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // Also credited as Pack In Soft in ending screen -GAME( 1995, sandor, stvbios, stv, stv, stv_state, sandor, ROT0, "Sega", "Puzzle & Action: Sando-R (J 951114 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, thunt, sandor, stv, stv, stv_state, thunt, ROT0, "Sega", "Puzzle & Action: Treasure Hunt (JUET 970901 V2.00E)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, thuntk, sandor, stv, stv, stv_state, sandor, ROT0, "Sega / Deniam", "Puzzle & Action: BoMulEul Chajara (JUET 970125 V2.00K)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, smleague, stvbios, stv, stv, stv_state, smleague, ROT0, "Sega", "Super Major League (U 960108 V1.000)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, finlarch, smleague,stv, stv, stv_state, finlarch, ROT0, "Sega", "Final Arch (J 950714 V1.001)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, sokyugrt, stvbios, stv, stv, stv_state, sokyugrt, ROT0, "Raizing / Eighting", "Soukyugurentai / Terra Diver (JUET 960821 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1995, suikoenb, stvbios, stv, stv6b, stv_state, suikoenb, ROT0, "Data East", "Suiko Enbu / Outlaws of the Lost Dynasty (JUETL 950314 V2.001)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, techbowl, stvbios, hopper, patocar, stv_state, hopper, ROT0, "Sega", "Technical Bowling (J 971212 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1996, vfkids, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Virtua Fighter Kids (JUET 960319 V0.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, vmahjong, stvbios, stv, vmahjong, stv_state, stvmp, ROT0, "Micronet", "Virtual Mahjong (J 961214 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, winterht, stvbios, stv, stv, stv_state, winterht, ROT0, "Sega", "Winter Heat (JUET 971012 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, znpwfv, stvbios, stv, stv, stv_state, znpwfv, ROT0, "Sega", "Zen Nippon Pro-Wrestling Featuring Virtua (J 971123 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1997, znpwfvt, znpwfv, stv, stv, stv_state, znpwfv, ROT0, "Sega", "Zen Nippon Pro-Wrestling Featuring Virtua (T 971123 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, astrass, stvbios, stv_5881, stv6b, stv_state, init_astrass, ROT0, "Sunsoft", "Astra SuperStars (J 980514 V1.002)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1995, bakubaku, stvbios, stv, stv, stv_state, init_stv, ROT0, "Sega", "Baku Baku Animal (J 950407 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, batmanfr, stvbios, batmanfr, batmanfr, stv_state, init_batmanfr, ROT0, "Acclaim", "Batman Forever (JUE 960507 V1.000)", MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, colmns97, stvbios, stv, stv, stv_state, init_colmns97, ROT0, "Sega", "Columns '97 (JET 961209 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, cotton2, stvbios, stv, stv, stv_state, init_cotton2, ROT0, "Success", "Cotton 2 (JUET 970902 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, cottonbm, stvbios, stv, stv, stv_state, init_cottonbm, ROT0, "Success", "Cotton Boomerang (JUET 980709 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, critcrsh, stvbios, stv, critcrsh, stv_state, init_critcrsh, ROT0, "Sega", "Critter Crusher (EA 951204 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, tatacot, critcrsh,stv, critcrsh, stv_state, init_critcrsh, ROT0, "Sega", "Tatacot (JA 951128 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1999, danchih, stvbios, stv, stvmp, stv_state, init_danchih, ROT0, "Altron (Tecmo license)", "Danchi de Hanafuda (J 990607 V1.400)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 2000, danchiq, stvbios, stv, stv, stv_state, init_danchiq, ROT0, "Altron", "Danchi de Quiz: Okusan Yontaku Desuyo! (J 001128 V1.200)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, diehard, stvbios, stv, stv, stv_state, init_diehard, ROT0, "Sega", "Die Hard Arcade (UET 960515 V1.000)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1996, dnmtdeka, diehard, stv, stv, stv_state, init_dnmtdeka, ROT0, "Sega", "Dynamite Deka (J 960515 V1.000)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1995, ejihon, stvbios, stv, stv, stv_state, init_stv, ROT0, "Sega", "Ejihon Tantei Jimusyo (J 950613 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, elandore, stvbios, stv_5881, stv6b, stv_state, init_elandore, ROT0, "Sai-Mate", "Touryuu Densetsu Elan-Doree / Elan Doree - Legend of Dragoon (JUET 980922 V1.006)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1999, ffrevng10, ffreveng,stv_5881, stv6b, stv_state, init_ffreveng, ROT0, "Capcom", "Final Fight Revenge (JUET 990714 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1999, ffreveng, stvbios, stv_5881, stv6b, stv_state, init_ffreveng, ROT0, "Capcom", "Final Fight Revenge (JUET 990930 V1.100)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, fhboxers, stvbios, stv, stv, stv_state, init_fhboxers, ROT0, "Sega", "Funky Head Boxers (JUETBKAL 951218 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, findlove, stvbios, stv, stv, stv_state, init_stv, ROT0, "Daiki / FCF", "Zenkoku Seifuku Bishoujo Grand Prix Find Love (J 971212 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1994, gaxeduel, stvbios, stv, stv6b, stv_state, init_gaxeduel, ROT0, "Sega", "Golden Axe - The Duel (JUETL 950117 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS) +GAME( 1998, grdforce, stvbios, stv, stv, stv_state, init_grdforce, ROT0, "Success", "Guardian Force (JUET 980318 V0.105)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, groovef, stvbios, stv, stv6b, stv_state, init_groovef, ROT0, "Atlus", "Groove on Fight - Gouketsuji Ichizoku 3 (J 970416 V1.001)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, hanagumi, stvbios, stv, stv, stv_state, init_hanagumi, ROT0, "Sega", "Sakura Taisen - Hanagumi Taisen Columns (J 971007 V1.010)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1996, introdon, stvbios, stv, stv, stv_state, init_stv, ROT0, "Sunsoft / Success", "Karaoke Quiz Intro Don Don! (J 960213 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, kiwames, stvbios, stv, stvmp, stv_state, init_stvmp, ROT0, "Athena", "Pro Mahjong Kiwame S (J 951020 V1.208)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, maruchan, stvbios, stv, stv, stv_state, init_maruchan, ROT0, "Sega / Toyosuisan", "Maru-Chan de Goo! (J 971216 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, mausuke, stvbios, stv, stv, stv_state, init_mausuke, ROT0, "Data East", "Mausuke no Ojama the World (J 960314 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1999, micrombc, stvbios, hopper, micrombc, stv_state, init_hopper, ROT0, "Sega", "Microman Battle Charge (J 990326 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, myfairld, stvbios, stv, myfairld, stv_state, init_stvmp, ROT0, "Micronet", "Virtual Mahjong 2 - My Fair Lady (J 980608 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, othellos, stvbios, stv, stv, stv_state, init_othellos, ROT0, "Success", "Othello Shiyouyo (J 980423 V1.002)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 2001, patocar, stvbios, hopper, patocar, stv_state, init_hopper, ROT0, "Sega", "Hashire Patrol Car (J 990326 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, pblbeach, stvbios, stv, stv, stv_state, init_pblbeach, ROT0, "T&E Soft", "Pebble Beach - The Great Shot (JUE 950913 V0.990)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, prikura, stvbios, stv, stv, stv_state, init_prikura, ROT0, "Atlus", "Princess Clara Daisakusen (J 960910 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, puyosun, stvbios, stv, stv, stv_state, init_puyosun, ROT0, "Compile", "Puyo Puyo Sun (J 961115 V0.001)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1998, rsgun, stvbios, stv_5881, stv, stv_state, init_rsgun, ROT0, "Treasure", "Radiant Silvergun (JUET 980523 V1.000)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, sasissu, stvbios, stv, stv, stv_state, init_sasissu, ROT0, "Sega", "Taisen Tanto-R Sashissu!! (J 980216 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1999, sanjeon, sasissu, stv, stv, stv_state, init_sanjeon, ROT0, "Sega / Deniam", "DaeJeon! SanJeon SuJeon (AJTUE 990412 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, seabass, stvbios, stv, stv, stv_state, init_seabass, ROT0, "A wave inc. (Able license)", "Sea Bass Fishing (JUET 971110 V0.001)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, shanhigw, stvbios, stv, stv, stv_state, init_shanhigw, ROT0, "Sunsoft / Activision", "Shanghai - The Great Wall / Shanghai Triple Threat (JUE 950623 V1.005)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, shienryu, stvbios, stv, stv, stv_state, init_shienryu, ROT270, "Warashi", "Shienryu (JUET 961226 V1.000)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, sss, stvbios, stv_5881, stv, stv_state, init_sss, ROT0, "Capcom / Cave / Victor Interactive Software", "Steep Slope Sliders (JUET 981110 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // Also credited as Pack In Soft in ending screen +GAME( 1995, sandor, stvbios, stv, stv, stv_state, init_sandor, ROT0, "Sega", "Puzzle & Action: Sando-R (J 951114 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, thunt, sandor, stv, stv, stv_state, init_thunt, ROT0, "Sega", "Puzzle & Action: Treasure Hunt (JUET 970901 V2.00E)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, thuntk, sandor, stv, stv, stv_state, init_sandor, ROT0, "Sega / Deniam", "Puzzle & Action: BoMulEul Chajara (JUET 970125 V2.00K)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, smleague, stvbios, stv, stv, stv_state, init_smleague, ROT0, "Sega", "Super Major League (U 960108 V1.000)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, finlarch, smleague,stv, stv, stv_state, init_finlarch, ROT0, "Sega", "Final Arch (J 950714 V1.001)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, sokyugrt, stvbios, stv, stv, stv_state, init_sokyugrt, ROT0, "Raizing / Eighting", "Soukyugurentai / Terra Diver (JUET 960821 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1995, suikoenb, stvbios, stv, stv6b, stv_state, init_suikoenb, ROT0, "Data East", "Suiko Enbu / Outlaws of the Lost Dynasty (JUETL 950314 V2.001)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, techbowl, stvbios, hopper, patocar, stv_state, init_hopper, ROT0, "Sega", "Technical Bowling (J 971212 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, vfkids, stvbios, stv, stv, stv_state, init_stv, ROT0, "Sega", "Virtua Fighter Kids (JUET 960319 V0.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, vmahjong, stvbios, stv, vmahjong, stv_state, init_stvmp, ROT0, "Micronet", "Virtual Mahjong (J 961214 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, winterht, stvbios, stv, stv, stv_state, init_winterht, ROT0, "Sega", "Winter Heat (JUET 971012 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, znpwfv, stvbios, stv, stv, stv_state, init_znpwfv, ROT0, "Sega", "Zen Nippon Pro-Wrestling Featuring Virtua (J 971123 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1997, znpwfvt, znpwfv, stv, stv, stv_state, init_znpwfv, ROT0, "Sega", "Zen Nippon Pro-Wrestling Featuring Virtua (T 971123 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) /* Unemulated printer / camera devices */ // USA sets -GAME( 1997, pclub2, stvbios, stv, stv, stvpc_state, stv, ROT0, "Atlus", "Print Club 2 (U 970921 V1.000)", MACHINE_NOT_WORKING ) -GAME( 1999, pclub2v3, stvbios, stv, stv, stvpc_state, stv, ROT0, "Atlus", "Print Club 2 Vol. 3 (U 990310 V1.000)", MACHINE_NOT_WORKING ) // Hello Kitty themed -GAME( 1999, pclubpok, stvbios, stv, stv, stvpc_state, stv, ROT0, "Atlus", "Print Club Pokemon B (U 991126 V1.000)", MACHINE_NOT_WORKING ) +GAME( 1997, pclub2, stvbios, stv, stv, stvpc_state, init_stv, ROT0, "Atlus", "Print Club 2 (U 970921 V1.000)", MACHINE_NOT_WORKING ) +GAME( 1999, pclub2v3, stvbios, stv, stv, stvpc_state, init_stv, ROT0, "Atlus", "Print Club 2 Vol. 3 (U 990310 V1.000)", MACHINE_NOT_WORKING ) // Hello Kitty themed +GAME( 1999, pclubpok, stvbios, stv, stv, stvpc_state, init_stv, ROT0, "Atlus", "Print Club Pokemon B (U 991126 V1.000)", MACHINE_NOT_WORKING ) // Japan sets -GAME( 1999, pclub2fc, stvbios, stv, stv, stvpc_state, stv, ROT0, "Atlus", "Print Club 2 Felix The Cat (Rev. A) (J 970415 V1.100)", MACHINE_NOT_WORKING ) -GAME( 1998, pclub2pf, stvbios, stv, stv, stvpc_state, stv, ROT0, "Atlus", "Print Club 2 Puffy (J V1.100)", MACHINE_NOT_WORKING ) // version info is blank -GAME( 1997, pclub2pe, stvbios, stv, stv, stvpc_state, stv, ROT0, "Atlus", "Print Club 2 Pepsiman (J 970618 V1.100)", MACHINE_NOT_WORKING ) -GAME( 1997, pclub2wb, stvbios, stv, stv, stvpc_state, stv, ROT0, "Atlus", "Print Club 2 Warner Bros (J 970228 V1.000)", MACHINE_NOT_WORKING ) +GAME( 1999, pclub2fc, stvbios, stv, stv, stvpc_state, init_stv, ROT0, "Atlus", "Print Club 2 Felix The Cat (Rev. A) (J 970415 V1.100)", MACHINE_NOT_WORKING ) +GAME( 1998, pclub2pf, stvbios, stv, stv, stvpc_state, init_stv, ROT0, "Atlus", "Print Club 2 Puffy (J V1.100)", MACHINE_NOT_WORKING ) // version info is blank +GAME( 1997, pclub2pe, stvbios, stv, stv, stvpc_state, init_stv, ROT0, "Atlus", "Print Club 2 Pepsiman (J 970618 V1.100)", MACHINE_NOT_WORKING ) +GAME( 1997, pclub2wb, stvbios, stv, stv, stvpc_state, init_stv, ROT0, "Atlus", "Print Club 2 Warner Bros (J 970228 V1.000)", MACHINE_NOT_WORKING ) -GAME( 1997, pclb2elk, stvbios, stv, stv, stvpc_state, stv, ROT0, "Atlus", "Print Club 2 Earth Limited Kobe (Print Club Custom) (J 970808 V1.000)", MACHINE_NOT_WORKING ) -GAME( 1997, pckobe99, stvbios, stv, stv, stvpc_state, stv, ROT0, "Atlus", "Print Club 2 Kobe Luminaire '99 (Print Club Custom 3) (J 991203 V1.000)", MACHINE_NOT_WORKING ) +GAME( 1997, pclb2elk, stvbios, stv, stv, stvpc_state, init_stv, ROT0, "Atlus", "Print Club 2 Earth Limited Kobe (Print Club Custom) (J 970808 V1.000)", MACHINE_NOT_WORKING ) +GAME( 1997, pckobe99, stvbios, stv, stv, stvpc_state, init_stv, ROT0, "Atlus", "Print Club 2 Kobe Luminaire '99 (Print Club Custom 3) (J 991203 V1.000)", MACHINE_NOT_WORKING ) -GAME( 1997, pclub26w, stvbios, stv, stv, stvpc_state, stv, ROT0, "Atlus", "Print Club 2 Vol. 6 Winter (J 961210 V1.000)", MACHINE_NOT_WORKING ) // internal string is 'PURIKURA2 97FUYU' (but in reality it seems to be an end of 96 Winter version) -GAME( 1997, pclub26wa, pclub26w,stv, stv, stvpc_state, stv, ROT0, "Atlus", "Print Club 2 Vol. 6 Winter (J 970121 V1.200)", MACHINE_NOT_WORKING ) // ^ -GAME( 1997, pclub27s, stvbios, stv, stv, stvpc_state, stv, ROT0, "Atlus", "Print Club 2 Vol. 7 Spring (J 970313 V1.100)", MACHINE_NOT_WORKING ) -GAME( 1997, prc28su, stvbios, stv, stv, stvpc_state, stv, ROT0, "Atlus", "Print Club 2 Vol. 8 Summer (J 970616 V1.100)", MACHINE_NOT_WORKING ) // internal string 97SUMMER -GAME( 1997, prc29au, stvbios, stv, stv, stvpc_state, stv, ROT0, "Atlus", "Print Club 2 Vol. 9 Autumn (J V1.100)", MACHINE_NOT_WORKING ) // internal string 97AUTUMN, no date code! (all 0) -GAME( 1997, prc297wi, stvbios, stv, stv, stvpc_state, stv, ROT0, "Atlus", "Print Club 2 '97 Winter Ver (J 971017 V1.100, set 1)", MACHINE_NOT_WORKING ) // internal string is '97WINTER' -GAME( 1997, prc297wia, prc297wi,stv, stv, stvpc_state, stv, ROT0, "Atlus", "Print Club 2 '97 Winter Ver (J 971017 V1.100, set 2)", MACHINE_NOT_WORKING ) // different program revision, same date code, clearly didn't get updated properly -GAME( 1998, prc298sp, stvbios, stv, stv, stvpc_state, stv, ROT0, "Atlus", "Print Club 2 '98 Spring Ver (J 971017 V1.100)", MACHINE_NOT_WORKING ) // again, date doesn't appear to have bene updated, this should be early 98 -GAME( 1998, prc298su, stvbios, stv, stv, stvpc_state, stv, ROT0, "Atlus", "Print Club 2 '98 Summer Ver (J 980603 V1.100)", MACHINE_NOT_WORKING ) // -GAME( 1998, prc298au, stvbios, stv, stv, stvpc_state, stv, ROT0, "Atlus", "Print Club 2 '98 Autumn Ver (J 980827 V1.000)", MACHINE_NOT_WORKING ) -GAME( 2000, prc2ksu, stvbios, stv, stv, stvpc_state, stv, ROT0, "Atlus", "Print Club 2 2000 Summer (J 000509 V1.000)", MACHINE_NOT_WORKING ) // internal string 2000_SUMMER +GAME( 1997, pclub26w, stvbios, stv, stv, stvpc_state, init_stv, ROT0, "Atlus", "Print Club 2 Vol. 6 Winter (J 961210 V1.000)", MACHINE_NOT_WORKING ) // internal string is 'PURIKURA2 97FUYU' (but in reality it seems to be an end of 96 Winter version) +GAME( 1997, pclub26wa, pclub26w,stv, stv, stvpc_state, init_stv, ROT0, "Atlus", "Print Club 2 Vol. 6 Winter (J 970121 V1.200)", MACHINE_NOT_WORKING ) // ^ +GAME( 1997, pclub27s, stvbios, stv, stv, stvpc_state, init_stv, ROT0, "Atlus", "Print Club 2 Vol. 7 Spring (J 970313 V1.100)", MACHINE_NOT_WORKING ) +GAME( 1997, prc28su, stvbios, stv, stv, stvpc_state, init_stv, ROT0, "Atlus", "Print Club 2 Vol. 8 Summer (J 970616 V1.100)", MACHINE_NOT_WORKING ) // internal string 97SUMMER +GAME( 1997, prc29au, stvbios, stv, stv, stvpc_state, init_stv, ROT0, "Atlus", "Print Club 2 Vol. 9 Autumn (J V1.100)", MACHINE_NOT_WORKING ) // internal string 97AUTUMN, no date code! (all 0) +GAME( 1997, prc297wi, stvbios, stv, stv, stvpc_state, init_stv, ROT0, "Atlus", "Print Club 2 '97 Winter Ver (J 971017 V1.100, set 1)", MACHINE_NOT_WORKING ) // internal string is '97WINTER' +GAME( 1997, prc297wia, prc297wi,stv, stv, stvpc_state, init_stv, ROT0, "Atlus", "Print Club 2 '97 Winter Ver (J 971017 V1.100, set 2)", MACHINE_NOT_WORKING ) // different program revision, same date code, clearly didn't get updated properly +GAME( 1998, prc298sp, stvbios, stv, stv, stvpc_state, init_stv, ROT0, "Atlus", "Print Club 2 '98 Spring Ver (J 971017 V1.100)", MACHINE_NOT_WORKING ) // again, date doesn't appear to have bene updated, this should be early 98 +GAME( 1998, prc298su, stvbios, stv, stv, stvpc_state, init_stv, ROT0, "Atlus", "Print Club 2 '98 Summer Ver (J 980603 V1.100)", MACHINE_NOT_WORKING ) // +GAME( 1998, prc298au, stvbios, stv, stv, stvpc_state, init_stv, ROT0, "Atlus", "Print Club 2 '98 Autumn Ver (J 980827 V1.000)", MACHINE_NOT_WORKING ) +GAME( 2000, prc2ksu, stvbios, stv, stv, stvpc_state, init_stv, ROT0, "Atlus", "Print Club 2 2000 Summer (J 000509 V1.000)", MACHINE_NOT_WORKING ) // internal string 2000_SUMMER -GAME( 1999, pclubor, stvbios, stv, stv, stvpc_state, stv, ROT0, "Atlus", "Print Club Goukakenran (J 991104 V1.000)", MACHINE_NOT_WORKING ) -GAME( 1999, pclubol, stvbios, stv, stv, stvpc_state, stv, ROT0, "Atlus", "Print Club Olive (J 980717 V1.000)", MACHINE_NOT_WORKING ) -GAME( 1997, pclub2kc, stvbios, stv, stv, stvpc_state, stv, ROT0, "Atlus", "Print Club Kome Kome Club (J 970203 V1.000)", MACHINE_NOT_WORKING ) -GAME( 1997, pclubyo2, stvbios, stv, stv, stvpc_state, stv, ROT0, "Atlus", "Print Club Yoshimoto V2 (J 970422 V1.100)", MACHINE_NOT_WORKING ) +GAME( 1999, pclubor, stvbios, stv, stv, stvpc_state, init_stv, ROT0, "Atlus", "Print Club Goukakenran (J 991104 V1.000)", MACHINE_NOT_WORKING ) +GAME( 1999, pclubol, stvbios, stv, stv, stvpc_state, init_stv, ROT0, "Atlus", "Print Club Olive (J 980717 V1.000)", MACHINE_NOT_WORKING ) +GAME( 1997, pclub2kc, stvbios, stv, stv, stvpc_state, init_stv, ROT0, "Atlus", "Print Club Kome Kome Club (J 970203 V1.000)", MACHINE_NOT_WORKING ) +GAME( 1997, pclubyo2, stvbios, stv, stv, stvpc_state, init_stv, ROT0, "Atlus", "Print Club Yoshimoto V2 (J 970422 V1.100)", MACHINE_NOT_WORKING ) -GAME( 1997, pclove, stvbios, stv_5838, stv, stvpc_state, decathlt, ROT0, "Atlus", "Print Club LoveLove (J 970421 V1.000)", MACHINE_NOT_WORKING ) // uses the same type of protection as decathlete!! -GAME( 1997, pclove2, stvbios, stv_5838, stv, stvpc_state, decathlt, ROT0, "Atlus", "Print Club LoveLove Ver 2 (J 970825 V1.000)", MACHINE_NOT_WORKING ) // ^ -GAME( 1997, pcpooh2, stvbios, stv_5838, stv, stvpc_state, decathlt, ROT0, "Atlus", "Print Club Winnie-the-Pooh Vol. 2 (J 971218 V1.000)", MACHINE_NOT_WORKING ) // ^ -GAME( 1998, pcpooh3, stvbios, stv_5838, stv, stvpc_state, decathlt, ROT0, "Atlus", "Print Club Winnie-the-Pooh Vol. 3 (J 980406 V1.000)", MACHINE_NOT_WORKING ) // ^ +GAME( 1997, pclove, stvbios, stv_5838, stv, stvpc_state, init_decathlt, ROT0, "Atlus", "Print Club LoveLove (J 970421 V1.000)", MACHINE_NOT_WORKING ) // uses the same type of protection as decathlete!! +GAME( 1997, pclove2, stvbios, stv_5838, stv, stvpc_state, init_decathlt, ROT0, "Atlus", "Print Club LoveLove Ver 2 (J 970825 V1.000)", MACHINE_NOT_WORKING ) // ^ +GAME( 1997, pcpooh2, stvbios, stv_5838, stv, stvpc_state, init_decathlt, ROT0, "Atlus", "Print Club Winnie-the-Pooh Vol. 2 (J 971218 V1.000)", MACHINE_NOT_WORKING ) // ^ +GAME( 1998, pcpooh3, stvbios, stv_5838, stv, stvpc_state, init_decathlt, ROT0, "Atlus", "Print Club Winnie-the-Pooh Vol. 3 (J 980406 V1.000)", MACHINE_NOT_WORKING ) // ^ -GAME( 1998, stress, stvbios, stv, stv, stvpc_state, stv, ROT0, "Sega", "Stress Busters (J 981020 V1.000)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) +GAME( 1998, stress, stvbios, stv, stv, stvpc_state, init_stv, ROT0, "Sega", "Stress Busters (J 981020 V1.000)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND ) -GAME( 1996, nameclub, stvbios, stv_5838, stv, stvpc_state, decathlt, ROT0, "Sega", "Name Club (J 960315 V1.000)", MACHINE_NOT_WORKING ) // uses the same type of protection as decathlete!! -GAME( 1996, nclubv2, stvbios, stv_5838, stv, stvpc_state, decathlt, ROT0, "Sega", "Name Club Ver.2 (J 960315 V1.000)", MACHINE_NOT_WORKING ) // ^ (has the same datecode as nameclub, probably incorrect unless both were released today) -GAME( 1997, nclubv3, stvbios, stv, stv, stvpc_state, nameclv3, ROT0, "Sega", "Name Club Ver.3 (J 970723 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // no protection +GAME( 1996, nameclub, stvbios, stv_5838, stv, stvpc_state, init_decathlt, ROT0, "Sega", "Name Club (J 960315 V1.000)", MACHINE_NOT_WORKING ) // uses the same type of protection as decathlete!! +GAME( 1996, nclubv2, stvbios, stv_5838, stv, stvpc_state, init_decathlt, ROT0, "Sega", "Name Club Ver.2 (J 960315 V1.000)", MACHINE_NOT_WORKING ) // ^ (has the same datecode as nameclub, probably incorrect unless both were released today) +GAME( 1997, nclubv3, stvbios, stv, stv, stvpc_state, init_nameclv3, ROT0, "Sega", "Name Club Ver.3 (J 970723 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // no protection /* Doing something.. but not enough yet */ -GAME( 1995, vfremix, stvbios, stv, stv, stv_state, vfremix, ROT0, "Sega", "Virtua Fighter Remix (JUETBKAL 950428 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) -GAME( 1996, decathlt, stvbios, stv_5838, stv, stv_state, decathlt, ROT0, "Sega", "Decathlete (JUET 960709 V1.001)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1996, decathlto, decathlt,stv_5838, stv, stv_state, decathlt, ROT0, "Sega", "Decathlete (JUET 960424 V1.000)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) -GAME( 1998, twcup98, stvbios, stv_5881, stv, stv_state, twcup98, ROT0, "Tecmo", "Tecmo World Cup '98 (JUET 980410 V1.000)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // some situations with the GK result in the game stalling, maybe CPU core bug?? -GAME( 1998, twsoc98, twcup98, stv_5881, stv, stv_state, twcup98, ROT0, "Tecmo", "Tecmo World Soccer '98 (JUET 980410 V1.000)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // ^^ (check) +GAME( 1995, vfremix, stvbios, stv, stv, stv_state, init_vfremix, ROT0, "Sega", "Virtua Fighter Remix (JUETBKAL 950428 V1.000)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) +GAME( 1996, decathlt, stvbios, stv_5838, stv, stv_state, init_decathlt, ROT0, "Sega", "Decathlete (JUET 960709 V1.001)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1996, decathlto, decathlt,stv_5838, stv, stv_state, init_decathlt, ROT0, "Sega", "Decathlete (JUET 960424 V1.000)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION ) +GAME( 1998, twcup98, stvbios, stv_5881, stv, stv_state, init_twcup98, ROT0, "Tecmo", "Tecmo World Cup '98 (JUET 980410 V1.000)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // some situations with the GK result in the game stalling, maybe CPU core bug?? +GAME( 1998, twsoc98, twcup98, stv_5881, stv, stv_state, init_twcup98, ROT0, "Tecmo", "Tecmo World Soccer '98 (JUET 980410 V1.000)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) // ^^ (check) /* Gives I/O errors */ -GAME( 1996, magzun, stvbios, stv, stv, stv_state, magzun, ROT0, "Sega", "Magical Zunou Power (J 961031 V1.000)", MACHINE_NOT_WORKING | MACHINE_NODEVICE_MICROPHONE ) -GAME( 1998, choroqhr, stvbios, stv, stv, stv_state, stv, ROT0, "Sega / Takara", "Choro Q Hyper Racing 5 (J 981230 V1.000)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) -GAME( 2000, sackids, stvbios, stv, stv, stv_state, stv, ROT0, "Sega", "Soreyuke Anpanman Crayon Kids (J 001026 V1.000)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 1996, magzun, stvbios, stv, stv, stv_state, init_magzun, ROT0, "Sega", "Magical Zunou Power (J 961031 V1.000)", MACHINE_NOT_WORKING | MACHINE_NODEVICE_MICROPHONE ) +GAME( 1998, choroqhr, stvbios, stv, stv, stv_state, init_stv, ROT0, "Sega / Takara", "Choro Q Hyper Racing 5 (J 981230 V1.000)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) +GAME( 2000, sackids, stvbios, stv, stv, stv_state, init_stv, ROT0, "Sega", "Soreyuke Anpanman Crayon Kids (J 001026 V1.000)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS ) /* CD games */ -GAME( 1995, sfish2, 0, stvcd, stv, stv_state, stv, ROT0, "Sega", "Sport Fishing 2 (UET 951106 V1.10e)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_NODEVICE_LAN ) -GAME( 1995, sfish2j, sfish2, stvcd, stv, stv_state, stv, ROT0, "Sega", "Sport Fishing 2 (J 951201 V1.100)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_NODEVICE_LAN ) +GAME( 1995, sfish2, 0, stvcd, stv, stv_state, init_stv, ROT0, "Sega", "Sport Fishing 2 (UET 951106 V1.10e)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_NODEVICE_LAN ) +GAME( 1995, sfish2j, sfish2, stvcd, stv, stv_state, init_stv, ROT0, "Sega", "Sport Fishing 2 (J 951201 V1.100)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING | MACHINE_NODEVICE_LAN ) /* This is the known list of undumped ST-V games: |