Previous 199869 Revisions Next

r21194 Tuesday 19th February, 2013 at 22:29:41 UTC by David Haywood
palettes are written by the blitter as well, at least sometimes.  this makes things worse in some cases, but you can see it's needed because the fades between scenes are done with it, I think DMA hookup needs fixing to match it, and possibly a palette select adding.
[src/mame/drivers]coolridr.c

trunk/src/mame/drivers/coolridr.c
r21193r21194
301301   UINT16 m_vZoom;
302302   UINT16 m_hZoom;
303303
304
304305   required_device<cpu_device> m_maincpu;
305306   required_device<cpu_device> m_subcpu;
306307   required_device<cpu_device> m_soundcpu;
r21193r21194
382383   if (which==1)
383384   {
384385      count += 0x20000/4;
385      color += 2;
386      color += 0x5e;
386387   }
388   else
389   {
390      color += 0x4e;
391   }
387392
388393   for (y=0;y<64;y++)
389394   {
r21193r21194
417422
418423UINT32 coolridr_state::screen_update_coolridr1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
419424{
420
425#if 0
421426   if(machine().input().code_pressed(KEYCODE_Z))
422427      m_test_offs+=4;
423428
r21193r21194
445450   if(m_test_offs > 0x100000*4)
446451      m_test_offs = 0;
447452
453#endif
454
448455//   popmessage("%08x %04x",m_test_offs,m_color);
449456
450457   return screen_update_coolridr(screen,bitmap,cliprect,0);
r21193r21194
533540         }
534541         else if (m_blitterMode == 0xe0)
535542         {
536            // uploads 16-bit values, a palette maybe?
543            // uploads palettes...
544            // does NOT upload the palette for the WDUD screen when set to US mode this way..
537545            m_blitterSerialCount = 0;
546            m_textOffset = (data & 0x0000ffff)>>2; // it's a byte offset
547
548         //   printf("set e0 %08x\n", data);
549
538550         }
539551         else
540552         {
r21193r21194
746758         }
747759         else if (m_blitterMode == 0xe0) // when going into game (in units of 0x10 writes)
748760         {
761            // it writes the palette for the bgs here, with fade effects?
762            //  is this the only way for the tile colours to be actually used, or does this just go to memory somewhere too?
749763            //printf("blit mode %02x %02x %08x\n", m_blitterMode, m_blitterSerialCount,  data);
750            m_blitterSerialCount++;
764           
765            sysh1_pal_w(space,m_textOffset,data,0xffffffff);
766            m_textOffset++;
767
751768         }
752769         else
753770         {
r21193r21194
762779WRITE32_MEMBER(coolridr_state::sysh1_pal_w)
763780{
764781   int r,g,b;
765   COMBINE_DATA(&m_generic_paletteram_32[offset]);
766782
767   r = ((m_generic_paletteram_32[offset] & 0x00007c00) >> 10);
768   g = ((m_generic_paletteram_32[offset] & 0x000003e0) >> 5);
769   b = ((m_generic_paletteram_32[offset] & 0x0000001f) >> 0);
783   r = ((data & 0x00007c00) >> 10);
784   g = ((data & 0x000003e0) >> 5);
785   b = ((data & 0x0000001f) >> 0);
770786   palette_set_color_rgb(machine(),(offset*2)+1,pal5bit(r),pal5bit(g),pal5bit(b));
771   r = ((m_generic_paletteram_32[offset] & 0x7c000000) >> 26);
772   g = ((m_generic_paletteram_32[offset] & 0x03e00000) >> 21);
773   b = ((m_generic_paletteram_32[offset] & 0x001f0000) >> 16);
787   r = ((data & 0x7c000000) >> 26);
788   g = ((data & 0x03e00000) >> 21);
789   b = ((data & 0x001f0000) >> 16);
774790   palette_set_color_rgb(machine(),offset*2,pal5bit(r),pal5bit(g),pal5bit(b));
775791}
776792
r21193r21194
884900   AM_RANGE(0x01000000, 0x01ffffff) AM_ROM AM_REGION("gfx_data",0x0000000)
885901
886902   AM_RANGE(0x03000000, 0x030fffff) AM_RAM AM_SHARE("h1_vram")//bg vram
887   AM_RANGE(0x03c00000, 0x03c0ffff) AM_RAM_WRITE(sysh1_pal_w) AM_SHARE("paletteram")
903   AM_RANGE(0x03c00000, 0x03c0ffff) AM_RAM AM_SHARE("paletteram2") // palettes get written here, but the actual used ones seem to get sent via blitter??
888904   AM_RANGE(0x03d00000, 0x03dfffff) AM_RAM_WRITE(sysh1_char_w) AM_SHARE("h1_charram") //FIXME: half size
889905   AM_RANGE(0x03e00000, 0x03efffff) AM_RAM_WRITE(sysh1_dma_w) AM_SHARE("fb_vram") //FIXME: not all of it
890906
r21193r21194
10321048
10331049static GFXDECODE_START( coolridr )
10341050//  GFXDECODE_ENTRY( "maincpu_data", 0, tiles8x8_layout, 0, 16 )
1035   GFXDECODE_ENTRY( "gfx_data", 0, tiles8x8_layout, 0, 16 )
1036   GFXDECODE_ENTRY( "gfx5", 0, tiles8x8_layout, 0, 16 )
1037   GFXDECODE_ENTRY( "ram_gfx", 0, tiles8x8_layout, 0, 16 )
1038   GFXDECODE_ENTRY( "fakeascii", 0x18000, fakeascii, 0, 16 )
1051   GFXDECODE_ENTRY( "gfx_data", 0, tiles8x8_layout, 0, 0x100 )
1052   GFXDECODE_ENTRY( "gfx5", 0, tiles8x8_layout, 0, 0x100 )
1053   GFXDECODE_ENTRY( "ram_gfx", 0, tiles8x8_layout, 0, 0x100 )
1054   GFXDECODE_ENTRY( "fakeascii", 0x18000, fakeascii, 0x1000, 16 )
10391055GFXDECODE_END
10401056
10411057static INPUT_PORTS_START( coolridr )
r21193r21194
14061422
14071423   memcpy(m_soundram, memregion("soundcpu")->base()+0x80000, 0x80000);
14081424   m_soundcpu->reset();
1425
1426
1427
14091428}
14101429
14111430

Previous 199869 Revisions Next


© 1997-2024 The MAME Team