src/mess/drivers/supracan.c
| r7287 | r7288 | |
| 139 | 139 | UINT16 tile_bank,pal_bank; |
| 140 | 140 | |
| 141 | 141 | count = (state->tilemap_base_addr[layer]); |
| 142 | | /* FIXME: I guess that this truly controls tilemap paging. */ |
| 143 | | if((state->tilemap_flags[layer] & 0x0f00) == 0xa00) |
| 142 | |
| 143 | switch(state->tilemap_flags[layer] & 0x0f00) |
| 144 | 144 | { |
| 145 | | xsize = 128; |
| 146 | | ysize = 32; |
| 145 | case 0x600: xsize = 64; ysize = 32; break; |
| 146 | case 0xa00: xsize = 128; ysize = 32; break; |
| 147 | case 0xc00: xsize = 64; ysize = 64; break; |
| 148 | default: xsize = 32; ysize = 32; break; |
| 147 | 149 | } |
| 148 | | else |
| 149 | | xsize = ysize = (state->video_flags & 0x100) ? 64 : 32; |
| 150 | 150 | |
| 151 | 151 | scrollx = (state->tilemap_scrollx[layer] & 0x800) ? ((state->tilemap_scrollx[layer] & (xsize*8-1)) - xsize*8) : (state->tilemap_scrollx[layer] & (xsize*8-1)); |
| 152 | 152 | scrolly = (state->tilemap_scrolly[layer] & 0x800) ? ((state->tilemap_scrolly[layer] & (ysize*8-1)) - ysize*8) : (state->tilemap_scrolly[layer] & (ysize*8-1)); |
| r7287 | r7288 | |
| 155 | 155 | |
| 156 | 156 | switch(gfx_mode) |
| 157 | 157 | { |
| 158 | | case 7: region = 2; tile_bank = 0x1c00; pal_bank = 0x38; break; |
| 158 | case 7: region = 2; tile_bank = 0x1c00; pal_bank = 0x00; break; |
| 159 | 159 | case 4: region = 0; tile_bank = 0x400; pal_bank = 0x00; break; |
| 160 | 160 | case 2: region = 1; tile_bank = 0x400; pal_bank = 0x00; break; |
| 161 | 161 | case 0: region = 1; tile_bank = 0; pal_bank = 0x00; break; |
| r7287 | r7288 | |
| 182 | 182 | drawgfx_transpen(bitmap,cliprect,machine->gfx[region],tile,pal,flipx,flipy,(x*8)-scrollx-xsize*8,(y*8)-scrolly,0); |
| 183 | 183 | drawgfx_transpen(bitmap,cliprect,machine->gfx[region],tile,pal,flipx,flipy,(x*8)-scrollx,(y*8)-scrolly-ysize*8,0); |
| 184 | 184 | drawgfx_transpen(bitmap,cliprect,machine->gfx[region],tile,pal,flipx,flipy,(x*8)-scrollx-xsize*8,(y*8)-scrolly-ysize*8,0); |
| 185 | drawgfx_transpen(bitmap,cliprect,machine->gfx[region],tile,pal,flipx,flipy,(x*8)-scrollx+xsize*8,(y*8)-scrolly-ysize*8,0); |
| 186 | drawgfx_transpen(bitmap,cliprect,machine->gfx[region],tile,pal,flipx,flipy,(x*8)-scrollx-xsize*8,(y*8)-scrolly+ysize*8,0); |
| 185 | 187 | } |
| 186 | 188 | count++; |
| 187 | 189 | } |