src/mess/drivers/supracan.c
| r7151 | r7152 | |
| 150 | 150 | drawgfx_transpen(bitmap,cliprect,machine->gfx[region],tile,pal,flipx,flipy,(x*8)-scrollx+size*8,(y*8)-scrolly,0); |
| 151 | 151 | drawgfx_transpen(bitmap,cliprect,machine->gfx[region],tile,pal,flipx,flipy,(x*8)-scrollx,(y*8)-scrolly+size*8,0); |
| 152 | 152 | 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); |
| 153 | 156 | } |
| 154 | 157 | count++; |
| 155 | 158 | } |
| r7151 | r7152 | |
| 168 | 171 | int scrollx,scrolly; |
| 169 | 172 | int region; |
| 170 | 173 | // int gfx_mode; |
| 171 | | int size; |
| 174 | int xsize,ysize; |
| 172 | 175 | UINT16 tile_bank; |
| 173 | 176 | |
| 174 | 177 | switch(roz_mode & 3) //FIXME: fix gfx bpp order |
| r7151 | r7152 | |
| 179 | 182 | case 3: region = 0; break; |
| 180 | 183 | } |
| 181 | 184 | |
| 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 | } |
| 183 | 194 | |
| 184 | 195 | count = (0); |
| 185 | 196 | scrollx = (roz_scrollx >> 8) & 0x1ff; |
| r7151 | r7152 | |
| 189 | 200 | |
| 190 | 201 | tile_bank = (roz_tile_bank & 0xf000) >> 3; //FIXME: check this |
| 191 | 202 | |
| 192 | | for (y=0;y<size;y++) |
| 203 | for (y=0;y<ysize;y++) |
| 193 | 204 | { |
| 194 | | for (x=0;x<size;x++) |
| 205 | for (x=0;x<xsize;x++) |
| 195 | 206 | { |
| 196 | 207 | 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; |
| 201 | 212 | |
| 202 | 213 | 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); |
| 206 | 217 | |
| 207 | 218 | count++; |
| 208 | 219 | } |
| r7151 | r7152 | |
| 468 | 479 | // if(data & 0x2000) |
| 469 | 480 | // acan_dma_regs.source-=2; |
| 470 | 481 | 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 | |
| 471 | 483 | for(i = 0; i <= acan_dma_regs.count[ch]; i++) |
| 472 | 484 | { |
| 473 | 485 | if(data & 0x1000) |