Previous 15994 Revisions Next

r7152 Saturday 23rd January, 2010 at 18:20:28 UTC by Angelo Salese
[Super A'Can]: Some gfx improvements specific for the Baseball game
[src/mess/drivers]supracan.c

src/mess/drivers/supracan.c
r7151r7152
150150            drawgfx_transpen(bitmap,cliprect,machine->gfx[region],tile,pal,flipx,flipy,(x*8)-scrollx+size*8,(y*8)-scrolly,0);
151151            drawgfx_transpen(bitmap,cliprect,machine->gfx[region],tile,pal,flipx,flipy,(x*8)-scrollx,(y*8)-scrolly+size*8,0);
152152            drawgfx_transpen(bitmap,cliprect,machine->gfx[region],tile,pal,flipx,flipy,(x*8)-scrollx+size*8,(y*8)-scrolly+size*8,0);
153            drawgfx_transpen(bitmap,cliprect,machine->gfx[region],tile,pal,flipx,flipy,(x*8)-scrollx-size*8,(y*8)-scrolly,0);
154            drawgfx_transpen(bitmap,cliprect,machine->gfx[region],tile,pal,flipx,flipy,(x*8)-scrollx,(y*8)-scrolly-size*8,0);
155            drawgfx_transpen(bitmap,cliprect,machine->gfx[region],tile,pal,flipx,flipy,(x*8)-scrollx-size*8,(y*8)-scrolly-size*8,0);
153156         }
154157         count++;
155158      }
r7151r7152
168171   int scrollx,scrolly;
169172   int region;
170173//   int gfx_mode;
171   int size;
174   int xsize,ysize;
172175   UINT16 tile_bank;
173176
174177   switch(roz_mode & 3) //FIXME: fix gfx bpp order
r7151r7152
179182      case 3: region = 0; break;
180183   }
181184
182   size = roz_mode & 0x200 ? 64 : 32;
185   if((roz_mode & 0xe00) == 0xc00)
186   {
187      xsize = 64;
188      ysize = 64;
189   }
190   else
191   {
192      xsize = ysize = roz_mode & 0x200 ? 64 : 32;
193   }
183194
184195   count = (0);
185196   scrollx = (roz_scrollx >> 8) & 0x1ff;
r7151r7152
189200
190201    tile_bank = (roz_tile_bank & 0xf000) >> 3; //FIXME: check this
191202
192   for (y=0;y<size;y++)
203   for (y=0;y<ysize;y++)
193204   {
194      for (x=0;x<size;x++)
205      for (x=0;x<xsize;x++)
195206      {
196207         int tile, flipx, flipy, pal;
197         tile = (supracan_vram[roz_base_addr | (count & 0x7ff)] & 0x03ff) | tile_bank;
198         flipx = (supracan_vram[roz_base_addr | (count & 0x7ff)] & 0x0800) ? 1 : 0;
199         flipy = (supracan_vram[roz_base_addr | (count & 0x7ff)] & 0x0400) ? 1 : 0;
200         pal = (supracan_vram[roz_base_addr | (count & 0x7ff)] & 0xf000) >> 12;
208         tile = (supracan_vram[roz_base_addr | (count & 0xfff)] & 0x03ff) | tile_bank;
209         flipx = (supracan_vram[roz_base_addr | (count & 0xfff)] & 0x0800) ? 1 : 0;
210         flipy = (supracan_vram[roz_base_addr | (count & 0xfff)] & 0x0400) ? 1 : 0;
211         pal = (supracan_vram[roz_base_addr | (count & 0xfff)] & 0xf000) >> 12;
201212
202213         drawgfx_transpen(bitmap,cliprect,machine->gfx[region],tile,pal,flipx,flipy,(x*8)-scrollx,(y*8)-scrolly,0);
203         drawgfx_transpen(bitmap,cliprect,machine->gfx[region],tile,pal,flipx,flipy,(x*8)-scrollx+size*8,(y*8)-scrolly,0);
204         drawgfx_transpen(bitmap,cliprect,machine->gfx[region],tile,pal,flipx,flipy,(x*8)-scrollx,(y*8)-scrolly+size*8,0);
205         drawgfx_transpen(bitmap,cliprect,machine->gfx[region],tile,pal,flipx,flipy,(x*8)-scrollx+size*8,(y*8)-scrolly+size*8,0);
214         drawgfx_transpen(bitmap,cliprect,machine->gfx[region],tile,pal,flipx,flipy,(x*8)-scrollx+xsize*8,(y*8)-scrolly,0);
215         drawgfx_transpen(bitmap,cliprect,machine->gfx[region],tile,pal,flipx,flipy,(x*8)-scrollx,(y*8)-scrolly+ysize*8,0);
216         drawgfx_transpen(bitmap,cliprect,machine->gfx[region],tile,pal,flipx,flipy,(x*8)-scrollx+xsize*8,(y*8)-scrolly+ysize*8,0);
206217
207218         count++;
208219      }
r7151r7152
468479//            if(data & 0x2000)
469480//               acan_dma_regs.source-=2;
470481            verboselog(space->machine, 0, "supracan_dma_w: Kicking off a DMA from %08x to %08x, %d bytes (%04x)\n", acan_dma_regs.source[ch], acan_dma_regs.dest[ch], acan_dma_regs.count[ch] + 1, data);
482
471483            for(i = 0; i <= acan_dma_regs.count[ch]; i++)
472484            {
473485               if(data & 0x1000)

Previous 15994 Revisions Next


© 1998-2018 The MESS Team