Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
01652 Gameplay Major Always Mar 27, 2008, 15:21 Apr 6, 2008, 00:47
Tester Kekule View Status Public Platform MAMEUI
Assigned To robiza Resolution Fixed OS Windows XP/Vista 32-bit
Status [?] Resolved Driver mermaid.cpp
Version 0.124 Fixed in Version 0.124u1 Build Normal
Summary 01652: rougien: No collisions.
Description No collision occurs between the player's ship, the enemies and their shots.
Collision occurs only against the walls in the tunnel stage.

It seems like the collision's rules are those used in the tunnel stage, in all the other stages too. For example, the player difficultly shoots down enemies, as if it would follow the tunnel's collisions, where you must shot down enemy ships in different altitudes.
Steps To Reproduce
Additional Information
Flags
Regression Version 0.124
Affected Sets / Systems rougien
Attached Files
 
Relationships
There are no relationship linked to this issue.
Notes
5
User avatar
No.00436
Tafoid
Administrator
Mar 27, 2008, 17:06
0.123u6 seems to be the last version that collisions seemed to work. Confirmed.
User avatar
No.00464
robiza
Developer
Mar 29, 2008, 13:43
it's related to mermaid collision
before 0.124 the collision routine was not implemented and the code returned ever collision on
i will check
User avatar
No.00484
robiza
Developer
Mar 30, 2008, 22:27
the mermaid hardware have 5 type of hw collision (maybe more)
two bits of spriteram is the collision to check

READ8_HANDLER( mermaid_collision_r )
{
/*
        collision register active LOW:

with coll = spriteram[offs + 2] & 0xc0

        Bit 0 - Sprite (coll = 0x40) - Sprite (coll = 0x00)
        Bit 1 - Sprite (coll = 0x40) - Foreground
        Bit 2 - Sprite (coll = 0x40) - Background
        Bit 3 - Sprite (coll = 0x80) - Sprite (coll = 0x00)
        Bit 4
        Bit 5
        Bit 6 - Sprite (coll = 0x40) - Sprite (coll = 0x80)
        Bit 7
*/

int collision = 0xff;

if(coll_bit0) collision &= 0xfe;
if(coll_bit1) collision &= 0xfd;
if(coll_bit2) collision &= 0xfb;
if(coll_bit3) collision &= 0xf7;
if(coll_bit6) collision &= 0xbf;

return collision;
}
User avatar
No.00508
robiza
Developer
Apr 3, 2008, 10:19
fixed in 124u1
User avatar
No.00510
aaron
Developer
Apr 3, 2008, 13:52
Fixed by robiza