Index: mame/drivers/cninja.c =================================================================== --- mame/drivers/cninja.c (revision 15164) +++ mame/drivers/cninja.c (working copy) @@ -1076,6 +1076,9 @@ MCFG_TIMER_ADD("raster_timer", interrupt_gen) + // to force a partial update every line, fixes clouds in 2nd attract demo + MCFG_TIMER_ADD_SCANLINE("scantimer", deco16_scantimer, "screen", 0, 1) + /* video hardware */ MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM) Index: mame/video/deco16ic.c =================================================================== --- mame/video/deco16ic.c (revision 15164) +++ mame/video/deco16ic.c (working copy) @@ -345,6 +345,13 @@ flags); } +TIMER_DEVICE_CALLBACK( deco16_scantimer ) +{ + int scanline = param; + timer.machine().primary_screen->update_partial(scanline); +} + + /*****************************************************************************************/ /* Index: mame/video/deco16ic.h =================================================================== --- mame/video/deco16ic.h (revision 15164) +++ mame/video/deco16ic.h (working copy) @@ -96,4 +96,6 @@ /* used by cninjabl */ void deco16ic_set_enable( device_t *device, int tmap, int enable ); +TIMER_DEVICE_CALLBACK( deco16_scantimer ); + #endif