summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/misc/vamphalf.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/misc/vamphalf.cpp')
-rw-r--r--src/mame/misc/vamphalf.cpp242
1 files changed, 124 insertions, 118 deletions
diff --git a/src/mame/misc/vamphalf.cpp b/src/mame/misc/vamphalf.cpp
index 75ebfabd3de..15bc8dcf936 100644
--- a/src/mame/misc/vamphalf.cpp
+++ b/src/mame/misc/vamphalf.cpp
@@ -84,18 +84,24 @@ public:
vamphalf_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
- , m_wram(*this,"wram")
- , m_wram32(*this,"wram32")
- , m_qs1000_bank(*this, "qs1000_bank")
- , m_okibank(*this,"okibank")
, m_palette(*this, "palette")
, m_soundlatch(*this, "soundlatch")
, m_eeprom(*this, "eeprom")
+ , m_wram(*this, "wram")
+ , m_wram32(*this, "wram32")
+ , m_okibank(*this, "okibank")
+ , m_qs1000_bank(*this, "qs1000_bank")
+ , m_flip_bit(1)
+ , m_palshift(0)
+ , m_semicom_prot_data{0}
+ , m_semicom_prot_idx(0)
+ , m_semicom_prot_which(0)
, m_gfxdecode(*this, "gfxdecode")
- , m_tiles(*this,"tiles", 0x40000, ENDIANNESS_BIG)
+ , m_tiles(*this, "tiles", 0x40000, ENDIANNESS_BIG)
, m_okiregion(*this, "oki%u", 1)
, m_photosensors(*this, "PHOTO_SENSORS")
, m_has_extra_gfx(false)
+ , m_flipscreen(false)
{
}
@@ -164,29 +170,29 @@ public:
protected:
virtual void video_start() override ATTR_COLD;
- u16 m_flip_bit;
- u8 m_palshift;
-
required_device<cpu_device> m_maincpu;
+ required_device<palette_device> m_palette;
+ optional_device<generic_latch_8_device> m_soundlatch;
+ required_device<eeprom_serial_93cxx_device> m_eeprom;
+
optional_shared_ptr<u16> m_wram;
optional_shared_ptr<u32> m_wram32;
+ optional_memory_bank m_okibank;
memory_bank_creator m_qs1000_bank;
- u16 m_semicom_prot_data[2];
- int m_semicom_prot_idx;
- int m_semicom_prot_which;
-
- bool irq_active();
+ u16 m_flip_bit;
+ u8 m_palshift;
- 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;
+ u16 m_semicom_prot_data[2];
+ s32 m_semicom_prot_idx;
+ s32 m_semicom_prot_which;
- u32 finalgdr_prot_r();
+ template <u32 SetValue> u32 prot_r();
void finalgdr_prot_w(u32 data);
+ bool irq_active();
+
template <u32 Pc, u32 Wram_offs> u16 speedup_16_r();
template <u32 Pc, u32 Wram_offs> u32 speedup_32_r();
@@ -254,7 +260,6 @@ public:
private:
required_device<i8052_device> m_qdsp_cpu;
- u32 wyvernwg_prot_r();
void wyvernwg_prot_w(u32 data);
void yorijori_eeprom_w(u32 data);
@@ -271,6 +276,7 @@ public:
vamphalf_nvram_state(const machine_config &mconfig, device_type type, const char *tag)
: vamphalf_state(mconfig, type, tag)
, m_nvram(*this, "nvram")
+ , m_finalgdr_backupram_bank(0)
{
}
@@ -281,14 +287,11 @@ public:
void init_finalgdr();
private:
-
- void finalgdr_io(address_map &map) ATTR_COLD;
- void mrkickera_io(address_map &map) ATTR_COLD;
-
required_device<nvram_device> m_nvram;
- u16 m_finalgdr_backupram_bank = 0;
+ u16 m_finalgdr_backupram_bank;
std::unique_ptr<u8[]> m_finalgdr_backupram;
+
void finalgdr_backupram_bank_w(u32 data);
u32 finalgdr_backupram_r(offs_t offset);
void finalgdr_backupram_w(offs_t offset, u32 data);
@@ -297,6 +300,9 @@ private:
void finalgdr_oki_bank_w(u32 data);
void finalgdr_eeprom_w(u32 data);
+
+ void finalgdr_io(address_map &map) ATTR_COLD;
+ void mrkickera_io(address_map &map) ATTR_COLD;
};
u16 vamphalf_state::eeprom_r()
@@ -306,25 +312,25 @@ u16 vamphalf_state::eeprom_r()
void vamphalf_state::eeprom_w(u16 data)
{
- m_eeprom->di_write(data & 0x01);
- m_eeprom->cs_write((data & 0x04) ? ASSERT_LINE : CLEAR_LINE );
- m_eeprom->clk_write((data & 0x02) ? ASSERT_LINE : CLEAR_LINE );
+ m_eeprom->di_write(BIT(data, 0));
+ m_eeprom->cs_write(BIT(data, 2) ? ASSERT_LINE : CLEAR_LINE);
+ m_eeprom->clk_write(BIT(data, 1) ? ASSERT_LINE : CLEAR_LINE);
- // data & 8?
+ // BIT(data, 3)?
}
void vamphalf_nvram_state::finalgdr_eeprom_w(u32 data)
{
- m_eeprom->di_write((data & 0x4000) >> 14);
- m_eeprom->cs_write((data & 0x1000) ? ASSERT_LINE : CLEAR_LINE );
- m_eeprom->clk_write((data & 0x2000) ? ASSERT_LINE : CLEAR_LINE );
+ m_eeprom->di_write(BIT(data, 14));
+ m_eeprom->cs_write(BIT(data, 12) ? ASSERT_LINE : CLEAR_LINE);
+ m_eeprom->clk_write(BIT(data, 13) ? ASSERT_LINE : CLEAR_LINE);
}
void vamphalf_qdsp_state::yorijori_eeprom_w(u32 data)
{
- m_eeprom->di_write((data & 0x1000) >> 12);
- m_eeprom->cs_write((data & 0x4000) ? ASSERT_LINE : CLEAR_LINE );
- m_eeprom->clk_write((data & 0x2000) ? ASSERT_LINE : CLEAR_LINE );
+ m_eeprom->di_write(BIT(data, 12));
+ m_eeprom->cs_write(BIT(data, 14) ? ASSERT_LINE : CLEAR_LINE);
+ m_eeprom->clk_write(BIT(data, 13) ? ASSERT_LINE : CLEAR_LINE);
}
void vamphalf_state::flipscreen_w(u16 data)
@@ -334,30 +340,23 @@ void vamphalf_state::flipscreen_w(u16 data)
void vamphalf_state::jmpbreak_flipscreen_w(u16 data)
{
- m_flipscreen = data & 0x8000;
+ m_flipscreen = BIT(data, 15);
}
-
-u32 vamphalf_qdsp_state::wyvernwg_prot_r()
+template <u32 SetValue>
+u32 vamphalf_state::prot_r()
{
if (!machine().side_effects_disabled())
m_semicom_prot_idx--;
- return (m_semicom_prot_data[m_semicom_prot_which] & (1 << m_semicom_prot_idx)) >> m_semicom_prot_idx;
+ return BIT(m_semicom_prot_data[m_semicom_prot_which], m_semicom_prot_idx) ? SetValue : 0;
}
void vamphalf_qdsp_state::wyvernwg_prot_w(u32 data)
{
- m_semicom_prot_which = data & 1;
+ m_semicom_prot_which = BIT(data, 0);
m_semicom_prot_idx = 8;
}
-u32 vamphalf_state::finalgdr_prot_r()
-{
- if (!machine().side_effects_disabled())
- m_semicom_prot_idx--;
- return (m_semicom_prot_data[m_semicom_prot_which] & (1 << m_semicom_prot_idx)) ? 0x8000 : 0;
-}
-
void vamphalf_state::finalgdr_prot_w(u32 data)
{
/*
@@ -397,17 +396,17 @@ void vamphalf_nvram_state::finalgdr_backupram_w(offs_t offset, u32 data)
void vamphalf_nvram_state::finalgdr_prize_w(u32 data)
{
- if (data & 0x1000000)
+ if (BIT(data, 24))
{
// prize 1
}
- if (data & 0x2000000)
+ if (BIT(data, 25))
{
// prize 2
}
- if (data & 0x4000000)
+ if (BIT(data, 26))
{
// prize 3
}
@@ -471,7 +470,7 @@ void vamphalf_state::qs1000_p3_w(u8 data)
void vamphalf_state::common_map(address_map &map)
{
- map(0x00000000, 0x001fffff).ram().share("wram");
+ map(0x00000000, 0x001fffff).ram().share(m_wram);
map(0x40000000, 0x4003ffff).rw(FUNC(vamphalf_state::vram_r), FUNC(vamphalf_state::vram_w));
map(0x80000000, 0x8000ffff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
map(0xfff00000, 0xffffffff).rom().region("maincpu", 0);
@@ -479,7 +478,7 @@ void vamphalf_state::common_map(address_map &map)
void vamphalf_state::common_32bit_map(address_map &map)
{
- map(0x00000000, 0x001fffff).ram().share("wram32");
+ map(0x00000000, 0x001fffff).ram().share(m_wram32);
map(0x40000000, 0x4003ffff).rw(FUNC(vamphalf_state::vram_r), FUNC(vamphalf_state::vram_w));
map(0x80000000, 0x8000ffff).ram().w(m_palette, FUNC(palette_device::write32)).share("palette");
map(0xfff00000, 0xffffffff).rom().region("maincpu", 0);
@@ -487,7 +486,7 @@ void vamphalf_state::common_32bit_map(address_map &map)
void vamphalf_qdsp_state::yorijori_32bit_map(address_map &map)
{
- map(0x00000000, 0x001fffff).ram().share("wram32");
+ map(0x00000000, 0x001fffff).ram().share(m_wram32);
map(0x40000000, 0x4003ffff).rw(FUNC(vamphalf_state::vram_r), FUNC(vamphalf_state::vram_w));
map(0x80000000, 0x8000ffff).ram().w(m_palette, FUNC(palette_device::write32)).share("palette");
map(0xffe00000, 0xffffffff).rom().region("maincpu", 0);
@@ -547,7 +546,7 @@ void vamphalf_state::suplup_io(address_map &map)
void vamphalf_qdsp_state::wyvernwg_io(address_map &map)
{
- map(0x0600, 0x0600).rw(FUNC(vamphalf_qdsp_state::wyvernwg_prot_r), FUNC(vamphalf_qdsp_state::wyvernwg_prot_w));
+ map(0x0600, 0x0600).rw(FUNC(vamphalf_qdsp_state::prot_r<0x0001>), FUNC(vamphalf_qdsp_state::wyvernwg_prot_w));
map(0x0800, 0x0800).umask32(0x0000ffff).w(FUNC(vamphalf_state::flipscreen_w));
map(0x0a00, 0x0a00).portr("P1_P2");
map(0x0c00, 0x0c00).portr("SYSTEM");
@@ -558,7 +557,7 @@ void vamphalf_qdsp_state::wyvernwg_io(address_map &map)
void vamphalf_nvram_state::finalgdr_io(address_map &map)
{
- map(0x0900, 0x0900).r(FUNC(vamphalf_nvram_state::finalgdr_prot_r));
+ map(0x0900, 0x0900).r(FUNC(vamphalf_nvram_state::prot_r<0x8000>));
map(0x0a00, 0x0a00).w(FUNC(vamphalf_nvram_state::finalgdr_backupram_bank_w));
map(0x0b00, 0x0b7f).rw(FUNC(vamphalf_nvram_state::finalgdr_backupram_r), FUNC(vamphalf_nvram_state::finalgdr_backupram_w));
map(0x0c00, 0x0c01).umask32(0x0000ff00).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
@@ -582,7 +581,7 @@ void vamphalf_nvram_state::mrkickera_io(address_map &map)
map(0x1010, 0x1010).w(FUNC(vamphalf_nvram_state::finalgdr_prot_w));
map(0x1021, 0x1021).nopw(); //?
map(0x1028, 0x1028).w(FUNC(vamphalf_nvram_state::finalgdr_oki_bank_w));
- map(0x1900, 0x1900).r(FUNC(vamphalf_nvram_state::finalgdr_prot_r));
+ map(0x1900, 0x1900).r(FUNC(vamphalf_nvram_state::prot_r<0x8000>));
map(0x1c00, 0x1c01).umask32(0x0000ff00).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
map(0x1d00, 0x1d00).umask32(0x0000ff00).rw("oki1", FUNC(okim6295_device::read), FUNC(okim6295_device::write));
map(0x1e00, 0x1e00).portr("P1_P2");
@@ -638,7 +637,7 @@ void vamphalf_state::mrdig_io(address_map &map)
void vamphalf_state::aoh_map(address_map &map)
{
- map(0x00000000, 0x003fffff).ram().share("wram32");
+ map(0x00000000, 0x003fffff).ram().share(m_wram32);
map(0x40000000, 0x4003ffff).rw(FUNC(vamphalf_state::vram_r), FUNC(vamphalf_state::vram_w));
map(0x80000000, 0x8000ffff).ram().w(m_palette, FUNC(palette_device::write32)).share("palette");
map(0x80210000, 0x80210003).portr("SYSTEM");
@@ -673,7 +672,7 @@ void vamphalf_state::boonggab_io(address_map &map)
void vamphalf_qdsp_state::yorijori_io(address_map &map)
{
- map(0x0900, 0x0900).r(FUNC(vamphalf_qdsp_state::finalgdr_prot_r));
+ map(0x0900, 0x0900).r(FUNC(vamphalf_qdsp_state::prot_r<0x8000>));
map(0x0d00, 0x0d00).portr("P1_P2");
map(0x0e00, 0x0e00).umask32(0x0000ff00).w(m_soundlatch, FUNC(generic_latch_8_device::write));
map(0x0f00, 0x0f00).portr("SYSTEM");
@@ -686,7 +685,7 @@ void vamphalf_qdsp_state::yorijori_io(address_map &map)
void vamphalf_state::banked_oki_map(address_map &map)
{
map(0x00000, 0x1ffff).rom();
- map(0x20000, 0x3ffff).bankr("okibank");
+ map(0x20000, 0x3ffff).bankr(m_okibank);
}
/*
@@ -714,19 +713,19 @@ void vamphalf_state::video_start()
{
save_item(NAME(m_flipscreen));
- m_flipscreen = 0;
+ m_flipscreen = false;
}
void vamphalf_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
gfx_element *gfx = m_gfxdecode->gfx(0);
rectangle clip = cliprect;
- int block;
for (int y = (cliprect.min_y & ~15); y <= (cliprect.max_y | 15); y += 16)
{
clip.min_y = y;
clip.max_y = y + 15;
+ int block;
if (m_flipscreen)
{
block = (y / 16) * 0x800;
@@ -746,22 +745,22 @@ void vamphalf_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, c
{
const int offs = (block + cnt) / 2;
- if (m_tiles[offs] & 0x0100) continue;
+ if (BIT(m_tiles[offs], 8)) continue;
- u32 code = m_tiles[offs+1];
- const u32 color = (m_tiles[offs+2] >> m_palshift) & 0x7f;
+ u32 code = m_tiles[offs + 1];
+ const u32 color = (m_tiles[offs + 2] >> m_palshift) & 0x7f;
// boonggab
if (m_has_extra_gfx)
{
- code |= ((m_tiles[offs+2] & 0x100) << 8);
+ code |= ((m_tiles[offs + 2] & 0x100) << 8);
}
- int x = m_tiles[offs+3] & 0x01ff;
+ int x = m_tiles[offs + 3] & 0x01ff;
int y = 256 - (m_tiles[offs] & 0x00ff);
- int fx = m_tiles[offs] & 0x8000;
- int fy = m_tiles[offs] & 0x4000;
+ bool fx = BIT(m_tiles[offs], 15);
+ bool fy = BIT(m_tiles[offs], 14);
if (m_flipscreen)
{
@@ -802,12 +801,12 @@ void vamphalf_state::draw_sprites_aoh(screen_device &screen, bitmap_ind16 &bitma
{
gfx_element *gfx = m_gfxdecode->gfx(0);
rectangle clip = cliprect;
- int block;
for (int y = (cliprect.min_y & ~15); y <= (cliprect.max_y | 15); y += 16)
{
clip.min_y = y;
clip.max_y = y + 15;
+ int block;
if (m_flipscreen)
{
block = (y / 16) * 0x800;
@@ -826,14 +825,14 @@ void vamphalf_state::draw_sprites_aoh(screen_device &screen, bitmap_ind16 &bitma
for (u32 cnt = 0; cnt < 0x800; cnt += 8)
{
const int offs = (block + cnt) / 2;
- const u32 code = (m_tiles[offs+1] & 0xffff) | ((m_tiles[offs] & 0x300) << 8);
- const u32 color = (m_tiles[offs+2] >> m_palshift) & 0x7f;
+ const u32 code = (m_tiles[offs + 1] & 0xffff) | ((m_tiles[offs] & 0x300) << 8);
+ const u32 color = (m_tiles[offs + 2] >> m_palshift) & 0x7f;
- int x = m_tiles[offs+3] & 0x01ff;
+ int x = m_tiles[offs + 3] & 0x01ff;
int y = 256 - (m_tiles[offs] & 0x00ff);
- int fx = m_tiles[offs] & 0x400;
- int fy = 0; // not used ? or it's m_tiles[offs] & 0x800?
+ bool fx = BIT(m_tiles[offs], 10);
+ bool fy = false; // not used ? or it's BIT(m_tiles[offs], 11)?
if (m_flipscreen)
{
@@ -889,7 +888,7 @@ ioport_value vamphalf_state::boonggab_photo_sensors_r()
static const u16 photo_sensors_table[8] = { 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00 };
u8 res = m_photosensors->read();
- switch(res)
+ switch (res)
{
case 0x01:
return photo_sensors_table[1]; // 5 - 7 points
@@ -1387,7 +1386,7 @@ void vamphalf_qdsp_state::yorijori(machine_config &config)
/*
-Vamp x1/2 (Danbi, 1999)
+Vamf x1/2 & 뱀프 x1/2(Vamp x1/2) (Danbi, 1999)
Hardware info by Guru
DANBI (no PCB number)
@@ -1662,10 +1661,10 @@ ROM_END
/*
-Jumping Break & Poosho Poosho
+Jumping Break & 뿌셔뿌셔(Poosho Poosho)
F2 System, 1999
-sequel to "Die Break" from the Bestri 3 game collection (see crospang.cpp)
+sequel to "Die Break" from the Bestri 3 game collection (see f32/crospang.cpp)
F-E1-16-002
+----------------------------------------------+
@@ -1773,7 +1772,7 @@ ROM_END
New Cross Pang
F2 System, 1999
-sequel to "Cross Pang" (see crospang.cpp)
+sequel to "Cross Pang" (see f32/crospang.cpp)
F-E1-16-002
+----------------------------------------------+
@@ -2585,7 +2584,7 @@ ROM_END
/*
-Yori Jori Kuk Kuk
+요리 조리 쿡쿡(Yori Jori Kuk Kuk)
GOLDEN BELL-002
+----------------------------------------------+
@@ -2676,7 +2675,7 @@ ROM_END
/*
-Final Godori (c) SemiCom
+파이널 고도리(Final Godori) (c) SemiCom
SEMICOM-003a
+---------------------------------------------+
@@ -3041,7 +3040,7 @@ ROM_END
bool vamphalf_state::irq_active()
{
const u32 FCR = m_maincpu->state_int(E132XS_FCR);
- if (!(FCR & (1 << 29))) // int 2 (irq 4)
+ if (!BIT(FCR, 29)) // int 2 (irq 4)
return true;
else
return false;
@@ -3061,7 +3060,7 @@ void vamphalf_state::banked_oki(int chip)
template <u32 Pc, u32 Wram_offs>
u16 vamphalf_state::speedup_16_r()
{
- if (m_maincpu->pc() == Pc)
+ if ((!machine().side_effects_disabled()) && (m_maincpu->pc() == Pc))
{
if (irq_active())
m_maincpu->spin_until_interrupt();
@@ -3075,7 +3074,7 @@ u16 vamphalf_state::speedup_16_r()
template <u32 Pc, u32 Wram_offs>
u32 vamphalf_state::speedup_32_r()
{
- if (m_maincpu->pc() == Pc)
+ if ((!machine().side_effects_disabled()) && (m_maincpu->pc() == Pc))
{
if (irq_active())
m_maincpu->spin_until_interrupt();
@@ -3088,7 +3087,8 @@ u32 vamphalf_state::speedup_32_r()
u32 vamphalf_state::aoh_speedup_r()
{
- if (m_maincpu->pc() == 0xb994 || m_maincpu->pc() == 0xba40)
+ if ((!machine().side_effects_disabled()) &&
+ (m_maincpu->pc() == 0xb994 || m_maincpu->pc() == 0xba40))
{
m_maincpu->eat_cycles(500);
}
@@ -3214,6 +3214,7 @@ void vamphalf_qdsp_state::init_wyvernwg()
m_qdsp_cpu->space(AS_DATA).install_read_bank(0x0100, 0xffff, m_qs1000_bank);
m_qs1000_bank->configure_entries(0, 16, memregion("qs1000:cpu")->base() + 0x100, 0x8000-0x100);
+ save_item(NAME(m_semicom_prot_data));
save_item(NAME(m_semicom_prot_idx));
save_item(NAME(m_semicom_prot_which));
}
@@ -3237,6 +3238,10 @@ void vamphalf_qdsp_state::init_yorijori()
// Configure the QS1000 ROM banking. Care must be taken not to overlap the 256b internal RAM
m_qdsp_cpu->space(AS_DATA).install_read_bank(0x0100, 0xffff, m_qs1000_bank);
m_qs1000_bank->configure_entries(0, 16, memregion("qs1000:cpu")->base() + 0x100, 0x8000-0x100);
+
+ save_item(NAME(m_semicom_prot_data));
+ save_item(NAME(m_semicom_prot_idx));
+ save_item(NAME(m_semicom_prot_which));
}
void vamphalf_nvram_state::init_finalgdr()
@@ -3256,6 +3261,7 @@ void vamphalf_nvram_state::init_finalgdr()
save_item(NAME(m_finalgdr_backupram_bank));
save_pointer(NAME(m_finalgdr_backupram), 0x80*0x100);
+ save_item(NAME(m_semicom_prot_data));
save_item(NAME(m_semicom_prot_idx));
save_item(NAME(m_semicom_prot_which));
}
@@ -3276,6 +3282,7 @@ void vamphalf_nvram_state::init_mrkickera()
m_semicom_prot_data[0] = 2;
m_semicom_prot_data[1] = 3;
+ save_item(NAME(m_semicom_prot_data));
save_item(NAME(m_semicom_prot_idx));
save_item(NAME(m_semicom_prot_which));
}
@@ -3373,7 +3380,6 @@ void vamphalf_state::init_worldadv()
void vamphalf_state::init_solitaire()
{
-
// TODO: speedup
m_maincpu->space(AS_PROGRAM).install_read_handler(0x05d1c0, 0x05d1c1, emu::rw_delegate(*this, NAME((&vamphalf_state::speedup_16_r<0x8810, 0x5d1c0>))));
@@ -3393,54 +3399,54 @@ void vamphalf_state::init_boonggab()
} // anonymous namespace
-GAME( 1999, coolmini, 0, coolmini, common, vamphalf_state, init_coolmini, ROT0, "SemiCom", "Cool Minigame Collection", MACHINE_SUPPORTS_SAVE )
-GAME( 1999, coolminii, coolmini, coolmini, common, vamphalf_state, init_coolminii, ROT0, "SemiCom", "Cool Minigame Collection (Italy)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, coolmini, 0, coolmini, common, vamphalf_state, init_coolmini, ROT0, "SemiCom", "Cool Minigame Collection", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, coolminii, coolmini, coolmini, common, vamphalf_state, init_coolminii, ROT0, "SemiCom", "Cool Minigame Collection (Italy)", MACHINE_SUPPORTS_SAVE )
-GAME( 1999, jmpbreak, 0, jmpbreak, common, vamphalf_state, init_jmpbreak, ROT0, "F2 System", "Jumping Break (set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1999, jmpbreaka, jmpbreak, jmpbreak, common, vamphalf_state, init_jmpbreaka, ROT0, "F2 System", "Jumping Break (set 2)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, jmpbreak, 0, jmpbreak, common, vamphalf_state, init_jmpbreak, ROT0, "F2 System", "Jumping Break (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, jmpbreaka, jmpbreak, jmpbreak, common, vamphalf_state, init_jmpbreaka, ROT0, "F2 System", "Jumping Break (set 2)", MACHINE_SUPPORTS_SAVE )
-GAME( 1999, poosho, 0, jmpbreak, common, vamphalf_state, init_poosho, ROT0, "F2 System", "Poosho Poosho", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, poosho, 0, jmpbreak, common, vamphalf_state, init_poosho, ROT0, "F2 System", "Poosho Poosho", MACHINE_SUPPORTS_SAVE ) // This set is English title version, Korean title version exists? (background text in title screen is still Korean)
-GAME( 1999, newxpang, 0, newxpang, common, vamphalf_state, init_newxpang, ROT0, "F2 System", "New Cross Pang (set 1)", MACHINE_SUPPORTS_SAVE )
-GAME( 1999, newxpanga, newxpang, jmpbreak, common, vamphalf_state, init_newxpanga, ROT0, "F2 System", "New Cross Pang (set 2)", MACHINE_SUPPORTS_SAVE ) // TODO: speed up for this set
+GAME( 1999, newxpang, 0, newxpang, common, vamphalf_state, init_newxpang, ROT0, "F2 System", "New Cross Pang (set 1)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, newxpanga, newxpang, jmpbreak, common, vamphalf_state, init_newxpanga, ROT0, "F2 System", "New Cross Pang (set 2)", MACHINE_SUPPORTS_SAVE ) // TODO: speed up for this set
-GAME( 1999, worldadv, 0, worldadv, common, vamphalf_state, init_worldadv, ROT0, "Logic / F2 System", "World Adventure", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // game starts to stall for several seconds at a time after it's been running for a certain amount of time
+GAME( 1999, worldadv, 0, worldadv, common, vamphalf_state, init_worldadv, ROT0, "Logic / F2 System", "World Adventure", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // game starts to stall for several seconds at a time after it's been running for a certain amount of time
-GAME( 1999, solitaire, 0, solitaire, solitaire, vamphalf_state, init_solitaire, ROT0, "F2 System", "Solitaire (version 2.5)", MACHINE_SUPPORTS_SAVE )
+GAME( 1999, solitaire, 0, solitaire, solitaire, vamphalf_state, init_solitaire, ROT0, "F2 System", "Solitaire (version 2.5)", MACHINE_SUPPORTS_SAVE )
-GAME( 1999, 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, 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( 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, 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_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // game starts to stall for several seconds at a time after it's been running for a certain amount of time (you can usually complete 1 loop)
-GAME( 2000, misncrfta, misncrft, misncrft, common, vamphalf_qdsp_state, init_misncrft, ROT90, "Sun", "Mission Craft (version 2.4)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+GAME( 2000, misncrft, 0, misncrft, common, vamphalf_qdsp_state, init_misncrft, ROT90, "Sun", "Mission Craft (version 2.7)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // game starts to stall for several seconds at a time after it's been running for a certain amount of time (you can usually complete 1 loop)
+GAME( 2000, misncrfta, misncrft, misncrft, common, vamphalf_qdsp_state, init_misncrft, ROT90, "Sun", "Mission Craft (version 2.4)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
-GAME( 2000, mrdig, 0, mrdig, common, vamphalf_state, init_mrdig, ROT0, "Sun", "Mr. Dig", 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, 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, 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, then this set corrupts the EEPROM and then won't boot
+GAME( 2001, mrkicker, 0, mrkicker, common, vamphalf_state, init_mrkicker, ROT0, "SemiCom", "Mr. Kicker (F-E1-16-010 PCB)", MACHINE_SUPPORTS_SAVE )
+GAME( 2001, mrkickera, mrkicker, mrkickera, finalgdr, vamphalf_nvram_state, init_mrkickera, ROT0, "SemiCom", "Mr. Kicker (SEMICOM-003b PCB)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING ) // if you allow EEPROM saving, then this set corrupts the EEPROM and then won't boot
-GAME( 2001, toyland, 0, coolmini, common, vamphalf_state, init_toyland, ROT0, "SemiCom", "Toy Land Adventure", MACHINE_SUPPORTS_SAVE )
+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_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) // gives a protection error after a certain number of plays / coins?
-GAME( 2001, wyvernwg, wivernwg, wyvernwg, common, vamphalf_qdsp_state, init_wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION )
-GAME( 2001, wyvernwga, wivernwg, wyvernwg, common, vamphalf_qdsp_state, init_wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION )
+GAME( 2001, wivernwg, 0, wyvernwg, common, vamphalf_qdsp_state, init_wyvernwg, ROT270, "SemiCom", "Wivern Wings", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION ) // gives a protection error after a certain number of plays / coins?
+GAME( 2001, wyvernwg, wivernwg, wyvernwg, common, vamphalf_qdsp_state, init_wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 1)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION )
+GAME( 2001, wyvernwga, wivernwg, wyvernwg, common, vamphalf_qdsp_state, init_wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 2)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION )
-GAME( 2001, 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, 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( 2001, boonggab, 0, boonggab, boonggab, vamphalf_state, init_boonggab, ROT270, "Taff System", "Boong-Ga Boong-Ga (Spank'em!)", MACHINE_SUPPORTS_SAVE )
-GAME( 2002, yorijori, 0, yorijori, yorijori, vamphalf_qdsp_state, init_yorijori, ROT0, "Golden Bell Entertainment", "Yori Jori Kuk Kuk", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // ROM patch needed to boot
+GAME( 2002, yorijori, 0, yorijori, yorijori, vamphalf_qdsp_state, init_yorijori, ROT0, "Golden Bell Entertainment", "Yori Jori Kuk Kuk", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // ROM patch needed to boot