legionna.cpp: kludge a few weird Godzilla collision checks [Angelo Salese]

This commit is contained in:
angelosa 2018-04-25 02:47:36 +02:00
parent 56b9e79ef0
commit b38b7c9dff
3 changed files with 21 additions and 2 deletions

View File

@ -2641,7 +2641,17 @@ DRIVER_INIT_MEMBER(legionna_state,legiongfx)
descramble_legionnaire_gfx(memregion("gfx5")->base() );
}
DRIVER_INIT_MEMBER(legionna_state,godzilla)
{
uint16_t *ROM = (uint16_t *)memregion("maincpu")->base();
// TODO: some game elements doesn't collide properly, @see seibucop.cpp
ROM[(0xbe0e + 0x0a)/2] = 0xb000;
ROM[(0xbe0e + 0x1a)/2] = 0xb800;
ROM[(0xbb0a + 0x0a)/2] = 0xb000;
ROM[(0xbb0a + 0x1a)/2] = 0xb800;
// patch ROM checksum
ROM[0x3fffe/2] = 0x61ba;
}
GAME( 1992, legionna, 0, legionna, legionna, legionna_state, legiongfx, ROT0, "TAD Corporation", "Legionnaire (World)", 0 )
GAME( 1992, legionnau,legionna, legionna, legionna, legionna_state, legiongfx, ROT0, "TAD Corporation (Fabtek license)", "Legionnaire (US)", 0 )
@ -2653,7 +2663,7 @@ GAME( 1992, heatbrlo, heatbrl, heatbrl, heatbrl, legionna_state, 0, R
GAME( 1992, heatbrlu, heatbrl, heatbrl, heatbrl, legionna_state, 0, ROT0, "TAD Corporation", "Heated Barrel (US)", 0 )
GAME( 1992, heatbrle, heatbrl, heatbrl, heatbrl, legionna_state, 0, ROT0, "TAD Corporation (Electronic Devices license)", "Heated Barrel (Electronic Devices license)", 0 )
GAME( 1993, godzilla, 0, godzilla, godzilla, legionna_state, 0, ROT0, "Banpresto", "Godzilla (Japan)", 0 )
GAME( 1993, godzilla, 0, godzilla, godzilla, legionna_state, godzilla, ROT0, "Banpresto", "Godzilla (Japan)", 0 )
GAME( 1993, grainbow, 0, grainbow, grainbow, legionna_state, 0, ROT0, "Banpresto", "SD Gundam Sangokushi Rainbow Tairiku Senki (Japan)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
GAME( 1993, grainbowk,grainbow, grainbow, grainbow, legionna_state, 0, ROT0, "Banpresto", "SD Gundam Sangokushi Rainbow Tairiku Senki (Korea)", MACHINE_UNEMULATED_PROTECTION | MACHINE_NOT_WORKING )
GAME( 1993, denjinmk, 0, denjinmk, denjinmk, legionna_state, 0, ROT0, "Winkysoft (Banpresto license)", "Denjin Makai", 0 )

View File

@ -70,6 +70,7 @@ public:
DECLARE_WRITE16_MEMBER(palette_swap_w);
DECLARE_DRIVER_INIT(legiongfx);
DECLARE_DRIVER_INIT(godzilla);
DECLARE_DRIVER_INIT(cupsoc_debug);
DECLARE_DRIVER_INIT(cupsoc);
DECLARE_DRIVER_INIT(cupsocs);

View File

@ -45,6 +45,10 @@
- (fixed) level 3+ boss movements looks wrong;
- stage 3 "homing" missiles doesn't seem to like our 6200 hookup here, except it's NOT 6200!?
- (fixed) barrels seen in later levels seems to fail an axis aligned bounding box, not unlike Legionnaire.
Godzilla
- few elements doesn't collide properly (i.e. Super X missiles, Tokyo's tower in stage 1),
Z axis check makes no sense whatsoever.
Kludged to work in per-game driver_init.
SD Gundam
- stage 3 mid-boss still has the sprite garbage bug;
- stage 4: has sprite stuck on bottom-left of screen;
@ -530,6 +534,10 @@ int raiden2cop_device::find_trigger_match(uint16_t triggerval, uint16_t mask)
if (triggerval == 0xa180 || triggerval == 0xa980 || triggerval == 0xb100 || triggerval == 0xb900) /* collisions */
otherlog = 0;
// TODO: disable Z axis in driver code.
if (triggerval == 0xb000 || triggerval == 0xb800)
otherlog = 0;
}
else if (!strcmp(machine().system().name, "grainbow"))
{