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) {