[mimonkey]+ Mighty Monkey

This forum is for posting M.A.M.E. Work In Progress "Arcade"cheats that are not quite ready for the prime time. If the cheats are buggy or the cheat descriptions are non-standard then please post them here. Help maybe given but there are no guarantees and they will only be added to the cheat file when the cheat file maintainer is happy with them.
Post Reply
jman
Posts: 1254
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times

[mimonkey]+ Mighty Monkey

Post 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.
jman

my wip cheat database back-up (2024/12/01 ver.)
https://u3.getuploader.com/...../download/47
downloadpass : jman2020
Post Reply