Previous 199869 Revisions Next

r21535 Saturday 2nd March, 2013 at 15:29:28 UTC by Angelo Salese
Identified RLE activation
[src/mame/drivers]gunpey.c

trunk/src/mame/drivers/gunpey.c
r21534r21535
563563   gunpey_irq_check(4);
564564}
565565
566
567
568566WRITE8_MEMBER(gunpey_state::gunpey_blitter_w)
569567{
570568//   UINT16 *blit_buffer = m_blit_buffer;
r21534r21535
586584      int dsty = blit_ram[0x0a]+(blit_ram[0x0b]<<8);
587585      int xsize = blit_ram[0x0c]+1;
588586      int ysize = blit_ram[0x0e]+1;
587      int rle = blit_ram[0x01];
589588//      int color,color_offs;
590589
591//      printf("%04x %04x %04x %04x\n",srcx,srcy,dstx,dsty);
592
593590/*
594591     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"
595592      ,blit_ram[0],blit_ram[1],blit_ram[2],blit_ram[3]
r21534r21535
611608      dstx<<=1;
612609      xsize<<=1;
613610
614      for (int y=0;y<ysize;y++)
611      if(rle)
615612      {
616         for (int x=0;x<xsize;x++)
613         if(rle == 8)
617614         {
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            }
619623         }
624         else
625            printf("unknown RLE mode %02x\n",rle);
620626      }
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      }
621637
622638      machine().scheduler().timer_set(m_maincpu->cycles_to_attotime(xsize*ysize), timer_expired_delegate(FUNC(gunpey_state::blitter_end),this));
623639
r21534r21535
856872
857873   ROM_REGION( 0x400000, "blit_data", 0 )
858874   ROM_LOAD( "gp_rom3.025",  0x00000, 0x400000,  CRC(f2d1f9f0) SHA1(0d20301fd33892074508b9d127456eae80cc3a1c) )
875
859876   ROM_REGION( 0x400000, "vram", ROMREGION_ERASEFF )
860877
861878   ROM_REGION( 0x400000, "ymz", 0 )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team