Merge pull request #3600 from DavidHaywood/210518

new WORKING machine
This commit is contained in:
R. Belmont 2018-05-23 20:26:56 -04:00 committed by GitHub
commit f86f1fbda9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 399 additions and 210 deletions

View File

@ -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,117 +77,47 @@ 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;
}
required_device<cpu_device> m_maincpu;
required_device<eeprom_serial_93cxx_device> m_eeprom;
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
optional_device<generic_latch_8_device> m_soundlatch;
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);
optional_shared_ptr<uint16_t> m_tiles;
optional_shared_ptr<uint16_t> m_wram;
optional_shared_ptr<uint32_t> m_tiles32;
optional_shared_ptr<uint32_t> 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<uint8_t[]> 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);
DECLARE_READ16_MEMBER(luplup_speedup_r);
DECLARE_READ16_MEMBER(luplup29_speedup_r);
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(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_worldadv();
void init_dtfamily();
void init_dquizgo2();
void init_suplup();
@ -198,56 +127,181 @@ public:
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();
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<cpu_device> m_maincpu;
optional_shared_ptr<uint16_t> m_wram;
optional_shared_ptr<uint32_t> 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<palette_device> m_palette;
optional_device<generic_latch_8_device> m_soundlatch;
required_device<eeprom_serial_93cxx_device> m_eeprom;
private:
required_device<gfxdecode_device> m_gfxdecode;
optional_shared_ptr<uint16_t> m_tiles;
optional_shared_ptr<uint32_t> m_tiles32;
optional_memory_region_array<2> m_okiregion;
optional_ioport m_photosensors;
// driver init configuration
int m_has_extra_gfx;
int m_flipscreen;
DECLARE_WRITE16_MEMBER(jmpbreak_flipscreen_w);
DECLARE_WRITE16_MEMBER(boonggab_prize_w);
DECLARE_WRITE16_MEMBER(boonggab_lamps_w);
DECLARE_READ16_MEMBER(vamphalf_speedup_r);
DECLARE_READ16_MEMBER(vamphalfr1_speedup_r);
DECLARE_READ16_MEMBER(vamphafk_speedup_r);
DECLARE_READ16_MEMBER(coolmini_speedup_r);
DECLARE_READ16_MEMBER(coolminii_speedup_r);
DECLARE_READ16_MEMBER(suplup_speedup_r);
DECLARE_READ16_MEMBER(luplup_speedup_r);
DECLARE_READ16_MEMBER(luplup29_speedup_r);
DECLARE_READ16_MEMBER(luplup10_speedup_r);
DECLARE_READ16_MEMBER(puzlbang_speedup_r);
DECLARE_READ16_MEMBER(puzlbanga_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_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;
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<i8052_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<nvram_device> m_nvram;
uint16_t m_finalgdr_backupram_bank;
std::unique_ptr<uint8_t[]> 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<uint8_t[]>(0x80*0x100);
m_maincpu->space(AS_PROGRAM).install_read_handler(0x005e870, 0x005e873, read32_delegate(FUNC(vamphalf_state::finalgdr_speedup_r), this));
machine().device<nvram_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<uint8_t[]>(0x80*0x100);
m_maincpu->space(AS_PROGRAM).install_read_handler(0x00701a0, 0x00701a3, read32_delegate(FUNC(vamphalf_state::mrkickera_speedup_r), this));
machine().device<nvram_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 )

View File

@ -37800,6 +37800,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