Previous 199869 Revisions Next

r21253 Thursday 21st February, 2013 at 04:27:48 UTC by David Haywood
data streams look decent, next I need to decode them (nw)
[src/mame/drivers]coolridr.c

trunk/src/mame/drivers/coolridr.c
r21252r21253
451451
452452   UINT8* m_compressedgfx;
453453   UINT32 get_20bit_data(UINT32 romoffset, int _20bitwordnum);
454   UINT16 get_10bit_data(UINT32 romoffset, int _10bitwordnum);
454455
455456   DECLARE_READ32_MEMBER(sysh1_sound_dma_r);
456457   DECLARE_WRITE32_MEMBER(sysh1_sound_dma_w);
r21252r21253
659660
660661}
661662
663UINT16 coolridr_state::get_10bit_data(UINT32 romoffset, int _10bitwordnum)
664{
665   UINT32 data = get_20bit_data(romoffset, _10bitwordnum>>1);
666   if (_10bitwordnum&1) return data & 0x3ff;
667   else return (data>>10) & 0x3ff;
668}
669
662670/* This is a RLE-based sprite blitter (US Patent #6,141,122), very unusual from Sega... */
663671WRITE32_MEMBER(coolridr_state::sysh1_txt_blit_w)
664672{
r21252r21253
11491157             c838a e4372 e0f43 d0f0e d2369 ce6dd da741 d07a7 c3b3c cf35c cf383 cf322 d2348 b7739 c8339 d0711           
11501158*/
11511159
1160
1161/*
1162investigate this sprite
1163(much wider, all columns the same)
116400200 (00016590,0)  00200 (00016590,0)
116500210 (00016592,0)  00210 (00016592,0)
116600251 (0001659a,1)  00251 (0001659a,1)
116700292 (000165a2,2)  00292 (000165a2,2)
1168002b7 (000165a6,7)  002b7 (000165a6,7)
1169002c4 (000165a8,4)  002c4 (000165a8,4)
1170002f4 (000165ae,4)  002f4 (000165ae,4)
117100335 (000165b6,5)  00335 (000165b6,5)
117200373 (000165be,3)  00373 (000165be,3)
11730038a (000165c1,2)  0038a (000165c1,2)
1174003ac (000165c5,4)  003ac (000165c5,4)
1175003bd (000165c7,5)  003bd (000165c7,5)
1176003fe (000165cf,6)  003fe (000165cf,6)
117700419 (000165d3,1)  00419 (000165d3,1)
11780045a (000165db,2)  0045a (000165db,2)
11790049b (000165e3,3)  0049b (000165e3,3)
1180004b2 (000165e6,2)  004b2 (000165e6,2)
1181
1182*/
1183
11521184#if 0
11531185                  // logging only
11541186                  if (!m_indirect_tile_enable)
11551187                  {
1156                     if (m_hCellCount==0x10)
1188                     //if (m_hCellCount==0x10)
11571189                     {
11581190                        for (int v = 0; v < m_vCellCount/*+16*/; v++)
11591191                        {
r21252r21253
11621194                                 int lookupnum = h + (v*m_hCellCount);
11631195                                 UINT32 spriteNumber = get_20bit_data( m_b3romoffset, lookupnum);
11641196                                 
1165
1197#if 0
11661198                                 printf("%05x (%08x,%d)  ",spriteNumber, (m_b3romoffset + (spriteNumber>>3)), spriteNumber&7 );
11671199
11681200
r21252r21253
11711203                                 
11721204                                 if ((h == m_hCellCount-1) && (v == m_vCellCount-1))
11731205                                    printf("\n");
1206#endif
1207#if 1
1208                                 int compdataoffset = (m_b3romoffset + (spriteNumber>>3));
1209                                 // do some logging for the sprite mentioned above 'investigate this sprite' looking at compressed data used in the first column
1210                                 //if ((compdataoffset==0x3e9030) && (h==0))
1211                                 if ((compdataoffset >= 0x016590) && (compdataoffset<=0x0165e6) && (h==0))
1212                                 {
1213                                    printf("%05x (%08x,%d) | ",spriteNumber, compdataoffset, spriteNumber&7 );
1214                                   
1215
1216                                    //00200 (00016590,0)  00200 (00016590,0)
1217                                    //00210 (00016592,0)  00210 (00016592,0)
1218
1219                                    for (int i=0;i<18;i++)
1220                                    {
1221                                       UINT16 compdata = get_10bit_data( m_b3romoffset, spriteNumber + i);
1222                                       printf("%03x ", compdata);
1223
1224                                       // as 20-bit
1225                                       //   00200 (00016590,0) | 03c3e 0f83e 0f83e 0f83e 95e57 95e57 95e57 95e57 (03e57)
1226                                       //   00210 (00016592,0) | 03e57 95e57 95e07 81e07 81e07 81e07 81e07 81e07 81e07
1227
1228                                       // as 10-bit (pretty, I like this)
1229                                       /*                                                                                   |this is where 210 starts
1230                                       00200 (00016590,0) | 00f 03e 03e 03e 03e 03e 03e 03e 257 257 257 257 257 257 257 257(00f 257)
1231                                       00210 (00016592,0) | 00f 257 257 257 257 207 207 207 207 207 207 207 207 207 207 207 207 207
1232                                       00251 (0001659a,1) | 00f 237 237 237 237 237 237 237 237 237 237 237 237 22f 22f 22f 22f 22f
1233                                       00292 (000165a2,2) | 00f 21f 21f 21f 21f 21f 21f 21f 21f 21f 21f 21f 21f 21f 21f 21f 21f 21f
1234                                       002b7 (000165a6,7) | 00f 0be 0be 0be 263 263 263 263 07e 07e 07e 07e 05e 00f 07e 07e 05e 247
1235                                       002c4 (000165a8,4) | 00f 07e 07e 05e 247 247 247 247 247 247 247 247 247 247 247 247 20f 20f
1236                                       002f4 (000165ae,4) | 00f 20f 20f 20f 20f 20f 20f 20f 20f 20f 20f 20f 20f 233 233 233 233 233
1237                                       00335 (000165b6,5) | 00f 23b 23b 23b 23b 20b 20b 20b 20b 20b 20b 20b 20b 20b 20b 20b 20b 20b
1238                                       00373 (000165be,3) | 00f 0fe 0fe 0fe 0fe 0fe 0fe 223 223 223 223 223 223 223 223 223 223 223
1239                                       0038a (000165c1,2) | 00f 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223 223
1240                                       003ac (000165c5,4) | 00f 17e 15e 1be 1be 1be 1be 1be 19e 217 217 217 217 217 217 217 217 00f
1241                                       003bd (000165c7,5) | 00f 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217 217
1242                                       003fe (000165cf,6) | 00f 22b 22b 22b 22b 22b 22b 22b 22b 22b 22b 22b 22b 22b 22b 22b 22b 22b
1243                                       00419 (000165d3,1) | 00f 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203 203
1244                                       0045a (000165db,2) | 00f 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 227 253
1245                                       0049b (000165e3,3) | 00f 213 213 213 213 213 213 213 213 13e 13e 13e 13e 13e 13e 21b 21b 21b
1246                                       004b2 (000165e6,2) | 000 21b 21b 21b 21b 21b 21b 21b 21b 21b 21b 21b 21b 21b 21b 21b 21b 21b
1247                                       */
1248                                    }
1249                                    printf("\n");
1250                                 }
1251#endif
1252
11741253                           }
11751254                        }
11761255                     }

Previous 199869 Revisions Next


© 1997-2024 The MAME Team