I fixed some sprite stuff in the Super A'Can driver.
Could someone commit this, please? smile
Code
Index: src/mess/drivers/supracan.c
===================================================================
--- src/mess/drivers/supracan.c	(revision 7688)
+++ src/mess/drivers/supracan.c	(working copy)
@@ -19,13 +19,11 @@
 - Priorities;
 - Boom Zoo: missing window effect applied on sprites;
 - Sango Fighter: Missing rowscroll effect;
-- Sango Fighter: sprites doesn't get drawn on the far right of the screen;
 - Sango Fighter: sprites have some bad gaps of black;
 - Sango Fighter: Missing black masking on the top-down edges of the screen on gameplay?
 - Sango Fighter: intro looks bogus, dunno what's supposed to draw...
 - Super Taiwanese Baseball League: Missing window effect applied on a tilemap;
 - Super Taiwanese Baseball League: Unemulated paging mode;
-- Super Dragon Force: sprite y masking limit looks wrong;
 - Super Dragon Force: priority issues with the text;
 - Super Dragon Force: wrong ysize on character select screen;
 
@@ -280,7 +278,7 @@
 	/*
         [0]
         ---h hhh- ---- ---- Y size
-        ---- ---- yyyy yyyy Y offset
+        ---- ---y yyyy yyyy Y offset
         [1]
         bbbb ---- ---- ---- sprite offset bank
         ---- d--- ---- ---- horizontal direction
@@ -294,16 +292,17 @@
 
 	for(i=spr_base/2;i<(spr_base+(state->spr_limit*8))/2;i+=4)
 	{
-		x = supracan_vram[i+2] & 0x00ff;
-		y = supracan_vram[i+0] & 0x00ff;
+		x = supracan_vram[i+2] & 0x01ff;
+		y = supracan_vram[i+0] & 0x01ff;
 		spr_offs = supracan_vram[i+3] << 2;
 		bank = (supracan_vram[i+1] & 0xf000) >> 12;
 		hflip = (supracan_vram[i+1] & 0x0800) ? 1 : 0;
 		vflip = (supracan_vram[i+1] & 0x0400) ? 1 : 0;
 
-		/* FIXME: Sango Fighter doesn't like this, check why ... */
-		if(supracan_vram[i+2] & 0x100)
-			x-=256;
+		if(x > cliprect->max_x)
+			x-=0x200;
+		if(y > cliprect->max_y)
+			y-=0x200;
 
 		if(supracan_vram[i+3] != 0)
 		{