Previous 15994 Revisions Next

r7693 Sunday 4th April, 2010 at 13:07:44 UTC by Angelo Salese
[SUPRACAN]: Fixed sprite wrap-around [jbo_85]
[src/mess/drivers]supracan.c

src/mess/drivers/supracan.c
r7692r7693
1919- Priorities;
2020- Boom Zoo: missing window effect applied on sprites;
2121- Sango Fighter: Missing rowscroll effect;
22- Sango Fighter: sprites doesn't get drawn on the far right of the screen;
2322- Sango Fighter: sprites have some bad gaps of black;
2423- Sango Fighter: Missing black masking on the top-down edges of the screen on gameplay?
2524- Sango Fighter: intro looks bogus, dunno what's supposed to draw...
2625- Super Taiwanese Baseball League: Missing window effect applied on a tilemap;
2726- Super Taiwanese Baseball League: Unemulated paging mode;
28- Super Dragon Force: sprite y masking limit looks wrong;
2927- Super Dragon Force: priority issues with the text;
3028- Super Dragon Force: wrong ysize on character select screen;
3129
r7692r7693
280278   /*
281279        [0]
282280        ---h hhh- ---- ---- Y size
283        ---- ---- yyyy yyyy Y offset
281        ---- ---y yyyy yyyy Y offset
284282        [1]
285283        bbbb ---- ---- ---- sprite offset bank
286284        ---- d--- ---- ---- horizontal direction
287285        ---- ---- ---- -www X size
288286        [2]
289287        zzz- ---- ---- ---- X shrinking
290        ---- ---S xxxx xxxx X offset
288        ---- ---x xxxx xxxx X offset
291289        [3]
292290        oooo oooo oooo oooo sprite pointer
293291    */
294292
295293   for(i=spr_base/2;i<(spr_base+(state->spr_limit*8))/2;i+=4)
296294   {
297      x = supracan_vram[i+2] & 0x00ff;
298      y = supracan_vram[i+0] & 0x00ff;
295      x = supracan_vram[i+2] & 0x01ff;
296      y = supracan_vram[i+0] & 0x01ff;
299297      spr_offs = supracan_vram[i+3] << 2;
300298      bank = (supracan_vram[i+1] & 0xf000) >> 12;
301299      hflip = (supracan_vram[i+1] & 0x0800) ? 1 : 0;
302300      vflip = (supracan_vram[i+1] & 0x0400) ? 1 : 0;
303301
304      /* FIXME: Sango Fighter doesn't like this, check why ... */
305      if(supracan_vram[i+2] & 0x100)
306         x-=256;
302      if(x > cliprect->max_x)
303         x-=0x200;
304      if(y > cliprect->max_y)
305         y-=0x200;
307306
308307      if(supracan_vram[i+3] != 0)
309308      {

Previous 15994 Revisions Next


© 1998-2018 The MESS Team