trunk/src/mame/drivers/coolridr.c
| r21234 | r21235 | |
| 449 | 449 | UINT8 an_mux_data; |
| 450 | 450 | UINT8 sound_data; |
| 451 | 451 | |
| 452 | UINT8* m_compressedgfx; |
| 453 | |
| 452 | 454 | DECLARE_READ32_MEMBER(sysh1_sound_dma_r); |
| 453 | 455 | DECLARE_WRITE32_MEMBER(sysh1_sound_dma_w); |
| 454 | 456 | DECLARE_READ32_MEMBER(sysh1_ioga_r); |
| r21234 | r21235 | |
| 783 | 785 | if (!(m_blit0 & 1)) // don't bother for non-sprites |
| 784 | 786 | { |
| 785 | 787 | m_blit3_unused = data & 0xffe00000; |
| 786 | | m_b3romoffset = data & 0x001fffff; |
| 788 | m_b3romoffset = (data & 0x001fffff)*2; |
| 787 | 789 | // if this is an offset into the compressed data then it's probably a word offset into each rom (each is 0x400000 bytes) with the data from all 10 being used in parallel as per the notes from Charles |
| 788 | 790 | // this needs verifying as it could instead be an index into some other ram area already decompressed.. |
| 789 | 791 | // 0000xxxx |
| r21234 | r21235 | |
| 791 | 793 | // 001fxxxx |
| 792 | 794 | |
| 793 | 795 | if (m_blit3_unused) printf("unknown bits in blit word %d - %08x\n", m_blitterSerialCount, m_blit4_unused); |
| 796 | if (m_b3romoffset!=0) |
| 797 | { |
| 798 | #if 0 |
| 799 | // if we look in rom IC6 (+0x1400000) then the word before our offset is very often 0x0000 |
| 800 | printf("rom offset %08x, previous values : ", m_b3romoffset); |
| 801 | for (int i=0;i<10;i++) |
| 802 | { |
| 803 | UINT16 testvalue = m_compressedgfx[i*0x400000 + m_b3romoffset - 2] << 8 | m_compressedgfx[i*0x0400000 + m_b3romoffset - 1]; |
| 804 | printf("%04x, ", testvalue); |
| 805 | } |
| 806 | printf("\n"); |
| 807 | #endif |
| 808 | #if 0 |
| 809 | // if we look in rom IC6 (+0x1400000) then the word before our offset is very often 0x0000 probably indicating that's the last word used |
| 810 | printf("rom offset %08x, values : ", m_b3romoffset); |
| 811 | for (int i=0;i<10;i++) |
| 812 | { |
| 813 | UINT16 testvalue = m_compressedgfx[i*0x400000 + m_b3romoffset] << 8 | m_compressedgfx[i*0x0400000 + m_b3romoffset +1]; |
| 814 | printf("%04x, ", testvalue); |
| 815 | } |
| 816 | printf("\n"); |
| 817 | #endif |
| 818 | } |
| 819 | |
| 820 | |
| 794 | 821 | } |
| 795 | 822 | } |
| 796 | 823 | else if (m_blitterSerialCount == 4) |
| r21234 | r21235 | |
| 1823 | 1850 | |
| 1824 | 1851 | // memcpy(memregion("soundcpu")->base(), memregion("maincpu")->base()+0x100000, 0x80000); |
| 1825 | 1852 | // m_soundcpu->reset(); |
| 1853 | m_compressedgfx = memregion( "gfx5" )->base(); |
| 1854 | |
| 1826 | 1855 | } |
| 1827 | 1856 | |
| 1828 | 1857 | void coolridr_state::machine_reset() |
| r21234 | r21235 | |
| 1958 | 1987 | |
| 1959 | 1988 | /* these are compressed sprite data */ |
| 1960 | 1989 | ROM_REGION( 0x2800000, "gfx5", ROMREGION_ERASEFF ) |
| 1961 | | /* logical interleaving according to the readme? */ |
| 1962 | | ROM_LOAD32_WORD_SWAP( "mpr-17640.ic1", 0x0000002, 0x0400000, CRC(981e3e69) SHA1(d242055e0359ec4b5fac4676b2f974fbc974cc68) ) |
| 1963 | | ROM_LOAD32_WORD_SWAP( "mpr-17645.ic6", 0x0000000, 0x0400000, CRC(56968d07) SHA1(e88c3d66ea05affb4681a25d155f097bd1b5a84b) ) |
| 1964 | | ROM_LOAD32_WORD_SWAP( "mpr-17641.ic2", 0x0800002, 0x0400000, CRC(fccc3dae) SHA1(0df7fd8b1110ba9063dc4dc40301267229cb9a35) ) |
| 1965 | | ROM_LOAD32_WORD_SWAP( "mpr-17646.ic7", 0x0800000, 0x0400000, CRC(b77eb2ad) SHA1(b832c0f1798aca39adba840d56ae96a75346670a) ) |
| 1966 | | ROM_LOAD32_WORD_SWAP( "mpr-17642.ic3", 0x1000002, 0x0400000, CRC(1a5bcc73) SHA1(a7df04c0a326323ea185db5f55b3e0449d76c535) ) |
| 1967 | | ROM_LOAD32_WORD_SWAP( "mpr-17647.ic8", 0x1000000, 0x0400000, CRC(9dd9330c) SHA1(c91a7f497c1f4bd283bd683b06dff88893724d51) ) |
| 1968 | | ROM_LOAD32_WORD_SWAP( "mpr-17643.ic4", 0x1800002, 0x0400000, CRC(5100f23b) SHA1(659c2300399ff1cbd24fb1eb18cfd6c26e06fd96) ) |
| 1969 | | ROM_LOAD32_WORD_SWAP( "mpr-17648.ic9", 0x1800000, 0x0400000, CRC(bf184cce) SHA1(62c004ea279f9a649d21426369336c2e1f9d24da) ) |
| 1970 | | ROM_LOAD32_WORD_SWAP( "mpr-17644.ic5", 0x2000002, 0x0400000, CRC(80199c79) SHA1(e525d8ee9f9176101629853e50cca73b02b16a38) ) |
| 1971 | | ROM_LOAD32_WORD_SWAP( "mpr-17649.ic10",0x2000000, 0x0400000, CRC(618c47ae) SHA1(5b69ad36fcf8e70d34c3b2fc71412ce953c5ceb3) ) |
| 1990 | ROM_LOAD( "mpr-17640.ic1", 0x0000000, 0x0400000, CRC(981e3e69) SHA1(d242055e0359ec4b5fac4676b2f974fbc974cc68) ) |
| 1991 | ROM_LOAD( "mpr-17641.ic2", 0x0400000, 0x0400000, CRC(fccc3dae) SHA1(0df7fd8b1110ba9063dc4dc40301267229cb9a35) ) |
| 1992 | ROM_LOAD( "mpr-17642.ic3", 0x0800000, 0x0400000, CRC(1a5bcc73) SHA1(a7df04c0a326323ea185db5f55b3e0449d76c535) ) |
| 1993 | ROM_LOAD( "mpr-17643.ic4", 0x0c00000, 0x0400000, CRC(5100f23b) SHA1(659c2300399ff1cbd24fb1eb18cfd6c26e06fd96) ) |
| 1994 | ROM_LOAD( "mpr-17644.ic5", 0x1000000, 0x0400000, CRC(80199c79) SHA1(e525d8ee9f9176101629853e50cca73b02b16a38) ) |
| 1995 | ROM_LOAD( "mpr-17645.ic6", 0x1400000, 0x0400000, CRC(56968d07) SHA1(e88c3d66ea05affb4681a25d155f097bd1b5a84b) ) |
| 1996 | ROM_LOAD( "mpr-17646.ic7", 0x1800000, 0x0400000, CRC(b77eb2ad) SHA1(b832c0f1798aca39adba840d56ae96a75346670a) ) |
| 1997 | ROM_LOAD( "mpr-17647.ic8", 0x1c00000, 0x0400000, CRC(9dd9330c) SHA1(c91a7f497c1f4bd283bd683b06dff88893724d51) ) |
| 1998 | ROM_LOAD( "mpr-17648.ic9", 0x2000000, 0x0400000, CRC(bf184cce) SHA1(62c004ea279f9a649d21426369336c2e1f9d24da) ) |
| 1999 | ROM_LOAD( "mpr-17649.ic10",0x2400000, 0x0400000, CRC(618c47ae) SHA1(5b69ad36fcf8e70d34c3b2fc71412ce953c5ceb3) ) |
| 1972 | 2000 | |
| 1973 | 2001 | ROM_REGION( 0x80000, "scsp1", 0 ) /* first SCSP's RAM */ |
| 1974 | 2002 | ROM_FILL( 0x000000, 0x80000, 0 ) |