trunk/src/mame/drivers/coolridr.c
| r21180 | r21181 | |
| 289 | 289 | UINT32 m_colorNumber; |
| 290 | 290 | UINT16 m_vCellCount; |
| 291 | 291 | UINT16 m_hCellCount; |
| 292 | | UINT16 m_vPosition; |
| 293 | | UINT16 m_hPosition; |
| 292 | int m_vPosition; |
| 293 | int m_hPosition; |
| 294 | 294 | |
| 295 | 295 | required_device<cpu_device> m_maincpu; |
| 296 | 296 | required_device<cpu_device> m_subcpu; |
| r21180 | r21181 | |
| 343 | 343 | m_test_offs = 0x2000; |
| 344 | 344 | } |
| 345 | 345 | |
| 346 | // might be a page 'map / base' setup somewhere, but it's just used for ingame backgrounds |
| 347 | /* 0x00000 - 0x1ffff = screen 1 */ |
| 348 | /* 0x20000 - 0x3ffff = screen 2 */ |
| 349 | /* 0x40000 - 0xfffff = ? */ |
| 346 | 350 | UINT32 coolridr_state::screen_update_coolridr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int which) |
| 347 | 351 | { |
| 348 | 352 | /* planes seems to basically be at 0x8000 and 0x28000... */ |
| 349 | 353 | gfx_element *gfx = machine().gfx[2]; |
| 350 | 354 | UINT32 count; |
| 351 | 355 | int y,x; |
| 352 | | |
| 356 | int color; |
| 353 | 357 | count = m_test_offs/4; |
| 358 | color = m_color; |
| 354 | 359 | |
| 360 | if (which==1) |
| 361 | { |
| 362 | count += 0x20000/4; |
| 363 | color += 2; |
| 364 | } |
| 365 | |
| 355 | 366 | for (y=0;y<64;y++) |
| 356 | 367 | { |
| 357 | 368 | for (x=0;x<128;x+=2) |
| r21180 | r21181 | |
| 359 | 370 | int tile; |
| 360 | 371 | |
| 361 | 372 | tile = (m_h1_vram[count] & 0x0fff0000) >> 16; |
| 362 | | drawgfx_opaque(bitmap,cliprect,gfx,tile,m_color,0,0,(x+0)*16,y*16); |
| 373 | drawgfx_opaque(bitmap,cliprect,gfx,tile,color,0,0,(x+0)*16,y*16); |
| 363 | 374 | |
| 364 | 375 | tile = (m_h1_vram[count] & 0x00000fff) >> 0; |
| 365 | | drawgfx_opaque(bitmap,cliprect,gfx,tile,m_color,0,0,(x+1)*16,y*16); |
| 376 | drawgfx_opaque(bitmap,cliprect,gfx,tile,color,0,0,(x+1)*16,y*16); |
| 366 | 377 | |
| 367 | 378 | count++; |
| 368 | 379 | } |
| r21180 | r21181 | |
| 541 | 552 | { |
| 542 | 553 | m_vPosition = (data & 0xffff0000) >> 16; |
| 543 | 554 | m_hPosition = (data & 0x0000ffff); |
| 555 | |
| 556 | if (m_hPosition & 0x8000) m_hPosition -= 0x10000; |
| 557 | if (m_vPosition & 0x8000) m_vPosition -= 0x10000; |
| 544 | 558 | } |
| 545 | 559 | else if (m_blitterSerialCount == 11) |
| 546 | 560 | { |
| r21180 | r21181 | |
| 595 | 609 | m_blitterSerialCount++; |
| 596 | 610 | } |
| 597 | 611 | // ?? |
| 612 | else if (m_blitterMode == 0x10) |
| 613 | { |
| 614 | } |
| 598 | 615 | else |
| 599 | 616 | { |
| 600 | 617 | logerror("unk blit mode %02x\n", m_blitterMode); |