trunk/src/mame/machine/pgmprot_igs027a_type1.c
r24618 | r24619 | |
566 | 566 | |
567 | 567 | static int hackcount = 0; |
568 | 568 | static int hackcount2 = 0; |
| 569 | static int hack_47_value = 0; |
569 | 570 | |
570 | 571 | void pgm_arm_type1_state::command_handler_puzzli2(int pc) |
571 | 572 | { |
r24618 | r24619 | |
706 | 707 | |
707 | 708 | // 47 and 52 are used to get the images during the intro sequence, different each loop |
708 | 709 | // also some other gfx? |
| 710 | // logic here seems correct, not sure where the 0x19 and 0x5 etc. come from tho! |
709 | 711 | case 0x47: |
710 | | printf("which %04x\n", m_value0); |
| 712 | hack_47_value = ((m_value0 & 0x0700)>>8) * 0x19; |
| 713 | hack_47_value = ((m_value0 & 0x0007)>>0) * 0x05; |
| 714 | if (m_value0 & 0xf8f8) printf("unhandled 0x47 bits %04x\n", m_value0); |
| 715 | |
711 | 716 | m_valueresponse = 0x00740047; |
| 717 | |
712 | 718 | break; |
713 | 719 | |
714 | 720 | case 0x52: |
715 | | printf("which %04x\n", m_value0); |
716 | | m_valueresponse = 0x00740060; |
| 721 | //printf("which %04x\n", m_value0); |
| 722 | |
| 723 | hack_47_value += m_value0 & 0x0007; |
| 724 | if (m_value0 & 0xfff8) printf("unhandled 0x52 bits %04x\n", m_value0); |
| 725 | |
| 726 | m_valueresponse = 0x00740000 | (hack_47_value & 0xffff); |
717 | 727 | break; |
718 | 728 | |
719 | 729 | |