[sonson]+ Son Son

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

[sonson]+ Son Son

Post by jman »

sonson.xml

Code: Select all

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

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@E742 = 20</action> <!-- gate -->
            <action>maincpu.mb@ED17 = 17</action> <!-- enemy -->
            <action>maincpu.mb@EDE4 = 18</action> <!-- bullet -->
            <action>maincpu.mb@EF41 = 20</action> <!-- big enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@E742 = 22</action>
            <action>maincpu.mb@ED17 = 0F</action>
            <action>maincpu.mb@EDE4 =  B</action>
            <action>maincpu.mb@EF41 = 22</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mb@AD17 = E6</action>
        </script>
        <script state="off">
            <action>maincpu.mb@AD17 = E4</action>
        </script>
    </cheat>

    <cheat desc="walk speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0180">02       </item>
            <item value="0x0280">03       </item>
            <item value="0x0380">04       </item>
            <item value="0x0480">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@AA16 = param</action> <!-- right -->
            <action>maincpu.mw@AA1E = param</action> <!-- left -->
        </script>
        <script state="off">
            <action>maincpu.mw@AA16 = 01AA</action>
            <action>maincpu.mw@AA1E = 014D</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0100">01 (slow)</item>
            <item value="0x0600">02       </item>
            <item value="0x0800">03       </item>
            <item value="0x0A00">04       </item>
            <item value="0x0C00">05 (slow)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@B053 =  param</action>
            <action>maincpu.mw@B059 = -param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@B053 = 0600</action>
            <action>maincpu.mw@B059 = FA00</action>
        </script>
    </cheat>

    <cheat desc="hidden bamboo finder">
        <script state="on">
            <action>maincpu.mw@E5B5 = FFD1            </action>
            <action>maincpu.mq@FFD1 = E601C10127037EE6</action>
            <action>maincpu.mq@FFD9 = B27EE6CFFFFFFFFF</action>
            <!--
            FFD1 | E6 01    : LDB    $1,X
            FFD3 | C1 01    : CMPB   #$01
            FFD5 | 27 03    : BEQ    $FFDA
            FFD7 | 7E E6 B2 : JMP    $E6B2
            FFDA | 7E E6 CF : JMP    $E6CF
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@E5B5 = E6B2            </action>
            <action>maincpu.mq@FFD1 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FFD9 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- sometimes code 0x16 is played incorrectly -->
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@41BE = 8260            </action>
            <action>maincpu.mq@8260 = 8E1000108E0020C6</action>
            <action>maincpu.mq@8268 = 20D7F4CC1000E789</action>
            <action>maincpu.mq@8270 = 0400A7800AF426F6</action>
            <action>maincpu.mq@8278 = 313F26EB9781B630</action>
            <action>maincpu.mq@8280 = 0443464684809782</action>
            <action>maincpu.mq@8288 = B6300243843D9A82</action>
            <action>maincpu.mq@8290 = 918127E8D6808104</action>
            <action>maincpu.mq@8298 = 26015A810826015C</action>
            <action>maincpu.mq@82A0 = 81202602C0108110</action>
            <action>maincpu.mq@82A8 = 2602CB10D7808101</action>
            <action>maincpu.mq@82B0 = 270681802605C612</action>
            <action>maincpu.mq@82B8 = BD638720BF000000</action>
            <!--
            8260 | 8E 10 00    : LDX    #$1000 // clear screen
            8263 | 10 8E 00 20 : LDY    #$0020
            8267 | C6 20       : LDB    #$20
            8269 | D7 F4       : STB    $F4
            826B | CC 10 00    : LDD    #$1000
            826E | E7 89 04 00 : STB    $0400,X
            8272 | A7 80       : STA    ,X+
            8274 | 0A F4       : DEC    $F4
            8276 | 26 F6       : BNE    $826E
            8278 | 31 3F       : LEAY   -$1,Y
            827A | 26 EB       : BNE    $8267
            827C | 97 81       : STA    $81
            827E | B6 30 04    : LDA    $3004 // read start button
            8281 | 43          : COMA
            8282 | 46          : RORA
            8283 | 46          : RORA
            8284 | 84 80       : ANDA   #$80
            8286 | 97 82       : STA    $82
            8288 | B6 30 02    : LDA    $3002 // read other inputs
            828B | 43          : COMA
            828C | 84 3D       : ANDA   #$3D
            828E | 9A 82       : ORA    $82
            8290 | 91 81       : CMPA   $81
            8292 | 27 E8       : BEQ    $827C
            8294 | D6 80       : LDB    $80
            8296 | 81 04       : CMPA   #$04
            8298 | 26 01       : BNE    $829B
            829A | 5A          : DECB         // decrease code -01
            829B | 81 08       : CMPA   #$08
            829D | 26 01       : BNE    $82A0
            829F | 5C          : INCB         // increase code +01
            82A0 | 81 20       : CMPA   #$20
            82A2 | 26 02       : BNE    $82A6
            82A4 | C0 10       : SUBB   #$10  // decrease code -01
            82A6 | 81 10       : CMPA   #$10
            82A8 | 26 02       : BNE    $82AC
            82AA | CB 10       : ADDB   #$10  // increase code +10
            82AC | D7 80       : STB    $80
            82AE | 81 01       : CMPA   #$01
            82B0 | 27 06       : BEQ    $82B8 // play sound
            82B2 | 81 80       : CMPA   #$80
            82B4 | 26 05       : BNE    $82BB
            82B6 | C6 12       : LDB    #$12  // stop sound
            82B8 | BD 63 87    : JSR    $6387 // send sound code
            82BB | 20 BF       : BRA    $827C
            -->
            <action>audiocpu.mb@E6FC = 12</action> <!-- stop sfx and music at the same time -->
        </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="start : 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@0080</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mw@41BE = 4713            </action>
            <action> maincpu.mq@8260 = 8888800888888008</action>
            <action> maincpu.mq@8268 = 8888800888888008</action>
            <action> maincpu.mq@8270 = 8888800888888008</action>
            <action> maincpu.mq@8278 = 8888800888888008</action>
            <action> maincpu.mq@8280 = 8888800888888008</action>
            <action> maincpu.mq@8288 = 8888800888888008</action>
            <action> maincpu.mq@8290 = 8888800888888008</action>
            <action> maincpu.mq@8298 = 8888800888880008</action>
            <action> maincpu.mq@82A0 = 8888000888888008</action>
            <action> maincpu.mq@82A8 = 8888800808888008</action>
            <action> maincpu.mq@82B0 = 0888800888888008</action>
            <action> maincpu.mq@82B8 = 8888800888888008</action>
            <action>audiocpu.mb@E6FC = 39              </action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.md@427E = 7E42BE4F</action> <!-- ram -->
            <action>maincpu.md@4339 = 7E434FE6</action> <!-- rom -->
            <action>maincpu.md@405C = 7E406630</action> <!-- wait -->
        </script>
        <script state="off">
            <action>maincpu.md@427E = CE00004F</action>
            <action>maincpu.md@4339 = 8E4000E6</action>
            <action>maincpu.md@405C = 8E000030</action>
        </script>
    </cheat>

</mamecheat>
sonsonj.xml

Code: Select all

<!-- Son Son (Japan) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@E740 = 20</action> <!-- gate -->
            <action>maincpu.mb@ED15 = 17</action> <!-- enemy -->
            <action>maincpu.mb@EDE2 = 18</action> <!-- bullet -->
            <action>maincpu.mb@EF3F = 20</action> <!-- big enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@E740 = 22</action>
            <action>maincpu.mb@ED15 = 0F</action>
            <action>maincpu.mb@EDE2 =  B</action>
            <action>maincpu.mb@EF3F = 22</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mb@AD15 = E6</action>
        </script>
        <script state="off">
            <action>maincpu.mb@AD15 = E4</action>
        </script>
    </cheat>

    <cheat desc="walk speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0180">02       </item>
            <item value="0x0280">03       </item>
            <item value="0x0380">04       </item>
            <item value="0x0480">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@AA14 = param</action> <!-- right -->
            <action>maincpu.mw@AA1C = param</action> <!-- left -->
        </script>
        <script state="off">
            <action>maincpu.mw@AA14 = 01AA</action>
            <action>maincpu.mw@AA1C = 014D</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0100">01 (slow)</item>
            <item value="0x0600">02       </item>
            <item value="0x0800">03       </item>
            <item value="0x0A00">04       </item>
            <item value="0x0C00">05 (slow)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@B051 =  param</action>
            <action>maincpu.mw@B057 = -param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@B051 = 0600</action>
            <action>maincpu.mw@B057 = FA00</action>
        </script>
    </cheat>

    <cheat desc="hidden bamboo finder">
        <script state="on">
            <action>maincpu.mw@E5B3 = FFE3            </action>
            <action>maincpu.mq@FFE3 = E601C10127037EE6</action>
            <action>maincpu.mq@FFEB = B07EE6CDFFFFFFFF</action>
            <!--
            FFE3 | E6 01    : LDB    $1,X
            FFE5 | C1 01    : CMPB   #$01
            FFE7 | 27 03    : BEQ    $FFED
            FFEA | 7E E6 B0 : JMP    $E6B0
            FFED | 7E E6 CD : JMP    $E6CD
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@E5B3 = E6B2            </action>
            <action>maincpu.mq@FFE3 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@FFEB = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- sometimes code 0x16 is played incorrectly -->
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@41FD = 82A0            </action>
            <action>maincpu.mq@82A0 = 8E1000108E0020C6</action>
            <action>maincpu.mq@82A8 = 20D7F4CC1000E789</action>
            <action>maincpu.mq@82B0 = 0400A7800AF426F6</action>
            <action>maincpu.mq@82B8 = 313F26EB9781B630</action>
            <action>maincpu.mq@82C0 = 0443464684809782</action>
            <action>maincpu.mq@82C8 = B6300243843D9A82</action>
            <action>maincpu.mq@82D0 = 918127E8D6808104</action>
            <action>maincpu.mq@82D8 = 26015A810826015C</action>
            <action>maincpu.mq@82E0 = 81202602C0108110</action>
            <action>maincpu.mq@82E8 = 2602CB10D7808101</action>
            <action>maincpu.mq@82F0 = 270681802605C612</action>
            <action>maincpu.mq@82F8 = BD63C220BF000000</action>
            <!--
            82A0 | 8E 10 00    : LDX    #$1000 // clear screen
            82A3 | 10 8E 00 20 : LDY    #$0020
            82A7 | C6 20       : LDB    #$20
            82A9 | D7 F4       : STB    $F4
            82AB | CC 10 00    : LDD    #$1000
            82AE | E7 89 04 00 : STB    $0400,X
            82B2 | A7 80       : STA    ,X+
            82B4 | 0A F4       : DEC    $F4
            82B6 | 26 F6       : BNE    $82AE
            82B8 | 31 3F       : LEAY   -$1,Y
            82BA | 26 EB       : BNE    $82A7
            82BC | 97 81       : STA    $81
            82BE | B6 30 04    : LDA    $3004 // read start button
            82C1 | 43          : COMA
            82C2 | 46          : RORA
            82C3 | 46          : RORA
            82C4 | 84 80       : ANDA   #$80
            82C6 | 97 82       : STA    $82
            82C8 | B6 30 02    : LDA    $3002 // read other inputs
            82CB | 43          : COMA
            82CC | 84 3D       : ANDA   #$3D
            82CE | 9A 82       : ORA    $82
            82D0 | 91 81       : CMPA   $81
            82D2 | 27 E8       : BEQ    $82BC
            82D4 | D6 80       : LDB    $80
            82D6 | 81 04       : CMPA   #$04
            82D8 | 26 01       : BNE    $82DB
            82DA | 5A          : DECB         // decrease code -01
            82DB | 81 08       : CMPA   #$08
            82DD | 26 01       : BNE    $82E0
            82DF | 5C          : INCB         // increase code +01
            82E0 | 81 20       : CMPA   #$20
            82E2 | 26 02       : BNE    $82E6
            82E4 | C0 10       : SUBB   #$10  // decrease code -01
            82E6 | 81 10       : CMPA   #$10
            82E8 | 26 02       : BNE    $82EC
            82EA | CB 10       : ADDB   #$10  // increase code +10
            82EC | D7 80       : STB    $80
            82EE | 81 01       : CMPA   #$01
            82F0 | 27 06       : BEQ    $82F8 // play sound
            82F2 | 81 80       : CMPA   #$80
            82F4 | 26 05       : BNE    $82FB
            82F6 | C6 12       : LDB    #$12  // stop sound
            82F8 | BD 63 C2    : JSR    $63C2 // send sound code
            82FB | 20 BF       : BRA    $82BC
            -->
            <action>audiocpu.mb@E6FC = 12</action> <!-- stop sfx and music at the same time -->
        </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="start : 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@0080</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mw@41FD = 4752            </action>
            <action> maincpu.mq@82A0 = 8880088888800888</action>
            <action> maincpu.mq@82A8 = 8880088888800888</action>
            <action> maincpu.mq@82B0 = 8880088888800888</action>
            <action> maincpu.mq@82B8 = 8880088888800888</action>
            <action> maincpu.mq@82C0 = 8880088888800888</action>
            <action> maincpu.mq@82C8 = 8880088888800888</action>
            <action> maincpu.mq@82D0 = 8880088888800888</action>
            <action> maincpu.mq@82D8 = 8800088888000888</action>
            <action> maincpu.mq@82E0 = 8880088888800808</action>
            <action> maincpu.mq@82E8 = 8880080888800888</action>
            <action> maincpu.mq@82F0 = 8880088888800888</action>
            <action> maincpu.mq@82F8 = 8880088888800888</action>
            <action>audiocpu.mb@E6FC = 39              </action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.md@42BD = 7E42FD4F</action> <!-- ram -->
            <action>maincpu.md@4378 = 7E438EE6</action> <!-- rom -->
            <action>maincpu.md@409B = 7E40A530</action> <!-- wait -->
        </script>
        <script state="off">
            <action>maincpu.md@42BD = CE00004F</action>
            <action>maincpu.md@4378 = 8E4000E6</action>
            <action>maincpu.md@409B = 8E000030</action>
        </script>
    </cheat>

</mamecheat>
"sound test mode" : Code 0x16 is played incorrectly after you listen to code 0x11. In this case, it's not solved by sound stop button. You need to reset the game (F3).
jman

my wip cheat database back-up (06/01/2025 ver.)
https://u3.getuploader.com/...../download/58
downloadpass : jman2020
Post Reply