From 8f003e95eb87a3a9b153ae02bff7e0f3d1c80cf1 Mon Sep 17 00:00:00 2001 From: DavidHaywood <28625134+DavidHaywood@users.noreply.github.com> Date: Wed, 23 May 2018 17:57:00 +0100 Subject: new WORKING machine World Adventure [ArcadeHacker, The Dumping Union] (and first pass dedeprecation / splitting class up) --- src/mame/drivers/vamphalf.cpp | 556 ++++++++++++++++++++++++++++-------------- src/mame/mame.lst | 1 + 2 files changed, 373 insertions(+), 184 deletions(-) diff --git a/src/mame/drivers/vamphalf.cpp b/src/mame/drivers/vamphalf.cpp index ccb7b9c6ea6..974c5dd6a1f 100644 --- a/src/mame/drivers/vamphalf.cpp +++ b/src/mame/drivers/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 + 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) Super Lup Lup Puzzle (c) 1999 Omega System (version 4.0) @@ -49,8 +50,6 @@ Undumped Semicom games on similar hardware: Red Wyvern - A semi-sequel or update? Choice III: Joker's Dream (c) 2001 (likely SEMICOM-003 hardware) - Undumped F2 System games on F-E1-16-002 hardware: - World Adventure TODO: - boonggab: simulate photo sensors with a "stroke strength" @@ -78,67 +77,113 @@ public: vamphalf_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_maincpu(*this, "maincpu") - , m_eeprom(*this, "eeprom") - , m_gfxdecode(*this, "gfxdecode") + , m_wram(*this,"wram") + , m_wram32(*this,"wram32") + , m_okibank(*this,"okibank") , m_palette(*this, "palette") , m_soundlatch(*this, "soundlatch") + , m_eeprom(*this, "eeprom") + , m_gfxdecode(*this, "gfxdecode") , m_tiles(*this,"tiles") - , m_wram(*this,"wram") , m_tiles32(*this,"tiles32") - , m_wram32(*this,"wram32") , m_okiregion(*this, "oki%u", 1) - , m_okibank(*this,"okibank") , m_photosensors(*this, "PHOTO_SENSORS") + , m_has_extra_gfx(0) { - m_has_extra_gfx = 0; } + void common(machine_config &config); + void sound_ym_oki(machine_config &config); + void sound_ym_banked_oki(machine_config &config); + void sound_suplup(machine_config &config); + void sound_qs1000(machine_config &config); + void mrdig(machine_config &config); + void suplup(machine_config &config); + void vamphalf(machine_config &config); + void boonggab(machine_config &config); + void jmpbreak(machine_config &config); + void newxpang(machine_config &config); + void worldadv(machine_config &config); + void aoh(machine_config &config); + void coolmini(machine_config &config); + void mrkicker(machine_config &config); + + void init_vamphalf(); + void init_vamphalfr1(); + void init_vamphafk(); + void init_coolmini(); + void init_coolminii(); + void init_mrdig(); + void init_jmpbreak(); + void init_poosho(); + void init_newxpang(); + void init_worldadv(); + void init_dtfamily(); + void init_dquizgo2(); + void init_suplup(); + void init_luplup(); + void init_luplup29(); + void init_luplup10(); + void init_puzlbang(); + void init_toyland(); + void init_aoh(); + void init_boonggab(); + void init_mrkicker(); + + DECLARE_CUSTOM_INPUT_MEMBER(boonggab_photo_sensors_r); + + DECLARE_READ16_MEMBER(eeprom_r); + DECLARE_READ32_MEMBER(eeprom32_r); + DECLARE_WRITE16_MEMBER(eeprom_w); + DECLARE_WRITE32_MEMBER(eeprom32_w); + DECLARE_WRITE16_MEMBER(flipscreen_w); + DECLARE_WRITE32_MEMBER(flipscreen32_w); + + void banked_oki(int chip); + + void common_map(address_map &map); + void common_32bit_map(address_map &map); + +protected: + int m_flip_bit; + int m_palshift; + required_device m_maincpu; - required_device m_eeprom; - required_device m_gfxdecode; + optional_shared_ptr m_wram; + optional_shared_ptr m_wram32; + + uint16_t m_semicom_prot_data[2]; + int m_semicom_prot_idx; + int m_semicom_prot_which; + + int irq_active(); + + optional_memory_bank m_okibank; required_device m_palette; optional_device m_soundlatch; + required_device m_eeprom; + +private: + required_device m_gfxdecode; optional_shared_ptr m_tiles; - optional_shared_ptr m_wram; optional_shared_ptr m_tiles32; - optional_shared_ptr m_wram32; optional_memory_region_array<2> m_okiregion; - optional_memory_bank m_okibank; optional_ioport m_photosensors; // driver init configuration - int m_flip_bit; - int m_palshift; int m_has_extra_gfx; - uint16_t m_semicom_prot_data[2]; - int m_flipscreen; - int m_semicom_prot_idx; - int m_semicom_prot_which; - uint16_t m_finalgdr_backupram_bank; - std::unique_ptr m_finalgdr_backupram; - DECLARE_WRITE16_MEMBER(flipscreen_w); - DECLARE_WRITE32_MEMBER(flipscreen32_w); DECLARE_WRITE16_MEMBER(jmpbreak_flipscreen_w); - DECLARE_READ32_MEMBER(wyvernwg_prot_r); - DECLARE_WRITE32_MEMBER(wyvernwg_prot_w); - DECLARE_READ32_MEMBER(finalgdr_prot_r); - DECLARE_WRITE32_MEMBER(finalgdr_prot_w); - DECLARE_WRITE32_MEMBER(finalgdr_prize_w); DECLARE_WRITE16_MEMBER(boonggab_prize_w); DECLARE_WRITE16_MEMBER(boonggab_lamps_w); - DECLARE_CUSTOM_INPUT_MEMBER(boonggab_photo_sensors_r); - int irq_active(); DECLARE_READ16_MEMBER(vamphalf_speedup_r); DECLARE_READ16_MEMBER(vamphalfr1_speedup_r); DECLARE_READ16_MEMBER(vamphafk_speedup_r); - DECLARE_READ16_MEMBER(misncrft_speedup_r); - DECLARE_READ16_MEMBER(misncrfta_speedup_r); DECLARE_READ16_MEMBER(coolmini_speedup_r); DECLARE_READ16_MEMBER(coolminii_speedup_r); DECLARE_READ16_MEMBER(suplup_speedup_r); @@ -147,107 +192,116 @@ public: DECLARE_READ16_MEMBER(luplup10_speedup_r); DECLARE_READ16_MEMBER(puzlbang_speedup_r); DECLARE_READ16_MEMBER(puzlbanga_speedup_r); - DECLARE_READ32_MEMBER(wivernwg_speedup_r); - DECLARE_READ32_MEMBER(wyvernwg_speedup_r); - DECLARE_READ32_MEMBER(wyvernwga_speedup_r); - DECLARE_READ32_MEMBER(finalgdr_speedup_r); - DECLARE_READ32_MEMBER(mrkickera_speedup_r); DECLARE_READ16_MEMBER(mrkicker_speedup_r); DECLARE_READ16_MEMBER(dquizgo2_speedup_r); DECLARE_READ32_MEMBER(aoh_speedup_r); DECLARE_READ16_MEMBER(jmpbreak_speedup_r); DECLARE_READ16_MEMBER(poosho_speedup_r); DECLARE_READ16_MEMBER(newxpang_speedup_r); + DECLARE_READ16_MEMBER(worldadv_speedup_r); DECLARE_READ16_MEMBER(mrdig_speedup_r); DECLARE_READ16_MEMBER(dtfamily_speedup_r); DECLARE_READ16_MEMBER(toyland_speedup_r); DECLARE_READ16_MEMBER(boonggab_speedup_r); - DECLARE_READ16_MEMBER(eeprom_r); - DECLARE_READ32_MEMBER(eeprom32_r); - DECLARE_WRITE16_MEMBER(eeprom_w); - DECLARE_WRITE32_MEMBER(eeprom32_w); - DECLARE_WRITE32_MEMBER(finalgdr_eeprom_w); - DECLARE_WRITE32_MEMBER(finalgdr_backupram_bank_w); - DECLARE_READ32_MEMBER(finalgdr_backupram_r); - DECLARE_WRITE32_MEMBER(finalgdr_backupram_w); - - DECLARE_WRITE32_MEMBER(finalgdr_oki_bank_w); DECLARE_WRITE32_MEMBER(aoh_oki_bank_w); DECLARE_WRITE16_MEMBER(boonggab_oki_bank_w); DECLARE_WRITE16_MEMBER(mrkicker_oki_bank_w); DECLARE_WRITE8_MEMBER(qs1000_p3_w); virtual void video_start() override; - void init_vamphalf(); - void init_vamphalfr1(); - void init_vamphafk(); - void init_coolmini(); - void init_coolminii(); - void init_mrkickera(); - void init_mrdig(); - void init_jmpbreak(); - void init_poosho(); - void init_newxpang(); - void init_dtfamily(); - void init_dquizgo2(); - void init_suplup(); - void init_luplup(); - void init_luplup29(); - void init_luplup10(); - void init_puzlbang(); - void init_toyland(); - void init_aoh(); - void init_finalgdr(); - void init_misncrft(); - void init_boonggab(); - void init_wyvernwg(); - void init_yorijori(); - void init_mrkicker(); uint32_t screen_update_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); uint32_t screen_update_aoh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap); void draw_sprites_aoh(screen_device &screen, bitmap_ind16 &bitmap); void handle_flipped_visible_area(screen_device &screen); - void banked_oki(int chip); - void common(machine_config &config); - void sound_ym_oki(machine_config &config); - void sound_ym_banked_oki(machine_config &config); - void sound_suplup(machine_config &config); - void sound_qs1000(machine_config &config); - void mrkickera(machine_config &config); - void mrdig(machine_config &config); - void misncrft(machine_config &config); - void suplup(machine_config &config); - void vamphalf(machine_config &config); - void yorijori(machine_config &config); - void finalgdr(machine_config &config); - void wyvernwg(machine_config &config); - void boonggab(machine_config &config); - void jmpbreak(machine_config &config); - void newxpang(machine_config &config); - void aoh(machine_config &config); - void coolmini(machine_config &config); - void mrkicker(machine_config &config); void aoh_io(address_map &map); void aoh_map(address_map &map); void banked_oki_map(address_map &map); void boonggab_io(address_map &map); - void common_32bit_map(address_map &map); - void common_map(address_map &map); void coolmini_io(address_map &map); - void finalgdr_io(address_map &map); void jmpbreak_io(address_map &map); - void misncrft_io(address_map &map); + void worldadv_io(address_map &map); void mrdig_io(address_map &map); void mrkicker_io(address_map &map); - void mrkickera_io(address_map &map); void suplup_io(address_map &map); void vamphalf_io(address_map &map); - void wyvernwg_io(address_map &map); +}; + +class vamphalf_qdsp_state : public vamphalf_state +{ +public: + vamphalf_qdsp_state(const machine_config &mconfig, device_type type, const char *tag) + : vamphalf_state(mconfig, type, tag) + , m_qdsp_cpu(*this, "qs1000:cpu") + { + } + + void misncrft(machine_config &config); + void yorijori(machine_config &config); + void wyvernwg(machine_config &config); + + void init_misncrft(); + void init_yorijori(); + void init_wyvernwg(); + +private: + required_device m_qdsp_cpu; + + DECLARE_READ16_MEMBER(misncrft_speedup_r); + DECLARE_READ16_MEMBER(misncrfta_speedup_r); + DECLARE_READ32_MEMBER(wivernwg_speedup_r); + DECLARE_READ32_MEMBER(wyvernwg_speedup_r); + DECLARE_READ32_MEMBER(wyvernwga_speedup_r); + + DECLARE_READ32_MEMBER(wyvernwg_prot_r); + DECLARE_WRITE32_MEMBER(wyvernwg_prot_w); + void yorijori_32bit_map(address_map &map); void yorijori_io(address_map &map); + void misncrft_io(address_map &map); + void wyvernwg_io(address_map &map); +}; + +class vamphalf_nvram_state : public vamphalf_state +{ +public: + vamphalf_nvram_state(const machine_config &mconfig, device_type type, const char *tag) + : vamphalf_state(mconfig, type, tag) + , m_nvram(*this, "nvram") + { + } + + void finalgdr(machine_config &config); + void mrkickera(machine_config &config); + + void init_mrkickera(); + void init_finalgdr(); + +private: + + void finalgdr_io(address_map &map); + void mrkickera_io(address_map &map); + + required_device m_nvram; + + uint16_t m_finalgdr_backupram_bank; + std::unique_ptr m_finalgdr_backupram; + DECLARE_WRITE32_MEMBER(finalgdr_backupram_bank_w); + DECLARE_READ32_MEMBER(finalgdr_backupram_r); + DECLARE_WRITE32_MEMBER(finalgdr_backupram_w); + + DECLARE_READ32_MEMBER(finalgdr_prot_r); + DECLARE_WRITE32_MEMBER(finalgdr_prot_w); + + DECLARE_READ32_MEMBER(finalgdr_speedup_r); + DECLARE_READ32_MEMBER(mrkickera_speedup_r); + + DECLARE_WRITE32_MEMBER(finalgdr_prize_w); + DECLARE_WRITE32_MEMBER(finalgdr_oki_bank_w); + + DECLARE_WRITE32_MEMBER(finalgdr_eeprom_w); }; READ16_MEMBER(vamphalf_state::eeprom_r) @@ -284,7 +338,7 @@ WRITE32_MEMBER(vamphalf_state::eeprom32_w) m_eeprom->clk_write((data & 0x02) ? ASSERT_LINE : CLEAR_LINE ); } -WRITE32_MEMBER(vamphalf_state::finalgdr_eeprom_w) +WRITE32_MEMBER(vamphalf_nvram_state::finalgdr_eeprom_w) { m_eeprom->di_write((data & 0x4000) >> 14); m_eeprom->cs_write((data & 0x1000) ? ASSERT_LINE : CLEAR_LINE ); @@ -311,25 +365,25 @@ WRITE16_MEMBER(vamphalf_state::jmpbreak_flipscreen_w) -READ32_MEMBER(vamphalf_state::wyvernwg_prot_r) +READ32_MEMBER(vamphalf_qdsp_state::wyvernwg_prot_r) { m_semicom_prot_idx--; return (m_semicom_prot_data[m_semicom_prot_which] & (1 << m_semicom_prot_idx)) >> m_semicom_prot_idx; } -WRITE32_MEMBER(vamphalf_state::wyvernwg_prot_w) +WRITE32_MEMBER(vamphalf_qdsp_state::wyvernwg_prot_w) { m_semicom_prot_which = data & 1; m_semicom_prot_idx = 8; } -READ32_MEMBER(vamphalf_state::finalgdr_prot_r) +READ32_MEMBER(vamphalf_nvram_state::finalgdr_prot_r) { m_semicom_prot_idx--; return (m_semicom_prot_data[m_semicom_prot_which] & (1 << m_semicom_prot_idx)) ? 0x8000 : 0; } -WRITE32_MEMBER(vamphalf_state::finalgdr_prot_w) +WRITE32_MEMBER(vamphalf_nvram_state::finalgdr_prot_w) { /* 41C6 @@ -345,27 +399,27 @@ F94B m_semicom_prot_idx = 8; } -WRITE32_MEMBER(vamphalf_state::finalgdr_oki_bank_w) +WRITE32_MEMBER(vamphalf_nvram_state::finalgdr_oki_bank_w) { m_okibank->set_entry((data & 0x300) >> 8); } -WRITE32_MEMBER(vamphalf_state::finalgdr_backupram_bank_w) +WRITE32_MEMBER(vamphalf_nvram_state::finalgdr_backupram_bank_w) { m_finalgdr_backupram_bank = (data & 0xff000000) >> 24; } -READ32_MEMBER(vamphalf_state::finalgdr_backupram_r) +READ32_MEMBER(vamphalf_nvram_state::finalgdr_backupram_r) { return m_finalgdr_backupram[offset + m_finalgdr_backupram_bank * 0x80] << 24; } -WRITE32_MEMBER(vamphalf_state::finalgdr_backupram_w) +WRITE32_MEMBER(vamphalf_nvram_state::finalgdr_backupram_w) { m_finalgdr_backupram[offset + m_finalgdr_backupram_bank * 0x80] = data >> 24; } -WRITE32_MEMBER(vamphalf_state::finalgdr_prize_w) +WRITE32_MEMBER(vamphalf_nvram_state::finalgdr_prize_w) { if(data & 0x1000000) { @@ -464,7 +518,7 @@ void vamphalf_state::common_32bit_map(address_map &map) map(0xfff00000, 0xffffffff).rom().region("maincpu", 0); } -void vamphalf_state::yorijori_32bit_map(address_map &map) +void vamphalf_qdsp_state::yorijori_32bit_map(address_map &map) { map(0x00000000, 0x001fffff).ram().share("wram32"); map(0x40000000, 0x4003ffff).ram().share("tiles32"); @@ -485,7 +539,7 @@ void vamphalf_state::vamphalf_io(address_map &map) map(0x608, 0x60b).w(this, FUNC(vamphalf_state::eeprom_w)); } -void vamphalf_state::misncrft_io(address_map &map) +void vamphalf_qdsp_state::misncrft_io(address_map &map) { map(0x100, 0x103).w(this, FUNC(vamphalf_state::flipscreen_w)); map(0x200, 0x203).portr("P1_P2"); @@ -526,9 +580,9 @@ void vamphalf_state::suplup_io(address_map &map) map(0x100, 0x103).r(this, FUNC(vamphalf_state::eeprom_r)); } -void vamphalf_state::wyvernwg_io(address_map &map) +void vamphalf_qdsp_state::wyvernwg_io(address_map &map) { - map(0x1800, 0x1803).rw(this, FUNC(vamphalf_state::wyvernwg_prot_r), FUNC(vamphalf_state::wyvernwg_prot_w)); + map(0x1800, 0x1803).rw(this, FUNC(vamphalf_qdsp_state::wyvernwg_prot_r), FUNC(vamphalf_qdsp_state::wyvernwg_prot_w)); map(0x2000, 0x2003).w(this, FUNC(vamphalf_state::flipscreen32_w)); map(0x2800, 0x2803).portr("P1_P2"); map(0x3000, 0x3003).portr("SYSTEM"); @@ -537,33 +591,33 @@ void vamphalf_state::wyvernwg_io(address_map &map) map(0x7c00, 0x7c03).r(this, FUNC(vamphalf_state::eeprom32_r)); } -void vamphalf_state::finalgdr_io(address_map &map) +void vamphalf_nvram_state::finalgdr_io(address_map &map) { - map(0x2400, 0x2403).r(this, FUNC(vamphalf_state::finalgdr_prot_r)); - map(0x2800, 0x2803).w(this, FUNC(vamphalf_state::finalgdr_backupram_bank_w)); - map(0x2c00, 0x2dff).rw(this, FUNC(vamphalf_state::finalgdr_backupram_r), FUNC(vamphalf_state::finalgdr_backupram_w)); + map(0x2400, 0x2403).r(this, FUNC(vamphalf_nvram_state::finalgdr_prot_r)); + map(0x2800, 0x2803).w(this, FUNC(vamphalf_nvram_state::finalgdr_backupram_bank_w)); + map(0x2c00, 0x2dff).rw(this, FUNC(vamphalf_nvram_state::finalgdr_backupram_r), FUNC(vamphalf_nvram_state::finalgdr_backupram_w)); map(0x3000, 0x3007).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)).umask32(0x0000ff00); map(0x3800, 0x3803).portr("P1_P2"); map(0x3402, 0x3402).rw("oki1", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x3c00, 0x3c03).portr("SYSTEM"); map(0x4400, 0x4403).r(this, FUNC(vamphalf_state::eeprom32_r)); map(0x6000, 0x6003).nopr(); //? - map(0x6000, 0x6003).w(this, FUNC(vamphalf_state::finalgdr_eeprom_w)); - map(0x6040, 0x6043).w(this, FUNC(vamphalf_state::finalgdr_prot_w)); + map(0x6000, 0x6003).w(this, FUNC(vamphalf_nvram_state::finalgdr_eeprom_w)); + map(0x6040, 0x6043).w(this, FUNC(vamphalf_nvram_state::finalgdr_prot_w)); //AM_RANGE(0x6080, 0x6083) AM_WRITE(flipscreen32_w) //? - map(0x6060, 0x6063).w(this, FUNC(vamphalf_state::finalgdr_prize_w)); - map(0x60a0, 0x60a3).w(this, FUNC(vamphalf_state::finalgdr_oki_bank_w)); + map(0x6060, 0x6063).w(this, FUNC(vamphalf_nvram_state::finalgdr_prize_w)); + map(0x60a0, 0x60a3).w(this, FUNC(vamphalf_nvram_state::finalgdr_oki_bank_w)); } -void vamphalf_state::mrkickera_io(address_map &map) +void vamphalf_nvram_state::mrkickera_io(address_map &map) { map(0x2400, 0x2403).r(this, FUNC(vamphalf_state::eeprom32_r)); map(0x4000, 0x4003).nopr(); //? - map(0x4000, 0x4003).w(this, FUNC(vamphalf_state::finalgdr_eeprom_w)); - map(0x4040, 0x4043).w(this, FUNC(vamphalf_state::finalgdr_prot_w)); + map(0x4000, 0x4003).w(this, FUNC(vamphalf_nvram_state::finalgdr_eeprom_w)); + map(0x4040, 0x4043).w(this, FUNC(vamphalf_nvram_state::finalgdr_prot_w)); map(0x4084, 0x4087).nopw(); //? - map(0x40a0, 0x40a3).w(this, FUNC(vamphalf_state::finalgdr_oki_bank_w)); - map(0x6400, 0x6403).r(this, FUNC(vamphalf_state::finalgdr_prot_r)); + map(0x40a0, 0x40a3).w(this, FUNC(vamphalf_nvram_state::finalgdr_oki_bank_w)); + map(0x6400, 0x6403).r(this, FUNC(vamphalf_nvram_state::finalgdr_prot_r)); map(0x7000, 0x7007).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)).umask32(0x0000ff00); map(0x7402, 0x7402).rw("oki1", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); map(0x7800, 0x7803).portr("P1_P2"); @@ -584,6 +638,18 @@ void vamphalf_state::jmpbreak_io(address_map &map) map(0x684, 0x687).rw("ymsnd", FUNC(ym2151_device::status_r), FUNC(ym2151_device::data_w)).umask16(0x00ff); } +void vamphalf_state::worldadv_io(address_map &map) +{ + map(0x180, 0x183).w(this, FUNC(vamphalf_state::eeprom_w)); + map(0x780, 0x783).r(this, FUNC(vamphalf_state::eeprom_r)); + map(0x640, 0x641).noprw(); // return 0, when oki chip is read / written + map(0x643, 0x643).rw("oki1", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); + map(0x280, 0x283).portr("P1_P2"); + map(0x340, 0x343).portr("SYSTEM"); + map(0x700, 0x703).w("ymsnd", FUNC(ym2151_device::register_w)).umask16(0x00ff); + map(0x704, 0x707).rw("ymsnd", FUNC(ym2151_device::status_r), FUNC(ym2151_device::data_w)).umask16(0x00ff); +} + void vamphalf_state::mrdig_io(address_map &map) { map(0x500, 0x503).portr("P1_P2"); @@ -632,7 +698,7 @@ void vamphalf_state::boonggab_io(address_map &map) map(0x747, 0x747).rw("ymsnd", FUNC(ym2151_device::status_r), FUNC(ym2151_device::data_w)); } -void vamphalf_state::yorijori_io(address_map &map) +void vamphalf_qdsp_state::yorijori_io(address_map &map) { } @@ -1120,7 +1186,7 @@ MACHINE_CONFIG_START(vamphalf_state::vamphalf) sound_ym_oki(config); MACHINE_CONFIG_END -MACHINE_CONFIG_START(vamphalf_state::misncrft) +MACHINE_CONFIG_START(vamphalf_qdsp_state::misncrft) common(config); MCFG_DEVICE_REPLACE("maincpu", GMS30C2116, XTAL(50'000'000)) /* 50 MHz */ MCFG_DEVICE_PROGRAM_MAP(common_map) @@ -1171,6 +1237,15 @@ MACHINE_CONFIG_START(vamphalf_state::newxpang) sound_ym_oki(config); MACHINE_CONFIG_END +MACHINE_CONFIG_START(vamphalf_state::worldadv) + common(config); + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_IO_MAP(worldadv_io) + MCFG_DEVICE_VBLANK_INT_DRIVER("screen", vamphalf_state, irq1_line_hold) + + sound_ym_oki(config); +MACHINE_CONFIG_END + MACHINE_CONFIG_START(vamphalf_state::mrdig) common(config); MCFG_DEVICE_REPLACE("maincpu", GMS30C2116, XTAL(50'000'000)) /* 50 MHz */ @@ -1182,7 +1257,7 @@ MACHINE_CONFIG_START(vamphalf_state::mrdig) sound_ym_oki(config); MACHINE_CONFIG_END -MACHINE_CONFIG_START(vamphalf_state::wyvernwg) +MACHINE_CONFIG_START(vamphalf_qdsp_state::wyvernwg) common(config); MCFG_DEVICE_REPLACE("maincpu", E132T, XTAL(50'000'000)) /* 50 MHz */ MCFG_DEVICE_PROGRAM_MAP(common_32bit_map) @@ -1192,7 +1267,7 @@ MACHINE_CONFIG_START(vamphalf_state::wyvernwg) sound_qs1000(config); MACHINE_CONFIG_END -MACHINE_CONFIG_START(vamphalf_state::finalgdr) +MACHINE_CONFIG_START(vamphalf_nvram_state::finalgdr) common(config); MCFG_DEVICE_REPLACE("maincpu", E132T, XTAL(50'000'000)) /* 50 MHz */ MCFG_DEVICE_PROGRAM_MAP(common_32bit_map) @@ -1204,7 +1279,7 @@ MACHINE_CONFIG_START(vamphalf_state::finalgdr) sound_ym_banked_oki(config); MACHINE_CONFIG_END -MACHINE_CONFIG_START(vamphalf_state::mrkickera) +MACHINE_CONFIG_START(vamphalf_nvram_state::mrkickera) common(config); MCFG_DEVICE_REPLACE("maincpu", E132T, XTAL(50'000'000)) /* 50 MHz */ MCFG_DEVICE_PROGRAM_MAP(common_32bit_map) @@ -1265,7 +1340,7 @@ MACHINE_CONFIG_START(vamphalf_state::boonggab) sound_ym_banked_oki(config); MACHINE_CONFIG_END -MACHINE_CONFIG_START(vamphalf_state::yorijori) +MACHINE_CONFIG_START(vamphalf_qdsp_state::yorijori) common(config); MCFG_DEVICE_REPLACE("maincpu", E132T, XTAL(50'000'000)) /* 50 MHz */ MCFG_DEVICE_PROGRAM_MAP(yorijori_32bit_map) @@ -1701,6 +1776,77 @@ ROM_END /* +World Adventure +F2 System, 1999 + +F-E1-16-002 ++----------------------------------------------+ +| VR1 M6295 VROM1 28MHz | +| YM3012 | +| YM2151 MEM2 | +| MEM3 | +| CRAM1 MEM5 | +| CRAM2 MEM7 | +|J | +|A MEM1U +----------++----------+| +|M | || || +|M MEM1L |Quicklogic||Quicklogic|| +|A | QL2003- || QL2003- || +| | XPL84C || XPL84C || +| | || || +| +----------++----------+| +| GAL1 | +| 93C46 DRAM1 ROM1* ROML00 ROMU00| +|P1 P2 50MHz E1-16T ROM2 ROML01 ROMU01| +| | ++----------------------------------------------+ + +Notes: +CPU: Hyperstone E1-16T @ 50.000MHz + + DRAM1 - LG Semi GM71C18163 1M x16 EDO DRAM (SOJ44) +MEMx/CRAMx - NKK N341256SJ-15 32K x8 SRAM (SOJ28) + GAL1 - PALCE22V10H + +Oki M6295 rebaged as AD-65 +YM3012/YM2151 + + P1 - Setup push button + P2 - Reset push button +VR1 - Volume adjust pot + +ROMs: + ROML00/01, ROMU00/01 - Macronix MX29F1610MC-12 SOP44 16MBit FlashROM + VROM1 - TMS 27C020 2MBit DIP32 EPROM + ROM1 - ST M27C4001 4MBit DIP32 EPROM + ROM2 - ST M27C4001 4MBit DIP32 EPROM + +Measured Clocks: + E1-16T @ 50MHz + YM2151 @ 3.5MHz (28MHz/8) + M6295 @ 1.75MH (28MHz/16), Pin7 High + H-Sync @ 15.625KHz + V-Sync @ 59.189Hz + +*/ + +ROM_START( worldadv ) /* Developed April 1999 */ + ROM_REGION16_BE( 0x100000, "maincpu", ROMREGION_ERASE00 ) /* Hyperstone CPU Code */ + ROM_LOAD( "rom1.bin", 0x00000, 0x80000, CRC(1855c235) SHA1(b4f7488365474248be8473c61bd2545e59132e44) ) + ROM_LOAD( "rom2.bin", 0x80000, 0x80000, CRC(671ddbb0) SHA1(07f856ae33105440e08e4ae353952db4df65ad9f) ) + + ROM_REGION( 0x800000, "gfx", 0 ) /* 16x16x8 Sprites */ + ROM_LOAD32_WORD( "roml00.bin", 0x000000, 0x200000, CRC(fe422890) SHA1(98c52f924345718a3b86d49b42b8c6fbba596da7) ) + ROM_LOAD32_WORD( "romu00.bin", 0x000002, 0x200000, CRC(dd1066f5) SHA1(bf10217404eebbddc8bc639e86ca77f935e0b148) ) + ROM_LOAD32_WORD( "roml01.bin", 0x400000, 0x200000, CRC(9ab76649) SHA1(ba4ae12638e1b25e77e7b7d20e6518bf9ce6bd1b) ) + ROM_LOAD32_WORD( "romu01.bin", 0x400002, 0x200000, CRC(62132228) SHA1(7588fa90424ce4e557d1f43d3944cb89e007d63b) ) + + ROM_REGION( 0x40000, "oki1", 0 ) /* Oki Samples */ + ROM_LOAD( "vrom1.bin", 0x00000, 0x40000, CRC(c87cce3b) SHA1(0b189fee8fb87c8fb06a67ae9d901732b89fbf38) ) +ROM_END + +/* + Mr. Dig SUN, 2000 @@ -2748,7 +2894,7 @@ READ16_MEMBER(vamphalf_state::vamphafk_speedup_r) return m_wram[0x4a648 / 2]; } -READ16_MEMBER(vamphalf_state::misncrft_speedup_r) +READ16_MEMBER(vamphalf_qdsp_state::misncrft_speedup_r) { if (m_maincpu->pc() == 0xff5a) { @@ -2761,7 +2907,7 @@ READ16_MEMBER(vamphalf_state::misncrft_speedup_r) return m_wram[0x741e8 / 2]; } -READ16_MEMBER(vamphalf_state::misncrfta_speedup_r) +READ16_MEMBER(vamphalf_qdsp_state::misncrfta_speedup_r) { if (m_maincpu->pc() == 0xecd6) { @@ -2878,7 +3024,7 @@ READ16_MEMBER(vamphalf_state::puzlbanga_speedup_r) return m_wram[0x113ecc / 2]; } -READ32_MEMBER(vamphalf_state::wivernwg_speedup_r) +READ32_MEMBER(vamphalf_qdsp_state::wivernwg_speedup_r) { if (m_maincpu->pc() == 0x10766) { @@ -2891,7 +3037,7 @@ READ32_MEMBER(vamphalf_state::wivernwg_speedup_r) return m_wram32[0xb4cc4 / 4]; } -READ32_MEMBER(vamphalf_state::wyvernwg_speedup_r) +READ32_MEMBER(vamphalf_qdsp_state::wyvernwg_speedup_r) { if (m_maincpu->pc() == 0x10766) { @@ -2904,7 +3050,7 @@ READ32_MEMBER(vamphalf_state::wyvernwg_speedup_r) return m_wram32[0xb56f4 / 4]; } -READ32_MEMBER(vamphalf_state::wyvernwga_speedup_r) +READ32_MEMBER(vamphalf_qdsp_state::wyvernwga_speedup_r) { if (m_maincpu->pc() == 0x10766) { @@ -2917,7 +3063,7 @@ READ32_MEMBER(vamphalf_state::wyvernwga_speedup_r) return m_wram32[0xb74f0 / 4]; } -READ32_MEMBER(vamphalf_state::finalgdr_speedup_r) +READ32_MEMBER(vamphalf_nvram_state::finalgdr_speedup_r) { if (m_maincpu->pc() == 0x1c20c) { @@ -2930,7 +3076,7 @@ READ32_MEMBER(vamphalf_state::finalgdr_speedup_r) return m_wram32[0x5e870 / 4]; } -READ32_MEMBER(vamphalf_state::mrkickera_speedup_r) +READ32_MEMBER(vamphalf_nvram_state::mrkickera_speedup_r) { if (m_maincpu->pc() == 0x46a30) { @@ -3018,6 +3164,19 @@ READ16_MEMBER(vamphalf_state::newxpang_speedup_r) return m_wram[0x61218 / 2]; } +READ16_MEMBER(vamphalf_state::worldadv_speedup_r) +{ + if (m_maincpu->pc() == 0x93ae) + { + if (irq_active()) + m_maincpu->spin_until_interrupt(); + else + m_maincpu->eat_cycles(50); + } + + return m_wram[0xc5e78 / 2]; +} + READ16_MEMBER(vamphalf_state::mrdig_speedup_r) { if (m_maincpu->pc() == 0xae38) @@ -3094,15 +3253,15 @@ void vamphalf_state::init_vamphafk() m_flip_bit = 0x80; } -void vamphalf_state::init_misncrft() +void vamphalf_qdsp_state::init_misncrft() { - m_maincpu->space(AS_PROGRAM).install_read_handler(0x000741e8, 0x000741e9, read16_delegate(FUNC(vamphalf_state::misncrft_speedup_r), this)); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x00072e2c, 0x00072e2d, read16_delegate(FUNC(vamphalf_state::misncrfta_speedup_r), this)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x000741e8, 0x000741e9, read16_delegate(FUNC(vamphalf_qdsp_state::misncrft_speedup_r), this)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x00072e2c, 0x00072e2d, read16_delegate(FUNC(vamphalf_qdsp_state::misncrfta_speedup_r), this)); m_palshift = 0; m_flip_bit = 1; // Configure the QS1000 ROM banking. Care must be taken not to overlap the 256b internal RAM - machine().device("qs1000:cpu")->memory().space(AS_IO).install_read_bank(0x0100, 0xffff, "data"); + m_qdsp_cpu->space(AS_IO).install_read_bank(0x0100, 0xffff, "data"); membank("qs1000:data")->configure_entries(0, 16, memregion("qs1000:cpu")->base()+0x100, 0x8000-0x100); } @@ -3172,11 +3331,11 @@ void vamphalf_state::init_puzlbang() /* no flipscreen */ } -void vamphalf_state::init_wyvernwg() +void vamphalf_qdsp_state::init_wyvernwg() { - m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b4cc4, 0x00b4cc7, read32_delegate(FUNC(vamphalf_state::wivernwg_speedup_r), this)); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b56f4, 0x00b56f7, read32_delegate(FUNC(vamphalf_state::wyvernwg_speedup_r), this)); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b74f0, 0x00b74f3, read32_delegate(FUNC(vamphalf_state::wyvernwga_speedup_r), this)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b4cc4, 0x00b4cc7, read32_delegate(FUNC(vamphalf_qdsp_state::wivernwg_speedup_r), this)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b56f4, 0x00b56f7, read32_delegate(FUNC(vamphalf_qdsp_state::wyvernwg_speedup_r), this)); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b74f0, 0x00b74f3, read32_delegate(FUNC(vamphalf_qdsp_state::wyvernwga_speedup_r), this)); m_palshift = 0; m_flip_bit = 1; @@ -3185,14 +3344,14 @@ void vamphalf_state::init_wyvernwg() m_semicom_prot_data[1] = 1; // Configure the QS1000 ROM banking. Care must be taken not to overlap the 256b internal RAM - machine().device("qs1000:cpu")->memory().space(AS_IO).install_read_bank(0x0100, 0xffff, "data"); + m_qdsp_cpu->space(AS_IO).install_read_bank(0x0100, 0xffff, "data"); membank("qs1000:data")->configure_entries(0, 16, memregion("qs1000:cpu")->base()+0x100, 0x8000-0x100); save_item(NAME(m_semicom_prot_idx)); save_item(NAME(m_semicom_prot_which)); } -void vamphalf_state::init_yorijori() +void vamphalf_qdsp_state::init_yorijori() { // seems close to Final Godori in terms of port mappings, possibly a SemiCom game? @@ -3209,17 +3368,17 @@ void vamphalf_state::init_yorijori() // romx[BYTE4_XOR_BE(0x8ff1)] = 0; // Configure the QS1000 ROM banking. Care must be taken not to overlap the 256b internal RAM - machine().device("qs1000:cpu")->memory().space(AS_IO).install_read_bank(0x0100, 0xffff, "data"); + m_qdsp_cpu->space(AS_IO).install_read_bank(0x0100, 0xffff, "data"); membank("qs1000:data")->configure_entries(0, 16, memregion("qs1000:cpu")->base()+0x100, 0x8000-0x100); } -void vamphalf_state::init_finalgdr() +void vamphalf_nvram_state::init_finalgdr() { banked_oki(0); m_finalgdr_backupram_bank = 1; m_finalgdr_backupram = std::make_unique(0x80*0x100); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x005e870, 0x005e873, read32_delegate(FUNC(vamphalf_state::finalgdr_speedup_r), this)); - machine().device("nvram")->set_base(m_finalgdr_backupram.get(), 0x80*0x100); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x005e870, 0x005e873, read32_delegate(FUNC(vamphalf_nvram_state::finalgdr_speedup_r), this)); + m_nvram->set_base(m_finalgdr_backupram.get(), 0x80*0x100); m_palshift = 0; m_flip_bit = 1; //? @@ -3234,14 +3393,14 @@ void vamphalf_state::init_finalgdr() save_item(NAME(m_semicom_prot_which)); } -void vamphalf_state::init_mrkickera() +void vamphalf_nvram_state::init_mrkickera() { banked_oki(0); // backup ram isn't used m_finalgdr_backupram_bank = 1; m_finalgdr_backupram = std::make_unique(0x80*0x100); - m_maincpu->space(AS_PROGRAM).install_read_handler(0x00701a0, 0x00701a3, read32_delegate(FUNC(vamphalf_state::mrkickera_speedup_r), this)); - machine().device("nvram")->set_base(m_finalgdr_backupram.get(), 0x80*0x100); + m_maincpu->space(AS_PROGRAM).install_read_handler(0x00701a0, 0x00701a3, read32_delegate(FUNC(vamphalf_nvram_state::mrkickera_speedup_r), this)); + m_nvram->set_base(m_finalgdr_backupram.get(), 0x80*0x100); m_palshift = 0; m_flip_bit = 1; //? @@ -3321,6 +3480,17 @@ void vamphalf_state::init_newxpang() m_palshift = 0; } +void vamphalf_state::init_worldadv() +{ + m_maincpu->space(AS_PROGRAM).install_read_handler(0x0c5e78, 0x0c5e79, read16_delegate(FUNC(vamphalf_state::worldadv_speedup_r), this)); + m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16_delegate(FUNC(vamphalf_state::jmpbreak_flipscreen_w), this)); + + m_palshift = 0; +} + + + + void vamphalf_state::init_boonggab() { banked_oki(0); @@ -3331,32 +3501,50 @@ void vamphalf_state::init_boonggab() m_flip_bit = 1; } -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" , 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" , 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( 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, dquizgo2, 0, coolmini, common, vamphalf_state, init_dquizgo2, ROT0, "SemiCom", "Date Quiz Go Go Episode 2" , MACHINE_SUPPORTS_SAVE ) -GAME( 2000, misncrft, 0, misncrft, common, vamphalf_state, init_misncrft, ROT90, "Sun", "Mission Craft (version 2.7)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2000, misncrfta, misncrft, misncrft, common, vamphalf_state, init_misncrft, ROT90, "Sun", "Mission Craft (version 2.4)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2000, mrdig, 0, mrdig, common, vamphalf_state, init_mrdig, ROT0, "Sun", "Mr. Dig", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, dtfamily, 0, mrkicker, common, vamphalf_state, init_dtfamily, ROT0, "SemiCom", "Diet Family", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, finalgdr, 0, finalgdr, finalgdr, vamphalf_state, init_finalgdr, ROT0, "SemiCom", "Final Godori (Korea, version 2.20.5915)", 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_state, init_mrkickera, ROT0, "SemiCom", "Mr. Kicker (SEMICOM-003b PCB)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // if you allow eeprom saving works then this set corrupts the eeprom and then won't boot -GAME( 2001, toyland, 0, coolmini, common, vamphalf_state, init_toyland, ROT0, "SemiCom", "Toy Land Adventure", MACHINE_SUPPORTS_SAVE ) -GAME( 2001, wivernwg, 0, wyvernwg, common, vamphalf_state, init_wyvernwg, ROT270, "SemiCom", "Wivern Wings", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2001, wyvernwg, wivernwg, wyvernwg, common, vamphalf_state, init_wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) -GAME( 2001, wyvernwga, wivernwg, wyvernwg, common, vamphalf_state, init_wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 2)", MACHINE_IMPERFECT_SOUND | 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, boonggab, 0, boonggab, boonggab, vamphalf_state, init_boonggab, ROT270, "Taff System", "Boong-Ga Boong-Ga (Spank'em!)", MACHINE_SUPPORTS_SAVE ) -GAME( 199?, yorijori, 0, yorijori, common, vamphalf_state, init_yorijori, ROT0, "Golden Bell Entertainment", "Yori Jori Kuk Kuk", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | 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" , 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" , MACHINE_SUPPORTS_SAVE ) + +GAME( 1999, worldadv, 0, worldadv, common, vamphalf_state, init_worldadv, ROT0, "Logic / F2 System", "World Adventure" , 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( 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, dquizgo2, 0, coolmini, common, vamphalf_state, init_dquizgo2, ROT0, "SemiCom", "Date Quiz Go Go Episode 2" , MACHINE_SUPPORTS_SAVE ) + +GAME( 2000, misncrft, 0, misncrft, common, vamphalf_qdsp_state, init_misncrft, ROT90, "Sun", "Mission Craft (version 2.7)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2000, misncrfta, misncrft, misncrft, common, vamphalf_qdsp_state, init_misncrft, ROT90, "Sun", "Mission Craft (version 2.4)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) + +GAME( 2000, mrdig, 0, mrdig, common, vamphalf_state, init_mrdig, ROT0, "Sun", "Mr. Dig", MACHINE_SUPPORTS_SAVE ) + +GAME( 2001, dtfamily, 0, mrkicker, common, vamphalf_state, init_dtfamily, ROT0, "SemiCom", "Diet Family", 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, 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 works then this set corrupts the eeprom and then won't boot + +GAME( 2001, toyland, 0, coolmini, common, vamphalf_state, init_toyland, ROT0, "SemiCom", "Toy Land Adventure", MACHINE_SUPPORTS_SAVE ) + +GAME( 2001, wivernwg, 0, wyvernwg, common, vamphalf_qdsp_state, init_wyvernwg, ROT270, "SemiCom", "Wivern Wings", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2001, wyvernwg, wivernwg, wyvernwg, common, vamphalf_qdsp_state, init_wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 1)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) +GAME( 2001, wyvernwga, wivernwg, wyvernwg, common, vamphalf_qdsp_state, init_wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 2)", MACHINE_IMPERFECT_SOUND | 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, boonggab, 0, boonggab, boonggab, vamphalf_state, init_boonggab, ROT270, "Taff System", "Boong-Ga Boong-Ga (Spank'em!)", MACHINE_SUPPORTS_SAVE ) + +GAME( 199?, yorijori, 0, yorijori, common, vamphalf_qdsp_state, init_yorijori, ROT0, "Golden Bell Entertainment", "Yori Jori Kuk Kuk", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 2e1fc878102..39e6fda41bb 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -37795,6 +37795,7 @@ mrdig // (c) 2000 Sun mrkicker // (c) 2001 Semicom mrkickera // (c) 2001 Semicom newxpang // (c) 1999 F2 System +worldadv // (c) 1999 F2 System puzlbang // (c) 1999 Omega System puzlbanga // (c) 1999 Omega System suplup // (c) 1999 Omega System -- cgit v1.2.3