From e6ce889436eb68d38c6342ea29435ba2c5d50be7 Mon Sep 17 00:00:00 2001 From: David Haywood Date: Wed, 20 Feb 2013 22:31:15 +0000 Subject: [PATCH] some debug code, studying the compressed gfx --- src/mame/drivers/coolridr.c | 52 ++++++++++++++++++++++++++++--------- 1 file changed, 40 insertions(+), 12 deletions(-) diff --git a/src/mame/drivers/coolridr.c b/src/mame/drivers/coolridr.c index 1487f044e44..8905270940b 100644 --- a/src/mame/drivers/coolridr.c +++ b/src/mame/drivers/coolridr.c @@ -449,6 +449,8 @@ public: UINT8 an_mux_data; UINT8 sound_data; + UINT8* m_compressedgfx; + DECLARE_READ32_MEMBER(sysh1_sound_dma_r); DECLARE_WRITE32_MEMBER(sysh1_sound_dma_w); DECLARE_READ32_MEMBER(sysh1_ioga_r); @@ -783,7 +785,7 @@ WRITE32_MEMBER(coolridr_state::sysh1_txt_blit_w) if (!(m_blit0 & 1)) // don't bother for non-sprites { m_blit3_unused = data & 0xffe00000; - m_b3romoffset = data & 0x001fffff; + m_b3romoffset = (data & 0x001fffff)*2; // 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 // this needs verifying as it could instead be an index into some other ram area already decompressed.. // 0000xxxx @@ -791,6 +793,31 @@ WRITE32_MEMBER(coolridr_state::sysh1_txt_blit_w) // 001fxxxx if (m_blit3_unused) printf("unknown bits in blit word %d - %08x\n", m_blitterSerialCount, m_blit4_unused); + if (m_b3romoffset!=0) + { +#if 0 + // if we look in rom IC6 (+0x1400000) then the word before our offset is very often 0x0000 + printf("rom offset %08x, previous values : ", m_b3romoffset); + for (int i=0;i<10;i++) + { + UINT16 testvalue = m_compressedgfx[i*0x400000 + m_b3romoffset - 2] << 8 | m_compressedgfx[i*0x0400000 + m_b3romoffset - 1]; + printf("%04x, ", testvalue); + } + printf("\n"); +#endif +#if 0 + // 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 + printf("rom offset %08x, values : ", m_b3romoffset); + for (int i=0;i<10;i++) + { + UINT16 testvalue = m_compressedgfx[i*0x400000 + m_b3romoffset] << 8 | m_compressedgfx[i*0x0400000 + m_b3romoffset +1]; + printf("%04x, ", testvalue); + } + printf("\n"); +#endif + } + + } } else if (m_blitterSerialCount == 4) @@ -1823,6 +1850,8 @@ void coolridr_state::machine_start() // memcpy(memregion("soundcpu")->base(), memregion("maincpu")->base()+0x100000, 0x80000); // m_soundcpu->reset(); + m_compressedgfx = memregion( "gfx5" )->base(); + } void coolridr_state::machine_reset() @@ -1958,17 +1987,16 @@ ROM_START( coolridr ) /* these are compressed sprite data */ ROM_REGION( 0x2800000, "gfx5", ROMREGION_ERASEFF ) - /* logical interleaving according to the readme? */ - ROM_LOAD32_WORD_SWAP( "mpr-17640.ic1", 0x0000002, 0x0400000, CRC(981e3e69) SHA1(d242055e0359ec4b5fac4676b2f974fbc974cc68) ) - ROM_LOAD32_WORD_SWAP( "mpr-17645.ic6", 0x0000000, 0x0400000, CRC(56968d07) SHA1(e88c3d66ea05affb4681a25d155f097bd1b5a84b) ) - ROM_LOAD32_WORD_SWAP( "mpr-17641.ic2", 0x0800002, 0x0400000, CRC(fccc3dae) SHA1(0df7fd8b1110ba9063dc4dc40301267229cb9a35) ) - ROM_LOAD32_WORD_SWAP( "mpr-17646.ic7", 0x0800000, 0x0400000, CRC(b77eb2ad) SHA1(b832c0f1798aca39adba840d56ae96a75346670a) ) - ROM_LOAD32_WORD_SWAP( "mpr-17642.ic3", 0x1000002, 0x0400000, CRC(1a5bcc73) SHA1(a7df04c0a326323ea185db5f55b3e0449d76c535) ) - ROM_LOAD32_WORD_SWAP( "mpr-17647.ic8", 0x1000000, 0x0400000, CRC(9dd9330c) SHA1(c91a7f497c1f4bd283bd683b06dff88893724d51) ) - ROM_LOAD32_WORD_SWAP( "mpr-17643.ic4", 0x1800002, 0x0400000, CRC(5100f23b) SHA1(659c2300399ff1cbd24fb1eb18cfd6c26e06fd96) ) - ROM_LOAD32_WORD_SWAP( "mpr-17648.ic9", 0x1800000, 0x0400000, CRC(bf184cce) SHA1(62c004ea279f9a649d21426369336c2e1f9d24da) ) - ROM_LOAD32_WORD_SWAP( "mpr-17644.ic5", 0x2000002, 0x0400000, CRC(80199c79) SHA1(e525d8ee9f9176101629853e50cca73b02b16a38) ) - ROM_LOAD32_WORD_SWAP( "mpr-17649.ic10",0x2000000, 0x0400000, CRC(618c47ae) SHA1(5b69ad36fcf8e70d34c3b2fc71412ce953c5ceb3) ) + ROM_LOAD( "mpr-17640.ic1", 0x0000000, 0x0400000, CRC(981e3e69) SHA1(d242055e0359ec4b5fac4676b2f974fbc974cc68) ) + ROM_LOAD( "mpr-17641.ic2", 0x0400000, 0x0400000, CRC(fccc3dae) SHA1(0df7fd8b1110ba9063dc4dc40301267229cb9a35) ) + ROM_LOAD( "mpr-17642.ic3", 0x0800000, 0x0400000, CRC(1a5bcc73) SHA1(a7df04c0a326323ea185db5f55b3e0449d76c535) ) + ROM_LOAD( "mpr-17643.ic4", 0x0c00000, 0x0400000, CRC(5100f23b) SHA1(659c2300399ff1cbd24fb1eb18cfd6c26e06fd96) ) + ROM_LOAD( "mpr-17644.ic5", 0x1000000, 0x0400000, CRC(80199c79) SHA1(e525d8ee9f9176101629853e50cca73b02b16a38) ) + ROM_LOAD( "mpr-17645.ic6", 0x1400000, 0x0400000, CRC(56968d07) SHA1(e88c3d66ea05affb4681a25d155f097bd1b5a84b) ) + ROM_LOAD( "mpr-17646.ic7", 0x1800000, 0x0400000, CRC(b77eb2ad) SHA1(b832c0f1798aca39adba840d56ae96a75346670a) ) + ROM_LOAD( "mpr-17647.ic8", 0x1c00000, 0x0400000, CRC(9dd9330c) SHA1(c91a7f497c1f4bd283bd683b06dff88893724d51) ) + ROM_LOAD( "mpr-17648.ic9", 0x2000000, 0x0400000, CRC(bf184cce) SHA1(62c004ea279f9a649d21426369336c2e1f9d24da) ) + ROM_LOAD( "mpr-17649.ic10",0x2400000, 0x0400000, CRC(618c47ae) SHA1(5b69ad36fcf8e70d34c3b2fc71412ce953c5ceb3) ) ROM_REGION( 0x80000, "scsp1", 0 ) /* first SCSP's RAM */ ROM_FILL( 0x000000, 0x80000, 0 )