trunk/src/mame/drivers/coolridr.c
| r21193 | r21194 | |
| 301 | 301 | UINT16 m_vZoom; |
| 302 | 302 | UINT16 m_hZoom; |
| 303 | 303 | |
| 304 | |
| 304 | 305 | required_device<cpu_device> m_maincpu; |
| 305 | 306 | required_device<cpu_device> m_subcpu; |
| 306 | 307 | required_device<cpu_device> m_soundcpu; |
| r21193 | r21194 | |
| 382 | 383 | if (which==1) |
| 383 | 384 | { |
| 384 | 385 | count += 0x20000/4; |
| 385 | | color += 2; |
| 386 | color += 0x5e; |
| 386 | 387 | } |
| 388 | else |
| 389 | { |
| 390 | color += 0x4e; |
| 391 | } |
| 387 | 392 | |
| 388 | 393 | for (y=0;y<64;y++) |
| 389 | 394 | { |
| r21193 | r21194 | |
| 417 | 422 | |
| 418 | 423 | UINT32 coolridr_state::screen_update_coolridr1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) |
| 419 | 424 | { |
| 420 | | |
| 425 | #if 0 |
| 421 | 426 | if(machine().input().code_pressed(KEYCODE_Z)) |
| 422 | 427 | m_test_offs+=4; |
| 423 | 428 | |
| r21193 | r21194 | |
| 445 | 450 | if(m_test_offs > 0x100000*4) |
| 446 | 451 | m_test_offs = 0; |
| 447 | 452 | |
| 453 | #endif |
| 454 | |
| 448 | 455 | // popmessage("%08x %04x",m_test_offs,m_color); |
| 449 | 456 | |
| 450 | 457 | return screen_update_coolridr(screen,bitmap,cliprect,0); |
| r21193 | r21194 | |
| 533 | 540 | } |
| 534 | 541 | else if (m_blitterMode == 0xe0) |
| 535 | 542 | { |
| 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.. |
| 537 | 545 | m_blitterSerialCount = 0; |
| 546 | m_textOffset = (data & 0x0000ffff)>>2; // it's a byte offset |
| 547 | |
| 548 | // printf("set e0 %08x\n", data); |
| 549 | |
| 538 | 550 | } |
| 539 | 551 | else |
| 540 | 552 | { |
| r21193 | r21194 | |
| 746 | 758 | } |
| 747 | 759 | else if (m_blitterMode == 0xe0) // when going into game (in units of 0x10 writes) |
| 748 | 760 | { |
| 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? |
| 749 | 763 | //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 | |
| 751 | 768 | } |
| 752 | 769 | else |
| 753 | 770 | { |
| r21193 | r21194 | |
| 762 | 779 | WRITE32_MEMBER(coolridr_state::sysh1_pal_w) |
| 763 | 780 | { |
| 764 | 781 | int r,g,b; |
| 765 | | COMBINE_DATA(&m_generic_paletteram_32[offset]); |
| 766 | 782 | |
| 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); |
| 770 | 786 | 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); |
| 774 | 790 | palette_set_color_rgb(machine(),offset*2,pal5bit(r),pal5bit(g),pal5bit(b)); |
| 775 | 791 | } |
| 776 | 792 | |
| r21193 | r21194 | |
| 884 | 900 | AM_RANGE(0x01000000, 0x01ffffff) AM_ROM AM_REGION("gfx_data",0x0000000) |
| 885 | 901 | |
| 886 | 902 | 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?? |
| 888 | 904 | AM_RANGE(0x03d00000, 0x03dfffff) AM_RAM_WRITE(sysh1_char_w) AM_SHARE("h1_charram") //FIXME: half size |
| 889 | 905 | AM_RANGE(0x03e00000, 0x03efffff) AM_RAM_WRITE(sysh1_dma_w) AM_SHARE("fb_vram") //FIXME: not all of it |
| 890 | 906 | |
| r21193 | r21194 | |
| 1032 | 1048 | |
| 1033 | 1049 | static GFXDECODE_START( coolridr ) |
| 1034 | 1050 | // 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 ) |
| 1039 | 1055 | GFXDECODE_END |
| 1040 | 1056 | |
| 1041 | 1057 | static INPUT_PORTS_START( coolridr ) |
| r21193 | r21194 | |
| 1406 | 1422 | |
| 1407 | 1423 | memcpy(m_soundram, memregion("soundcpu")->base()+0x80000, 0x80000); |
| 1408 | 1424 | m_soundcpu->reset(); |
| 1425 | |
| 1426 | |
| 1427 | |
| 1409 | 1428 | } |
| 1410 | 1429 | |
| 1411 | 1430 | |