trunk/src/mame/drivers/gunpey.c
| r21534 | r21535 | |
| 563 | 563 | gunpey_irq_check(4); |
| 564 | 564 | } |
| 565 | 565 | |
| 566 | | |
| 567 | | |
| 568 | 566 | WRITE8_MEMBER(gunpey_state::gunpey_blitter_w) |
| 569 | 567 | { |
| 570 | 568 | // UINT16 *blit_buffer = m_blit_buffer; |
| r21534 | r21535 | |
| 586 | 584 | int dsty = blit_ram[0x0a]+(blit_ram[0x0b]<<8); |
| 587 | 585 | int xsize = blit_ram[0x0c]+1; |
| 588 | 586 | int ysize = blit_ram[0x0e]+1; |
| 587 | int rle = blit_ram[0x01]; |
| 589 | 588 | // int color,color_offs; |
| 590 | 589 | |
| 591 | | // printf("%04x %04x %04x %04x\n",srcx,srcy,dstx,dsty); |
| 592 | | |
| 593 | 590 | /* |
| 594 | 591 | printf("%02x %02x %02x %02x| (X SRC 4: %02x 5: %02x (val %04x)) (Y SRC 6: %02x 7: %02x (val %04x)) | (X DEST 8: %02x 9: %02x (val %04x)) (Y DEST a: %02x b: %02x (val %04x)) | %02x %02x %02x %02x\n" |
| 595 | 592 | ,blit_ram[0],blit_ram[1],blit_ram[2],blit_ram[3] |
| r21534 | r21535 | |
| 611 | 608 | dstx<<=1; |
| 612 | 609 | xsize<<=1; |
| 613 | 610 | |
| 614 | | for (int y=0;y<ysize;y++) |
| 611 | if(rle) |
| 615 | 612 | { |
| 616 | | for (int x=0;x<xsize;x++) |
| 613 | if(rle == 8) |
| 617 | 614 | { |
| 618 | | vram[(((dsty+y)&0x7ff)*0x800)+((dstx+x)&0x7ff)] = blit_rom[(((srcy+y)&0x7ff)*0x800)+((srcx+x)&0x7ff)]; |
| 615 | for (int y=0;y<ysize;y++) |
| 616 | { |
| 617 | for (int x=0;x<xsize;x++) |
| 618 | { |
| 619 | //blit_rom[(((srcy+y)&0x7ff)*0x800)+((srcx+x)&0x7ff)]; |
| 620 | vram[(((dsty+y)&0x7ff)*0x800)+((dstx+x)&0x7ff)] = 0; |
| 621 | } |
| 622 | } |
| 619 | 623 | } |
| 624 | else |
| 625 | printf("unknown RLE mode %02x\n",rle); |
| 620 | 626 | } |
| 627 | else |
| 628 | { |
| 629 | for (int y=0;y<ysize;y++) |
| 630 | { |
| 631 | for (int x=0;x<xsize;x++) |
| 632 | { |
| 633 | vram[(((dsty+y)&0x7ff)*0x800)+((dstx+x)&0x7ff)] = blit_rom[(((srcy+y)&0x7ff)*0x800)+((srcx+x)&0x7ff)]; |
| 634 | } |
| 635 | } |
| 636 | } |
| 621 | 637 | |
| 622 | 638 | machine().scheduler().timer_set(m_maincpu->cycles_to_attotime(xsize*ysize), timer_expired_delegate(FUNC(gunpey_state::blitter_end),this)); |
| 623 | 639 | |
| r21534 | r21535 | |
| 856 | 872 | |
| 857 | 873 | ROM_REGION( 0x400000, "blit_data", 0 ) |
| 858 | 874 | ROM_LOAD( "gp_rom3.025", 0x00000, 0x400000, CRC(f2d1f9f0) SHA1(0d20301fd33892074508b9d127456eae80cc3a1c) ) |
| 875 | |
| 859 | 876 | ROM_REGION( 0x400000, "vram", ROMREGION_ERASEFF ) |
| 860 | 877 | |
| 861 | 878 | ROM_REGION( 0x400000, "ymz", 0 ) |