mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
New clones marked as NOT_WORKING
-------------------------------- Magic Bomb (Ver. L3.5S) [Cristiano MDQ] Magic Bomb (Ver. AB4.5A, 07/10/02) [Cristiano MDQ] Magic Bomb (Ver. AB4.2, 11/10/01) [Cristiano MDQ] Magic Bomb (Ver. A3.1A) [Cristiano MDQ] Magic Bomb (Ver. AA.72D, 14/11/05) [Cristiano MDQ]
This commit is contained in:
parent
3e3c1b07e2
commit
b21427b254
@ -68,6 +68,7 @@ public:
|
||||
void showhand(machine_config &config);
|
||||
void speeddrp(machine_config &config);
|
||||
void showhanc(machine_config &config);
|
||||
void magibomb(machine_config &config);
|
||||
|
||||
void init_astoneag();
|
||||
void init_magibomb();
|
||||
@ -127,6 +128,7 @@ private:
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(skilldrp_scanline);
|
||||
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
void magibomb_map(address_map &map);
|
||||
void showhanc_map(address_map &map);
|
||||
void showhand_map(address_map &map);
|
||||
void skilldrp_map(address_map &map);
|
||||
@ -409,6 +411,24 @@ void astrocorp_state::speeddrp_map(address_map &map)
|
||||
map(0x600001, 0x600001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
|
||||
}
|
||||
|
||||
void astrocorp_state::magibomb_map(address_map &map) // TODO: check everything, the ranges are currently supposed correct for magibombb
|
||||
{
|
||||
map(0x000000, 0x01ffff).rom();
|
||||
map(0x050000, 0x053fff).ram().share("nvram"); // battery
|
||||
map(0x060000, 0x060fff).ram().share("spriteram");
|
||||
map(0x062000, 0x062001).w(FUNC(astrocorp_state::astrocorp_draw_sprites_w));
|
||||
map(0x064000, 0x064001).portr("INPUTS");
|
||||
map(0x068000, 0x068001).w(FUNC(astrocorp_state::astrocorp_eeprom_w));
|
||||
map(0x06a000, 0x06a001).w(FUNC(astrocorp_state::skilldrp_outputs_w));
|
||||
map(0x06e000, 0x06e001).portr("EEPROMIN");
|
||||
map(0x0b0000, 0x0b01ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
|
||||
|
||||
// tbd
|
||||
map(0xe00000, 0xe00001).w(FUNC(astrocorp_state::astrocorp_screen_enable_w));
|
||||
map(0xe80000, 0xe80001).w(FUNC(astrocorp_state::skilldrp_sound_bank_w));
|
||||
map(0xf00001, 0xf00001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
Input Ports
|
||||
***************************************************************************/
|
||||
@ -633,6 +653,11 @@ void astrocorp_state::speeddrp(machine_config &config)
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &astrocorp_state::speeddrp_map);
|
||||
}
|
||||
|
||||
void astrocorp_state::magibomb(machine_config &config)
|
||||
{
|
||||
skilldrp(config);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &astrocorp_state::magibomb_map);
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
ROMs Loading
|
||||
@ -880,6 +905,18 @@ ROM_END
|
||||
***************************************************************************/
|
||||
|
||||
ROM_START( magibomb )
|
||||
ROM_REGION( 0x20000, "maincpu", 0 )
|
||||
ROM_LOAD16_BYTE( "rom1", 0x00000, 0x10000, CRC(f74596fe) SHA1(8311ca73c975bda6846e1ba958fcf62655a111d0) )
|
||||
ROM_LOAD16_BYTE( "rom2", 0x00001, 0x10000, CRC(ca0b693d) SHA1(27fc7db9d3f19d6dcb8756e4fc9c3839116977fe) )
|
||||
|
||||
ROM_REGION( 0x200000, "sprites", 0 )
|
||||
ROM_LOAD( "gfx", 0x000000, 0x200000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x80000, "oki", 0 )
|
||||
ROM_LOAD( "rom5", 0x00000, 0x80000, CRC(c9edbf1b) SHA1(8e3a96a38aea23950d6add66a5a3d079013bc217) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( magibomba )
|
||||
ROM_REGION( 0x20000, "maincpu", 0 )
|
||||
ROM_LOAD16_BYTE( "rom1", 0x00000, 0x10000, BAD_DUMP CRC(f01ab462) SHA1(5c9052f66da166f926910562a6a8aea5397549db) ) // BADADDR xxxxxx-xxxxxxxxx
|
||||
ROM_LOAD16_BYTE( "rom2", 0x00001, 0x10000, CRC(ac3224ef) SHA1(810117dc89369eee0f4f5b6744cfbf0cb70ccce6) )
|
||||
@ -891,6 +928,54 @@ ROM_START( magibomb )
|
||||
ROM_LOAD( "rom5", 0x00000, 0x80000, CRC(f7d14414) SHA1(af932df09aa970ec05cc12e590e152e7288c1f5c) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( magibombb )
|
||||
ROM_REGION( 0x20000, "maincpu", 0 )
|
||||
ROM_LOAD16_BYTE( "rom1", 0x00000, 0x10000, CRC(ac69612f) SHA1(0f1f3a05f90d4c0e65bc2b68c6510d2aa95f68c4) )
|
||||
ROM_LOAD16_BYTE( "rom2", 0x00001, 0x10000, CRC(55ea8303) SHA1(974bc026f0b284ffad50d3e441613952db768e04) )
|
||||
|
||||
ROM_REGION( 0x200000, "sprites", 0 )
|
||||
ROM_LOAD( "gfx", 0x000000, 0x200000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x80000, "oki", 0 )
|
||||
ROM_LOAD( "rom5", 0x00000, 0x80000, CRC(c9edbf1b) SHA1(8e3a96a38aea23950d6add66a5a3d079013bc217) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( magibombc )
|
||||
ROM_REGION( 0x20000, "maincpu", 0 )
|
||||
ROM_LOAD16_BYTE( "rom1", 0x00000, 0x10000, CRC(e388b79d) SHA1(ca3a6ffee39f3ac629f29fdd8ee98ddcf0787f9e) )
|
||||
ROM_LOAD16_BYTE( "rom2", 0x00001, 0x10000, CRC(3d2abaa5) SHA1(8a39abda8e52a0d8a8d0c54a45b72a7d9f624e84) )
|
||||
|
||||
ROM_REGION( 0x200000, "sprites", 0 )
|
||||
ROM_LOAD( "gfx", 0x000000, 0x200000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x80000, "oki", 0 )
|
||||
ROM_LOAD( "rom5", 0x00000, 0x80000, CRC(c9edbf1b) SHA1(8e3a96a38aea23950d6add66a5a3d079013bc217) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( magibombd )
|
||||
ROM_REGION( 0x20000, "maincpu", 0 )
|
||||
ROM_LOAD16_BYTE( "rom1", 0x00000, 0x10000, CRC(91883755) SHA1(bc6dd5cac352f169beac790825e86a2ecb45af05) )
|
||||
ROM_LOAD16_BYTE( "rom2", 0x00001, 0x10000, CRC(b55bc270) SHA1(7486018b87708cf5b653c27b1ed824e441c169b7) )
|
||||
|
||||
ROM_REGION( 0x200000, "sprites", 0 )
|
||||
ROM_LOAD( "gfx", 0x000000, 0x200000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x80000, "oki", 0 )
|
||||
ROM_LOAD( "rom5", 0x00000, 0x80000, CRC(c9edbf1b) SHA1(8e3a96a38aea23950d6add66a5a3d079013bc217) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( magibombe )
|
||||
ROM_REGION( 0x20000, "maincpu", 0 )
|
||||
ROM_LOAD16_BYTE( "rom1", 0x00000, 0x10000, CRC(d564fac4) SHA1(ac236a5760be6c4f518a8eb2af708f433e0fb899) )
|
||||
ROM_LOAD16_BYTE( "rom2", 0x00001, 0x10000, CRC(ee212839) SHA1(e6175b27f3c510e98bc85e04be2fdde6e0289dfb) )
|
||||
|
||||
ROM_REGION( 0x200000, "sprites", 0 )
|
||||
ROM_LOAD( "gfx", 0x000000, 0x200000, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x80000, "oki", 0 )
|
||||
ROM_LOAD( "rom5", 0x00000, 0x80000, CRC(c9edbf1b) SHA1(8e3a96a38aea23950d6add66a5a3d079013bc217) )
|
||||
ROM_END
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Western Venture
|
||||
@ -1361,26 +1446,53 @@ void astrocorp_state::init_astoneag()
|
||||
decrypt_rom(astoneag_table);
|
||||
}
|
||||
|
||||
void astrocorp_state::init_magibomb()
|
||||
void astrocorp_state::init_magibomb() // to be checked, game still doesn't work. Might be missing something here or on the emulation side
|
||||
{
|
||||
uint8_t *rom = memregion("maincpu")->base();
|
||||
for (int i = 1; i < 0x20000; i += 2)
|
||||
// decrypt data
|
||||
u8 *rom = memregion("maincpu")->base();
|
||||
|
||||
for (u32 i = 1; i < 0x20000; i += 2)
|
||||
{
|
||||
rom[i] = bitswap<8>(rom[i], 6, 7, 5, 0, 4, 1, 3, 2);
|
||||
}
|
||||
|
||||
// descramble addresses
|
||||
std::unique_ptr<u8[]> tmp = std::make_unique<u8[]>(0x20000);
|
||||
|
||||
for(u32 i = 0; i < 0x20000; i++)
|
||||
{
|
||||
tmp[i] = rom[i];
|
||||
}
|
||||
|
||||
for(u32 i = 0; i < 0x20000; i++)
|
||||
{
|
||||
u32 dest =
|
||||
(i & 0xffffe0ff) |
|
||||
(BIT(i, 8) << 12) |
|
||||
(BIT(i, 12) << 11) |
|
||||
(BIT(i, 9) << 10) |
|
||||
(BIT(i, 11) << 9) |
|
||||
(BIT(i, 10) << 8);
|
||||
rom[dest] = tmp[i];
|
||||
}
|
||||
}
|
||||
|
||||
GAME( 2000, showhand, 0, showhand, showhand, astrocorp_state, init_showhand, ROT0, "Astro Corp.", "Show Hand (Italy)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 2000, showhanc, showhand, showhanc, showhanc, astrocorp_state, init_showhanc, ROT0, "Astro Corp.", "Wang Pai Dui Jue (China)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 2002, skilldrp, 0, skilldrp, skilldrp, astrocorp_state, empty_init, ROT0, "Astro Corp.", "Skill Drop Georgia (Ver. G1.0S)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 2003, speeddrp, 0, speeddrp, skilldrp, astrocorp_state, empty_init, ROT0, "Astro Corp.", "Speed Drop (Ver. 1.06)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 200?, magibomb, 0, speeddrp, skilldrp, astrocorp_state, init_magibomb, ROT0, "Astro Corp.", "Magic Bomb (Ver. BR4.4)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // one bad program ROM, no gfx dumps, less complex looking encryption
|
||||
GAME( 2000, showhand, 0, showhand, showhand, astrocorp_state, init_showhand, ROT0, "Astro Corp.", "Show Hand (Italy)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 2000, showhanc, showhand, showhanc, showhanc, astrocorp_state, init_showhanc, ROT0, "Astro Corp.", "Wang Pai Dui Jue (China)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 2001?, magibomb, 0, magibomb, skilldrp, astrocorp_state, init_magibomb, ROT0, "Astro Corp.", "Magic Bomb (Ver. L3.5S)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )// no gfx dumps, less complex encryption
|
||||
GAME( 2002, magibomba, magibomb, magibomb, skilldrp, astrocorp_state, init_magibomb, ROT0, "Astro Corp.", "Magic Bomb (Ver. BR4.4, 04/19/02)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )// one bad program ROM, no gfx dumps, less complex encryption
|
||||
GAME( 2002, magibombb, magibomb, magibomb, skilldrp, astrocorp_state, init_magibomb, ROT0, "Astro Corp.", "Magic Bomb (Ver. AB4.5A, 07/10/02)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )// no gfx dumps, less complex encryption
|
||||
GAME( 2001, magibombc, magibomb, magibomb, skilldrp, astrocorp_state, init_magibomb, ROT0, "Astro Corp.", "Magic Bomb (Ver. AB4.2, 11/10/01)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )// no gfx dumps, less complex encryption
|
||||
GAME( 2001?, magibombe, magibomb, magibomb, skilldrp, astrocorp_state, init_magibomb, ROT0, "Astro Corp.", "Magic Bomb (Ver. A3.1A)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )// no gfx dumps, less complex encryption
|
||||
GAME( 2002, skilldrp, 0, skilldrp, skilldrp, astrocorp_state, empty_init, ROT0, "Astro Corp.", "Skill Drop Georgia (Ver. G1.0S)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 2003, speeddrp, 0, speeddrp, skilldrp, astrocorp_state, empty_init, ROT0, "Astro Corp.", "Speed Drop (Ver. 1.06)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
// Encrypted games (not working):
|
||||
GAME( 2003?, dinodino, 0, skilldrp, skilldrp, astrocorp_state, empty_init, ROT0, "Astro Corp.", "Dino Dino", MACHINE_NOT_WORKING )
|
||||
GAME( 2004?, astoneag, 0, skilldrp, skilldrp, astrocorp_state, init_astoneag, ROT0, "Astro Corp.", "Stone Age (Astro, Ver. ENG.03.A)", MACHINE_NOT_WORKING )
|
||||
GAME( 2005?, winbingo, 0, skilldrp, skilldrp, astrocorp_state, empty_init, ROT0, "Astro Corp.", "Win Win Bingo (Feb 23 2006)", MACHINE_NOT_WORKING )
|
||||
GAME( 2005?, winbingoa, winbingo, skilldrp, skilldrp, astrocorp_state, empty_init, ROT0, "Astro Corp.", "Win Win Bingo (May 11 2006)", MACHINE_NOT_WORKING )
|
||||
GAME( 2005?, hacher, winbingo, skilldrp, skilldrp, astrocorp_state, empty_init, ROT0, "bootleg (Gametron)", "Hacher (hack of Win Win Bingo)", MACHINE_NOT_WORKING ) // based on a Mar 10 2005 version
|
||||
GAME( 2005?, zoo, 0, showhand, showhand, astrocorp_state, empty_init, ROT0, "Astro Corp.", "Zoo (Ver. ZO.02.D)", MACHINE_NOT_WORKING )
|
||||
GAME( 2007?, westvent, 0, skilldrp, skilldrp, astrocorp_state, empty_init, ROT0, "Astro Corp.", "Western Venture (Ver. AA.02.D)", MACHINE_NOT_WORKING )
|
||||
GAME( 2003?, dinodino, 0, skilldrp, skilldrp, astrocorp_state, empty_init, ROT0, "Astro Corp.", "Dino Dino", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 2004?, astoneag, 0, skilldrp, skilldrp, astrocorp_state, init_astoneag, ROT0, "Astro Corp.", "Stone Age (Astro, Ver. ENG.03.A)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 2005, magibombd, magibomb, magibomb, skilldrp, astrocorp_state, empty_init, ROT0, "Astro Corp.", "Magic Bomb (Ver. AA.72D, 14/11/05)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // and no gfx dump
|
||||
GAME( 2005?, winbingo, 0, skilldrp, skilldrp, astrocorp_state, empty_init, ROT0, "Astro Corp.", "Win Win Bingo (set 1)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 2005?, winbingoa, winbingo, skilldrp, skilldrp, astrocorp_state, empty_init, ROT0, "Astro Corp.", "Win Win Bingo (set 2)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 2005?, hacher, winbingo, skilldrp, skilldrp, astrocorp_state, empty_init, ROT0, "bootleg (Gametron)", "Hacher (hack of Win Win Bingo)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 2005?, zoo, 0, showhand, showhand, astrocorp_state, empty_init, ROT0, "Astro Corp.", "Zoo (Ver. ZO.02.D)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 2007?, westvent, 0, skilldrp, skilldrp, astrocorp_state, empty_init, ROT0, "Astro Corp.", "Western Venture (Ver. AA.02.D)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -2358,6 +2358,12 @@ as_wwe //
|
||||
astoneag // (c) 2004? Astro Corp.
|
||||
dinodino // (c) 2003? Astro Corp.
|
||||
hacher // (c) 2005? bootleg (Gametron)
|
||||
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.
|
||||
showhanc // (c) 2000 Astro Corp.
|
||||
showhand // (c) 2000 Astro Corp.
|
||||
skilldrp // (c) 2002 Astro Corp.
|
||||
@ -2366,7 +2372,6 @@ westvent // (c) 2007? Astro Corp.
|
||||
winbingo // (c) 2005? Astro Corp.
|
||||
winbingoa // (c) 2005? Astro Corp.
|
||||
zoo // (c) 2005? Astro Corp.
|
||||
magibomb
|
||||
|
||||
@source:astrocde.cpp
|
||||
demndrgn // (c) 1982 Bally Midway
|
||||
|
Loading…
Reference in New Issue
Block a user