From a5b56869706220d61c56ece4e85dbcf22173ade2 Mon Sep 17 00:00:00 2001 From: ClawGrip Date: Tue, 17 Oct 2023 19:54:16 +0200 Subject: [PATCH] misc/vamphalf.cpp: Dumped and added a new game: 'Solitaire' (#11623) * misc/vamphalf.cpp: New working systems ------------------- Solitaire (version 2.5) [Recreativas.org, Brito_cat] * mame.lst: Add 'solitaire' * proper memory map and inputs may still do with intuitive input defaults and speedup funcs * mame.lst: moved solitaire in alphabetical order [skip ci] --------- Co-authored-by: Ivan Vangelista --- src/mame/mame.lst | 1 + src/mame/misc/vamphalf.cpp | 166 +++++++++++++++++++++++++++++-------- 2 files changed, 134 insertions(+), 33 deletions(-) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 0cefa0340c9..f578161e9e0 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -31878,6 +31878,7 @@ newxpanga // (c) 1999 F2 System poosho // (c) 1999 F2 System puzlbang // (c) 1999 Omega System puzlbanga // (c) 1999 Omega System +solitaire // (c) 1999 F2 System suplup // (c) 1999 Omega System toyland // (c) 2001 Semicom vamphalf // (c) 1999 DanBi & F2 System (Europe version 1.1.0908) diff --git a/src/mame/misc/vamphalf.cpp b/src/mame/misc/vamphalf.cpp index 0f492353561..f127684f262 100644 --- a/src/mame/misc/vamphalf.cpp +++ b/src/mame/misc/vamphalf.cpp @@ -14,6 +14,7 @@ Jumping Break (c) 1999 F2 System Poosho Poosho (c) 1999 F2 System New Cross Pang (c) 1999 F2 System + Solitaire (c) 1999 F2 System (version 2.5) World Adventure (c) 1999 F2 System + Logic Lup Lup Puzzle (c) 1999 Omega System (version 3.0, 2.9 and 1.05) Puzzle Bang Bang (c) 1999 Omega System (version 2.8 and 2.9) @@ -110,6 +111,7 @@ public: void aoh(machine_config &config); void coolmini(machine_config &config); void mrkicker(machine_config &config); + void solitaire(machine_config &config); void init_vamphalf(); void init_vamphalfr1(); @@ -134,6 +136,7 @@ public: void init_aoh(); void init_boonggab(); void init_mrkicker(); + void init_solitaire(); DECLARE_CUSTOM_INPUT_MEMBER(boonggab_photo_sensors_r); @@ -237,6 +240,7 @@ private: void worldadv_io(address_map &map); void mrdig_io(address_map &map); void mrkicker_io(address_map &map); + void solitaire_io(address_map &map); void suplup_io(address_map &map); void vamphalf_io(address_map &map); }; @@ -668,6 +672,19 @@ void vamphalf_state::worldadv_io(address_map &map) map(0x780, 0x783).r(FUNC(vamphalf_state::eeprom_r)); } +void vamphalf_state::solitaire_io(address_map &map) +{ + map(0x000, 0x003).r(FUNC(vamphalf_state::eeprom_r)); + map(0x0c0, 0x0c3).portr("P1_P2"); + map(0x140, 0x141).noprw(); // return 0, when oki chip is read / written + map(0x143, 0x143).rw("oki1", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0x440, 0x443).portr("SYSTEM"); + // map(0x504, 0x50b) // lamps + map(0x580, 0x583).w("ymsnd", FUNC(ym2151_device::address_w)).umask16(0x00ff); + map(0x584, 0x587).rw("ymsnd", FUNC(ym2151_device::status_r), FUNC(ym2151_device::data_w)).umask16(0x00ff); + map(0x680, 0x683).w(FUNC(vamphalf_state::eeprom_w)); +} + void vamphalf_state::mrdig_io(address_map &map) { map(0x080, 0x081).noprw(); // return 0, when oki chip is read / written @@ -1135,6 +1152,37 @@ static INPUT_PORTS_START( yorijori ) PORT_SERVICE_NO_TOGGLE( 0x00800000, IP_ACTIVE_LOW ) INPUT_PORTS_END +static INPUT_PORTS_START( solitaire ) + PORT_START("P1_P2") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON1 ) // L1 Button in test mode + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_BUTTON2 ) // L2 Button in test mode + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_BUTTON3 ) // L3 Button in test mode + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_BUTTON4 ) // L4 Button in test mode + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON5 ) // L5 Button in test mode + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON6 ) // L6 Button in test mode + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_BUTTON7 ) // L7 Button in test mode + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no effect in test mode + PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_BUTTON8 ) // D1 Button in test mode + PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_BUTTON9 ) // D2 Button in test mode + PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_BUTTON10 ) // R1 Button in test mode + PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON11 ) // Gift Button in test mode + PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no effect in test mode + PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no effect in test mode + PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no effect in test mode + PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN ) // no effect in test mode + + PORT_START("SYSTEM") + PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_COIN1 ) + PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SERVICE1 ) + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_COIN2 ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_SERVICE ) + PORT_SERVICE_NO_TOGGLE( 0x0010, IP_ACTIVE_LOW ) + PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNKNOWN ) + PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_START1 ) + PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 ) + PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN ) +INPUT_PORTS_END + static GFXDECODE_START( gfx_vamphalf ) GFXDECODE_ENTRY( "gfx", 0, gfx_16x16x8_raw, 0, 0x80 ) GFXDECODE_END @@ -1264,6 +1312,14 @@ void vamphalf_state::jmpbreak(machine_config &config) sound_ym_oki(config); } +void vamphalf_state::solitaire(machine_config &config) +{ + common(config); + m_maincpu->set_addrmap(AS_IO, &vamphalf_state::solitaire_io); + + sound_ym_oki(config); +} + void vamphalf_state::newxpang(machine_config &config) { common(config); @@ -1929,6 +1985,38 @@ ROM_END /* +Solitaire (c) 1999 F2 System + + CPU: Hyperstone E1-16T + Video: 2 x QuickLogic QL2003-XPL84C FPGA + Sound: AD-65 (OKI 6295), KA51 (YM2151) & KA12 (YM3012) + OSC: 20MHz & 28MHz +EEPROM: 93C46 + +PCB: F-E1-16-004 + +*/ + +ROM_START( solitaire ) // Version 2.5 + ROM_REGION32_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) // Hyperstone CPU Code + // 0 - 0x80000 empty + ROM_LOAD( "rom2-27c040.bin", 0x080000, 0x080000, CRC(304e4338) SHA1(6b2817d7505c943ca7cdfa9176c9504e30936235) ) + + ROM_REGION32_BE( 0x800000, "gfx", 0 ) // gfx data + ROM_LOAD32_WORD_SWAP( "romu00-mx29f1610mc.bin", 0x000000, 0x200000, CRC(7fee63ac) SHA1(ef22145da9ce3100c8736e9a77e59da4f984aaba) ) + ROM_LOAD32_WORD_SWAP( "roml00-mx29f1610mc.bin", 0x000002, 0x200000, CRC(0d973625) SHA1(b482a97732a6117d9c1c7507118e111ac4f7f3f1) ) + ROM_LOAD32_WORD_SWAP( "romu01-mx29f1610mc.bin", 0x400000, 0x200000, CRC(f3f3f3e5) SHA1(9a0d91351903b70049fbbc76a9ccff1a382ecbfd) ) + ROM_LOAD32_WORD_SWAP( "roml01-mx29f1610mc.bin", 0x400002, 0x200000, CRC(5bba95b8) SHA1(6d884a694cbbad6768e606afd5b234a07a3b5b50) ) + + ROM_REGION( 0x80000, "oki1", 0 ) // Oki Samples + ROM_LOAD( "vrom1-27c020.bin", 0x000000, 0x040000, CRC(bbbf4ac8) SHA1(b37f945143a9ed7a372a953ef93dbea01c4fcce4) ) + + ROM_REGION( 0x2dd, "plds", 0 ) + ROM_LOAD( "palce22v10.gal1", 0x000000, 0x0002dd, NO_DUMP ) // Protected +ROM_END + +/* + Mr. Dig SUN, 2000 @@ -3656,6 +3744,16 @@ void vamphalf_state::init_worldadv() m_palshift = 0; } +void vamphalf_state::init_solitaire() +{ + + // TODO: speedup + //m_maincpu->space(AS_PROGRAM).install_read_handler(0x0c5e78, 0x0c5e79, read16smo_delegate(*this, FUNC(vamphalf_state::worldadv_speedup_r))); + //m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(*this, FUNC(vamphalf_state::jmpbreak_flipscreen_w))); + + m_palshift = 0; +} + void vamphalf_state::init_boonggab() { banked_oki(0); @@ -3666,55 +3764,57 @@ void vamphalf_state::init_boonggab() m_flip_bit = 1; } -} // Anonymous namespace +} // anonymous namespace -GAME( 1999, coolmini, 0, coolmini, common, vamphalf_state, init_coolmini, ROT0, "SemiCom", "Cool Minigame Collection", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, coolminii, coolmini, coolmini, common, vamphalf_state, init_coolminii, ROT0, "SemiCom", "Cool Minigame Collection (Italy)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, coolmini, 0, coolmini, common, vamphalf_state, init_coolmini, ROT0, "SemiCom", "Cool Minigame Collection", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, coolminii, coolmini, coolmini, common, vamphalf_state, init_coolminii, ROT0, "SemiCom", "Cool Minigame Collection (Italy)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, jmpbreak, 0, jmpbreak, common, vamphalf_state, init_jmpbreak, ROT0, "F2 System", "Jumping Break (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, jmpbreaka, jmpbreak, jmpbreak, common, vamphalf_state, init_jmpbreaka, ROT0, "F2 System", "Jumping Break (set 2)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, jmpbreak, 0, jmpbreak, common, vamphalf_state, init_jmpbreak, ROT0, "F2 System", "Jumping Break (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, jmpbreaka, jmpbreak, jmpbreak, common, vamphalf_state, init_jmpbreaka, ROT0, "F2 System", "Jumping Break (set 2)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, poosho, 0, jmpbreak, common, vamphalf_state, init_poosho, ROT0, "F2 System", "Poosho Poosho", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, poosho, 0, jmpbreak, common, vamphalf_state, init_poosho, ROT0, "F2 System", "Poosho Poosho", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, newxpang, 0, newxpang, common, vamphalf_state, init_newxpang, ROT0, "F2 System", "New Cross Pang (set 1)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, newxpanga, newxpang, jmpbreak, common, vamphalf_state, init_newxpanga, ROT0, "F2 System", "New Cross Pang (set 2)", MACHINE_SUPPORTS_SAVE ) // TODO: speed up for this set +GAME( 1999, newxpang, 0, newxpang, common, vamphalf_state, init_newxpang, ROT0, "F2 System", "New Cross Pang (set 1)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, newxpanga, newxpang, jmpbreak, common, vamphalf_state, init_newxpanga, ROT0, "F2 System", "New Cross Pang (set 2)", MACHINE_SUPPORTS_SAVE ) // TODO: speed up for this set -GAME( 1999, worldadv, 0, worldadv, common, vamphalf_state, init_worldadv, ROT0, "Logic / F2 System", "World Adventure", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // game starts to stall for several seconds at a time after it's been running for a certain amount of time +GAME( 1999, worldadv, 0, worldadv, common, vamphalf_state, init_worldadv, ROT0, "Logic / F2 System", "World Adventure", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // game starts to stall for several seconds at a time after it's been running for a certain amount of time -GAME( 1999, suplup, 0, suplup, common, vamphalf_state, init_suplup, ROT0, "Omega System", "Super Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 4.0 / 990518)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, luplup, suplup, suplup, common, vamphalf_state, init_luplup, ROT0, "Omega System", "Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 3.0 / 990128)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, luplup29, suplup, suplup, common, vamphalf_state, init_luplup29, ROT0, "Omega System", "Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 2.9 / 990108)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, luplup10, suplup, suplup, common, vamphalf_state, init_luplup10, ROT0, "Omega System (Adko license)", "Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 1.05 / 981214)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, puzlbang, suplup, suplup, common, vamphalf_state, init_puzlbang, ROT0, "Omega System", "Puzzle Bang Bang (Korea, version 2.9 / 990108)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, puzlbanga, suplup, suplup, common, vamphalf_state, init_puzlbang, ROT0, "Omega System", "Puzzle Bang Bang (Korea, version 2.8 / 990106)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, solitaire, 0, solitaire, solitaire, vamphalf_state, init_solitaire, ROT0, "F2 System", "Solitaire (version 2.5)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, vamphalf, 0, vamphalf, common, vamphalf_state, init_vamphalf, ROT0, "Danbi / F2 System", "Vamf x1/2 (Europe, version 1.1.0908)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, vamphalfr1, vamphalf, vamphalf, common, vamphalf_state, init_vamphalfr1,ROT0, "Danbi / F2 System", "Vamf x1/2 (Europe, version 1.0.0903)", MACHINE_SUPPORTS_SAVE ) -GAME( 1999, vamphalfk, vamphalf, vamphalf, common, vamphalf_state, init_vamphafk, ROT0, "Danbi / F2 System", "Vamp x1/2 (Korea, version 1.1.0908)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, suplup, 0, suplup, common, vamphalf_state, init_suplup, ROT0, "Omega System", "Super Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 4.0 / 990518)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, luplup, suplup, suplup, common, vamphalf_state, init_luplup, ROT0, "Omega System", "Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 3.0 / 990128)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, luplup29, suplup, suplup, common, vamphalf_state, init_luplup29, ROT0, "Omega System", "Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 2.9 / 990108)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, luplup10, suplup, suplup, common, vamphalf_state, init_luplup10, ROT0, "Omega System (Adko license)", "Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 1.05 / 981214)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, puzlbang, suplup, suplup, common, vamphalf_state, init_puzlbang, ROT0, "Omega System", "Puzzle Bang Bang (Korea, version 2.9 / 990108)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, puzlbanga, suplup, suplup, common, vamphalf_state, init_puzlbang, ROT0, "Omega System", "Puzzle Bang Bang (Korea, version 2.8 / 990106)", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, dquizgo2, 0, coolmini, common, vamphalf_state, init_dquizgo2, ROT0, "SemiCom", "Date Quiz Go Go Episode 2", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, vamphalf, 0, vamphalf, common, vamphalf_state, init_vamphalf, ROT0, "Danbi / F2 System", "Vamf x1/2 (Europe, version 1.1.0908)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, vamphalfr1, vamphalf, vamphalf, common, vamphalf_state, init_vamphalfr1,ROT0, "Danbi / F2 System", "Vamf x1/2 (Europe, version 1.0.0903)", MACHINE_SUPPORTS_SAVE ) +GAME( 1999, vamphalfk, vamphalf, vamphalf, common, vamphalf_state, init_vamphafk, ROT0, "Danbi / F2 System", "Vamp x1/2 (Korea, version 1.1.0908)", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, misncrft, 0, misncrft, common, vamphalf_qdsp_state, init_misncrft, ROT90, "Sun", "Mission Craft (version 2.7)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // game starts to stall for several seconds at a time after it's been running for a certain amount of time (you can usually complete 1 loop) -GAME( 2000, misncrfta, misncrft, misncrft, common, vamphalf_qdsp_state, init_misncrft, ROT90, "Sun", "Mission Craft (version 2.4)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) +GAME( 2000, dquizgo2, 0, coolmini, common, vamphalf_state, init_dquizgo2, ROT0, "SemiCom", "Date Quiz Go Go Episode 2", MACHINE_SUPPORTS_SAVE ) -GAME( 2000, mrdig, 0, mrdig, common, vamphalf_state, init_mrdig, ROT0, "Sun", "Mr. Dig", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, misncrft, 0, misncrft, common, vamphalf_qdsp_state, init_misncrft, ROT90, "Sun", "Mission Craft (version 2.7)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // game starts to stall for several seconds at a time after it's been running for a certain amount of time (you can usually complete 1 loop) +GAME( 2000, misncrfta, misncrft, misncrft, common, vamphalf_qdsp_state, init_misncrft, ROT90, "Sun", "Mission Craft (version 2.4)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) -GAME( 2001, dtfamily, 0, mrkicker, common, vamphalf_state, init_dtfamily, ROT0, "SemiCom", "Diet Family", MACHINE_SUPPORTS_SAVE ) +GAME( 2000, mrdig, 0, mrdig, common, vamphalf_state, init_mrdig, ROT0, "Sun", "Mr. Dig", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, finalgdr, 0, finalgdr, finalgdr, vamphalf_nvram_state,init_finalgdr, ROT0, "SemiCom", "Final Godori (Korea, version 2.20.5915)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, dtfamily, 0, mrkicker, common, vamphalf_state, init_dtfamily, ROT0, "SemiCom", "Diet Family", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, mrkicker, 0, mrkicker, common, vamphalf_state, init_mrkicker, ROT0, "SemiCom", "Mr. Kicker (F-E1-16-010 PCB)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, mrkickera, mrkicker, mrkickera, finalgdr, vamphalf_nvram_state,init_mrkickera, ROT0, "SemiCom", "Mr. Kicker (SEMICOM-003b PCB)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // if you allow EEPROM saving, then this set corrupts the EEPROM and then won't boot +GAME( 2001, finalgdr, 0, finalgdr, finalgdr, vamphalf_nvram_state,init_finalgdr, ROT0, "SemiCom", "Final Godori (Korea, version 2.20.5915)", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, toyland, 0, coolmini, common, vamphalf_state, init_toyland, ROT0, "SemiCom", "Toy Land Adventure", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, mrkicker, 0, mrkicker, common, vamphalf_state, init_mrkicker, ROT0, "SemiCom", "Mr. Kicker (F-E1-16-010 PCB)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, mrkickera, mrkicker, mrkickera, finalgdr, vamphalf_nvram_state,init_mrkickera, ROT0, "SemiCom", "Mr. Kicker (SEMICOM-003b PCB)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // if you allow EEPROM saving, then this set corrupts the EEPROM and then won't boot -GAME( 2001, wivernwg, 0, wyvernwg, common, vamphalf_qdsp_state, init_wyvernwg, ROT270, "SemiCom", "Wivern Wings", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) // gives a protection error after a certain number of plays / coins? -GAME( 2001, wyvernwg, wivernwg, wyvernwg, common, vamphalf_qdsp_state, init_wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) -GAME( 2001, wyvernwga, wivernwg, wyvernwg, common, vamphalf_qdsp_state, init_wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) +GAME( 2001, toyland, 0, coolmini, common, vamphalf_state, init_toyland, ROT0, "SemiCom", "Toy Land Adventure", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, aoh, 0, aoh, aoh, vamphalf_state, init_aoh, ROT0, "Unico", "Age Of Heroes - Silkroad 2 (v0.63 - 2001/02/07)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, wivernwg, 0, wyvernwg, common, vamphalf_qdsp_state, init_wyvernwg, ROT270, "SemiCom", "Wivern Wings", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) // gives a protection error after a certain number of plays / coins? +GAME( 2001, wyvernwg, wivernwg, wyvernwg, common, vamphalf_qdsp_state, init_wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) +GAME( 2001, wyvernwga, wivernwg, wyvernwg, common, vamphalf_qdsp_state, init_wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) -GAME( 2001, boonggab, 0, boonggab, boonggab, vamphalf_state, init_boonggab, ROT270, "Taff System", "Boong-Ga Boong-Ga (Spank'em!)", MACHINE_SUPPORTS_SAVE ) +GAME( 2001, aoh, 0, aoh, aoh, vamphalf_state, init_aoh, ROT0, "Unico", "Age Of Heroes - Silkroad 2 (v0.63 - 2001/02/07)", MACHINE_SUPPORTS_SAVE ) -GAME( 2002, yorijori, 0, yorijori, yorijori, vamphalf_qdsp_state, init_yorijori, ROT0, "Golden Bell Entertainment", "Yori Jori Kuk Kuk", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // ROM patch needed to boot +GAME( 2001, boonggab, 0, boonggab, boonggab, vamphalf_state, init_boonggab, ROT270, "Taff System", "Boong-Ga Boong-Ga (Spank'em!)", MACHINE_SUPPORTS_SAVE ) + +GAME( 2002, yorijori, 0, yorijori, yorijori, vamphalf_qdsp_state, init_yorijori, ROT0, "Golden Bell Entertainment", "Yori Jori Kuk Kuk", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // ROM patch needed to boot