Previous 15994 Revisions Next

r6232 Saturday 31st October, 2009 at 19:18:47 UTC by Harmony
[CDI] Re-fixing Hotel Mario. My, what a finicky game. [Harmony]
[src/mess/drivers]cdi.c

src/mess/drivers/cdi.c
r6231r6232
15451545            }
15461546         }
15471547
1548         cdic_regs.data_buffer ^= 0x0001;
1549
15501548         //printf( "%02x\n", buffer[CDIC_SECTOR_SUBMODE2] );
15511549         if((buffer[CDIC_SECTOR_FILE2] << 8) == cdic_regs.file)
15521550         {
1553            if(cdic_regs.channel & (1 << buffer[CDIC_SECTOR_CHAN2]))
1551            //if((1 << buffer[CDIC_SECTOR_CHAN2]))
15541552            {
15551553               if(((buffer[CDIC_SECTOR_SUBMODE2] & (CDIC_SUBMODE_FORM | CDIC_SUBMODE_DATA | CDIC_SUBMODE_AUDIO | CDIC_SUBMODE_VIDEO)) == (CDIC_SUBMODE_FORM | CDIC_SUBMODE_AUDIO)) &&
1556                  (cdic_regs.audio_channel & (1 << buffer[CDIC_SECTOR_CHAN2])))
1554                  (cdic_regs.channel & cdic_regs.audio_channel & (1 << buffer[CDIC_SECTOR_CHAN2])))
15571555               {
15581556                  {
15591557                      verboselog(machine, 0, "Audio sector\n" );
15601558
1561                     //cdic_regs.data_buffer ^= 0x0001;
1559                     cdic_regs.data_buffer ^= 0x0001;
15621560
15631561                     cdic_regs.x_buffer |= 0x8000;
15641562                     cdic_regs.data_buffer |= 0x4000;
r6231r6232
15791577               }
15801578               else if((buffer[CDIC_SECTOR_SUBMODE2] & (CDIC_SUBMODE_DATA | CDIC_SUBMODE_AUDIO | CDIC_SUBMODE_VIDEO)) == 0x00)
15811579               {
1582                  //cdic_regs.data_buffer ^= 0x0001;
1580                  cdic_regs.data_buffer ^= 0x0001;
15831581
1582                  cdic_regs.data_buffer &= ~0x0004;
1583                  cdic_regs.x_buffer |= 0x8000;
1584                  cdic_regs.data_buffer |= 0x4000;
1585
1586                  for(index = 6; index < 2352/2; index++)
1587                  {
1588                     cdram[(cdic_regs.data_buffer & 5) * (0xa00/2) + (index - 6)] = (buffer[index*2] << 8) | buffer[index*2 + 1];
1589                  }
1590
15841591                  if((buffer[CDIC_SECTOR_SUBMODE2] & CDIC_SUBMODE_TRIG) == CDIC_SUBMODE_TRIG ||
15851592                     (buffer[CDIC_SECTOR_SUBMODE2] & CDIC_SUBMODE_EOR) == CDIC_SUBMODE_EOR ||
15861593                     (buffer[CDIC_SECTOR_SUBMODE2] & CDIC_SUBMODE_EOF) == CDIC_SUBMODE_EOF)
15871594                  {
1588                     cdic_regs.data_buffer &= ~0x0004;
1589                     cdic_regs.x_buffer |= 0x8000;
1590                     cdic_regs.data_buffer |= 0x4000;
1591
1592                     for(index = 6; index < 2352/2; index++)
1593                     {
1594                        cdram[(cdic_regs.data_buffer & 5) * (0xa00/2) + (index - 6)] = (buffer[index*2] << 8) | buffer[index*2 + 1];
1595                     }
1596
15971595                     //printf( "Setting CDIC interrupt line\n" );
15981596                     verboselog(machine, 0, "Setting CDIC interrupt line for message sector\n" );
15991597                     cpu_set_input_line_vector(cputag_get_cpu(machine, "maincpu"), M68K_IRQ_4, 128);
r6231r6232
16061604               }
16071605               else /*if(buffer[CDIC_SECTOR_SUBMODE2] & (CDIC_SUBMODE_DATA | CDIC_SUBMODE_VIDEO))*/
16081606               {
1609                  //cdic_regs.data_buffer ^= 0x0001;
1607                  cdic_regs.data_buffer ^= 0x0001;
16101608
16111609                  cdic_regs.data_buffer &= ~0x0004;
16121610                  cdic_regs.x_buffer |= 0x8000;

Previous 15994 Revisions Next


© 1998-2018 The MESS Team