Previous 199869 Revisions Next

r24585 Tuesday 30th July, 2013 at 20:21:35 UTC by David Haywood
some of the other z80 pointers on puzzli2 (nw)
[src/mame/machine]pgmprot_igs027a_type1.c

trunk/src/mame/machine/pgmprot_igs027a_type1.c
r24584r24585
572572   {
573573      case 0x13: // getting some kind of list maybe?
574574      {
575
575         // 2d seems to be used when there is more data available
576         // 74 seems to be used when there isn't.. (end of buffer reached?)
576577         m_valueresponse = 0x74<<16; // 2d or 74! (based on?)
577578
578579      }
r24584r24585
605606         m_valueresponse = 0x74<<16;
606607      break;
607608
608      case 0x47: // ASIC status?
609         m_valueresponse = 0x74<<16;
609
610      // 47 and 52 are used to get the images during the intro sequence, different each loop
611      // also some other gfx?
612      case 0x47:
613         printf("which %04x\n", m_value0);
614         m_valueresponse = 0x00740047;
610615      break;
611616
612      case 0x52: // ASIC status?
613      {
614         // how is this selected?
615
616         //if (m_value0 == 6) {
617            m_valueresponse = (0x74<<16)|1; // |1?
618         //} else {
619         //  m_valueresponse = 0x74<<16;
620         //}
621      }
617      case 0x52:
618         printf("which %04x\n", m_value0);
619         m_valueresponse = 0x00740060;
622620      break;
623621
622
623
624
624625      case 0x54: // ??
625626         m_puzzli_54_trigger = 1;
626627         m_valueresponse = 0x36<<16;
r24584r24585
631632      break;
632633
633634
635
636
634637      // 63/67 are used on startup to get the z80 music at least
635
636638      case 0x63: // used as a read address by the 68k code (related to previous uploaded values like cave?) should point at a table of ~0x80 in size? seems to use values as further pointers?
637         if (m_value0==0x0002)
639         if (m_value0==0x0000)
638640         {
641            m_valueresponse = 0x001694a8;
642         }
643         else if (m_value0==0x0001)
644         {
645            m_valueresponse = 0x0016cfae;
646         }
647         else if (m_value0==0x0002)
648         {
639649            m_valueresponse = 0x0016ebf2; // right for puzzli2 , wrong for puzzli2s, probably calculated from the writes then?
640650         }
651         else if (m_value0==0x0003) // before 'cast' screen
652         {
653            m_valueresponse = 0x0016faa8;
654         }
641655         else
642656         {
657            printf("unk case x63\n");
643658            m_valueresponse = 0x00600000; // wrong
644659
645660         }
646661      break;
647662
648663      case 0x67: // used as a read address by the 68k code (related to previous uploaded values like cave?) directly reads ~0xDBE from the address..
649         if (m_value0==0x0002)
664         if ( (m_value0==0x0000) || (m_value0==0x0001) || (m_value0==0x0002) || (m_value0==0x0003) )
650665         {
651666            m_valueresponse = 0x00166178; // right for puzzli2 , wrong for puzzli2s, probably calculated from the writes then?
652667         }
653668         else
654669         {
670            printf("unk case x67\n");
655671            m_valueresponse = 0x00400000; // wrong
656672         }
657673      break;

Previous 199869 Revisions Next


© 1997-2024 The MAME Team