mirror of
https://github.com/holub/mame
synced 2025-07-04 01:18:59 +03:00
astrcorp.cpp: dinodino gets to the ROM error screen, too
This commit is contained in:
parent
68ac1b2cf0
commit
eb13e799d0
@ -38,7 +38,6 @@ TODO:
|
|||||||
it is suspected there's a ROM overlay provided by the protection device;
|
it is suspected there's a ROM overlay provided by the protection device;
|
||||||
- winbingo and clones, zulu: these should be at the same state of the two above, but don't show anything on screen;
|
- winbingo and clones, zulu: these should be at the same state of the two above, but don't show anything on screen;
|
||||||
- magibomba, westvent: need a redump of one of the program ROMs;
|
- magibomba, westvent: need a redump of one of the program ROMs;
|
||||||
- dinodino: decryption should be on par with the others but code jumps early into the weeds after RTE.
|
|
||||||
|
|
||||||
*************************************************************************************************************/
|
*************************************************************************************************************/
|
||||||
|
|
||||||
@ -97,6 +96,7 @@ protected:
|
|||||||
// memory pointers
|
// memory pointers
|
||||||
required_shared_ptr<u16> m_spriteram;
|
required_shared_ptr<u16> m_spriteram;
|
||||||
|
|
||||||
|
TIMER_DEVICE_CALLBACK_MEMBER(skilldrp_scanline_cb);
|
||||||
void draw_sprites_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
void draw_sprites_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||||
void eeprom_w(u8 data);
|
void eeprom_w(u8 data);
|
||||||
void showhand_outputs_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
void showhand_outputs_w(offs_t offset, u16 data, u16 mem_mask = ~0);
|
||||||
@ -107,7 +107,6 @@ protected:
|
|||||||
u8 m_screen_enable;
|
u8 m_screen_enable;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
// video-related
|
// video-related
|
||||||
bitmap_ind16 m_bitmap;
|
bitmap_ind16 m_bitmap;
|
||||||
u16 m_sprite_dma;
|
u16 m_sprite_dma;
|
||||||
@ -115,7 +114,6 @@ private:
|
|||||||
output_finder<7> m_lamps;
|
output_finder<7> m_lamps;
|
||||||
|
|
||||||
u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||||
TIMER_DEVICE_CALLBACK_MEMBER(skilldrp_scanline_cb);
|
|
||||||
|
|
||||||
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
|
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||||
|
|
||||||
@ -152,6 +150,7 @@ public:
|
|||||||
{ }
|
{ }
|
||||||
|
|
||||||
void astoneage(machine_config &config);
|
void astoneage(machine_config &config);
|
||||||
|
void dinodino(machine_config &config);
|
||||||
void magibombd(machine_config &config);
|
void magibombd(machine_config &config);
|
||||||
void init_astoneage();
|
void init_astoneage();
|
||||||
void init_dinodino();
|
void init_dinodino();
|
||||||
@ -167,6 +166,7 @@ private:
|
|||||||
|
|
||||||
TIMER_DEVICE_CALLBACK_MEMBER(astoneage_scanline_cb);
|
TIMER_DEVICE_CALLBACK_MEMBER(astoneage_scanline_cb);
|
||||||
void astoneage_map(address_map &map);
|
void astoneage_map(address_map &map);
|
||||||
|
void dinodino_map(address_map &map);
|
||||||
void magibombd_map(address_map &map);
|
void magibombd_map(address_map &map);
|
||||||
void ramdac_map(address_map &map);
|
void ramdac_map(address_map &map);
|
||||||
|
|
||||||
@ -523,6 +523,23 @@ void astoneage_state::astoneage_map(address_map &map)
|
|||||||
map(0xe00001, 0xe00001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
|
map(0xe00001, 0xe00001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void astoneage_state::dinodino_map(address_map &map)
|
||||||
|
{
|
||||||
|
map(0x000000, 0x03ffff).rom().mirror(0x800000); // POST checks for ROM crc at mirror
|
||||||
|
map(0x900000, 0x903fff).ram().share("nvram"); // battery
|
||||||
|
map(0xb00000, 0xb00fff).ram().share("spriteram");
|
||||||
|
map(0xb02000, 0xb02001).w(FUNC(astoneage_state::draw_sprites_w));
|
||||||
|
map(0xb04000, 0xb04001).portr("INPUTS");
|
||||||
|
map(0xb08001, 0xb08001).w(FUNC(astoneage_state::eeprom_w));
|
||||||
|
map(0xb0a000, 0xb0a001).w(FUNC(astoneage_state::skilldrp_outputs_w));
|
||||||
|
map(0xb0e000, 0xb0e001).portr("EEPROMIN");
|
||||||
|
map(0xc80000, 0xc801ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
|
||||||
|
// unknown location
|
||||||
|
// map(0x500001, 0x500001).w(FUNC(astoneage_state::screen_enable_w));
|
||||||
|
map(0x580001, 0x580001).w(FUNC(astoneage_state::oki_bank_w));
|
||||||
|
map(0xe00001, 0xe00001).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write));
|
||||||
|
}
|
||||||
|
|
||||||
void astoneage_state::magibombd_map(address_map &map) // seems to use old style palette instead of ramdac
|
void astoneage_state::magibombd_map(address_map &map) // seems to use old style palette instead of ramdac
|
||||||
{
|
{
|
||||||
map(0x000000, 0x03ffff).rom().mirror(0x800000);
|
map(0x000000, 0x03ffff).rom().mirror(0x800000);
|
||||||
@ -816,6 +833,14 @@ void astoneage_state::magibombd(machine_config &config)
|
|||||||
config.device_remove("ramdac");
|
config.device_remove("ramdac");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void astoneage_state::dinodino(machine_config &config)
|
||||||
|
{
|
||||||
|
magibombd(config);
|
||||||
|
|
||||||
|
m_maincpu->set_addrmap(AS_PROGRAM, &astoneage_state::dinodino_map);
|
||||||
|
TIMER(config.replace(), "scantimer").configure_scanline(FUNC(astoneage_state::skilldrp_scanline_cb), "screen", 0, 1);
|
||||||
|
}
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
ROMs Loading
|
ROMs Loading
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
@ -1857,7 +1882,7 @@ GAME( 2001, magibombc, magibomb, magibombb, magibomb, magibomb_state, init_mag
|
|||||||
GAME( 2001?, magibombe, magibomb, magibombb, magibomb, magibomb_state, init_magibomb, ROT0, "Astro Corp.", "Magic Bomb (Ver. A3.1A)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
GAME( 2001?, magibombe, magibomb, magibombb, magibomb, magibomb_state, init_magibomb, ROT0, "Astro Corp.", "Magic Bomb (Ver. A3.1A)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||||
|
|
||||||
// Heavier encryption
|
// Heavier encryption
|
||||||
GAME( 2005, dinodino, 0, magibombd, skilldrp, astoneage_state, init_dinodino, ROT0, "Astro Corp.", "Dino Dino (Ver. A1.1)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // 13/01.2005 10:59
|
GAME( 2005, dinodino, 0, dinodino, skilldrp, astoneage_state, init_dinodino, ROT0, "Astro Corp.", "Dino Dino (Ver. A1.1)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // 13/01.2005 10:59
|
||||||
GAME( 2005, astoneag, 0, astoneage, skilldrp, astoneage_state, init_astoneage, ROT0, "Astro Corp.", "Stone Age (Astro, Ver. ENG.03.A)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // 2005/02/21
|
GAME( 2005, astoneag, 0, astoneage, skilldrp, astoneage_state, init_astoneage, ROT0, "Astro Corp.", "Stone Age (Astro, Ver. ENG.03.A)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // 2005/02/21
|
||||||
GAME( 2005, magibombd, magibomb, magibombd, skilldrp, astoneage_state, init_magibombd, ROT0, "Astro Corp.", "Magic Bomb (Ver. AA.72D, 14/11/05)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
GAME( 2005, magibombd, magibomb, magibombd, skilldrp, astoneage_state, init_magibombd, ROT0, "Astro Corp.", "Magic Bomb (Ver. AA.72D, 14/11/05)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
|
||||||
GAME( 2006, winbingo, 0, magibombd, skilldrp, astoneage_state, init_winbingo, ROT0, "Astro Corp.", "Win Win Bingo (set 1)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // 15:47:48 Feb 23 2006
|
GAME( 2006, winbingo, 0, magibombd, skilldrp, astoneage_state, init_winbingo, ROT0, "Astro Corp.", "Win Win Bingo (set 1)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // 15:47:48 Feb 23 2006
|
||||||
|
Loading…
Reference in New Issue
Block a user