New clones marked not working

-----------------------------
Magic Bomb (Ver. A3.0) [Ioannis Bampoulas]
Magic Bomb (Ver. AB4.3A, 10/30/01S) [Ioannis Bampoulas]
Magic Bomb (Ver. AB5.3, 20/06/03) [Ioannis Bampoulas]
Magic Bomb (Ver. EB4.0, 05/04/01) [Ioannis Bampoulas]
This commit is contained in:
Ivan Vangelista 2025-01-22 18:25:17 +01:00
parent 5256ac630a
commit 0b1bb5639d
3 changed files with 154 additions and 39 deletions

View File

@ -23,6 +23,7 @@ Year + Game PCB ID CPU Video
01 Magic Bomb (NB4.5) None ASTRO V03 ASTRO V02 pLSI1016 Encrypted
02 Skill Drop GA None JX-1689F1028N ASTRO V02 pLSI1016-60LJ
02? Keno 21 ? ASTRO V102? ASTRO V05 ASTRO F02? not dumped
03 Magic Bomb (AB5.3) CS350P003 ASTRO V102PX-014? ASTRO V01 ASTRO F02 2003-03-31 Encrypted
03 Speed Drop None JX-1689HP ASTRO V05 pLSI1016-60LJ
03 Speed Master (V1.0) M02 AST-V102PX scratched scratched Encrypted
04 Zoo M1.1 ASTRO V102PX-005? ASTRO V06 ASTRO F02 2005-02-18 Encrypted
@ -67,7 +68,7 @@ TODO:
- magibomba, westvent: need a redump of one of the program ROMs.
- magibombg, hacher: need a redump of the sprite ROMs.
- astoneag, dinodino, magibombd, magibombg: exiting from test menu goes haywire (requires a soft-reset with F3).
- magibombg: needs RE of the CPU code and correct EEPROM.
- magibombg,m: need RE of the CPU code and correct EEPROM.
- gostopac: stops with 'S4' message during boot. Needs RE of the CPU code and emulation of its peculiarities.
- monkeyl and clones: need RE of the CPU code, inputs and layout. After reset it initializes.
- speedmst,a,b: need RE of the CPU code, correct EEPROM. Won't boot right now.
@ -304,6 +305,7 @@ public:
void hapfarm(machine_config &config);
void magibombd(machine_config &config);
void magibombg(machine_config &config);
void magibombm(machine_config &config);
void monkeyl(machine_config &config);
void monkeyld(machine_config &config);
void speedmst(machine_config &config);
@ -318,6 +320,7 @@ public:
void init_hapfarm();
void init_magibombd();
void init_magibombg();
void init_magibombm();
void init_monkeyl();
void init_monkeyla();
void init_monkeyld();
@ -363,6 +366,7 @@ private:
void hapfarm_map(address_map &map) ATTR_COLD;
void magibombd_map(address_map &map) ATTR_COLD;
void magibombg_map(address_map &map) ATTR_COLD;
void magibombm_map(address_map &map) ATTR_COLD;
void monkeyl_map(address_map &map) ATTR_COLD;
void speedmst_map(address_map &map) ATTR_COLD;
void winbingo_map(address_map &map) ATTR_COLD;
@ -878,6 +882,23 @@ void zoo_state::magibombg_map(address_map &map)
// map(0x??0001, 0x??0001).w(FUNC(zoo_state::screen_enable_w)); // unknown location
}
void zoo_state::magibombm_map(address_map &map)
{
map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror
map(0x840000, 0x843fff).ram().share("nvram"); // battery
map(0x880000, 0x880fff).ram().share("spriteram");
map(0x882000, 0x882001).nopr().w(FUNC(zoo_state::draw_sprites_w));
map(0x884000, 0x884001).portr("INPUTS");
map(0x886000, 0x8861ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
map(0x888001, 0x888001).w(FUNC(zoo_state::eeprom_w));
map(0x88a000, 0x88a001).w(FUNC(zoo_state::magibomb_outputs_w));
map(0x890000, 0x890001).portr("EEPROM_IN");
map(0x8a0000, 0x8a0001).portr("CPUCODE_IN");
map(0x8b0000, 0x8b0000).w(FUNC(zoo_state::oki_bank_w));
map(0x8c0001, 0x8c0001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
// map(0x??0001, 0x??0001).w(FUNC(zoo_state::screen_enable_w)); // unknown location
}
void zoo_state::winbingo_map(address_map &map)
{
map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM checksum at mirror
@ -1413,6 +1434,12 @@ void zoo_state::magibombg(machine_config &config)
TIMER(config.replace(), "scantimer").configure_scanline(FUNC(zoo_state::irq_2_4_scanline_cb), "screen", 0, 1);
}
void zoo_state::magibombm(machine_config &config)
{
magibombg(config);
m_maincpu->set_addrmap(AS_PROGRAM, &zoo_state::magibombm_map);
}
void zoo_state::winbingo(machine_config &config)
{
zoo(config);
@ -1905,7 +1932,7 @@ ROM_START( magibombg )
ROM_LOAD( "magibombg_cpucode.key", 0x00, 0x02, NO_DUMP ) // TODO: RE correct one
ROM_END
ROM_START( magibombh )
ROM_START( magibombh )// min bet 1 8 16 32, minimum percentage % 91/50%
ROM_REGION( 0x20000, "maincpu", 0 )
ROM_LOAD16_BYTE( "rom1.u21", 0x00000, 0x10000, CRC(9bc790f5) SHA1(f75c6378a0067013556bf6e63cfa28475dfbe8f4) )
ROM_LOAD16_BYTE( "rom2.u20", 0x00001, 0x10000, CRC(b8ff0c2d) SHA1(422ea7578dbe1093ea886621ebefad0cc8e74eb4) )
@ -1954,6 +1981,70 @@ ROM_START( magibombj )
ROM_LOAD( "magibombj_cpucode.key", 0x00, 0x02, CRC(ee980d67) SHA1(f3bdb8a14701ec01828f7c92f18e9bba4c56a4e0) )
ROM_END
ROM_START( magibombk ) // min bet 8 16 32 64, minimum percentage % 91/50%, no Bin Laden GFX
ROM_REGION( 0x20000, "maincpu", 0 )
ROM_LOAD16_BYTE( "1_magic_bomb_a3.0.u21", 0x00000, 0x10000, CRC(c9f3c9da) SHA1(ef23a954e4ec1de7a570561ed00715957aea93e3) )
ROM_LOAD16_BYTE( "2_magic_bomb_a3.0.u20", 0x00001, 0x10000, CRC(18d90060) SHA1(90d5a1d496538b1d28bf676cd3ac3f77c62668f7) )
ROM_REGION( 0x200000, "sprites", 0 )
ROM_LOAD( "gfx", 0x000000, 0x200000, CRC(042f7992) SHA1(2e175994d0b14200a92bdb46e82847b1a1c88265) )
ROM_REGION( 0x80000, "oki", 0 )
ROM_LOAD( "5_magic_bomb_e1.0", 0x00000, 0x80000, CRC(c9edbf1b) SHA1(8e3a96a38aea23950d6add66a5a3d079013bc217) )
ROM_REGION16_LE( 0x80, "eeprom", 0 )
ROM_LOAD( "93c46.u6", 0x00, 0x80, CRC(2e38cfad) SHA1(0f2490ca2ba738723b4c014a4fec4f631167f786) ) // factory default
ROM_END
ROM_START( magibombl ) // MIN BET 1-XXX, MINIMUM % = 91/50%, OSAMA BIN LADEN GFX
ROM_REGION( 0x20000, "maincpu", 0 )
ROM_LOAD16_BYTE( "1_magic_bomb_ab4.3.u21", 0x00000, 0x10000, CRC(0ca10f98) SHA1(ed1e051998893c1dafca8d8d317fcfad2bf4dd58) )
ROM_LOAD16_BYTE( "2_magic_bomb_ab4.3.u20", 0x00001, 0x10000, CRC(b9e9f385) SHA1(ad58215d5afa390a3d6ae6f73b5be2c9905e6eac) )
ROM_REGION( 0x200000, "sprites", 0 )
ROM_LOAD( "gfx", 0x000000, 0x200000, CRC(042f7992) SHA1(2e175994d0b14200a92bdb46e82847b1a1c88265) )
ROM_REGION( 0x80000, "oki", 0 )
ROM_LOAD( "5_magic_bomb_e1.0", 0x00000, 0x80000, CRC(c9edbf1b) SHA1(8e3a96a38aea23950d6add66a5a3d079013bc217) )
ROM_REGION16_LE( 0x80, "eeprom", 0 )
ROM_LOAD( "93c46.u6", 0x00, 0x80, CRC(53bb180a) SHA1(8a2b7ae3abf31a1972864cf96e1ac74ed69fb1ee) ) // factory default
ROM_END
ROM_START( magibombm )
ROM_REGION( 0x40000, "maincpu", 0 )
ROM_LOAD16_BYTE( "2_m._b._ab5.3.u22", 0x00000, 0x10000, CRC(e568681a) SHA1(ec55de2ebfb2b10e1873cc11ec4f47e17dd2fffa) )
ROM_LOAD16_BYTE( "1_m._b._ab5.3.u23", 0x00001, 0x10000, CRC(dfb63c3d) SHA1(0f0bd5cccf5ab08003bfb751355304386682bbd0) )
ROM_FILL( 0x20000, 0x20000, 0xff )
ROM_REGION( 0x200000, "sprites", 0 )
ROM_LOAD( "gfx", 0x000000, 0x200000, BAD_DUMP CRC(042f7992) SHA1(2e175994d0b14200a92bdb46e82847b1a1c88265) ) // not correct for this set
ROM_REGION( 0x80000, "oki", 0 )
ROM_LOAD( "5_m._b._e1.0.u44", 0x00000, 0x80000, CRC(c9edbf1b) SHA1(8e3a96a38aea23950d6add66a5a3d079013bc217) )
ROM_REGION16_LE( 0x80, "eeprom", 0 )
ROM_LOAD( "93c46", 0x00, 0x80, CRC(e717146d) SHA1(beca9d9cece337b05f77881073a4da7ddb9659da) ) // factory default
ROM_REGION16_LE( 0x02, "astro_cpucode", 0 )
ROM_LOAD( "magibombg_cpucode.key", 0x00, 0x02, NO_DUMP ) // TODO: RE correct one
ROM_END
ROM_START( magibombn ) // MIN BET 1-8-16-32 MINIMUM % = 91/50%
ROM_REGION( 0x20000, "maincpu", 0 )
ROM_LOAD16_BYTE( "1_magic_bomb_eb4.0.u21", 0x00000, 0x10000, CRC(8341c745) SHA1(9680d6907eef05e7ce0a45ffcbaf45adf9d47c6d) )
ROM_LOAD16_BYTE( "2_magic_bomb_eb4.0.u20", 0x00001, 0x10000, CRC(0e47f8fa) SHA1(dac2a071b21768482206a5058aac88f943375287) )
ROM_REGION( 0x200000, "sprites", 0 )
ROM_LOAD( "gfx", 0x000000, 0x200000, CRC(042f7992) SHA1(2e175994d0b14200a92bdb46e82847b1a1c88265) )
ROM_REGION( 0x80000, "oki", 0 )
ROM_LOAD( "5_magic_bomb_e1.0", 0x00000, 0x80000, CRC(c9edbf1b) SHA1(8e3a96a38aea23950d6add66a5a3d079013bc217) )
ROM_REGION16_LE( 0x80, "eeprom", 0 )
ROM_LOAD( "93c46.u6", 0x00, 0x80, CRC(59306190) SHA1(c4e6f3070da90c447786e7bc769b37bdc0fa3b77) ) // factory default
ROM_END
/***************************************************************************
@ -2866,6 +2957,22 @@ void zoo_state::init_magibombg()
#endif
}
void zoo_state::init_magibombm()
{
decrypt_rom(v102_px014_table);
#if 1
// TODO: There's more stuff happening for addresses < 0x400...
// override reset vector for now
u16 * const rom = (u16 *)memregion("maincpu")->base();
rom[0x00004/2] = 0x0000;
rom[0x00006/2] = 0x043e;
rom[0x00400/2] = 0x4e75; // overlay!?
rom[0x00f80/2] = 0x4e75; // Mirror ROM word checksum (it expects 0)
#endif
}
const zoo_state::decryption_info zoo_state::v102_px006_table = {
{
{
@ -3360,6 +3467,9 @@ GAMEL( 2001?, magibombe, magibomb, magibombb, magibomb, magibomb_state, init_m
GAMEL( 2002, magibombf, magibomb, magibombf, magibomb, magibomb_state, init_magibomb, ROT0, "Astro Corp.", "Magic Bomb (Ver. NB4.5, 06/14/02S)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING, layout_magibomb )
GAMEL( 2001?, magibombh, magibomb, magibombb, magibomb, magibomb_state, init_magibomb, ROT0, "Astro Corp.", "Magic Bomb (Ver. A4.0A)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING, layout_magibomb )
GAMEL( 2001?, magibombi, magibomb, magibombb, magibomb, magibomb_state, init_magibomb, ROT0, "Astro Corp.", "Magic Bomb (Ver. A3.6A)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING, layout_magibomb )
GAMEL( 2001?, magibombk, magibomb, magibombf, magibomb, magibomb_state, init_magibomb, ROT0, "Astro Corp.", "Magic Bomb (Ver. A3.0)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING, layout_magibomb )
GAMEL( 2001, magibombl, magibomb, magibombb, magibomb, magibomb_state, init_magibomb, ROT0, "Astro Corp.", "Magic Bomb (Ver. AB4.3A, 10/30/01S)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING, layout_magibomb )
GAMEL( 2001, magibombn, magibomb, magibombf, magibomb, magibomb_state, init_magibomb, ROT0, "Astro Corp.", "Magic Bomb (Ver. EB4.0, 05/04/01)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING, layout_magibomb )
// Heavier encryption
GAMEL( 2004, zoo, 0, zoo, magibombd, zoo_state, init_zoo, ROT0, "Astro Corp.", "Zoo (Ver. ZO.02.D, Aug 27 2004)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION, layout_zoo ) // 10:53:44 Aug 27 2004
@ -3374,6 +3484,7 @@ GAME( 2003, monkeyld, monkeyl, monkeyld, magibombg, zoo_state, init_m
GAMEL( 2005, magibombd, magibomb, magibombd, magibombd, zoo_state, init_magibombd, ROT0, "Astro Corp.", "Magic Bomb (Ver. AA.72.D, 14/11/05)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING, layout_magibombb ) // 15/11/05 09:31
GAMEL( 2005, magibombj, magibomb, magibombd, magibombd, zoo_state, init_magibombd, ROT0, "Astro Corp.", "Magic Bomb (Ver. AA.72.C, 25/05/05)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING, layout_magibombb ) // 25/05/05 11:26
GAMEL( 2004, magibombg, magibomb, magibombg, magibombg, zoo_state, init_magibombg, ROT0, "Astro Corp.", "Magic Bomb (Ver. NB6.1, 26/04/04)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING, layout_magibomb ) // 26/04/04. Undumped sprite ROM
GAMEL( 2003, magibombm, magibomb, magibombm, magibombg, zoo_state, init_magibombm, ROT0, "Astro Corp.", "Magic Bomb (Ver. AB5.3, 20/06/03)", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING, layout_magibomb ) // 062003S
GAMEL( 2004, speedmst, 0, speedmst, magibombg, zoo_state, init_speedmst, ROT0, "D2 Enterprises", "Speed Master (Ver. V1.0, Apr 29 2004)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING, layout_magibomb ) // Apr 29 2004 16:29:35
GAMEL( 2003, speedmsta, speedmst, speedmst, magibombg, zoo_state, init_speedmsta, ROT0, "D2 Enterprises", "Speed Master (Ver. V1.0, May 23 2003)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING, layout_magibomb ) // May 23 2003 16:38:02
GAMEL( 2003, speedmstb, speedmst, speedmst, magibombg, zoo_state, init_speedmstb, ROT0, "D2 Enterprises", "Speed Master (Ver. V1.0, Apr 28 2004)", MACHINE_SUPPORTS_SAVE | MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING, layout_magibomb ) // Apr 28 2004 17:21:26

View File

@ -93,7 +93,7 @@ void kaneko_vu002_sprite_device::device_start()
/*
16x16x8 made of 4 8x8x8 blocks arrenged like: 01
16x16x8 made of 4 8x8x8 blocks arranged like: 01
23
*/
static gfx_layout layout_16x16x8 =

View File

@ -1465,42 +1465,46 @@ rcasinoo // (c) 1984 Dyna Electronics (D-2608208A1-1, Sma
rcasino2 // (c) 1984 Dyna Electronics
@source:astrocorp/astrcorp.cpp
astoneag // (c) 2005 Astro Corp.
cptshark // (c) 2006 Astro Corp.
dinodino // (c) 2005 Astro Corp.
gostopac // (c) 2004 Astro Corp.
hacher // (c) 2005 bootleg (Gametron)
hapfarm // (c) 2008 Astro Corp.
luckycoin // (c) 2002 Astro Corp.
magibomb // (c) 2001? Astro Corp.
magibomba // (c) 2002 Astro Corp.
magibombb // (c) 2002 Astro Corp.
magibombc // (c) 2001 Astro Corp.
magibombd // (c) 2005 Astro Corp.
magibombe // (c) 2001? Astro Corp.
magibombf // (c) 2002 Astro Corp.
magibombg // (c) 2004 Astro Corp.
magibombh // (c) 2001? Astro Corp.
magibombi // (c) 2001? Astro Corp.
magibombj // (c) 2005 Astro Corp.
monkeyl // (c) 2005 Astro Corp.
monkeyla // (c) 2004 Astro Corp.
monkeylb // (c) 2005 Astro Corp.
monkeylc // (c) 2007 Astro Corp.
monkeyld // (c) 2003 Astro Corp.
showhanc // (c) 2000 Astro Corp.
showhand // (c) 2000 Astro Corp.
skilldrp // (c) 2002 Astro Corp.
skilldrpa // (c) 2002 Astro Corp.
speeddrp // (c) 2003 Astro Corp.
speedmst // (c) 2004 D2 Enterprises
speedmsta // (c) 2003 D2 Enterprises
speedmstb // (c) 2004 D2 Enterprises
westvent // (c) 2007? Astro Corp.
winbingo // (c) 2006 Astro Corp.
winbingoa // (c) 2006 Astro Corp.
wwitch // (c) 2005 Astro Corp.
zoo // (c) 2004 Astro Corp.
astoneag
cptshark
dinodino
gostopac
hacher
hapfarm
luckycoin
magibomb
magibomba
magibombb
magibombc
magibombd
magibombe
magibombf
magibombg
magibombh
magibombi
magibombj
magibombk
magibombl
magibombm
magibombn
monkeyl
monkeyla
monkeylb
monkeylc
monkeyld
showhanc
showhand
skilldrp
skilldrpa
speeddrp
speedmst
speedmsta
speedmstb
westvent
winbingo
winbingoa
wwitch
zoo
@source:astrocorp/astropc.cpp
blackbd //