[gundhara] Gundhara

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: 870
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 1 time

[gundhara] Gundhara

Post by jman »

Code: Select all

<!-- Gundhara -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@19524 = 60</action> <!-- P1 enemy -->
            <action>maincpu.mb@195e0 = 60</action> <!-- P2 enemy -->
            <action>maincpu.mb@19c32 = 60</action> <!-- bullet -->
            <action>maincpu.mb@19c9e = 60</action> <!-- bullet (walker) -->
            <action>maincpu.mb@19dfc = 60</action> <!-- P1 missile -->
            <action>maincpu.mb@19e5e = 60</action> <!-- P2 missile -->
            <action>maincpu.mb@19f96 = 60</action> <!-- P1 bomb -->
            <action>maincpu.mb@19ffa = 60</action> <!-- P2 bomb -->
            <action>maincpu.mb@1a0c6 = 60</action> <!-- P1 attack -->
            <action>maincpu.mb@1a118 = 60</action> <!-- P2 attack -->
            <action>maincpu.mb@29eca = 60</action> <!-- P1 enemy (mission 2) -->
            <action>maincpu.mb@29f6e = 60</action> <!-- P2 enemy (mission 2) -->
            <action>maincpu.mb@2a008 = 60</action> <!-- P1 bullet (mission 2) -->
            <action>maincpu.mb@2a052 = 60</action> <!-- P2 bullet (mission 2) -->
        </script>
        <script state="off">
            <action>maincpu.mb@19524 = 6c</action>
            <action>maincpu.mb@195e0 = 6c</action>
            <action>maincpu.mb@19c32 = 6e</action>
            <action>maincpu.mb@19c9e = 6e</action>
            <action>maincpu.mb@19dfc = 6d</action>
            <action>maincpu.mb@19e5e = 6d</action>
            <action>maincpu.mb@19f96 = 6d</action>
            <action>maincpu.mb@1a0c6 = 6d</action>
            <action>maincpu.mb@1a118 = 6d</action>
            <action>maincpu.mb@29eca = 6c</action>
            <action>maincpu.mb@29f6e = 6c</action>
            <action>maincpu.mb@2a008 = 64</action>
            <action>maincpu.mb@2a052 = 64</action>
        </script>
    </cheat>

    <cheat desc="walk through wall">
        <script state="on">
            <action>maincpu.mb@2514e = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@2514e = 67</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mb@223bd = 15</action> <!-- vulcan -->
            <action>maincpu.mb@22535 = 15</action> <!-- shotgun -->
            <action>maincpu.mb@22747 = 15</action> <!-- laser -->
            <action>maincpu.mb@228e1 = 15</action> <!-- bazooka -->
            <action>maincpu.mb@22a95 = 15</action> <!-- fire -->
            <action>maincpu.mb@22bff = 15</action> <!-- kick -->
            <action>maincpu.mb@290f7 = 14</action> <!-- P1 shot (mission 2) -->
            <action>maincpu.mb@29855 = 14</action> <!-- P2 shot (mission 2) -->
            <action>maincpu.mb@4e3d7 = 15</action> <!-- walker (mission 4) -->
        </script>
        <script state="off">
            <action>maincpu.mb@223bd = 1d</action>
            <action>maincpu.mb@22535 = 1d</action>
            <action>maincpu.mb@22747 = 1d</action>
            <action>maincpu.mb@228e1 = 1d</action>
            <action>maincpu.mb@22a95 = 1d</action>
            <action>maincpu.mb@22bff = 1d</action>
            <action>maincpu.mb@290f7 = 1c</action>
            <action>maincpu.mb@29855 = 1c</action>
            <action>maincpu.mb@4e3d7 = 1d</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0180">01 (slow)</item>
            <item value="0x0280">02       </item>
            <item value="0x0380">03       </item>
            <item value="0x0480">04       </item>
            <item value="0x0580">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@024e88 = 4eb9001bed104eb9</action>
            <action>maincpu.mq@024e90 = 001bed263d710000</action>
            <action>maincpu.mq@1bed10 = 363c000034300000</action>
            <action>maincpu.mq@1bed18 = 67066a0244433403</action>
            <action>maincpu.mq@1bed20 = 3d4236004e75363c</action>
            <action>maincpu.mq@1bed28 = 0000343000206706</action>
            <action>maincpu.mq@1bed30 = 6a02444334033d42</action>
            <action>maincpu.mq@1bed38 = 3c004e7500000000</action>
            <!--
            1bed10 | 363c xxxx : move.w #$xxxx,D3        // x-position
            1bed14 | 3430 0000 : move.w (A0,D0.w),D2
            1bed18 | 6706      : beq    $1bed20
            1bed1a | 6a02      : bpl    $1bed1e
            1bed1c | 4443      : neg.w  D3
            1bed1e | 3403      : move.w D3,D2
            1bed20 | 3d42 3600 : move.w D2,($3600,A6)
            1bed24 | 4e75      : rts
            1bed26 | 363c xxxx : move.w #$xxxx,D3        // y-position
            1bed2a | 3430 0020 : move.w ($20,A0,D0.w),D2
            1bed2e | 6706      : beq    $1bed36
            1bed30 | 6a02      : bpl    $1bed34
            1bed32 | 4443      : neg.w  D3
            1bed34 | 3403      : move.w D3,D2
            1bed36 | 3d42 3c00 : move.w D2,($3c00,A6)
            1bed3a | 4e75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@1bed12 =  param</action>
            <action>maincpu.mw@1bed28 =  param</action>
            <action>maincpu.mw@028e28 =  param</action> <!-- P1 left (mission 2) -->
            <action>maincpu.mw@028e46 = -param</action> <!-- P1 right (mission 2) -->
            <action>maincpu.mw@028e64 =  param</action> <!-- P1 up (mission 2) -->
            <action>maincpu.mw@028e80 = -param</action> <!-- P1 down (mission 2) -->
            <action>maincpu.mw@029598 =  param</action> <!-- P2 left (mission 2) -->
            <action>maincpu.mw@0295b6 = -param</action> <!-- P2 right (mission 2) -->
            <action>maincpu.mw@0295d4 =  param</action> <!-- P2 up (mission 2) -->
            <action>maincpu.mw@0295f0 = -param</action> <!-- P2 down (mission 2) -->
        </script>
        <script state="off">
            <action>maincpu.mq@024e88 = 3d70000036003d70</action>
            <action>maincpu.mq@024e90 = 00203c003d710000</action>
            <action>maincpu.mq@1bed10 = 0000000000000000</action>
            <action>maincpu.mq@1bed18 = 0000000000000000</action>
            <action>maincpu.mq@1bed20 = 0000000000000000</action>
            <action>maincpu.mq@1bed28 = 0000000000000000</action>
            <action>maincpu.mq@1bed30 = 0000000000000000</action>
            <action>maincpu.mq@1bed38 = 0000000000000000</action>
            <action>maincpu.mw@028e28 =             0240</action>
            <action>maincpu.mw@028e46 =             fdc0</action>
            <action>maincpu.mw@028e64 =             0240</action>
            <action>maincpu.mw@028e80 =             fdc0</action>
            <action>maincpu.mw@029598 =             0240</action>
            <action>maincpu.mw@0295b6 =             fdc0</action>
            <action>maincpu.mw@0295d4 =             0240</action>
            <action>maincpu.mw@0295f0 =             fdc0</action>
        </script>
    </cheat>

    <cheat desc="direct turn">
        <script state="on">
            <action>maincpu.mb@25045 = 08</action>
            <action>maincpu.mb@2504d = 08</action>
        </script>
        <script state="off">
            <action>maincpu.mb@25045 = 2c</action>
            <action>maincpu.mb@2504d = 2c</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mq@043398 = 4ef9001bed404e71</action>
            <action>maincpu.mq@1bed40 = 41f9002100001602</action>
            <action>maincpu.mq@1bed48 = 143900400001b602</action>
            <action>maincpu.mq@1bed50 = 67f40c0200fe6602</action>
            <action>maincpu.mq@1bed58 = 53100c0200fd6602</action>
            <action>maincpu.mq@1bed60 = 52100c0200f76604</action>
            <action>maincpu.mq@1bed68 = 041000100c0200fb</action>
            <action>maincpu.mq@1bed70 = 6604061000100c02</action>
            <action>maincpu.mq@1bed78 = 00ef662042401010</action>
            <action>maincpu.mq@1bed80 = 0c0000116e0c323c</action>
            <action>maincpu.mq@1bed88 = 000f4eb90000a1ca</action>
            <action>maincpu.mq@1bed90 = 600a040000124eb9</action>
            <action>maincpu.mq@1bed98 = 0000a20c0c0200df</action>
            <action>maincpu.mq@1beda0 = 660c323c000f4240</action>
            <action>maincpu.mq@1beda8 = 4eb90000a1ca6096</action>
            <!--
            1bed40 | 41f9 0021 0000 : lea    $210000.l,A0 // sound code address
            1bed46 | 1602           : move.b D2,D3
            1bed48 | 1439 0040 0001 : move.b $400001.l,D2 // read input
            1bed4e | b602           : cmp.b  D2,D3
            1bed50 | 67f4           : beq    $1bed46
            1bed52 | 0c02 00fe      : cmpi.b #-$2,D2
            1bed56 | 6602           : bne    $1bed5a
            1bed58 | 5310           : subq.b #1,(A0)      // decrease code -01
            1bed5a | 0c02 00fd      : cmpi.b #-$3,D2
            1bed5e | 6602           : bne    $1bed62
            1bed60 | 5210           : addq.b #1,(A0)      // increase code +01
            1bed62 | 0c02 00f7      : cmpi.b #-$9,D2
            1bed66 | 6604           : bne    $1bed6c
            1bed68 | 0410 0010      : subi.b #$10,(A0)    // decrease code -10
            1bed6c | 0c02 00fb      : cmpi.b #-$5,D2
            1bed70 | 6604           : bne    $1bed76
            1bed72 | 0610 0010      : addi.b #$10,(A0)    // increase code +10
            1bed76 | 0c02 00ef      : cmpi.b #-$11,D2
            1bed7a | 6620           : bne    $1bed9c
            1bed7c | 4240           : clr.w  D0           // play sound
            1bed7e | 1010           : move.b (A0),D0
            1bed80 | 0c00 0011      : cmpi.b #$11,D0
            1bed84 | 6e0c           : bgt    $1bed92
            1bed86 | 323c 000f      : move.w #$f,D1
            1bed8a | 4eb9 0000 a1ca : jsr    $a1ca.l      // music
            1bed90 | 600a           : bra    $1bed9c
            1bed92 | 0400 0012      : subi.b #$12,D0
            1bed96 | 4eb9 0000 a20c : jsr    $a20c.l      // sfx
            1bed9c | 0c02 00df      : cmpi.b #-$21,D2
            1beda0 | 660c           : bne    $1bedae
            1beda2 | 323c 000f      : move.w #$f,D1
            1beda6 | 4240           : clr.w  D0           // stop sound
            1beda8 | 4eb9 0000 a1ca : jsr    $a1ca.l
            1bedae | 6096           : bra    $1bed46
            -->
        </script>
        <script state="run">
            <output format="----- gundhara 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 %2.2X &gt;&gt;"   line="19" align="center"  >
                <argument>maincpu.pb@210000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@043398 = 083900060020a649</action>
            <action>maincpu.mq@1bed40 = 0000000000000000</action>
            <action>maincpu.mq@1bed48 = 0000000000000000</action>
            <action>maincpu.mq@1bed50 = 0000000000000000</action>
            <action>maincpu.mq@1bed58 = 0000000000000000</action>
            <action>maincpu.mq@1bed60 = 0000000000000000</action>
            <action>maincpu.mq@1bed68 = 0000000000000000</action>
            <action>maincpu.mq@1bed70 = 0000000000000000</action>
            <action>maincpu.mq@1bed78 = 0000000000000000</action>
            <action>maincpu.mq@1bed80 = 0000000000000000</action>
            <action>maincpu.mq@1bed88 = 0000000000000000</action>
            <action>maincpu.mq@1bed90 = 0000000000000000</action>
            <action>maincpu.mq@1bed98 = 0000000000000000</action>
            <action>maincpu.mq@1beda0 = 0000000000000000</action>
            <action>maincpu.mq@1beda8 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
"sound test mode" : the game will reset when you try to play code 0x5f or later.
jman
Posts: 870
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 1 time

[gundhara]+ Gundhara

Post by jman »

gundhara.xml

Code: Select all

<!-- Gundhara -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@19524 = 60</action> <!-- P1 enemy -->
            <action>maincpu.mb@195E0 = 60</action> <!-- P2 enemy -->
            <action>maincpu.mb@19C32 = 60</action> <!-- bullet -->
            <action>maincpu.mb@19C9E = 60</action> <!-- bullet (walker) -->
            <action>maincpu.mb@19DFC = 60</action> <!-- P1 missile -->
            <action>maincpu.mb@19E5E = 60</action> <!-- P2 missile -->
            <action>maincpu.mb@19F96 = 60</action> <!-- P1 bomb -->
            <action>maincpu.mb@19FFA = 60</action> <!-- P2 bomb -->
            <action>maincpu.mb@1A0C6 = 60</action> <!-- P1 attack -->
            <action>maincpu.mb@1A118 = 60</action> <!-- P2 attack -->
            <action>maincpu.mb@29ECA = 60</action> <!-- P1 enemy (mission 2) -->
            <action>maincpu.mb@29F6E = 60</action> <!-- P2 enemy (mission 2) -->
            <action>maincpu.mb@2A008 = 60</action> <!-- P1 bullet (mission 2) -->
            <action>maincpu.mb@2A052 = 60</action> <!-- P2 bullet (mission 2) -->
        </script>
        <script state="off">
            <action>maincpu.mb@19524 = 6C</action>
            <action>maincpu.mb@195E0 = 6C</action>
            <action>maincpu.mb@19C32 = 6E</action>
            <action>maincpu.mb@19C9E = 6E</action>
            <action>maincpu.mb@19DFC = 6D</action>
            <action>maincpu.mb@19E5E = 6D</action>
            <action>maincpu.mb@19F96 = 6D</action>
            <action>maincpu.mb@19FFA = 6D</action>
            <action>maincpu.mb@1A0C6 = 6D</action>
            <action>maincpu.mb@1A118 = 6D</action>
            <action>maincpu.mb@29ECA = 6C</action>
            <action>maincpu.mb@29F6E = 6C</action>
            <action>maincpu.mb@2A008 = 64</action>
            <action>maincpu.mb@2A052 = 64</action>
        </script>
    </cheat>

    <cheat desc="walk through wall">
        <script state="on">
            <action>maincpu.mb@2514E = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@2514E = 67</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@223BD = 15</action> <!-- vulcan -->
            <action>maincpu.mb@22535 = 15</action> <!-- shotgun -->
            <action>maincpu.mb@22747 = 15</action> <!-- laser -->
            <action>maincpu.mb@228E1 = 15</action> <!-- bazooka -->
            <action>maincpu.mb@22A95 = 15</action> <!-- fire -->
            <action>maincpu.mb@22BFF = 15</action> <!-- kick -->
            <action>maincpu.mb@290F7 = 14</action> <!-- P1 shot (mission 2) -->
            <action>maincpu.mb@29855 = 14</action> <!-- P2 shot (mission 2) -->
            <action>maincpu.mb@4E3D7 = 15</action> <!-- walker (mission 4) -->
        </script>
        <script state="off">
            <action>maincpu.mb@223BD = 1D</action>
            <action>maincpu.mb@22535 = 1D</action>
            <action>maincpu.mb@22747 = 1D</action>
            <action>maincpu.mb@228E1 = 1D</action>
            <action>maincpu.mb@22A95 = 1D</action>
            <action>maincpu.mb@22BFF = 1D</action>
            <action>maincpu.mb@290F7 = 1C</action>
            <action>maincpu.mb@29855 = 1C</action>
            <action>maincpu.mb@4E3D7 = 1D</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0180">01 (slow)</item>
            <item value="0x0280">02       </item>
            <item value="0x0380">03       </item>
            <item value="0x0480">04       </item>
            <item value="0x0580">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@024E88 = 4EB9001BED104EB9</action>
            <action>maincpu.mq@024E90 = 001BED263D710000</action>
            <action>maincpu.mq@1BED10 = 363C000034300000</action>
            <action>maincpu.mq@1BED18 = 67066A0244433403</action>
            <action>maincpu.mq@1BED20 = 3D4236004E75363C</action>
            <action>maincpu.mq@1BED28 = 0000343000206706</action>
            <action>maincpu.mq@1BED30 = 6A02444334033D42</action>
            <action>maincpu.mq@1BED38 = 3C004E7500000000</action>
            <!--
            1BED10 | 363C xxxx : move.w  #$xx, D3          // x position
            1BED14 | 3430 0000 : move.w  (A0,D0.w), D2
            1BED18 | 6706      : beq     $1bed20
            1BED1A | 6A02      : bpl     $1bed1e
            1BED1C | 4443      : neg.w   D3
            1BED1E | 3403      : move.w  D3, D2
            1BED20 | 3D42 3600 : move.w  D2, ($3600,A6)
            1BED24 | 4E75      : rts
            1BED26 | 363C xxxx : move.w  #$xx, D3          // y position
            1BED2A | 3430 0020 : move.w  ($20,A0,D0.w), D2
            1BED2E | 6706      : beq     $1bed36
            1BED30 | 6A02      : bpl     $1bed34
            1BED32 | 4443      : neg.w   D3
            1BED34 | 3403      : move.w  D3, D2
            1BED36 | 3D42 3C00 : move.w  D2, ($3c00,A6)
            1BED3A | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@1BED12 =  param</action>
            <action>maincpu.mw@1BED28 =  param</action>
            <action>maincpu.mw@028E28 =  param</action> <!-- P1 left (mission 2) -->
            <action>maincpu.mw@028E46 = -param</action> <!-- P1 right (mission 2) -->
            <action>maincpu.mw@028E64 =  param</action> <!-- P1 up (mission 2) -->
            <action>maincpu.mw@028E80 = -param</action> <!-- P1 down (mission 2) -->
            <action>maincpu.mw@029598 =  param</action> <!-- P2 left (mission 2) -->
            <action>maincpu.mw@0295B6 = -param</action> <!-- P2 right (mission 2) -->
            <action>maincpu.mw@0295D4 =  param</action> <!-- P2 up (mission 2) -->
            <action>maincpu.mw@0295F0 = -param</action> <!-- P2 down (mission 2) -->
        </script>
        <script state="off">
            <action>maincpu.mq@024E88 = 3D70000036003D70</action>
            <action>maincpu.mq@024E90 = 00203C003D710000</action>
            <action>maincpu.mq@1BED10 = 0000000000000000</action>
            <action>maincpu.mq@1BED18 = 0000000000000000</action>
            <action>maincpu.mq@1BED20 = 0000000000000000</action>
            <action>maincpu.mq@1BED28 = 0000000000000000</action>
            <action>maincpu.mq@1BED30 = 0000000000000000</action>
            <action>maincpu.mq@1BED38 = 0000000000000000</action>
            <action>maincpu.mw@028E28 = 0240            </action>
            <action>maincpu.mw@028E46 = FDC0            </action>
            <action>maincpu.mw@028E64 = 0240            </action>
            <action>maincpu.mw@028E80 = FDC0            </action>
            <action>maincpu.mw@029598 = 0240            </action>
            <action>maincpu.mw@0295B6 = FDC0            </action>
            <action>maincpu.mw@0295D4 = 0240            </action>
            <action>maincpu.mw@0295F0 = FDC0            </action>
        </script>
    </cheat>

    <cheat desc="direct turn">
        <script state="on">
            <action>maincpu.mb@25045 = 08</action>
            <action>maincpu.mb@2504D = 08</action>
        </script>
        <script state="off">
            <action>maincpu.mb@25045 = 2C</action>
            <action>maincpu.mb@2504D = 2C</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mq@043398 = 4EF9001BED404E71</action>
            <action>maincpu.mq@1BED40 = 41F9002100001602</action>
            <action>maincpu.mq@1BED48 = 143900400001B602</action>
            <action>maincpu.mq@1BED50 = 67F40C0200FE6602</action>
            <action>maincpu.mq@1BED58 = 53100C0200FD6602</action>
            <action>maincpu.mq@1BED60 = 52100C0200F76604</action>
            <action>maincpu.mq@1BED68 = 041000100C0200FB</action>
            <action>maincpu.mq@1BED70 = 6604061000100C02</action>
            <action>maincpu.mq@1BED78 = 00EF662042401010</action>
            <action>maincpu.mq@1BED80 = 0C0000116E0C323C</action>
            <action>maincpu.mq@1BED88 = 000F4EB90000A1CA</action>
            <action>maincpu.mq@1BED90 = 600A040000124EB9</action>
            <action>maincpu.mq@1BED98 = 0000A20C0C0200DF</action>
            <action>maincpu.mq@1BEDA0 = 660C323C000F4240</action>
            <action>maincpu.mq@1BEDA8 = 4EB90000A1CA6096</action>
            <!--
            1BED40 | 41F9 0021 0000 : lea     $210000.l, A0 // sound code address
            1BED46 | 1602           : move.b  D2, D3
            1BED48 | 1439 0040 0001 : move.b  $400001.l, D2 // read input
            1BED4E | B602           : cmp.b   D2, D3
            1BED50 | 67F4           : beq     $1bed46
            1BED52 | 0C02 00FE      : cmpi.b  #-$2, D2
            1BED56 | 6602           : bne     $1bed5a
            1BED58 | 5310           : subq.b  #1, (A0)      // decrease code -01
            1BED5A | 0C02 00FD      : cmpi.b  #-$3, D2
            1BED5E | 6602           : bne     $1bed62
            1BED60 | 5210           : addq.b  #1, (A0)      // increase code +01
            1BED62 | 0C02 00F7      : cmpi.b  #-$9, D2
            1BED66 | 6604           : bne     $1bed6c
            1BED68 | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            1BED6C | 0C02 00FB      : cmpi.b  #-$5, D2
            1BED70 | 6604           : bne     $1bed76
            1BED72 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            1BED76 | 0C02 00EF      : cmpi.b  #-$11, D2
            1BED7A | 6620           : bne     $1bed9c
            1BED7C | 4240           : clr.w   D0            // play sound
            1BED7E | 1010           : move.b  (A0), D0
            1BED80 | 0C00 0011      : cmpi.b  #$11, D0
            1BED84 | 6E0C           : bgt     $1bed92
            1BED86 | 323C 000F      : move.w  #$f, D1       // music
            1BED8A | 4EB9 0000 A1CA : jsr     $a1ca.l
            1BED90 | 600A           : bra     $1bed9c
            1BED92 | 0400 0012      : subi.b  #$12, D0      // sfx
            1BED96 | 4EB9 0000 A20C : jsr     $a20c.l
            1BED9C | 0C02 00DF      : cmpi.b  #-$21, D2
            1BEDA0 | 660C           : bne     $1bedae
            1BEDA2 | 323C 000F      : move.w  #$f, D1       // stop sound
            1BEDA6 | 4240           : clr.w   D0
            1BEDA8 | 4EB9 0000 A1CA : jsr     $a1ca.l
            1BEDAE | 6096           : bra     $1bed46
            -->
        </script>
        <script state="run">
            <output format="----- gundhara 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@210000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@043398 = 083900060020A649</action>
            <action>maincpu.mq@1BED40 = 0000000000000000</action>
            <action>maincpu.mq@1BED48 = 0000000000000000</action>
            <action>maincpu.mq@1BED50 = 0000000000000000</action>
            <action>maincpu.mq@1BED58 = 0000000000000000</action>
            <action>maincpu.mq@1BED60 = 0000000000000000</action>
            <action>maincpu.mq@1BED68 = 0000000000000000</action>
            <action>maincpu.mq@1BED70 = 0000000000000000</action>
            <action>maincpu.mq@1BED78 = 0000000000000000</action>
            <action>maincpu.mq@1BED80 = 0000000000000000</action>
            <action>maincpu.mq@1BED88 = 0000000000000000</action>
            <action>maincpu.mq@1BED90 = 0000000000000000</action>
            <action>maincpu.mq@1BED98 = 0000000000000000</action>
            <action>maincpu.mq@1BEDA0 = 0000000000000000</action>
            <action>maincpu.mq@1BEDA8 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
gundharac.xml

Code: Select all

<!-- Gundhara (Chinese, bootleg?) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@19524 = 60</action> <!-- P1 enemy -->
            <action>maincpu.mb@195E0 = 60</action> <!-- P2 enemy -->
            <action>maincpu.mb@19C32 = 60</action> <!-- bullet -->
            <action>maincpu.mb@19C9E = 60</action> <!-- bullet (walker) -->
            <action>maincpu.mb@19DFC = 60</action> <!-- P1 missile -->
            <action>maincpu.mb@19E5E = 60</action> <!-- P2 missile -->
            <action>maincpu.mb@19F96 = 60</action> <!-- P1 bomb -->
            <action>maincpu.mb@19FFA = 60</action> <!-- P2 bomb -->
            <action>maincpu.mb@1A0C6 = 60</action> <!-- P1 attack -->
            <action>maincpu.mb@1A118 = 60</action> <!-- P2 attack -->
            <action>maincpu.mb@29ECA = 60</action> <!-- P1 enemy (mission 2) -->
            <action>maincpu.mb@29F6E = 60</action> <!-- P2 enemy (mission 2) -->
            <action>maincpu.mb@2A008 = 60</action> <!-- P1 bullet (mission 2) -->
            <action>maincpu.mb@2A052 = 60</action> <!-- P2 bullet (mission 2) -->
        </script>
        <script state="off">
            <action>maincpu.mb@19524 = 6C</action>
            <action>maincpu.mb@195E0 = 6C</action>
            <action>maincpu.mb@19C32 = 6E</action>
            <action>maincpu.mb@19C9E = 6E</action>
            <action>maincpu.mb@19DFC = 6D</action>
            <action>maincpu.mb@19E5E = 6D</action>
            <action>maincpu.mb@19F96 = 6D</action>
            <action>maincpu.mb@19FFA = 6D</action>
            <action>maincpu.mb@1A0C6 = 6D</action>
            <action>maincpu.mb@1A118 = 6D</action>
            <action>maincpu.mb@29ECA = 6C</action>
            <action>maincpu.mb@29F6E = 6C</action>
            <action>maincpu.mb@2A008 = 64</action>
            <action>maincpu.mb@2A052 = 64</action>
        </script>
    </cheat>

    <cheat desc="walk through wall">
        <script state="on">
            <action>maincpu.mb@2514E = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@2514E = 67</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@223BD = 15</action> <!-- vulcan -->
            <action>maincpu.mb@22535 = 15</action> <!-- shotgun -->
            <action>maincpu.mb@22747 = 15</action> <!-- laser -->
            <action>maincpu.mb@228E1 = 15</action> <!-- bazooka -->
            <action>maincpu.mb@22A95 = 15</action> <!-- fire -->
            <action>maincpu.mb@22BFF = 15</action> <!-- kick -->
            <action>maincpu.mb@290F7 = 14</action> <!-- P1 shot (mission 2) -->
            <action>maincpu.mb@29855 = 14</action> <!-- P2 shot (mission 2) -->
            <action>maincpu.mb@4E3D7 = 15</action> <!-- walker (mission 4) -->
        </script>
        <script state="off">
            <action>maincpu.mb@223BD = 1D</action>
            <action>maincpu.mb@22535 = 1D</action>
            <action>maincpu.mb@22747 = 1D</action>
            <action>maincpu.mb@228E1 = 1D</action>
            <action>maincpu.mb@22A95 = 1D</action>
            <action>maincpu.mb@22BFF = 1D</action>
            <action>maincpu.mb@290F7 = 1C</action>
            <action>maincpu.mb@29855 = 1C</action>
            <action>maincpu.mb@4E3D7 = 1D</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0180">01 (slow)</item>
            <item value="0x0280">02       </item>
            <item value="0x0380">03       </item>
            <item value="0x0480">04       </item>
            <item value="0x0580">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@024E88 = 4EB9001BED104EB9</action>
            <action>maincpu.mq@024E90 = 001BED263D710000</action>
            <action>maincpu.mq@1BED10 = 363C000034300000</action>
            <action>maincpu.mq@1BED18 = 67066A0244433403</action>
            <action>maincpu.mq@1BED20 = 3D4236004E75363C</action>
            <action>maincpu.mq@1BED28 = 0000343000206706</action>
            <action>maincpu.mq@1BED30 = 6A02444334033D42</action>
            <action>maincpu.mq@1BED38 = 3C004E7500000000</action>
            <!--
            1BED10 | 363C xxxx : move.w  #$xx, D3          // x position
            1BED14 | 3430 0000 : move.w  (A0,D0.w), D2
            1BED18 | 6706      : beq     $1bed20
            1BED1A | 6A02      : bpl     $1bed1e
            1BED1C | 4443      : neg.w   D3
            1BED1E | 3403      : move.w  D3, D2
            1BED20 | 3D42 3600 : move.w  D2, ($3600,A6)
            1BED24 | 4E75      : rts
            1BED26 | 363C xxxx : move.w  #$xx, D3          // y position
            1BED2A | 3430 0020 : move.w  ($20,A0,D0.w), D2
            1BED2E | 6706      : beq     $1bed36
            1BED30 | 6A02      : bpl     $1bed34
            1BED32 | 4443      : neg.w   D3
            1BED34 | 3403      : move.w  D3, D2
            1BED36 | 3D42 3C00 : move.w  D2, ($3c00,A6)
            1BED3A | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@1BED12 =  param</action>
            <action>maincpu.mw@1BED28 =  param</action>
            <action>maincpu.mw@028E28 =  param</action> <!-- P1 left (mission 2) -->
            <action>maincpu.mw@028E46 = -param</action> <!-- P1 right (mission 2) -->
            <action>maincpu.mw@028E64 =  param</action> <!-- P1 up (mission 2) -->
            <action>maincpu.mw@028E80 = -param</action> <!-- P1 down (mission 2) -->
            <action>maincpu.mw@029598 =  param</action> <!-- P2 left (mission 2) -->
            <action>maincpu.mw@0295B6 = -param</action> <!-- P2 right (mission 2) -->
            <action>maincpu.mw@0295D4 =  param</action> <!-- P2 up (mission 2) -->
            <action>maincpu.mw@0295F0 = -param</action> <!-- P2 down (mission 2) -->
        </script>
        <script state="off">
            <action>maincpu.mq@024E88 = 3D70000036003D70</action>
            <action>maincpu.mq@024E90 = 00203C003D710000</action>
            <action>maincpu.mq@1BED10 = 0000000000000000</action>
            <action>maincpu.mq@1BED18 = 0000000000000000</action>
            <action>maincpu.mq@1BED20 = 0000000000000000</action>
            <action>maincpu.mq@1BED28 = 0000000000000000</action>
            <action>maincpu.mq@1BED30 = 0000000000000000</action>
            <action>maincpu.mq@1BED38 = 0000000000000000</action>
            <action>maincpu.mw@028E28 = 0240            </action>
            <action>maincpu.mw@028E46 = FDC0            </action>
            <action>maincpu.mw@028E64 = 0240            </action>
            <action>maincpu.mw@028E80 = FDC0            </action>
            <action>maincpu.mw@029598 = 0240            </action>
            <action>maincpu.mw@0295B6 = FDC0            </action>
            <action>maincpu.mw@0295D4 = 0240            </action>
            <action>maincpu.mw@0295F0 = FDC0            </action>
        </script>
    </cheat>

    <cheat desc="direct turn">
        <script state="on">
            <action>maincpu.mb@25045 = 08</action>
            <action>maincpu.mb@2504D = 08</action>
        </script>
        <script state="off">
            <action>maincpu.mb@25045 = 2C</action>
            <action>maincpu.mb@2504D = 2C</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mq@043398 = 4EF9001BED404E71</action>
            <action>maincpu.mq@1BED40 = 41F9002100001602</action>
            <action>maincpu.mq@1BED48 = 143900400001B602</action>
            <action>maincpu.mq@1BED50 = 67F40C0200FE6602</action>
            <action>maincpu.mq@1BED58 = 53100C0200FD6602</action>
            <action>maincpu.mq@1BED60 = 52100C0200F76604</action>
            <action>maincpu.mq@1BED68 = 041000100C0200FB</action>
            <action>maincpu.mq@1BED70 = 6604061000100C02</action>
            <action>maincpu.mq@1BED78 = 00EF662042401010</action>
            <action>maincpu.mq@1BED80 = 0C0000116E0C323C</action>
            <action>maincpu.mq@1BED88 = 000F4EB90000A1CA</action>
            <action>maincpu.mq@1BED90 = 600A040000124EB9</action>
            <action>maincpu.mq@1BED98 = 0000A20C0C0200DF</action>
            <action>maincpu.mq@1BEDA0 = 660C323C000F4240</action>
            <action>maincpu.mq@1BEDA8 = 4EB90000A1CA6096</action>
            <!--
            1BED40 | 41F9 0021 0000 : lea     $210000.l, A0 // sound code address
            1BED46 | 1602           : move.b  D2, D3
            1BED48 | 1439 0040 0001 : move.b  $400001.l, D2 // read input
            1BED4E | B602           : cmp.b   D2, D3
            1BED50 | 67F4           : beq     $1bed46
            1BED52 | 0C02 00FE      : cmpi.b  #-$2, D2
            1BED56 | 6602           : bne     $1bed5a
            1BED58 | 5310           : subq.b  #1, (A0)      // decrease code -01
            1BED5A | 0C02 00FD      : cmpi.b  #-$3, D2
            1BED5E | 6602           : bne     $1bed62
            1BED60 | 5210           : addq.b  #1, (A0)      // increase code +01
            1BED62 | 0C02 00F7      : cmpi.b  #-$9, D2
            1BED66 | 6604           : bne     $1bed6c
            1BED68 | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            1BED6C | 0C02 00FB      : cmpi.b  #-$5, D2
            1BED70 | 6604           : bne     $1bed76
            1BED72 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            1BED76 | 0C02 00EF      : cmpi.b  #-$11, D2
            1BED7A | 6620           : bne     $1bed9c
            1BED7C | 4240           : clr.w   D0            // play sound
            1BED7E | 1010           : move.b  (A0), D0
            1BED80 | 0C00 0011      : cmpi.b  #$11, D0
            1BED84 | 6E0C           : bgt     $1bed92
            1BED86 | 323C 000F      : move.w  #$f, D1       // music
            1BED8A | 4EB9 0000 A1CA : jsr     $a1ca.l
            1BED90 | 600A           : bra     $1bed9c
            1BED92 | 0400 0012      : subi.b  #$12, D0      // sfx
            1BED96 | 4EB9 0000 A20C : jsr     $a20c.l
            1BED9C | 0C02 00DF      : cmpi.b  #-$21, D2
            1BEDA0 | 660C           : bne     $1bedae
            1BEDA2 | 323C 000F      : move.w  #$f, D1       // stop sound
            1BEDA6 | 4240           : clr.w   D0
            1BEDA8 | 4EB9 0000 A1CA : jsr     $a1ca.l
            1BEDAE | 6096           : bra     $1bed46
            -->
        </script>
        <script state="run">
            <output format="----- gundhara 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@210000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@043398 = 083900060020A649</action>
            <action>maincpu.mq@1BED40 = 0000000000000000</action>
            <action>maincpu.mq@1BED48 = 0000000000000000</action>
            <action>maincpu.mq@1BED50 = 0000000000000000</action>
            <action>maincpu.mq@1BED58 = 0000000000000000</action>
            <action>maincpu.mq@1BED60 = 0000000000000000</action>
            <action>maincpu.mq@1BED68 = 0000000000000000</action>
            <action>maincpu.mq@1BED70 = 0000000000000000</action>
            <action>maincpu.mq@1BED78 = 0000000000000000</action>
            <action>maincpu.mq@1BED80 = 0000000000000000</action>
            <action>maincpu.mq@1BED88 = 0000000000000000</action>
            <action>maincpu.mq@1BED90 = 0000000000000000</action>
            <action>maincpu.mq@1BED98 = 0000000000000000</action>
            <action>maincpu.mq@1BEDA0 = 0000000000000000</action>
            <action>maincpu.mq@1BEDA8 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
Post Reply