Previous 199869 Revisions Next

r21399 Saturday 23rd February, 2013 at 15:10:31 UTC by Angelo Salese
Fixed DMA mirror and removed hack
[src/mame/drivers]coolridr.c

trunk/src/mame/drivers/coolridr.c
r21398r21399
800800   {
801801   //   b1colorNumber = space.machine().rand()&0xfff;
802802   }
803     
804803
804
805805//   if(b1colorNumber > 0x60 || b2colorNumber)
806806//      printf("%08x %08x\n",b1colorNumber,b2colorNumber);
807807
r21398r21399
10901090         // these should be 'cell numbers' (tile numbers) which look up RLE data?
10911091         UINT32 spriteNumber = (m_expanded_10bit_gfx[ (b3romoffset) + (lookupnum<<1) +0 ] << 10) | (m_expanded_10bit_gfx[ (b3romoffset) + (lookupnum<<1) + 1 ]);
10921092         UINT16 tempshape[16*16];
1093         
1093
10941094         int color_offs = (0x7b20 + (b1colorNumber & 0x7ff))*0x40 * 5; /* yes, * 5 */
10951095
10961096         // skip the decoding if it's the same tile as last time!
r21398r21399
15811581            src = (m_framebuffer_vram[(0+dma_index)/4] & 0x03ffffff);
15821582            dst = (m_framebuffer_vram[(4+dma_index)/4]);
15831583            size = m_framebuffer_vram[(8+dma_index)/4];
1584            /*
1585            special: copy palette RAM to palette RAM (otherwise attract mode tries to read from tile data)
1586            */
1587            if((src & 0x03f00000) == 0x03e00000)
1588               src &= ~0x00200000;
1584            /* Note: there are also some reads at 0x3e00000. This tells us that the DMA thing actually mirrors at 0x3c00000 too. */
15891585            if(dst & 0xfff00000)
15901586               printf("unk values to %02x dst %08x\n",cmd,dst);
15911587            dst &= 0x000fffff;
1592            dst |= 0x03c00000;
1588            dst |= 0x03800000;
15931589            is_dma = 1;
15941590            //printf("%08x %08x %08x %02x\n",src,dst,size,cmd);
15951591            dma_index+=0xc;
r21398r21399
16601656   AM_RANGE(0x01000000, 0x01ffffff) AM_ROM AM_REGION("gfx_data",0x0000000)
16611657
16621658   AM_RANGE(0x03000000, 0x030fffff) AM_RAM AM_SHARE("h1_vram")//bg vram TODO: fake region
1663   AM_RANGE(0x03c00000, 0x03c0ffff) AM_RAM_WRITE(sysh1_pal_w) AM_SHARE("paletteram")
1664   AM_RANGE(0x03e00000, 0x03efffff) AM_RAM_WRITE(sysh1_dma_w) AM_SHARE("fb_vram")
1659   AM_RANGE(0x03800000, 0x0380ffff) AM_RAM_WRITE(sysh1_pal_w) AM_SHARE("paletteram")
1660   AM_RANGE(0x03c00000, 0x03c1ffff) AM_MIRROR(0x00200000) AM_RAM_WRITE(sysh1_dma_w) AM_SHARE("fb_vram") /* mostly mapped at 0x03e00000 */
16651661
16661662   AM_RANGE(0x03f00000, 0x03f0ffff) AM_RAM AM_SHARE("share3") /*Communication area RAM*/
16671663   AM_RANGE(0x03f40000, 0x03f4ffff) AM_RAM AM_SHARE("txt_vram")//text tilemap + "lineram"

Previous 199869 Revisions Next


© 1997-2024 The MAME Team