[bkungfu] Beyond Kung-Fu

This forum is for posting M.A.M.E. arcade cheats. Requests will be fulfilled here....but please keep the requests to the requests forum.
Post Reply
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[bkungfu] Beyond Kung-Fu

Post by jman »

bkungfu is added on 0.240.

Code: Select all

<cheat desc="infinite credit">
    <script state="run">
        <action>maincpu.pb@e020 = 99</action>
    </script>
</cheat>

<cheat desc="infinite time">
    <comment>turn it off at the end of the floor</comment>
    <script state="run">
        <action>maincpu.pw@e03c = 2000</action>
    </script>
</cheat>

<cheat desc="infinite life">
    <script state="run">
        <action>maincpu.pw@e0bf = 63</action>
    </script>
</cheat>

<cheat desc="infinite energy">
    <comment>turn it off at the end of the floor</comment>
    <script state="run">
        <action>maincpu.pw@e160 = 4000</action>
    </script>
</cheat>

<cheat desc="1 hit to kill boss">
    <comment>not work at floor 3</comment>
    <script state="run">
        <action>maincpu.pb@e170 = 00</action>
    </script>
</cheat>

<cheat desc="start floor">
    <parameter min="0x01" max="0x08" step="0x01" />
    <script state="run">
        <action condition="(maincpu.pb@e0bd == 00) and (maincpu.pb@e0bb == 00)">maincpu.pb@e0bd = param - 1</action>
    </script>
</cheat>
Basic RAM cheats only (credit, time, life, energy, 1hit kill, starting floor). "Invincibility" is in DIP switch menu but it is not "no hit".

EDIT : added "infinite time". renamed to "bkungfu".
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[bkungfu] update

Post by jman »

Code: Select all

<cheat desc="no hit (test)">
    <script state="on">
        <action>maincpu.mw@0a97 = c9af</action> <!-- objects -->
        <action>maincpu.mw@17c4 = 17c6</action> <!-- boss dash attack -->
    </script>
    <script state="off">
        <action>maincpu.mw@0a97 = 5eeb</action>
        <action>maincpu.mw@17c4 = 18f5</action>
    </script>
</cheat>

<cheat desc="auto fire (test)">
    <script state="on">
        <action>maincpu.mw@19a3 =             b790</action>
        <action>maincpu.mw@19f5 =             b790</action>
        <action>maincpu.mw@1a4e =             b790</action>
        <action>maincpu.mw@1a8b =             b790</action>
        <action>maincpu.mw@1b46 =             b790</action>
        <action>maincpu.mq@b790 = e6e0233a471728cd</action>
        <action>maincpu.mq@b798 = ffffffffc947b0a0</action>
        <!--
        b790 | cd 28 17 : call $1728
        b793 | 47       : ld   b,a
        b794 | 3a 23 e0 : ld   a,($E023)
        b797 | e6 a0    : and  $A0
        b799 | b0       : or   b
        b79a | 47       : ld   b,a
        b79b | c9       : ret
        -->
    </script>
    <script state="off">
        <action>maincpu.mw@19a3 =             1728</action>
        <action>maincpu.mw@19f5 =             1728</action>
        <action>maincpu.mw@1a4e =             1728</action>
        <action>maincpu.mw@1a8b =             1728</action>
        <action>maincpu.mw@1b46 =             1728</action>
        <action>maincpu.mq@b790 = ffffffffffffffff</action>
        <action>maincpu.mq@b798 = ffffffffffffffff</action>
    </script>
</cheat>
ROM codes are wip. Required more test.
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[bkungfu] sound test mode

Post by jman »

Code: Select all

<cheat desc="sound test mode (test)">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mw@037d =             b7a0</action>
        <action>maincpu.mq@b7a0 = 01dbe100210404cd</action>
        <action>maincpu.mq@b7a8 = 0120fdfefa2847b8</action>
        <action>maincpu.mq@b7b0 = 7ffe340120fefe35</action>
        <action>maincpu.mq@b7b8 = 20dffe05187e0320</action>
        <action>maincpu.mq@b7c0 = ffdf180113cdaf04</action>
        <!--
        b7a0 | cd 04 04 : call $0404    // screen refresh
        b7a3 | 21 00 e1 : ld   hl,$E100 // sound code address
        b7a6 | db 01    : in   a,($01)  // read input
        b7a8 | b8       : cp   b
        b7a9 | 47       : ld   b,a
        b7aa | 28 fa    : jr   z,$B7A6
        b7ac | fe fd    : cp   $FD
        b7ae | 20 01    : jr   nz,$B7B1
        b7b0 | 35       : dec  (hl)     // decrease code
        b7b1 | fe fe    : cp   $FE
        b7b3 | 20 01    : jr   nz,$B7B6
        b7b5 | 34       : inc  (hl)     // increase code
        b7b6 | fe 7f    : cp   $7F
        b7b8 | 20 03    : jr   nz,$B7BD
        b7ba | 7e       : ld   a,(hl)   // play sound
        b7bb | 18 05    : jr   $B7C2
        b7bd | fe df    : cp   $DF
        b7bf | 20 04    : jr   nz,$B7C5
        b7c1 | af       : xor  a        // stop sound
        b7c2 | cd 13 01 : call $0113    // send sound code
        b7c5 | 18 df    : jr   $B7A6
        -->
    </script>
    <script state="run">
        <output format="----- beyond kung-fu sound test mode -----" line="10" align="center" />
        <output format="left : decrease code"                       line="11" align="center" />
        <output format="right : increase code"                      line="12" align="center" />
        <output format="button 1 : play sound"                      line="13" align="center" />
        <output format="button 2 : stop sound"                      line="14" align="center" />
        <output format="----------------------------"               line="15" align="center" />
        <output format="&lt;&lt; sound code %2.2X &gt;&gt;"         line="17" align="center">
            <argument>maincpu.pb@e100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@037d =             0404</action>
        <action>maincpu.mq@b7a0 = ffffffffffffffff</action>
        <action>maincpu.mq@b7a8 = ffffffffffffffff</action>
        <action>maincpu.mq@b7b0 = ffffffffffffffff</action>
        <action>maincpu.mq@b7b8 = ffffffffffffffff</action>
        <action>maincpu.mq@b7c0 = ffffffffffffffff</action>
    </script>
</cheat>
leo_cor3
Posts: 1
Joined: Tue Apr 04, 2023 3:49 pm

Re: [bkungfu] Beyond Kung-Fu

Post by leo_cor3 »

The emulation does not display the background due to the missing MCU that has not been dumped. This MCU was reportedly used as an anti-piracy protection method. Is it possible to apply a cheat so that the game ignores the missing MCU and starts displaying the background?
Thank's!
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[bkungfu] Beyond Kung-Fu

Post by jman »

Code: Select all

<!-- Beyond Kung-Fu (location test) -->
<mamecheat version="1">

    <cheat desc="no hit (test)">
        <script state="on">
            <action>maincpu.mw@0A97 = C9AF</action> <!-- objects -->
            <action>maincpu.mw@17C4 = 17C6</action> <!-- dash attack (level 5 boss) -->
        </script>
        <script state="off">
            <action>maincpu.mw@0A97 = 5EEB</action>
            <action>maincpu.mw@17C4 = 18F5</action>
        </script>
    </cheat>

    <cheat desc="auto fire (test)">
        <script state="on">
            <action>maincpu.mw@19A3 = B790            </action>
            <action>maincpu.mw@19F5 = B790            </action>
            <action>maincpu.mw@1A4E = B790            </action>
            <action>maincpu.mw@1A8B = B790            </action>
            <action>maincpu.mw@1B46 = B790            </action>
            <action>maincpu.mq@B790 = E6E0233A471728CD</action>
            <action>maincpu.mq@B798 = FFFFFFFFC947B0A0</action>
            <!--
            b790 | cd 28 17 : call $1728
            b793 | 47       : ld   b,a
            b794 | 3a 23 e0 : ld   a,($E023)
            b797 | e6 a0    : and  $A0
            b799 | b0       : or   b
            b79a | 47       : ld   b,a
            b79b | c9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@19A3 = 1728            </action>
            <action>maincpu.mw@19F5 = 1728            </action>
            <action>maincpu.mw@1A4E = 1728            </action>
            <action>maincpu.mw@1A8B = 1728            </action>
            <action>maincpu.mw@1B46 = 1728            </action>
            <action>maincpu.mq@B790 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@B798 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="attack speed up (test)">
        <script state="on">
            <action>maincpu.mb@8968 = 0F</action> <!-- kick -->
            <action>maincpu.mb@8984 = 0F</action> <!-- punch -->
            <action>maincpu.mb@8996 = 0F</action> <!-- punch (crouch) -->
            <action>maincpu.mb@89A8 = 0F</action> <!-- kick (crouch) -->
        </script>
        <script state="off">
            <action>maincpu.mb@8968 = 04</action>
            <action>maincpu.mb@8984 = 04</action>
            <action>maincpu.mb@8996 = 04</action>
            <action>maincpu.mb@89A8 = 04</action>
        </script>
    </cheat>

    <cheat desc="timer speed (test)">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x80">02       </item>
            <item value="0x40">03       </item>
            <item value="0x08">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@59E7 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@59E7 = 05</action>
        </script>
    </cheat>

    <cheat desc="information display">
        <script state="run">
            <output format="P1 score : %06x          high score : %06x           P2 score : %06x" line="01" align="center">
                <argument>(maincpu.pb@E0C3 * 010000) + maincpu.pw@E0C1</argument>
                <argument>(maincpu.pb@E03B * 010000) + maincpu.pw@E039</argument>
                <argument>(maincpu.pb@E0C8 * 010000) + maincpu.pw@E0C6</argument>
            </output>
            <output format="life : %02x          energy : %05x           time : %04x" line="02" align="center">
                <argument>maincpu.pb@E0BF</argument>
                <argument>maincpu.pw@E160</argument>
                <argument>maincpu.pw@E03C</argument>
            </output>
        </script>
    </cheat>

    <cheat desc="sound test mode (test)">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@037D = B7A0            </action>
            <action>maincpu.mq@B7A0 = 01DBE100210404CD</action>
            <action>maincpu.mq@B7A8 = 0120FDFEFA2847B8</action>
            <action>maincpu.mq@B7B0 = FBFE340120FEFE35</action>
            <action>maincpu.mq@B7B8 = F7FE0618F03E0420</action>
            <action>maincpu.mq@B7C0 = FE787786103E0520</action>
            <action>maincpu.mq@B7C8 = DFFE05187E03207F</action>
            <action>maincpu.mq@B7D0 = CE180113CDAF0420</action>
            <!--
            B7A0 | CD 04 04 : call $0404    // screen refresh
            B7A3 | 21 00 E1 : ld   hl,$E100 // sound code address
            B7A6 | DB 01    : in   a,($01)  // read input
            B7A8 | B8       : cp   b
            B7A9 | 47       : ld   b,a
            B7AA | 28 FA    : jr   z,$B7A6
            B7AC | FE FD    : cp   $FD
            B7AE | 20 01    : jr   nz,$B7B1
            B7B0 | 35       : dec  (hl)     // decrease code -01
            B7B1 | FE FE    : cp   $FE
            B7B3 | 20 01    : jr   nz,$B7B6
            B7B5 | 34       : inc  (hl)     // increase code +01
            B7B6 | FE FB    : cp   $FB
            B7B8 | 20 04    : jr   nz,$B7BE
            B7BA | 3E F0    : ld   a,$F0    // decrease code -10
            B7BC | 18 06    : jr   $B7C4
            B7BE | FE F7    : cp   $F7
            B7C0 | 20 05    : jr   nz,$B7C7
            B7C2 | 3E 10    : ld   a,$10    // increase code +10
            B7C4 | 86       : add  a,(hl)
            B7C5 | 77       : ld   (hl),a
            B7C6 | 78       : ld   a,b
            B7C7 | FE 7F    : cp   $7F
            B7C9 | 20 03    : jr   nz,$B7CE
            B7CB | 7E       : ld   a,(hl)   // play sound
            B7CC | 18 05    : jr   $B7D3
            B7CE | FE DF    : cp   $DF
            B7D0 | 20 04    : jr   nz,$B7D6
            B7D2 | AF       : xor  a        // stop sound
            B7D3 | CD 13 01 : call $0113    // send sound code
            B7D6 | 18 CE    : jr   $B7A6
            -->
        </script>
        <script state="run">
            <output format="----- beyond kung-fu 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@E100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@037D = 0404            </action>
            <action>maincpu.mq@B7A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@B7A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@B7B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@B7B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@B7C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@B7C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@B7D0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
  • "attack speed up", "timer speed", "information display" : Added new.
  • "sound test mode" : Rewritten routine. Added up/down key to select code ±10.
Post Reply