mirror of
https://github.com/holub/mame
synced 2025-04-24 09:20:02 +03:00
commit
f86f1fbda9
@ -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 )
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user