trunk/src/mame/video/seibuspi.c
| r23899 | r23900 | |
| 293 | 293 | y2 = cliprect.max_y; |
| 294 | 294 | } |
| 295 | 295 | |
| 296 | | if (gfx->elements() <= 0x10000) |
| 297 | | { |
| 298 | | code &= 0xffff; |
| 299 | | } |
| 300 | | |
| 301 | 296 | dp = gfx->get_data(code); |
| 302 | 297 | |
| 303 | 298 | // draw |
| r23899 | r23900 | |
| 338 | 333 | int priority; |
| 339 | 334 | int x1, y1; |
| 340 | 335 | gfx_element *gfx = machine().gfx[2]; |
| 336 | const int gfx_high_mask = (gfx->elements() > 0x10000) ? 0x10000 : 0; |
| 341 | 337 | |
| 342 | 338 | static const int sprite_xtable[2][8] = |
| 343 | 339 | { |
| r23899 | r23900 | |
| 370 | 366 | -------- -------- ---x---- -------- tile_num high (only on RISE10/11 chip) |
| 371 | 367 | -------- -------- ------xx xxxxxxxx xpos |
| 372 | 368 | */ |
| 373 | | tile_num = (m_sprite_ram[a + 0] >> 16 & 0xffff) | (m_sprite_ram[a + 1] << 4 & 0x10000); |
| 369 | tile_num = m_sprite_ram[a + 0] >> 16 & 0xffff; |
| 374 | 370 | if (tile_num == 0) |
| 375 | 371 | continue; |
| 376 | 372 | |
| r23899 | r23900 | |
| 385 | 381 | if (ypos & 0x100) |
| 386 | 382 | ypos |= 0xfe00; |
| 387 | 383 | color = m_sprite_ram[a + 0] & 0x3f; |
| 384 | tile_num |= m_sprite_ram[a + 1] << 4 & gfx_high_mask; |
| 388 | 385 | |
| 389 | 386 | width = (m_sprite_ram[a + 0] >> 8 & 0x7) + 1; |
| 390 | 387 | height = (m_sprite_ram[a + 0] >> 12 & 0x7) + 1; |