Page 1 of 1

[mimonkey]+ Mighty Monkey

Posted: Sun Feb 16, 2025 1:24 am
by jman
mimonkey.xml

Code: Select all

<!-- Mighty Monkey -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@3251 = 3253</action> <!-- background -->
            <action>maincpu.mw@338E = 336E</action> <!-- enemy (monkey) -->
            <action>maincpu.mw@33FA = 336E</action> <!-- enemy (dragon) -->
            <action>maincpu.mw@3591 = 3597</action> <!-- hovering vulture -->
        </script>
        <script state="off">
            <action>maincpu.mw@3251 = 3254</action>
            <action>maincpu.mw@338E = 33DC</action>
            <action>maincpu.mw@33FA = 33DD</action>
            <action>maincpu.mw@3591 = 3599</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mb@085A = 5C</action>
            <action>maincpu.mb@1366 = 00</action> <!-- interval -->
        </script>
        <script state="off">
            <action>maincpu.mb@085A = 60</action>
            <action>maincpu.mb@1366 = D8</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@0865 = D710            </action> <!-- up -->
            <action>maincpu.mw@086D = D710            </action> <!-- down -->
            <action>maincpu.mw@0875 = D71A            </action> <!-- left -->
            <action>maincpu.mw@087D = D71A            </action> <!-- right -->
            <action>maincpu.mq@D710 = 10C112BFCDC50006</action>
            <action>maincpu.mq@D718 = 1410CDC50006C9F9</action>
            <action>maincpu.mq@D720 = FFFFFFFFC9F910C1</action>
            <!--
            D710 | 06 xx    : ld   b,$xx // up, down
            D712 | C5       : push bc
            D713 | CD BF 12 : call $12BF
            D716 | C1       : pop  bc
            D717 | 10 F9    : djnz $D712
            D719 | C9       : ret
            D71A | 06 xx    : ld   b,$xx // left, right
            D71C | C5       : push bc
            D71D | CD 10 14 : call $1410
            D720 | C1       : pop  bc
            D721 | 10 F9    : djnz $D71C
            D723 | C9       : ret
            D724 | FF       : rst  $38
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@D711 = param</action>
            <action>maincpu.mb@D71B = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0865 = 12BF            </action>
            <action>maincpu.mw@086D = 12BF            </action>
            <action>maincpu.mw@0875 = 1410            </action>
            <action>maincpu.mw@087D = 1410            </action>
            <action>maincpu.mq@D710 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D718 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D720 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x04">02       </item>
            <item value="0x06">03       </item>
            <item value="0x08">04       </item>
            <item value="0x0a">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@2997 = param</action> <!-- left -->
            <action>maincpu.mb@29B6 = param</action> <!-- right -->
        </script>
        <script state="off">
            <action>maincpu.mb@2997 = 04</action>
            <action>maincpu.mb@29B6 = 04</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@036F = D730            </action>
            <action>maincpu.mq@D730 = 40CDB0003A870021</action>
            <action>maincpu.mq@D738 = 20DFFEF62847B8FD</action>
            <action>maincpu.mq@D740 = FE340120EFFE3501</action>
            <action>maincpu.mq@D748 = FE0618F03E0420BF</action>
            <action>maincpu.mq@D750 = 787786103E05207F</action>
            <action>maincpu.mq@D758 = FE05187E0320F7FE</action>
            <action>maincpu.mq@D760 = 181403CDAF0420F9</action>
            <action>maincpu.mq@D768 = FFFFFFFFFFFFFFCA</action>
            <!--
            D730 | 21 00 87 : ld   hl,$8700  // sound code address
            D733 | 3A 00 B0 : ld   a,($B000) // watchdog
            D736 | CD 40 FD : call $FD40     // read input
            D739 | B8       : cp   b
            D73A | 47       : ld   b,a
            D73B | 28 F6    : jr   z,$D733
            D73D | FE DF    : cp   $DF
            D73F | 20 01    : jr   nz,$D742
            D741 | 35       : dec  (hl)      // decrease code -01
            D742 | FE EF    : cp   $EF
            D744 | 20 01    : jr   nz,$D747
            D746 | 34       : inc  (hl)      // increase code +01
            D747 | FE BF    : cp   $BF
            D749 | 20 04    : jr   nz,$D74F
            D74B | 3E F0    : ld   a,$F0     // decrease code -10
            D74D | 18 06    : jr   $D755
            D74F | FE 7F    : cp   $7F
            D751 | 20 05    : jr   nz,$D758
            D753 | 3E 10    : ld   a,$10     // increase code +10
            D755 | 86       : add  a,(hl)
            D756 | 77       : ld   (hl),a
            D757 | 78       : ld   a,b
            D758 | FE F7    : cp   $F7
            D75A | 20 03    : jr   nz,$D75F
            D75C | 7E       : ld   a,(hl)    // play sound
            D75D | 18 05    : jr   $D764
            D75F | FE F9    : cp   $F9
            D761 | 20 04    : jr   nz,$D767
            D763 | AF       : xor  a         // stop sound
            D764 | CD 03 14 : call $1403     // send sound code
            D767 | 18 CA    : jr   $D733
            -->
        </script>
        <script state="run">
            <output format="----- sound test mode -----"       line="10" align="center" />
            <output format="left : decrease code -01"          line="11" align="center" />
            <output format="right : increase code +01"         line="12" align="center" />
            <output format="down : decrease code -10"          line="13" align="center" />
            <output format="up : increase code +10"            line="14" align="center" />
            <output format="button 1 : play sound"             line="15" align="center" />
            <output format="button 2 : stop sound"             line="16" align="center" />
            <output format="----------------------------"      line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;" line="19" align="center"  >
                <argument>maincpu.pb@8700</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@036F = F500            </action>
            <action>maincpu.mq@D730 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D738 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D740 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D748 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D750 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D758 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D760 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D768 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.mw@0025 = 0027</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0025 = 00DA</action>
        </script>
    </cheat>

</mamecheat>
mimonsco.xml

Code: Select all

<!-- Mighty Monkey (bootleg on Super Cobra hardware) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@3251 = 3253</action> <!-- background -->
            <action>maincpu.mw@338E = 336E</action> <!-- enemy (monkey) -->
            <action>maincpu.mw@33FA = 336E</action> <!-- enemy (dragon) -->
            <action>maincpu.mw@3591 = 3597</action> <!-- hovering vulture -->
        </script>
        <script state="off">
            <action>maincpu.mw@3251 = 3254</action>
            <action>maincpu.mw@338E = 33DC</action>
            <action>maincpu.mw@33FA = 33DD</action>
            <action>maincpu.mw@3591 = 3599</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mb@085A = 5C</action>
            <action>maincpu.mb@1366 = 00</action> <!-- interval -->
        </script>
        <script state="off">
            <action>maincpu.mb@085A = 60</action>
            <action>maincpu.mb@1366 = D8</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@0865 = D710            </action> <!-- up -->
            <action>maincpu.mw@086D = D710            </action> <!-- down -->
            <action>maincpu.mw@0875 = D71A            </action> <!-- left -->
            <action>maincpu.mw@087D = D71A            </action> <!-- right -->
            <action>maincpu.mq@D710 = 10C112BFCDC50006</action>
            <action>maincpu.mq@D718 = 1410CDC50006C9F9</action>
            <action>maincpu.mq@D720 = FFFFFFFFC9F910C1</action>
            <!--
            D710 | 06 xx    : ld   b,$xx // up, down
            D712 | C5       : push bc
            D713 | CD BF 12 : call $12BF
            D716 | C1       : pop  bc
            D717 | 10 F9    : djnz $D712
            D719 | C9       : ret
            D71A | 06 xx    : ld   b,$xx // left, right
            D71C | C5       : push bc
            D71D | CD 10 14 : call $1410
            D720 | C1       : pop  bc
            D721 | 10 F9    : djnz $D71C
            D723 | C9       : ret
            D724 | FF       : rst  $38
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@D711 = param</action>
            <action>maincpu.mb@D71B = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0865 = 12BF            </action>
            <action>maincpu.mw@086D = 12BF            </action>
            <action>maincpu.mw@0875 = 1410            </action>
            <action>maincpu.mw@087D = 1410            </action>
            <action>maincpu.mq@D710 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D718 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D720 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x04">02       </item>
            <item value="0x06">03       </item>
            <item value="0x08">04       </item>
            <item value="0x0a">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@2997 = param</action> <!-- left -->
            <action>maincpu.mb@29B6 = param</action> <!-- right -->
        </script>
        <script state="off">
            <action>maincpu.mb@2997 = 04</action>
            <action>maincpu.mb@29B6 = 04</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@036F = D730            </action>
            <action>maincpu.mq@D730 = 40CDB0003A870021</action>
            <action>maincpu.mq@D738 = 20DFFEF62847B8FD</action>
            <action>maincpu.mq@D740 = FE340120EFFE3501</action>
            <action>maincpu.mq@D748 = FE0618F03E0420BF</action>
            <action>maincpu.mq@D750 = 787786103E05207F</action>
            <action>maincpu.mq@D758 = FE05187E0320F7FE</action>
            <action>maincpu.mq@D760 = 181403CDAF0420F9</action>
            <action>maincpu.mq@D768 = FFFFFFFFFFFFFFCA</action>
            <!--
            D730 | 21 00 87 : ld   hl,$8700  // sound code address
            D733 | 3A 00 B0 : ld   a,($B000) // watchdog
            D736 | CD 40 FD : call $FD40     // read input
            D739 | B8       : cp   b
            D73A | 47       : ld   b,a
            D73B | 28 F6    : jr   z,$D733
            D73D | FE DF    : cp   $DF
            D73F | 20 01    : jr   nz,$D742
            D741 | 35       : dec  (hl)      // decrease code -01
            D742 | FE EF    : cp   $EF
            D744 | 20 01    : jr   nz,$D747
            D746 | 34       : inc  (hl)      // increase code +01
            D747 | FE BF    : cp   $BF
            D749 | 20 04    : jr   nz,$D74F
            D74B | 3E F0    : ld   a,$F0     // decrease code -10
            D74D | 18 06    : jr   $D755
            D74F | FE 7F    : cp   $7F
            D751 | 20 05    : jr   nz,$D758
            D753 | 3E 10    : ld   a,$10     // increase code +10
            D755 | 86       : add  a,(hl)
            D756 | 77       : ld   (hl),a
            D757 | 78       : ld   a,b
            D758 | FE F7    : cp   $F7
            D75A | 20 03    : jr   nz,$D75F
            D75C | 7E       : ld   a,(hl)    // play sound
            D75D | 18 05    : jr   $D764
            D75F | FE F9    : cp   $F9
            D761 | 20 04    : jr   nz,$D767
            D763 | AF       : xor  a         // stop sound
            D764 | CD 03 14 : call $1403     // send sound code
            D767 | 18 CA    : jr   $D733
            -->
        </script>
        <script state="run">
            <output format="----- sound test mode -----"       line="10" align="center" />
            <output format="left : decrease code -01"          line="11" align="center" />
            <output format="right : increase code +01"         line="12" align="center" />
            <output format="down : decrease code -10"          line="13" align="center" />
            <output format="up : increase code +10"            line="14" align="center" />
            <output format="button 1 : play sound"             line="15" align="center" />
            <output format="button 2 : stop sound"             line="16" align="center" />
            <output format="----------------------------"      line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;" line="19" align="center"  >
                <argument>maincpu.pb@8700</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@036F = F500            </action>
            <action>maincpu.mq@D730 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D738 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D740 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D748 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D750 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D758 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D760 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D768 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.mw@0025 = 0027</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0025 = 00DA</action>
        </script>
    </cheat>

</mamecheat>
mimonscr.xml

Code: Select all

<!-- Mighty Monkey (bootleg on Scramble hardware) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@3251 = 3253</action> <!-- background -->
            <action>maincpu.mw@338E = 336E</action> <!-- enemy (monkey) -->
            <action>maincpu.mw@33FA = 336E</action> <!-- enemy (dragon) -->
            <action>maincpu.mw@3591 = 3597</action> <!-- hovering vulture -->
        </script>
        <script state="off">
            <action>maincpu.mw@3251 = 3254</action>
            <action>maincpu.mw@338E = 33DC</action>
            <action>maincpu.mw@33FA = 33DD</action>
            <action>maincpu.mw@3591 = 3599</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mb@085A = 5C</action>
            <action>maincpu.mb@1366 = 00</action> <!-- interval -->
        </script>
        <script state="off">
            <action>maincpu.mb@085A = 60</action>
            <action>maincpu.mb@1366 = D8</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@0865 = D710            </action> <!-- up -->
            <action>maincpu.mw@086D = D710            </action> <!-- down -->
            <action>maincpu.mw@0875 = D71A            </action> <!-- left -->
            <action>maincpu.mw@087D = D71A            </action> <!-- right -->
            <action>maincpu.mq@D710 = 10C112BFCDC50006</action>
            <action>maincpu.mq@D718 = 1410CDC50006C9F9</action>
            <action>maincpu.mq@D720 = FFFFFFFFC9F910C1</action>
            <!--
            D710 | 06 xx    : ld   b,$xx // up, down
            D712 | C5       : push bc
            D713 | CD BF 12 : call $12BF
            D716 | C1       : pop  bc
            D717 | 10 F9    : djnz $D712
            D719 | C9       : ret
            D71A | 06 xx    : ld   b,$xx // left, right
            D71C | C5       : push bc
            D71D | CD 10 14 : call $1410
            D720 | C1       : pop  bc
            D721 | 10 F9    : djnz $D71C
            D723 | C9       : ret
            D724 | FF       : rst  $38
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@D711 = param</action>
            <action>maincpu.mb@D71B = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0865 = 12BF            </action>
            <action>maincpu.mw@086D = 12BF            </action>
            <action>maincpu.mw@0875 = 1410            </action>
            <action>maincpu.mw@087D = 1410            </action>
            <action>maincpu.mq@D710 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D718 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D720 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x04">02       </item>
            <item value="0x06">03       </item>
            <item value="0x08">04       </item>
            <item value="0x0a">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@2997 = param</action> <!-- left -->
            <action>maincpu.mb@29B6 = param</action> <!-- right -->
        </script>
        <script state="off">
            <action>maincpu.mb@2997 = 04</action>
            <action>maincpu.mb@29B6 = 04</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@036F = D730            </action>
            <action>maincpu.mq@D730 = CDC570003A470021</action>
            <action>maincpu.mq@D738 = FEF42847B8C1FD40</action>
            <action>maincpu.mq@D740 = 0120EFFE350120DF</action>
            <action>maincpu.mq@D748 = 18F03E0420BFFE34</action>
            <action>maincpu.mq@D750 = 86103E05207FFE06</action>
            <action>maincpu.mq@D758 = 187E0320F7FE7877</action>
            <action>maincpu.mq@D760 = 03CDAF0420F9FE05</action>
            <action>maincpu.mq@D768 = FFFFFFFFFFC81814</action>
            <!--
            D730 | 21 00 47 : ld   hl,$4700  // sound code address
            D733 | 3A 00 70 : ld   a,($7000) // watchdog
            D736 | C5       : push bc
            D737 | CD 40 FD : call $FD40     // read input
            D73A | C1       : pop  bc
            D73B | B8       : cp   b
            D73C | 47       : ld   b,a
            D73D | 28 F6    : jr   z,$D733
            D73F | FE DF    : cp   $DF
            D741 | 20 01    : jr   nz,$D744
            D743 | 35       : dec  (hl)      // decrease code -01
            D744 | FE EF    : cp   $EF
            D746 | 20 01    : jr   nz,$D749
            D748 | 34       : inc  (hl)      // increase code +01
            D749 | FE BF    : cp   $BF
            D74B | 20 04    : jr   nz,$D751
            D74D | 3E F0    : ld   a,$F0     // decrease code -10
            D74F | 18 06    : jr   $D757
            D751 | FE 7F    : cp   $7F
            D753 | 20 05    : jr   nz,$D75A
            D755 | 3E 10    : ld   a,$10     // increase code +10
            D757 | 86       : add  a,(hl)
            D758 | 77       : ld   (hl),a
            D759 | 78       : ld   a,b
            D75A | FE F7    : cp   $F7
            D75C | 20 03    : jr   nz,$D761
            D75E | 7E       : ld   a,(hl)    // play sound
            D75F | 18 05    : jr   $D766
            D761 | FE F9    : cp   $F9
            D763 | 20 04    : jr   nz,$D769
            D765 | AF       : xor  a         // stop sound
            D766 | CD 03 14 : call $1403     // send sound code
            D769 | 18 CA    : jr   $D733
            -->
        </script>
        <script state="run">
            <output format="----- sound test mode -----"       line="10" align="center" />
            <output format="left : decrease code -01"          line="11" align="center" />
            <output format="right : increase code +01"         line="12" align="center" />
            <output format="down : decrease code -10"          line="13" align="center" />
            <output format="up : increase code +10"            line="14" align="center" />
            <output format="button 1 : play sound"             line="15" align="center" />
            <output format="button 2 : stop sound"             line="16" align="center" />
            <output format="----------------------------"      line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;" line="19" align="center"  >
                <argument>maincpu.pb@4700</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@036F = F500            </action>
            <action>maincpu.mq@D730 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D738 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D740 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D748 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D750 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D758 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D760 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D768 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.mw@0025 = 0027</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0025 = 00DA</action>
        </script>
    </cheat>

</mamecheat>
mimonscra.xml

Code: Select all

<!-- Mighty Monkey (Kaina Games, bootleg on Scramble hardware) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@3251 = 3253</action> <!-- background -->
            <action>maincpu.mw@338E = 336E</action> <!-- enemy (monkey) -->
            <action>maincpu.mw@33FA = 336E</action> <!-- enemy (dragon) -->
            <action>maincpu.mw@3591 = 3597</action> <!-- hovering vulture -->
        </script>
        <script state="off">
            <action>maincpu.mw@3251 = 3254</action>
            <action>maincpu.mw@338E = 33DC</action>
            <action>maincpu.mw@33FA = 33DD</action>
            <action>maincpu.mw@3591 = 3599</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mb@085A = 5C</action>
            <action>maincpu.mb@1366 = 00</action> <!-- interval -->
        </script>
        <script state="off">
            <action>maincpu.mb@085A = 60</action>
            <action>maincpu.mb@1366 = D8</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@0865 = D710            </action> <!-- up -->
            <action>maincpu.mw@086D = D710            </action> <!-- down -->
            <action>maincpu.mw@0875 = D71A            </action> <!-- left -->
            <action>maincpu.mw@087D = D71A            </action> <!-- right -->
            <action>maincpu.mq@D710 = 10C112BFCDC50006</action>
            <action>maincpu.mq@D718 = 1410CDC50006C9F9</action>
            <action>maincpu.mq@D720 = FFFFFFFFC9F910C1</action>
            <!--
            D710 | 06 xx    : ld   b,$xx // up, down
            D712 | C5       : push bc
            D713 | CD BF 12 : call $12BF
            D716 | C1       : pop  bc
            D717 | 10 F9    : djnz $D712
            D719 | C9       : ret
            D71A | 06 xx    : ld   b,$xx // left, right
            D71C | C5       : push bc
            D71D | CD 10 14 : call $1410
            D720 | C1       : pop  bc
            D721 | 10 F9    : djnz $D71C
            D723 | C9       : ret
            D724 | FF       : rst  $38
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@D711 = param</action>
            <action>maincpu.mb@D71B = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0865 = 12BF            </action>
            <action>maincpu.mw@086D = 12BF            </action>
            <action>maincpu.mw@0875 = 1410            </action>
            <action>maincpu.mw@087D = 1410            </action>
            <action>maincpu.mq@D710 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D718 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D720 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x04">02       </item>
            <item value="0x06">03       </item>
            <item value="0x08">04       </item>
            <item value="0x0a">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@2997 = param</action> <!-- left -->
            <action>maincpu.mb@29B6 = param</action> <!-- right -->
        </script>
        <script state="off">
            <action>maincpu.mb@2997 = 04</action>
            <action>maincpu.mb@29B6 = 04</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@036F = D730            </action>
            <action>maincpu.mq@D730 = 40CD70003A470021</action>
            <action>maincpu.mq@D738 = 20DFFEF62847B8FD</action>
            <action>maincpu.mq@D740 = FE340120EFFE3501</action>
            <action>maincpu.mq@D748 = FE0618F03E0420BF</action>
            <action>maincpu.mq@D750 = 787786103E05207F</action>
            <action>maincpu.mq@D758 = FE05187E0320F7FE</action>
            <action>maincpu.mq@D760 = 181403CDAF0420F9</action>
            <action>maincpu.mq@D768 = FFFFFFFFFFFFFFCA</action>
            <!--
            D730 | 21 00 47 : ld   hl,$4700  // sound code address
            D733 | 3A 00 70 : ld   a,($7000) // watchdog
            D736 | CD 40 FD : call $FD40     // read input
            D739 | B8       : cp   b
            D73A | 47       : ld   b,a
            D73B | 28 F6    : jr   z,$D733
            D73D | FE DF    : cp   $DF
            D73F | 20 01    : jr   nz,$D742
            D741 | 35       : dec  (hl)      // decrease code -01
            D742 | FE EF    : cp   $EF
            D744 | 20 01    : jr   nz,$D747
            D746 | 34       : inc  (hl)      // increase code +01
            D747 | FE BF    : cp   $BF
            D749 | 20 04    : jr   nz,$D74F
            D74B | 3E F0    : ld   a,$F0     // decrease code -10
            D74D | 18 06    : jr   $D755
            D74F | FE 7F    : cp   $7F
            D751 | 20 05    : jr   nz,$D758
            D753 | 3E 10    : ld   a,$10     // increase code +10
            D755 | 86       : add  a,(hl)
            D756 | 77       : ld   (hl),a
            D757 | 78       : ld   a,b
            D758 | FE F7    : cp   $F7
            D75A | 20 03    : jr   nz,$D75F
            D75C | 7E       : ld   a,(hl)    // play sound
            D75D | 18 05    : jr   $D764
            D75F | FE F9    : cp   $F9
            D761 | 20 04    : jr   nz,$D767
            D763 | AF       : xor  a         // stop sound
            D764 | CD 03 14 : call $1403     // send sound code
            D767 | 18 CA    : jr   $D733
            -->
        </script>
        <script state="run">
            <output format="----- sound test mode -----"       line="10" align="center" />
            <output format="left : decrease code -01"          line="11" align="center" />
            <output format="right : increase code +01"         line="12" align="center" />
            <output format="down : decrease code -10"          line="13" align="center" />
            <output format="up : increase code +10"            line="14" align="center" />
            <output format="button 1 : play sound"             line="15" align="center" />
            <output format="button 2 : stop sound"             line="16" align="center" />
            <output format="----------------------------"      line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;" line="19" align="center"  >
                <argument>maincpu.pb@4700</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@036F = F500            </action>
            <action>maincpu.mq@D730 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D738 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D740 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D748 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D750 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D758 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D760 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D768 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.mw@0025 = 0027</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0025 = 00DA</action>
        </script>
    </cheat>

</mamecheat>
mimonkeyug.xml

Code: Select all

<!-- Mighty Monkey (U.Games bootleg) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@3251 = 3253</action> <!-- background -->
            <action>maincpu.mw@338E = 336E</action> <!-- enemy (monkey) -->
            <action>maincpu.mw@33FA = 336E</action> <!-- enemy (dragon) -->
            <action>maincpu.mw@3591 = 3597</action> <!-- hovering vulture -->
        </script>
        <script state="off">
            <action>maincpu.mw@3251 = 3254</action>
            <action>maincpu.mw@338E = 33DC</action>
            <action>maincpu.mw@33FA = 33DD</action>
            <action>maincpu.mw@3591 = 3599</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mb@085A = 5C</action>
            <action>maincpu.mb@1366 = 00</action> <!-- interval -->
        </script>
        <script state="off">
            <action>maincpu.mb@085A = 60</action>
            <action>maincpu.mb@1366 = D8</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@0865 = D7B0            </action> <!-- up -->
            <action>maincpu.mw@086D = D7B0            </action> <!-- down -->
            <action>maincpu.mw@0875 = D7BA            </action> <!-- left -->
            <action>maincpu.mw@087D = D7BA            </action> <!-- right -->
            <action>maincpu.mq@D7B0 = 10C112BFCDC50006</action>
            <action>maincpu.mq@D7B8 = 1410CDC50006C9F9</action>
            <action>maincpu.mq@D7C0 = FFFFFFFFC9F910C1</action>
            <!--
            D7B0 | 06 xx    : ld   b,$xx // up, down
            D7B2 | C5       : push bc
            D7B3 | CD BF 12 : call $12BF
            D7B6 | C1       : pop  bc
            D7B7 | 10 F9    : djnz $D7B2
            D7B9 | C9       : ret
            D7BA | 06 xx    : ld   b,$xx // left, right
            D7BC | C5       : push bc
            D7BD | CD 10 14 : call $1410
            D7C0 | C1       : pop  bc
            D7C1 | 10 F9    : djnz $D7BC
            D7C3 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@D7B1 = param</action>
            <action>maincpu.mb@D7BB = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0865 = 12BF            </action>
            <action>maincpu.mw@086D = 12BF            </action>
            <action>maincpu.mw@0875 = 1410            </action>
            <action>maincpu.mw@087D = 1410            </action>
            <action>maincpu.mq@D7B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D7B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@D7C0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x04">02       </item>
            <item value="0x06">03       </item>
            <item value="0x08">04       </item>
            <item value="0x0a">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@2997 = param</action> <!-- left -->
            <action>maincpu.mb@29B6 = param</action> <!-- right -->
        </script>
        <script state="off">
            <action>maincpu.mb@2997 = 04</action>
            <action>maincpu.mb@29B6 = 04</action>
        </script>
    </cheat>

    <cheat desc="sound test mode (test)">
        <!-- no sound -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@036F = FD80            </action>
            <action>maincpu.mq@FD80 = 40CDB0003A870021</action>
            <action>maincpu.mq@FD88 = 20DFFEF62847B8FD</action>
            <action>maincpu.mq@FD90 = FE340120EFFE3501</action>
            <action>maincpu.mq@FD98 = FE0618F03E0420BF</action>
            <action>maincpu.mq@FDA0 = 787786103E05207F</action>
            <action>maincpu.mq@FDA8 = FE05187E0320F7FE</action>
            <action>maincpu.mq@FDB0 = 181403CDAF0420F9</action>
            <action>maincpu.mq@FDB8 = FFFFFFFFFFFFFFCA</action>
            <!--
            FD80 | 21 00 87 : ld   hl,$8700  // sound code address
            FD83 | 3A 00 B0 : ld   a,($B000) // watchdog
            FD86 | CD 40 FD : call $FD40     // read input
            FD89 | B8       : cp   b
            FD8A | 47       : ld   b,a
            FD8B | 28 F6    : jr   z,$FD83
            FD8D | FE DF    : cp   $DF
            FD8F | 20 01    : jr   nz,$FD92
            FD91 | 35       : dec  (hl)      // decrease code -01
            FD92 | FE EF    : cp   $EF
            FD94 | 20 01    : jr   nz,$FD97
            FD96 | 34       : inc  (hl)      // increase code +01
            FD97 | FE BF    : cp   $BF
            FD99 | 20 04    : jr   nz,$FD9F
            FD9B | 3E F0    : ld   a,$F0     // decrease code -10
            FD9D | 18 06    : jr   $FDA5
            FD9F | FE 7F    : cp   $7F
            FDA1 | 20 05    : jr   nz,$FDA8
            FDA3 | 3E 10    : ld   a,$10     // increase code +10
            FDA5 | 86       : add  a,(hl)
            FDA6 | 77       : ld   (hl),a
            FDA7 | 78       : ld   a,b
            FDA8 | FE F7    : cp   $F7
            FDAA | 20 03    : jr   nz,$FDAF
            FDAC | 7E       : ld   a,(hl)    // play sound
            FDAD | 18 05    : jr   $FDB4
            FDAF | FE F9    : cp   $F9
            FDB1 | 20 04    : jr   nz,$FDB7
            FDB3 | AF       : xor  a         // stop sound
            FDB4 | CD 03 14 : call $1403     // send sound code
            FDB7 | 18 CA    : jr   $FD83
            -->
        </script>
        <script state="run">
            <output format="----- sound test mode -----"       line="10" align="center" />
            <output format="left : decrease code -01"          line="11" align="center" />
            <output format="right : increase code +01"         line="12" align="center" />
            <output format="down : decrease code -10"          line="13" align="center" />
            <output format="up : increase code +10"            line="14" align="center" />
            <output format="button 1 : play sound"             line="15" align="center" />
            <output format="button 2 : stop sound"             line="16" align="center" />
            <output format="----------------------------"      line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;" line="19" align="center"  >
                <argument>maincpu.pb@8700</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@036F = F500            </action>
            <action>maincpu.mq@FD80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FD88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FD90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FD98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FDA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FDA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FDB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FDB8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
Current "Invincibility" in official database based on 0.264 is incomplete.
  • You can't "eat" some enemies in dragon mode.
  • Player character "hits" hovering vulture and kills this enemy.
"no hit" code will fix these problems.
  • "sound test mode" : No sound response in mimonkeyug. So marked as "test" in this set.
  • "skip rom check" : Removed from mimonkeyug. This sets patches ROM check from scratch.