Mermaid (Rock-ola 1982) fix =========================== * The address $C01b stored the wheater data. Mermaid sometime stored wrong values to this address and crashed. Correct data are: 0x00 => Normal wind 0x20 => Storm 0x40 => The flow 0x60 => Hurricane 0x80 => End of a level/Next area * The driver needs also Sprite-to-Sprite collision for the fire in level 2 or whales in the later levels. This is only for example something for Kale. He submitted in November 2002 a fix for the collision detection. SOURCE: drivers\mermaid.c Add after static WRITE8_HANDLER( mermaid_AY8910_control_port_w ): static READ8_HANDLER( mermaid_protection_r ) { UINT8 *RAM = memory_region(REGION_CPU1); if ((RAM[0xc01b]==0x02 || 0x08 || 0x10) && (activecpu_get_pc()==0x4007)) RAM[0xc01b] = 0x00; /* Correct values are: 0x00 = Normal weather 0x20 = Storm 0x40 = The flow 0x60 = Hurricane 0x80 = Level end */ return RAM[0xc01b]; } Add after ROM_START( rougien ): static DRIVER_INIT( mermaid ) { memory_install_read8_handler(0, ADDRESS_SPACE_PROGRAM, 0xc01b, 0xc01b, 0, 0, mermaid_protection_r); } Exchanged GAME( 1982, mermaid...) with GAME( 1982, mermaid, 0, mermaid, mermaid, mermaid, ROT0, "[Sanritsu] Rock-ola", "Mermaid" ) NOTE for Haze: The comment in src\vidhrdw\mermaid.c line 215 can be deleted. The selected sprites in Mermaid and Rougien are in all levels correct. (c) 2004 M.A.S.H.