[salamand] Salamander

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

[salamand] Salamander

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mw@6f66 = 602a</action> <!-- objects -->
        <action>maincpu.mw@5a0c = 4e75</action> <!-- background -->
    </script>
    <script state="off">
        <action>maincpu.mw@6f66 = 672a</action>
        <action>maincpu.mw@5a0c = 117c</action>
    </script>
</cheat>

<cheat desc="no hit - force field">
    <script state="on">
        <action>maincpu.mq@070be = 4eb90001f6606518</action>
        <action>maincpu.mq@1f660 = b1fc00080e606c08</action>
        <action>maincpu.mq@1f668 = 9c41dc45b6464e75</action>
        <action>maincpu.mq@1f670 = 44fc00014e75ffff</action>
        <!--
        1f660 | b1fc 0008 0e60 : cmpa.l #$80e60,A0
        1f666 | 6c08           : bge    $1f670
        1f668 | 9c41           : sub.w  D1,D6
        1f66a | dc45           : add.w  D5,D6
        1f66c | b646           : cmp.w  D6,D3
        1f66e | 4e75           : rts
        1f670 | 44fc 0001      : move   #$1,CCR
        1f674 | 4e75           : rts
        -->
        <action>maincpu.mb@071d0 = 60</action>
    </script>
    <script state="off">
        <action>maincpu.mq@070be = 9c41dc45b6466518</action>
        <action>maincpu.mq@1f660 = ffffffffffffffff</action>
        <action>maincpu.mq@1f668 = ffffffffffffffff</action>
        <action>maincpu.mq@1f670 = ffffffffffffffff</action>
        <action>maincpu.mb@071d0 =               67</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@1751d = 01</action>
    </script>
    <script state="off">
        <action>maincpu.mb@1751d = 04</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x0080">01 (slow)</item>
        <item value="0x0100">02       </item>
        <item value="0x0300">03       </item>
        <item value="0x0500">04       </item>
        <item value="0x0700">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@5a86 = 3e3c0000</action> <!-- player -->
        <action>maincpu.md@6b68 = 3e3c0000</action> <!-- multiples -->
    </script>
    <script state="change">
        <action>maincpu.mw@5a88 = param</action>
        <action>maincpu.mw@6b6a = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@5a86 = 3e28000e</action>
        <action>maincpu.md@6b68 = 3e28000e</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>set ram/rom check skip then reset the game (F3)</comment>
    <script state="on">
        <action>maincpu.md@006fc =         0001f680</action>
        <action>maincpu.mq@1f680 = 41f9000801004239</action>
        <action>maincpu.mq@1f688 = 000c000512001039</action>
        <action>maincpu.mq@1f690 = 000c2003b20067ee</action>
        <action>maincpu.mq@1f698 = 0c00000166025310</action>
        <action>maincpu.mq@1f6a0 = 0c00000266025210</action>
        <action>maincpu.mq@1f6a8 = 0c00000866040410</action>
        <action>maincpu.mq@1f6b0 = 00100c0000046604</action>
        <action>maincpu.mq@1f6b8 = 061000100c000010</action>
        <action>maincpu.mq@1f6c0 = 6604141060080c00</action>
        <action>maincpu.mq@1f6c8 = 0020660c420213c2</action>
        <action>maincpu.mq@1f6d0 = 000c00014eb84004</action>
        <action>maincpu.mq@1f6d8 = 60acffffffffffff</action>
        <!--
        1f680 | 41f9 0008 0100 : lea    $80100.l,A0 // sound code address
        1f686 | 4239 000c 0005 : clr.b  $c0005.l    // watchdog
        1f68c | 1200           : move.b D0,D1
        1f68e | 1039 000c 2003 : move.b $c2003.l,D0 // read input
        1f694 | b200           : cmp.b  D0,D1
        1f696 | 67ee           : beq    $1f686
        1f698 | 0c00 0001      : cmpi.b #$1,D0
        1f69c | 6602           : bne    $1f6a0
        1f69e | 5310           : subq.b #1,(A0)     // decrease code -01
        1f6a0 | 0c00 0002      : cmpi.b #$2,D0
        1f6a4 | 6602           : bne    $1f6a8
        1f6a6 | 5210           : addq.b #1,(A0)     // increase code +01
        1f6a8 | 0c00 0008      : cmpi.b #$8,D0
        1f6ac | 6604           : bne    $1f6b2
        1f6ae | 0410 0010      : subi.b #$10,(A0)   // decrease code -10
        1f6b2 | 0c00 0004      : cmpi.b #$4,D0
        1f6b6 | 6604           : bne    $1f6bc
        1f6b8 | 0610 0010      : addi.b #$10,(A0)   // increase code +10
        1f6bc | 0c00 0010      : cmpi.b #$10,D0
        1f6c0 | 6604           : bne    $1f6c6
        1f6c2 | 1410           : move.b (A0),D2     // play sound
        1f6c4 | 6008           : bra    $1f6ce
        1f6c6 | 0c00 0020      : cmpi.b #$20,D0
        1f6ca | 660c           : bne    $1f6d8
        1f6cc | 4202           : clr.b  D2          // stop sound
        1f6ce | 13c2 000c 0001 : move.b D2,$c0001.l // send sound code
        1f6d4 | 4eb8 4004      : jsr    $4004.w     // audiocpu IRQ trigger
        1f6d8 | 60ac           : bra    $1f686
        -->
    </script>
    <script state="run">
        <output format="----- salamander 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="up : increase code +10"                 line="13" align="center" />
        <output format="down : decrease 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@80100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.md@006fc =         0000335e</action>
        <action>maincpu.mq@1f680 = ffffffffffffffff</action>
        <action>maincpu.mq@1f688 = ffffffffffffffff</action>
        <action>maincpu.mq@1f690 = ffffffffffffffff</action>
        <action>maincpu.mq@1f698 = ffffffffffffffff</action>
        <action>maincpu.mq@1f6a0 = ffffffffffffffff</action>
        <action>maincpu.mq@1f6a8 = ffffffffffffffff</action>
        <action>maincpu.mq@1f6b0 = ffffffffffffffff</action>
        <action>maincpu.mq@1f6b8 = ffffffffffffffff</action>
        <action>maincpu.mq@1f6c0 = ffffffffffffffff</action>
        <action>maincpu.mq@1f6c8 = ffffffffffffffff</action>
        <action>maincpu.mq@1f6d0 = ffffffffffffffff</action>
        <action>maincpu.mq@1f6d8 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="skip ram/rom check">
    <script state="on">
        <action>maincpu.mw@062a = 062c</action>
    </script>
    <script state="off">
        <action>maincpu.mw@062a = 0ac0</action>
    </script>
</cheat>
salamand and clones have softreset problem (freeze the game after grid screen). Try to reset from debugger (F3 or "softreset" command) to avoid freeze.
jman
Posts: 903
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 4 times

[salamand]+ Salamander/Lifeforce

Post by jman »

salamand.xml

Code: Select all

<!-- Salamander (version D) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@5A0C = 4E75</action> <!-- background -->
            <action>maincpu.mw@6F66 = 602A</action> <!-- objects -->
        </script>
        <script state="off">
            <action>maincpu.mw@5A0C = 117C</action>
            <action>maincpu.mw@6F66 = 672A</action>
        </script>
    </cheat>

    <cheat desc="no hit - force field">
        <script state="on">
            <action>maincpu.mq@070BE = 4EB90001F6606518</action>
            <action>maincpu.mq@1F660 = B1FC00080E606C08</action>
            <action>maincpu.mq@1F668 = 9C41DC45B6464E75</action>
            <action>maincpu.mq@1F670 = 44FC00014E75FFFF</action>
            <!--
            1F660 | B1FC 0008 0E60 : cmpa.l  #$80e60, A0
            1F666 | 6C08           : bge     $1f670
            1F668 | 9C41           : sub.w   D1, D6
            1F66A | DC45           : add.w   D5, D6
            1F66C | B646           : cmp.w   D6, D3
            1F66E | 4E75           : rts
            1F670 | 44FC 0001      : move    #$1, CCR
            1F674 | 4E75           : rts
            -->
            <action>maincpu.mb@71D0 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mq@070BE = 9C41DC45B6466518</action>
            <action>maincpu.mq@1F660 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F668 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F670 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@071D0 = 67              </action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@1751D = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1751D = 04</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0100">02       </item>
            <item value="0x0300">03       </item>
            <item value="0x0500">04       </item>
            <item value="0x0700">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@5A86 = 3E3C</action> <!-- player -->
            <action>maincpu.mw@6B68 = 3E3C</action> <!-- multiples -->
        </script>
        <script state="change">
            <action>maincpu.mw@5A88 = param</action>
            <action>maincpu.mw@6B6A = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@5A86 = 3E28000E</action>
            <action>maincpu.md@6B68 = 3E28000E</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.md@006FC = 0001F680        </action>
            <action>maincpu.mq@1F680 = 41F9000800004239</action>
            <action>maincpu.mq@1F688 = 000C000512001039</action>
            <action>maincpu.mq@1F690 = 000C2003B20067EE</action>
            <action>maincpu.mq@1F698 = 0C00000166025310</action>
            <action>maincpu.mq@1F6A0 = 0C00000266025210</action>
            <action>maincpu.mq@1F6A8 = 0C00000866040410</action>
            <action>maincpu.mq@1F6B0 = 00100C0000046604</action>
            <action>maincpu.mq@1F6B8 = 061000100C000010</action>
            <action>maincpu.mq@1F6C0 = 6604141060080C00</action>
            <action>maincpu.mq@1F6C8 = 0020660C420213C2</action>
            <action>maincpu.mq@1F6D0 = 000C00014EB84004</action>
            <action>maincpu.mq@1F6D8 = 60ACFFFFFFFFFFFF</action>
            <!--
            1F680 | 41F9 0008 0000 : lea     $80000.l, A0 // sound code address
            1F686 | 4239 000C 0005 : clr.b   $c0005.l     // watchdog
            1F68C | 1200           : move.b  D0, D1
            1F68E | 1039 000C 2003 : move.b  $c2003.l, D0 // read input
            1F694 | B200           : cmp.b   D0, D1
            1F696 | 67EE           : beq     $1f686
            1F698 | 0C00 0001      : cmpi.b  #$1, D0
            1F69C | 6602           : bne     $1f6a0
            1F69E | 5310           : subq.b  #1, (A0)     // decrease code -01
            1F6A0 | 0C00 0002      : cmpi.b  #$2, D0
            1F6A4 | 6602           : bne     $1f6a8
            1F6A6 | 5210           : addq.b  #1, (A0)     // increase code +01
            1F6A8 | 0C00 0008      : cmpi.b  #$8, D0
            1F6AC | 6604           : bne     $1f6b2
            1F6AE | 0410 0010      : subi.b  #$10, (A0)   // decreaes code -10
            1F6B2 | 0C00 0004      : cmpi.b  #$4, D0
            1F6B6 | 6604           : bne     $1f6bc
            1F6B8 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            1F6BC | 0C00 0010      : cmpi.b  #$10, D0
            1F6C0 | 6604           : bne     $1f6c6
            1F6C2 | 1410           : move.b  (A0), D2     // play sound
            1F6C4 | 6008           : bra     $1f6ce
            1F6C6 | 0C00 0020      : cmpi.b  #$20, D0
            1F6CA | 660C           : bne     $1f6d8
            1F6CC | 4202           : clr.b   D2           // stop sound
            1F6CE | 13C2 000C 0001 : move.b  D2, $c0001.l
            1F6D4 | 4EB8 4004      : jsr     $4004.w      // audiocpu IRQ trigger
            1F6D8 | 60AC           : bra     $1f686
            -->
        </script>
        <script state="run">
            <output format="----- salamander 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="up : increase code +10"                 line="13" align="center" />
            <output format="down : decrease 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@80000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@006FC = 0000335E        </action>
            <action>maincpu.mq@1F680 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F688 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F690 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F698 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6D8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@062A = 062C</action>
        </script>
        <script state="off">
            <action>maincpu.mw@062A = 0AC0</action>
        </script>
    </cheat>

</mamecheat>
salamandj.xml

Code: Select all

<!-- Salamander (version J) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@5A46 = 4E75</action> <!-- background -->
            <action>maincpu.mw@6FA0 = 602A</action> <!-- objects -->
        </script>
        <script state="off">
            <action>maincpu.mw@5A46 = 117C</action>
            <action>maincpu.mw@6FA0 = 672A</action>
        </script>
    </cheat>

    <cheat desc="no hit - force field">
        <script state="on">
            <action>maincpu.mq@070F8 = 4EB90001F6906518</action>
            <action>maincpu.mq@1F690 = B1FC00080E606C08</action>
            <action>maincpu.mq@1F698 = 9C41DC45B6464E75</action>
            <action>maincpu.mq@1F6A0 = 44FC00014E75FFFF</action>
            <!--
            1F690 | B1FC 0008 0E60 : cmpa.l  #$80e60, A0
            1F696 | 6C08           : bge     $1f6a0
            1F698 | 9C41           : sub.w   D1, D6
            1F69A | DC45           : add.w   D5, D6
            1F69C | B646           : cmp.w   D6, D3
            1F69E | 4E75           : rts
            1F6A0 | 44FC 0001      : move    #$1, CCR
            1F6A4 | 4E75           : rts
            -->
            <action>maincpu.mb@720A = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mq@070F8 = 9C41DC45B6466518</action>
            <action>maincpu.mq@1F690 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F698 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@0720A = 67              </action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@17557 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@17557 = 04</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0200">02       </item>
            <item value="0x0400">03       </item>
            <item value="0x0600">04       </item>
            <item value="0x0800">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@5AC0 = 3E3C</action> <!-- player -->
            <action>maincpu.mw@6BA2 = 3E3C</action> <!-- multiples -->
        </script>
        <script state="change">
            <action>maincpu.mw@5AC2 = param</action>
            <action>maincpu.mw@6BA4 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@5AC0 = 3E28000E</action>
            <action>maincpu.md@6BA2 = 3E28000E</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.md@006FC = 0001F6B0        </action>
            <action>maincpu.mq@1F6B0 = 41F9000800004239</action>
            <action>maincpu.mq@1F6B8 = 000C000512001039</action>
            <action>maincpu.mq@1F6C0 = 000C2003B20067EE</action>
            <action>maincpu.mq@1F6C8 = 0C00000166025310</action>
            <action>maincpu.mq@1F6D0 = 0C00000266025210</action>
            <action>maincpu.mq@1F6D8 = 0C00000866040410</action>
            <action>maincpu.mq@1F6E0 = 00100C0000046604</action>
            <action>maincpu.mq@1F6E8 = 061000100C000010</action>
            <action>maincpu.mq@1F6F0 = 6604141060080C00</action>
            <action>maincpu.mq@1F6F8 = 0020660C420213C2</action>
            <action>maincpu.mq@1F700 = 000C00014EB8403E</action>
            <action>maincpu.mq@1F708 = 60ACFFFFFFFFFFFF</action>
            <!--
            1F6B0 | 41F9 0008 0000 : lea     $80000.l, A0 // sound code address
            1F6B6 | 4239 000C 0005 : clr.b   $c0005.l     // watchdog
            1F6BC | 1200           : move.b  D0, D1
            1F6BE | 1039 000C 2003 : move.b  $c2003.l, D0 // read input
            1F6C4 | B200           : cmp.b   D0, D1
            1F6C6 | 67EE           : beq     $1f6b6
            1F6C8 | 0C00 0001      : cmpi.b  #$1, D0
            1F6CC | 6602           : bne     $1f6d0
            1F6CE | 5310           : subq.b  #1, (A0)     // decrease code -01
            1F6D0 | 0C00 0002      : cmpi.b  #$2, D0
            1F6D4 | 6602           : bne     $1f6d8
            1F6D6 | 5210           : addq.b  #1, (A0)     // increase code +01
            1F6D8 | 0C00 0008      : cmpi.b  #$8, D0
            1F6DC | 6604           : bne     $1f6e2
            1F6DE | 0410 0010      : subi.b  #$10, (A0)   // decreaes code -10
            1F6E2 | 0C00 0004      : cmpi.b  #$4, D0
            1F6E6 | 6604           : bne     $1f6ec
            1F6E8 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            1F6EC | 0C00 0010      : cmpi.b  #$10, D0
            1F6F0 | 6604           : bne     $1f6f6
            1F6F2 | 1410           : move.b  (A0), D2     // play sound
            1F6F4 | 6008           : bra     $1f6fe
            1F6F6 | 0C00 0020      : cmpi.b  #$20, D0
            1F6FA | 660C           : bne     $1f708
            1F6FC | 4202           : clr.b   D2           // stop sound
            1F6FE | 13C2 000C 0001 : move.b  D2, $c0001.l
            1F704 | 4EB8 403E      : jsr     $403e.w      // audiocpu IRQ trigger
            1F708 | 60AC           : bra     $1f6b6
            -->
        </script>
        <script state="run">
            <output format="----- salamander 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="up : increase code +10"                 line="13" align="center" />
            <output format="down : decrease 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@80000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@006FC = 00003398        </action>
            <action>maincpu.mq@1F6B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6E8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6F8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F700 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F708 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@062A = 062C</action>
        </script>
        <script state="off">
            <action>maincpu.mw@062A = 0AC0</action>
        </script>
    </cheat>

</mamecheat>
lifefrce.xml

Code: Select all

<!-- Lifeforce (US) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@5862 = 4E75</action> <!-- background -->
            <action>maincpu.mw@6DA6 = 602A</action> <!-- objects -->
        </script>
        <script state="off">
            <action>maincpu.mw@5862 = 117C</action>
            <action>maincpu.mw@6DA6 = 672A</action>
        </script>
    </cheat>

    <cheat desc="no hit - force field">
        <script state="on">
            <action>maincpu.mq@06EFE = 4EB90001F6F06518</action>
            <action>maincpu.mq@1F6F0 = B1FC00080E606C08</action>
            <action>maincpu.mq@1F6F8 = 9C41DC45B6464E75</action>
            <action>maincpu.mq@1F700 = 44FC00014E75FFFF</action>
            <!--
            1F6F0 | B1FC 0008 0E60 : cmpa.l  #$80e60, A0
            1F6F6 | 6C08           : bge     $1f700
            1F6F8 | 9C41           : sub.w   D1, D6
            1F6FA | DC45           : add.w   D5, D6
            1F6FC | B646           : cmp.w   D6, D3
            1F6FE | 4E75           : rts
            1F700 | 44FC 0001      : move    #$1, CCR
            1F704 | 4E75           : rts
            -->
            <action>maincpu.mb@7010 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mq@06EFE = 9C41DC45B6466518</action>
            <action>maincpu.mq@1F6F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6F8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F700 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@07010 = 67              </action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@172A7 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@172A7 = 04</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0100">02       </item>
            <item value="0x0300">03       </item>
            <item value="0x0500">04       </item>
            <item value="0x0700">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@58DC = 3E3C</action> <!-- player -->
            <action>maincpu.mw@69A8 = 3E3C</action> <!-- multiples -->
        </script>
        <script state="change">
            <action>maincpu.mw@58DE = param</action>
            <action>maincpu.mw@69AA = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@58DC = 3E28000E</action>
            <action>maincpu.md@69A8 = 3E28000E</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.md@005FC = 0001F710        </action>
            <action>maincpu.mq@1F710 = 41F9000800004239</action>
            <action>maincpu.mq@1F718 = 000C000512001039</action>
            <action>maincpu.mq@1F720 = 000C2003B20067EE</action>
            <action>maincpu.mq@1F728 = 0C00000166025310</action>
            <action>maincpu.mq@1F730 = 0C00000266025210</action>
            <action>maincpu.mq@1F738 = 0C00000866040410</action>
            <action>maincpu.mq@1F740 = 00100C0000046604</action>
            <action>maincpu.mq@1F748 = 061000100C000010</action>
            <action>maincpu.mq@1F750 = 6604141060080C00</action>
            <action>maincpu.mq@1F758 = 0020660C420213C2</action>
            <action>maincpu.mq@1F760 = 000C00014EB83D6C</action>
            <action>maincpu.mq@1F768 = 60ACFFFFFFFFFFFF</action>
            <!--
            1F710 | 41F9 0008 0000 : lea     $80000.l, A0 // sound code address
            1F716 | 4239 000C 0005 : clr.b   $c0005.l     // watchdog
            1F71C | 1200           : move.b  D0, D1
            1F71E | 1039 000C 2003 : move.b  $c2003.l, D0 // read input
            1F724 | B200           : cmp.b   D0, D1
            1F726 | 67EE           : beq     $1f716
            1F728 | 0C00 0001      : cmpi.b  #$1, D0
            1F72C | 6602           : bne     $1f730
            1F72E | 5310           : subq.b  #1, (A0)     // decrease code -01
            1F730 | 0C00 0002      : cmpi.b  #$2, D0
            1F734 | 6602           : bne     $1f738
            1F736 | 5210           : addq.b  #1, (A0)     // increase code +01
            1F738 | 0C00 0008      : cmpi.b  #$8, D0
            1F73C | 6604           : bne     $1f742
            1F73E | 0410 0010      : subi.b  #$10, (A0)   // decreaes code -10
            1F742 | 0C00 0004      : cmpi.b  #$4, D0
            1F746 | 6604           : bne     $1f74c
            1F748 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            1F74C | 0C00 0010      : cmpi.b  #$10, D0
            1F750 | 6604           : bne     $1f756
            1F752 | 1410           : move.b  (A0), D2     // play sound
            1F754 | 6008           : bra     $1f75e
            1F756 | 0C00 0020      : cmpi.b  #$20, D0
            1F75A | 660C           : bne     $1f768
            1F75C | 4202           : clr.b   D2           // stop sound
            1F75E | 13C2 000C 0001 : move.b  D2, $c0001.l
            1F764 | 4EB8 3D6C      : jsr     $3d6c.w      // audiocpu IRQ trigger
            1F768 | 60AC           : bra     $1f716
            -->
        </script>
        <script state="run">
            <output format="----- salamander 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="up : increase code +10"                 line="13" align="center" />
            <output format="down : decrease 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@80000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@006FC = 0000335C        </action>
            <action>maincpu.mq@1F710 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F718 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F720 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F728 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F730 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F738 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F740 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F748 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F750 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F758 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F760 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F768 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@052A = 052C</action>
        </script>
        <script state="off">
            <action>maincpu.mw@052A = 09C0</action>
        </script>
    </cheat>

</mamecheat>
lifefrcej.xml

Code: Select all

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

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@60BE = 4E75</action> <!-- background -->
            <action>maincpu.mw@735E = 602A</action> <!-- objects -->
        </script>
        <script state="off">
            <action>maincpu.mw@60BE = 117C</action>
            <action>maincpu.mw@735E = 672A</action>
        </script>
    </cheat>

    <cheat desc="no hit - force field">
        <script state="on">
            <action>maincpu.mq@074B6 = 4EB90001F6E06518</action>
            <action>maincpu.mq@1F6E0 = B1FC00080E606C08</action>
            <action>maincpu.mq@1F6E8 = 9C41DC45B6464E75</action>
            <action>maincpu.mq@1F6F0 = 44FC00014E75FFFF</action>
            <!--
            1F6E0 | B1FC 0008 0E60 : cmpa.l  #$80e60, A0
            1F6E6 | 6C08           : bge     $1f6f0
            1F6E8 | 9C41           : sub.w   D1, D6
            1F6EA | DC45           : add.w   D5, D6
            1F6EC | B646           : cmp.w   D6, D3
            1F6EE | 4E75           : rts
            1F6F0 | 44FC 0001      : move    #$1, CCR
            1F6F4 | 4E75           : rts
            -->
            <action>maincpu.mb@75C8 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mq@074B6 = 9C41DC45B6466518</action>
            <action>maincpu.mq@1F6E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6E8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@075C8 = 67              </action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@17BE9 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@17BE9 = 04</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0100">02       </item>
            <item value="0x0300">03       </item>
            <item value="0x0500">04       </item>
            <item value="0x0700">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@6138 = 3E3C</action> <!-- player -->
            <action>maincpu.mw@6F60 = 3E3C</action> <!-- multiples -->
        </script>
        <script state="change">
            <action>maincpu.mw@613A = param</action>
            <action>maincpu.mw@6F62 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@6138 = 3E28000E</action>
            <action>maincpu.md@6F60 = 3E28000E</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.md@007FC = 0001F700        </action>
            <action>maincpu.mq@1F700 = 41F9000800004239</action>
            <action>maincpu.mq@1F708 = 000C000512001039</action>
            <action>maincpu.mq@1F710 = 000C2003B20067EE</action>
            <action>maincpu.mq@1F718 = 0C00000166025310</action>
            <action>maincpu.mq@1F720 = 0C00000266025210</action>
            <action>maincpu.mq@1F728 = 0C00000866040410</action>
            <action>maincpu.mq@1F730 = 00100C0000046604</action>
            <action>maincpu.mq@1F738 = 061000100C000010</action>
            <action>maincpu.mq@1F740 = 6604141060080C00</action>
            <action>maincpu.mq@1F748 = 0020660C420213C2</action>
            <action>maincpu.mq@1F750 = 000C00014EB842CA</action>
            <action>maincpu.mq@1F758 = 60ACFFFFFFFFFFFF</action>
            <!--
            1F700 | 41F9 0008 0000 : lea     $80000.l, A0 // sound code address
            1F706 | 4239 000C 0005 : clr.b   $c0005.l     // watchdog
            1F70C | 1200           : move.b  D0, D1
            1F70E | 1039 000C 2003 : move.b  $c2003.l, D0 // read input
            1F714 | B200           : cmp.b   D0, D1
            1F716 | 67EE           : beq     $1f706
            1F718 | 0C00 0001      : cmpi.b  #$1, D0
            1F71C | 6602           : bne     $1f720
            1F71E | 5310           : subq.b  #1, (A0)     // decrease code -01
            1F720 | 0C00 0002      : cmpi.b  #$2, D0
            1F724 | 6602           : bne     $1f728
            1F726 | 5210           : addq.b  #1, (A0)     // increase code +01
            1F728 | 0C00 0008      : cmpi.b  #$8, D0
            1F72C | 6604           : bne     $1f732
            1F72E | 0410 0010      : subi.b  #$10, (A0)   // decreaes code -10
            1F732 | 0C00 0004      : cmpi.b  #$4, D0
            1F736 | 6604           : bne     $1f73c
            1F738 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            1F73C | 0C00 0010      : cmpi.b  #$10, D0
            1F740 | 6604           : bne     $1f746
            1F742 | 1410           : move.b  (A0), D2     // play sound
            1F744 | 6008           : bra     $1f74e
            1F746 | 0C00 0020      : cmpi.b  #$20, D0
            1F74A | 660C           : bne     $1f758
            1F74C | 4202           : clr.b   D2           // stop sound
            1F74E | 13C2 000C 0001 : move.b  D2, $c0001.l
            1F754 | 4EB8 42CA      : jsr     $42ca.w      // audiocpu IRQ trigger
            1F758 | 60AC           : bra     $1f706
            -->
        </script>
        <script state="run">
            <output format="----- salamander 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="up : increase code +10"                 line="13" align="center" />
            <output format="down : decrease 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@80000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@007FC = 00003898        </action>
            <action>maincpu.mq@1F700 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F708 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F710 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F718 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F720 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F728 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F730 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F738 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F740 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F748 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F750 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F758 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@072A = 072C</action>
        </script>
        <script state="off">
            <action>maincpu.mw@072A = 0C1E</action>
        </script>
    </cheat>

</mamecheat>
jman
Posts: 903
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 4 times

[salamandt] Salamander/Lifeforce

Post by jman »

salamandt will be added in 0.267.

salamandt.xml

Code: Select all

<!-- Salamander (Tecfri license) -->
<mamecheat version="1">

    <cheat desc="no hit - player">
        <script state="on">
            <action>maincpu.mw@5A0C = 4E75</action> <!-- background -->
            <action>maincpu.mw@6F66 = 602A</action> <!-- objects -->
        </script>
        <script state="off">
            <action>maincpu.mw@5A0C = 117C</action>
            <action>maincpu.mw@6F66 = 672A</action>
        </script>
    </cheat>

    <cheat desc="no hit - force field">
        <script state="on">
            <action>maincpu.mq@06FEE = 4EB90001F660670A</action>
            <action>maincpu.mq@1F660 = B1FC00080E606C08</action>
            <action>maincpu.mq@1F668 = 1010080000064E75</action>
            <action>maincpu.mq@1F670 = 42004E75FFFFFFFF</action>
            <!--
            1F660 | B1FC 0008 0E60 : cmpa.l  #$80e60, A0 // check missiles or force fields
            1F666 | 6C08           : bge     $1f670
            1F668 | 1010           : move.b  (A0), D0
            1F66A | 0800 0006      : btst    #$6, D0
            1F66E | 4E75           : rts
            1F670 | 4200           : clr.b   D0
            1F672 | 4E75           : rts
            -->
            <action>maincpu.mb@71D0 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mq@06FEE = 101008000006670A</action>
            <action>maincpu.mq@1F660 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F668 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F670 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@071D0 = 67              </action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mb@1751D = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1751D = 04</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0100">02       </item>
            <item value="0x0300">03       </item>
            <item value="0x0500">04       </item>
            <item value="0x0700">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@5A86 = 3E3C0000</action> <!-- player -->
            <action>maincpu.md@6B68 = 3E3C0000</action> <!-- multiples -->
        </script>
        <script state="change">
            <action>maincpu.mw@5A88 = param</action>
            <action>maincpu.mw@6B6A = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@5A86 = 3E28000E</action>
            <action>maincpu.md@6B68 = 3E28000E</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.md@006FC = 0001F680        </action>
            <action>maincpu.mq@1F680 = 41F9000800004239</action>
            <action>maincpu.mq@1F688 = 000C000512001039</action>
            <action>maincpu.mq@1F690 = 000C2003B20067EE</action>
            <action>maincpu.mq@1F698 = 0C00000166025310</action>
            <action>maincpu.mq@1F6A0 = 0C00000266025210</action>
            <action>maincpu.mq@1F6A8 = 0C00000866040410</action>
            <action>maincpu.mq@1F6B0 = 00100C0000046604</action>
            <action>maincpu.mq@1F6B8 = 061000100C000010</action>
            <action>maincpu.mq@1F6C0 = 6604141060080C00</action>
            <action>maincpu.mq@1F6C8 = 0020660C420213C2</action>
            <action>maincpu.mq@1F6D0 = 000C00014EB84004</action>
            <action>maincpu.mq@1F6D8 = 60ACFFFFFFFFFFFF</action>
            <!--
            1F680 | 41F9 0008 0000 : lea     $80000.l, A0 // sound code address
            1F686 | 4239 000C 0005 : clr.b   $c0005.l     // watchdog
            1F68C | 1200           : move.b  D0, D1
            1F68E | 1039 000C 2003 : move.b  $c2003.l, D0 // read input
            1F694 | B200           : cmp.b   D0, D1
            1F696 | 67EE           : beq     $1f686
            1F698 | 0C00 0001      : cmpi.b  #$1, D0
            1F69C | 6602           : bne     $1f6a0
            1F69E | 5310           : subq.b  #1, (A0)     // decrease code -01
            1F6A0 | 0C00 0002      : cmpi.b  #$2, D0
            1F6A4 | 6602           : bne     $1f6a8
            1F6A6 | 5210           : addq.b  #1, (A0)     // increase code +01
            1F6A8 | 0C00 0008      : cmpi.b  #$8, D0
            1F6AC | 6604           : bne     $1f6b2
            1F6AE | 0410 0010      : subi.b  #$10, (A0)   // decreaes code -10
            1F6B2 | 0C00 0004      : cmpi.b  #$4, D0
            1F6B6 | 6604           : bne     $1f6bc
            1F6B8 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            1F6BC | 0C00 0010      : cmpi.b  #$10, D0
            1F6C0 | 6604           : bne     $1f6c6
            1F6C2 | 1410           : move.b  (A0), D2     // play sound
            1F6C4 | 6008           : bra     $1f6ce
            1F6C6 | 0C00 0020      : cmpi.b  #$20, D0
            1F6CA | 660C           : bne     $1f6d8
            1F6CC | 4202           : clr.b   D2           // stop sound
            1F6CE | 13C2 000C 0001 : move.b  D2, $c0001.l
            1F6D4 | 4EB8 4004      : jsr     $4004.w      // audiocpu IRQ trigger
            1F6D8 | 60AC           : bra     $1f686
            -->
        </script>
        <script state="run">
            <output format="----- salamander 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@80000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@006FC = 0000335E        </action>
            <action>maincpu.mq@1F680 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F688 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F690 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F698 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1F6D8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@062A = 06A4</action>
        </script>
        <script state="off">
            <action>maincpu.mw@062A = 0AC0</action>
        </script>
    </cheat>

</mamecheat>
  • "no hit - force field" : Rewritten routine after tracing program code.
  • "sound test mode" : Fixed output format for lifefrce and lifefrcej.
  • "skip ram/rom check" : Skipped cross-hatch screen.
I update my database with the above modification though I don't post other sets.
Post Reply