New working clones

------------------
Astro Invader (bootleg) [f205v]

New systems marked not working
------------------------------
Majiang Xueyuan (V108TW) [little0]
Qi Wang [little0]
This commit is contained in:
Ivan Vangelista 2025-02-19 20:33:16 +01:00
parent f484388f15
commit 085a086349
7 changed files with 130 additions and 46 deletions

View File

@ -8,11 +8,12 @@ Popo Bear (c) 2000 BMC
TODO:
- BGM seems quite off;
- timer chip (controls auto-animation on title screen + something else during gameplay?);
- complete I/Os;
- complete I/Os (BMC-A00211 PCB has 4 banks of DIPs but only 1 is hooked up?);
- Identify what's on $600000 & $620000;
- Uses tas opcode to sync to irq, from VDP?
- magkengo: doesn't boot, same as popobear would do without the 0x620000 work-around, but it doesn't
read there.
- qiwang: uses unhandled GFX features, needs correct I/O
===================================================================================================
@ -108,7 +109,8 @@ public:
m_tilemap_base[3] = 0xfc000;
}
void popobear(machine_config &config);
void popobear(machine_config &config) ATTR_COLD;
void qiwang(machine_config &config) ATTR_COLD;
protected:
virtual void video_start() override ATTR_COLD;
@ -131,6 +133,7 @@ private:
void irq_ack_w(uint8_t data);
void vram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
template <uint8_t Mystery_value> uint8_t _620000_r();
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
@ -138,6 +141,7 @@ private:
TIMER_DEVICE_CALLBACK_MEMBER(scanline_cb);
void main_map(address_map &map) ATTR_COLD;
void qiwang_main_map(address_map &map) ATTR_COLD;
};
@ -260,9 +264,9 @@ void popobear_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
// this isn't understood, not enough evidence.
switch (param & 3)
{
case 0x0: // not used?
color_bank = (machine().rand() & 0x3);
add_it = color_bank*0x40;
case 0x0: // girls in the intro (qiwang)
//color_bank = (machine().rand() & 0x3);
add_it = color_bank * 0x40;
break;
case 0x1: // butterflies in intro, enemy characters, line of characters, stage start text
@ -281,10 +285,9 @@ void popobear_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
break;
}
if (param == 0)
if (param == 0) // this avoids some glitches during the intro in popobear, when the panda gets stunned
continue;
spr_num <<= 3;
for (int yi = 0; yi < height; yi++)
@ -327,7 +330,7 @@ uint32_t popobear_state::screen_update(screen_device &screen, bitmap_ind16 &bitm
//popmessage("%04x",m_vregs[0/2]);
uint16_t* vreg = m_vregs;
// popmessage("%04x %04x %04x %04x %04x %04x %04x - %04x - %04x %04x",vreg[0x00],vreg[0x01],vreg[0x02],vreg[0x03],vreg[0x04],vreg[0x05],vreg[0x06], vreg[0x0b],vreg[0x0e],vreg[0x0f]);
// popmessage("%04x %04x %04x %04x %04x %04x %04x %04x %04x %04x %04x %04x %04x %04x %04x %04x",vreg[0x00],vreg[0x01],vreg[0x02],vreg[0x03],vreg[0x04],vreg[0x05],vreg[0x06], vreg[0x07],vreg[0x08],vreg[0x09],vreg[0x0a],vreg[0x0b],m_vregs[0x0c],m_vregs[0x0d],vreg[0x0e],vreg[0x0f]);
// vreg[0x00] also looks like it could be some enable registers
// 0x82ff - BMC logo
@ -346,13 +349,13 @@ uint32_t popobear_state::screen_update(screen_device &screen, bitmap_ind16 &bitm
int const enable2 = (m_vregs[0x0d] & 0xff00) >> 8;
int const enable3 = (m_vregs[0x0d] & 0x00ff) >> 0;
if ((enable0 != 0x00) && (enable0 != 0x0d) && (enable0 != 0x1f)) popmessage("unknown enable0 value %02x", enable0);
if ((enable1 != 0x00) && (enable1 != 0x0d) && (enable1 != 0x1f)) popmessage("unknown enable1 value %02x", enable1);
if ((enable2 != 0x00) && (enable2 != 0x0d)) popmessage("unknown enable2 value %02x", enable2);
if ((enable3 != 0x00) && (enable3 != 0x0d)) popmessage("unknown enable3 value %02x", enable3);
if ((enable0 != 0x00) && (enable0 != 0x0d) && (enable0 != 0x1f)) logerror("unknown enable0 value %02x\n", enable0);
if ((enable1 != 0x00) && (enable1 != 0x0d) && (enable1 != 0x1f)) logerror("unknown enable1 value %02x\n", enable1);
if ((enable2 != 0x00) && (enable2 != 0x0d)) logerror("unknown enable2 value %02x\n", enable2);
if ((enable3 != 0x00) && (enable3 != 0x0d)) logerror("unknown enable3 value %02x\n", enable3);
// the lower 2 tilemaps use regular scrolling
// for popobear, the lower 2 tilemaps use regular scrolling. qiwang doesn't seem to agree
m_bg_tilemap[2]->set_scrollx(0, vreg[0x07]);
m_bg_tilemap[2]->set_scrolly(0, vreg[0x08]);
@ -417,7 +420,8 @@ uint32_t popobear_state::screen_update(screen_device &screen, bitmap_ind16 &bitm
m_bg_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0);
}
draw_sprites(bitmap, cliprect);
if (BIT(m_vregs[0x00], 8))
draw_sprites(bitmap, cliprect);
return 0;
}
@ -431,6 +435,14 @@ void popobear_state::irq_ack_w(uint8_t data)
}
}
template <uint8_t Mystery_value>
uint8_t popobear_state::_620000_r()
{
// TODO: checked while flipping bit 0 in clock select fashion at POST
// refuses to boot with either bits 1-2 high.
return Mystery_value;
}
void popobear_state::main_map(address_map &map)
{
map.unmap_value_high();
@ -469,16 +481,19 @@ void popobear_state::main_map(address_map &map)
map(0x550000, 0x550003).w("ymsnd", FUNC(ym2413_device::write)).umask16(0x00ff);
// map(0x600000, 0x600001).nopw(); // activated during transitions, bits 0-3
map(0x620000, 0x620000).lr8(
NAME([] (offs_t offset) {
// TODO: checked while flipping bit 0 in clock select fashion at POST
// refuses to boot with either bits 1-2 high.
return 9;
})
);
map(0x620000, 0x620000).r(FUNC(popobear_state::_620000_r<0x09>));
map(0x800000, 0xbfffff).rom().region("gfx_data", 0);
}
void popobear_state::qiwang_main_map(address_map &map)
{
main_map(map);
map(0x500000, 0x500001).lr16(NAME([] () -> uint16_t { return 0x0000; })); // TODO: while booting, it specifically checks for this not to return 0xffff. Any other value is ok
map(0x620000, 0x620000).r(FUNC(popobear_state::_620000_r<0x01>));
}
// TODO: unconfirmed diplocations
static INPUT_PORTS_START( popobear )
PORT_START("IN0")
@ -602,6 +617,12 @@ void popobear_state::popobear(machine_config &config)
OKIM6295(config, "oki", XTAL(42'000'000) / 32, okim6295_device::PIN7_LOW).add_route(ALL_OUTPUTS, "mono", 1.0); // divisor guessed
}
void popobear_state::qiwang(machine_config &config)
{
popobear(config);
m_maincpu->set_addrmap(AS_PROGRAM, &popobear_state::qiwang_main_map);
}
ROM_START( popobear )
ROM_REGION( 0x040000, "maincpu", 0 )
@ -618,6 +639,23 @@ ROM_START( popobear )
ROM_LOAD( "popobear_ta-a-901.u9", 0x00000, 0x40000, CRC(f1e94926) SHA1(f4d6f5b5811d90d0069f6efbb44d725ff0d07e1c) )
ROM_END
// exactly same PCB as popobear.
// All labels have 棋王 prepended to what's below, with the exception of mj-57 which has a sticker 'BMC 棋王' on the upper part of the label
ROM_START( qiwang )
ROM_REGION( 0x040000, "maincpu", 0 )
ROM_LOAD16_BYTE( "mj-03.u3", 0x000001, 0x020000, CRC(3cf3ff12) SHA1(dd4347b44a45822e7bfddffb0afadd65d398bea6) )
ROM_LOAD16_BYTE( "mj-04.u4", 0x000000, 0x020000, CRC(03a0d290) SHA1(d8fb1e6780d31ebf8cdc6ae14301d1f8c25380c6) )
// u1 and u2 not populated
ROM_REGION16_BE( 0x400000, "gfx_data", ROMREGION_ERASE00 )
ROM_LOAD16_BYTE( "mj-57.u5", 0x000001, 0x100000, CRC(50871b0c) SHA1(01279d844cae699eb76a90b8c4b3915ae538c12e) )
ROM_LOAD16_BYTE( "mj-68.u6", 0x000000, 0x100000, CRC(9692bb92) SHA1(6282054a41eda1b1fc1de5096bc2440a386d9f99) )
// u7 and u8 not populated
ROM_REGION( 0x040000, "oki", 0 )
ROM_LOAD( "mj-09.u9", 0x00000, 0x20000, CRC(dc6326bf) SHA1(88bb77f46f04cc8824a6ac52a2eee32cbe813a26) )
ROM_END
// HERBHOME 20A23-1 PCB. Mostly same components as popobear's (BMC AIA90423, BMC AIA90610, OKI6295, 42 MHz XTAL, etc.), different layout.
// Has a Altera MAX EPM7064SLC84-10 and only 1 8-DIP bank
// Has Herb Home 2003 copyright in ROM but stickers have 2005. TODO: Verify date on title screen when it boots.
@ -654,6 +692,10 @@ ROM_END
} // anonymous namespace
// BMC-A00211 PCB
GAME( 2000, popobear, 0, popobear, popobear, popobear_state, empty_init, ROT0, "BMC", "PoPo Bear", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_TIMING | MACHINE_SUPPORTS_SAVE )
GAME( 2010, qiwang, 0, qiwang, popobear, popobear_state, empty_init, ROT0, "Herb Home", "Qi Wang", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_TIMING | MACHINE_SUPPORTS_SAVE )
// HERBHOME 20A23-* PCB
GAME( 2005, magkengo, 0, popobear, popobear, popobear_state, empty_init, ROT0, "Herb Home", "Magical Kengo 2005 (Ver. 1.2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_TIMING | MACHINE_SUPPORTS_SAVE )
GAME( 2005, magkengou, magkengo, popobear, popobear, popobear_state, empty_init, ROT0, "Herb Home", "Magical Kengo 2005 (Ver. USA 1.10)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_TIMING | MACHINE_SUPPORTS_SAVE )

View File

@ -6942,7 +6942,7 @@ ROM_START( nemor1 )
ROM_LOAD( "iob1.11e", 0x0000, 0x0117, CRC(3abc0700) SHA1(973043aa46ec6d5d1db20dc9d5937005a0f9f6ae) )
ROM_END
/* B-Board 89622B-3 */
/* B-Board 88622B-3 */
ROM_START( nemoj )
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_BYTE( "nmj_36a.12f", 0x00000, 0x20000, CRC(daeceabb) SHA1(ebd44922be9d07a3d3411af52edee8a60cb11dad) )
@ -14981,7 +14981,7 @@ GAME( 1990, cawingur1, cawing, cps1_10MHz, cawing, cps_state, init_cps1,
GAME( 1990, cawingj, cawing, cps1_10MHz, cawing, cps_state, init_cps1, ROT0, "Capcom", "U.S. Navy (Japan 901012)", MACHINE_SUPPORTS_SAVE )
GAME( 1990, nemo, 0, cps1_10MHz, nemo, cps_state, init_cps1, ROT0, "Capcom", "Nemo (World 901130)", MACHINE_SUPPORTS_SAVE ) // "ETC"
GAME( 1990, nemor1, nemo, cps1_10MHz, nemo, cps_state, init_cps1, ROT0, "Capcom", "Nemo (World 901109)", MACHINE_SUPPORTS_SAVE ) // "ETC"
GAME( 1990, nemoj, nemo, cps1_10MHz, nemo, cps_state, init_cps1, ROT0, "Capcom", "Nemo (Japan 901120, 89622B-3 ROM board)", MACHINE_SUPPORTS_SAVE )
GAME( 1990, nemoj, nemo, cps1_10MHz, nemo, cps_state, init_cps1, ROT0, "Capcom", "Nemo (Japan 901120, 88622B-3 ROM board)", MACHINE_SUPPORTS_SAVE )
GAME( 1990, nemoja, nemo, cps1_10MHz, nemo, cps_state, init_cps1, ROT0, "Capcom", "Nemo (Japan 901120, 89625B-1 ROM board)", MACHINE_SUPPORTS_SAVE )
GAME( 1991, sf2, 0, cps1_10MHz, sf2, cps_state, init_cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (World 910522)", MACHINE_SUPPORTS_SAVE ) // "ETC"
GAME( 1991, sf2ea, sf2, cps1_10MHz, sf2, cps_state, init_cps1, ROT0, "Capcom", "Street Fighter II: The World Warrior (World 910204)", MACHINE_SUPPORTS_SAVE ) // "ETC"

View File

@ -96,7 +96,7 @@ U.S. Navy (Japan 901012) 89625B-1 CA
Nemo (World 901109) 1990 89624B-3 NM24B IOB1 88622-C-5 CPS-B-15 DL-0411-10010 None
Nemo (World 901130) 89624B-3 NM24B IOB1 88622-C-5 CPS-B-15 DL-0411-10010 None
Nemo (Japan 901120) 89622B-3 NM22B LWIO 88622-C-5 CPS-B-15 DL-0411-10010 None
Nemo (Japan 901120) 88622B-3 NM22B LWIO 88622-C-5 CPS-B-15 DL-0411-10010 None
Nemo (Japan 901120) 89625B-1 NM22B IOB1 88622-C-5 CPS-B-15 DL-0411-10010 None
Street Fighter II: The World Warrior (World 910129) 1991 90629B-2 STF29 IOB1 90632C-1 CPS-B-17 DL-0411-10012 C632

View File

@ -15152,6 +15152,7 @@ koftball
magkengo
magkengou
popobear
qiwang
@source:bondwell/bw12.cpp
bw12
@ -43183,6 +43184,7 @@ venteta
@source:skeleton/vgame.cpp
hilice
mjxy
@source:skeleton/vp415.cpp
vp415
@ -43604,6 +43606,7 @@ m5p_brno
@source:stern/astinvad.cpp
astinvad
astinvadb
betafrce
kamikaze
kosmokil

View File

@ -2342,6 +2342,7 @@ void gms_2layers_state::init_rbspm()
{
uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
// 0x REPAIR
rom[0x00520 / 2] = 0x600a;
rom[0x00772 / 2] = 0x4e71;
rom[0x00774 / 2] = 0x4e71;
@ -2409,14 +2410,22 @@ void gms_3layers_state::init_sc2in1()
{
uint16_t *rom = (uint16_t *)memregion("maincpu")->base();
// U135 ERROR
rom[0x45f46 / 2] = 0x4e71;
rom[0x45f48 / 2] = 0x4e71;
rom[0x45f60 / 2] = 0x6000;
rom[0x45f70 / 2] = 0x4e71;
rom[0x45f72 / 2] = 0x4e71;
rom[0x45f9e / 2] = 0x6000;
rom[0x46818 / 2] = 0x4e71;
rom[0x4681a / 2] = 0x4e71;
rom[0x45f60 / 2] = 0x6000;
// loops endlessly
rom[0x45f70 / 2] = 0x4e71;
rom[0x45f72 / 2] = 0x4e71;
// U136 ERROR
rom[0x45f9e / 2] = 0x6000;
// U181 ERROR
rom[0x46842 / 2] = 0x4e71;
rom[0x46844 / 2] = 0x4e71;
}
@ -2482,22 +2491,22 @@ void gms_2layers_state::init_sscs()
// mahjong
GAME( 1998, rbmk, 0, rbmk, rbmk, gms_2layers_state, empty_init, ROT0, "GMS", "Shizhan Majiang Wang (Version 8.8)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // misses YM2151 hookup
GAME( 1998, rbspm, 0, rbspm, rbspm, gms_2layers_state, init_rbspm, ROT0, "GMS", "Shizhan Ding Huang Maque (Version 4.1)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Misses YM2151 hookup
GAME( 1998, ssanguoj, 0, ssanguoj, ssanguoj, gms_2layers_state, init_ssanguoj, ROT0, "GMS", "Shizhan Sanguo Ji Jiaqiang Ban (Version 8.9 980413)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // stops during boot, patched for now. YM3812 isn't hooked up (goes through undumped MCU).
GAME( 2005, yyhm, 0, magslot, yyhm, gms_3layers_state, init_yyhm, ROT0, "GMS", "Yuanyan Hudie Meng (Version 8.8A 2005-09-25)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Also needs EEPROM support.
GAME( 1998, rbmk, 0, rbmk, rbmk, gms_2layers_state, empty_init, ROT0, "GMS", "Shizhan Majiang Wang (Version 8.8)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // misses YM2151 hookup
GAME( 1998, rbspm, 0, rbspm, rbspm, gms_2layers_state, init_rbspm, ROT0, "GMS", "Shizhan Ding Huang Maque (Version 4.1)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Misses YM2151 hookup
GAME( 1998, ssanguoj, 0, ssanguoj, ssanguoj, gms_2layers_state, init_ssanguoj, ROT0, "GMS", "Shizhan Sanguo Ji Jiaqiang Ban (Version 8.9 980413)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // stops during boot, patched for now. YM3812 isn't hooked up (goes through undumped MCU).
GAME( 2005, yyhm, 0, magslot, yyhm, gms_3layers_state, init_yyhm, ROT0, "GMS", "Yuanyang Hudie Meng (Version 8.8A 2005-09-25)", MACHINE_UNEMULATED_PROTECTION | MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Also needs EEPROM support.
// card games
GAME( 1999, super555, 0, super555, super555, gms_2layers_state, init_super555, ROT0, "GMS", "Super 555 (English version V1.5)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Also needs EEPROM support.
GAME( 1999, sscs, 0, super555, sscs, gms_2layers_state, init_sscs, ROT0, "GMS", "San Se Caishen (Version 0502)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Also needs EEPROM support.
GAME( 2001, sball2k1, 0, super555, sball2k1, gms_2layers_state, init_sball2k1, ROT0, "GMS", "Super Ball 2001 (Italy version 5.23)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Also needs EEPROM support.
GAME( 2001, sc2in1, 0, magslot, sc2in1, gms_3layers_state, init_sc2in1, ROT0, "GMS", "Super Card 2 in 1 (English version 03.23)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Also needs EEPROM support.
GAME( 2004, jinpaish, 0, magslot, jinpaish, gms_3layers_state, init_jinpaish, ROT0, "GMS", "Jinpai Show Hand (Chinese version 2004-09-22)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Also needs EEPROM support. Also needs correct controls.
GAME( 2005, baile, 0, magslot, baile, gms_3layers_state, init_baile, ROT0, "GMS", "Baile 2005 (V3.2 2005-01-12)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Also needs EEPROM support.
GAME( 1999, super555, 0, super555, super555, gms_2layers_state, init_super555, ROT0, "GMS", "Super 555 (English version V1.5)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Also needs EEPROM support.
GAME( 1999, sscs, 0, super555, sscs, gms_2layers_state, init_sscs, ROT0, "GMS", "San Se Caishen (Version 0502)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Also needs EEPROM support.
GAME( 2001, sball2k1, 0, super555, sball2k1, gms_2layers_state, init_sball2k1, ROT0, "GMS", "Super Ball 2001 (Italy version 5.23)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Also needs EEPROM support.
GAME( 2001, sc2in1, 0, magslot, sc2in1, gms_3layers_state, init_sc2in1, ROT0, "GMS", "Super Card 2 in 1 (English version 03.23)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Also needs EEPROM support.
GAME( 2004, jinpaish, 0, magslot, jinpaish, gms_3layers_state, init_jinpaish, ROT0, "GMS", "Jinpai Suoha - Show Hand (Chinese version 2004-09-22)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Also needs EEPROM support. Also needs correct controls.
GAME( 2005, baile, 0, magslot, baile, gms_3layers_state, init_baile, ROT0, "GMS", "Baile 2005 (V3.2 2005-01-12)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Also needs EEPROM support.
// slot, on slightly different PCB
GAME( 2003, magslot, 0, magslot, magslot, gms_3layers_state, empty_init, ROT0, "GMS", "Magic Slot (normal 1.0C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // reel / tilemaps priorities are wrong, inputs to be verified. Also needs EEPROM support.
GAME( 2003, magslot, 0, magslot, magslot, gms_3layers_state, empty_init, ROT0, "GMS", "Magic Slot (normal 1.0C)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING ) // reel / tilemaps priorities are wrong, inputs to be verified. Also needs EEPROM support.
// train games
GAME( 2002, ballch, 0, super555, ballch, gms_2layers_state, init_ballch, ROT0, "TVE", "Ball Challenge (20020607 1.0 OVERSEA)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Also needs EEPROM support.
GAME( 2005, cots, 0, super555, cots, gms_2layers_state, init_cots, ROT0, "ECM", "Creatures of the Sea (20050328 USA 6.3)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Also needs EEPROM support.
GAME( 2002, ballch, 0, super555, ballch, gms_2layers_state, init_ballch, ROT0, "TVE", "Ball Challenge (20020607 1.0 OVERSEA)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Also needs EEPROM support.
GAME( 2005, cots, 0, super555, cots, gms_2layers_state, init_cots, ROT0, "ECM", "Creatures of the Sea (20050328 USA 6.3)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING ) // stops during boot, patched for now. Also needs EEPROM support.

View File

@ -2,7 +2,7 @@
// copyright-holders:
/*
Video slots by VGame.
Video slots / mahjongs by VGame.
The main components are:
rectangular 128-pin chip, marked VGAME-007 (probably CPU)
@ -13,7 +13,7 @@ LY62256SL SRAM (near VGAME-007)
U6295 sound chip
2 banks of 8 DIP switches
TODO: everything. CPU core isn't identified and code is encrypted.
TODO: everything. CPU core isn't identified and code is encrypted. Possibly internal ROM?
*/
@ -149,9 +149,9 @@ void vgame_state::vgame(machine_config &config)
OKIM6295(config, "oki", 44_MHz_XTAL / 44, okim6295_device::PIN7_HIGH).add_route(ALL_OUTPUTS, "mono", 1.0); // pin 7 and clock not verified
}
// VGAME-0030-02-AI PCB
ROM_START( hilice )
ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASE00 )
ROM_REGION( 0x200000, "maincpu", 0 )
ROM_LOAD( "hi_lice_v102fa.u13", 0x000000, 0x200000, CRC(4da87481) SHA1(5a20b254cfe8a2f087faa0dd17f682218a2ca1b2) )
ROM_REGION( 0x400000, "gfx", 0 )
@ -162,6 +162,20 @@ ROM_START( hilice )
ROM_LOAD( "hi_lice_sp_100f.u45", 0x000000, 0x200000, CRC(b2588f54) SHA1(0d046e56596611954a9d2a9a30746d8aa370431b) ) // 1xxxxxxxxxxxxxxxxxxxx = 0x00
ROM_END
// VGAME-0030-02-AG PCB, almost identical to the hilice one.
// all labels have 麻將學園 (Mahjong Academy) prepended to what's below.
ROM_START( mjxy )
ROM_REGION( 0x400000, "maincpu", 0 )
ROM_LOAD( "u12_v108tw.u12", 0x000000, 0x400000, BAD_DUMP CRC(c9989af0) SHA1(0edd65518688602810549955e79ad3f0edc0b1a5) ) // xxxxxxxxxxxxxxxxxxxx1x = 0xFF
ROM_REGION( 0x800000, "gfx", 0 )
ROM_LOAD( "u3_cg_v105.u3", 0x000000, 0x400000, BAD_DUMP CRC(7ed9736c) SHA1(69a3ad01a0582de8b1f206921544063e6eb3b4b0) ) // xxxxxxxxxxxxxxxxxxxx1x = 0xFF
ROM_LOAD( "u7_cg_v105.u7", 0x400000, 0x400000, BAD_DUMP CRC(177111ce) SHA1(3834e3613f59b938c69d5a8679ffc3ea6baf999a) ) // xxxxxxxxxxxxxxxxxxxx1x = 0xFF
ROM_REGION( 0x200000, "oki", 0 )
ROM_LOAD( "u43_sp_v105.u43", 0x000000, 0x200000, CRC(5d1ab8f1) SHA1(56473b632dfdb210208ce3b35cb6861f07861cd7) )
ROM_END
void vgame_state::init_hilice()
{
@ -171,4 +185,5 @@ void vgame_state::init_hilice()
} // anonymous namespace
GAME( 200?, hilice, 0, vgame, hilice, vgame_state, init_hilice, ROT0, "VGame", "Hi Lice (V102FA)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
GAME( 200?, hilice, 0, vgame, hilice, vgame_state, init_hilice, ROT0, "VGame", "Hi Lice (V102FA)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )
GAME( 200?, mjxy, 0, vgame, hilice, vgame_state, init_hilice, ROT0, "VGame", "Majiang Xueyuan (V108TW)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING )

View File

@ -783,6 +783,20 @@ ROM_START( astinvad )
ROM_LOAD( "ai_vid_c.rom", 0x0000, 0x0400, CRC(b45287ff) SHA1(7e558eaf402641d7ff60171f854030219fbf9a59) )
ROM_END
ROM_START( astinvadb )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "killer2_1.bin", 0x0000, 0x0400, CRC(20e3ec41) SHA1(7e77fa3c51d1e83ce91a24808301d9f1e0bed18e) )
ROM_LOAD( "killer2_2.bin", 0x0400, 0x0400, CRC(581625cf) SHA1(adac0c1f27c3f3c02ec14c1db8dc73febe01545f) )
ROM_LOAD( "killer2_3.bin", 0x0800, 0x0400, CRC(7ea9b6d6) SHA1(d9f9a3a0e0c68e022dec6c3c9a8266cdce06cb64) )
ROM_LOAD( "killer2_4.bin", 0x0c00, 0x0400, CRC(0d305d5f) SHA1(1581717d6c0472b5adb36f3d35cccb63dc4ba209) )
ROM_LOAD( "killer2_5.bin", 0x1000, 0x0400, CRC(fee681ec) SHA1(b4b94f62e598030e6a432a0bb83d18d0e342aed9) )
ROM_LOAD( "killer2_6.bin", 0x1400, 0x0400, CRC(eb338863) SHA1(e841c6c5903dd6dee9ec2fedaff431f4a31d738a) )
ROM_LOAD( "killer2_7.bin", 0x1800, 0x0400, CRC(9e2d279d) SHA1(357835761974ace956c965c0dd920a0692a5a2ea) )
ROM_REGION( 0x0400, "proms", 0 )
ROM_LOAD( "killer2_1-8.bin", 0x0000, 0x0400, CRC(d62a3e62) SHA1(00d42988203fbf167791cf5b887f06d1d015e942) )
ROM_END
ROM_START( kosmokil )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "1.bin", 0x0000, 0x0400, CRC(8d851fb2) SHA1(06b3816ecb45c5d034447a875669a96f443339f5) )
@ -859,6 +873,7 @@ ROM_END
GAME( 1980, kamikaze, 0, kamikaze, kamikaze, kamikaze_state, empty_init, ROT270, "Konami (Leijac Corporation license)", "Kamikaze", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 1980, astinvad, kamikaze, kamikaze, astinvad, kamikaze_state, empty_init, ROT270, "Konami (Stern Electronics license)", "Astro Invader", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 1980?, astinvadb, kamikaze, kamikaze, astinvad, kamikaze_state, empty_init, ROT270, "bootleg", "Astro Invader (bootleg)", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 1980?, kosmokil, kamikaze, kamikaze, kamikaze, kamikaze_state, empty_init, ROT270, "bootleg (BEM)", "Kosmo Killer", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // says >BEM< Mi Italy but it looks hacked in, different revision of game tho.
GAME( 1980?, betafrce, kamikaze, kamikaze, kamikaze, kamikaze_state, empty_init, ROT270, "bootleg (Omni)", "Beta Force", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )
GAME( 1979, spcking2, 0, spcking2, spcking2, spcking2_state, empty_init, ROT270, "Konami", "Space King 2", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )