Page 1 of 1

[ashuraj] Ashura Blaster

Posted: Fri Nov 05, 2021 10:21 am
by jman

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@7276 = 60</action> <!-- enemy -->
        <action>maincpu.mb@779c = 60</action> <!-- bullet -->
        <action>maincpu.mb@7eec = 60</action> <!-- middle enemy -->
        <action>maincpu.mb@a35e = 60</action> <!-- laser -->
    </script>
    <script state="off">
        <action>maincpu.mb@7276 = 64</action>
        <action>maincpu.mb@779c = 64</action>
        <action>maincpu.mb@7eec = 64</action>
        <action>maincpu.mb@a35e = 64</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@0b05 = 01</action>
    </script>
    <script state="off">
        <action>maincpu.mb@0b05 = 40</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter min="0x01" max="0x05" step="0x01" />
    <script state="on">
        <action>maincpu.mq@02544 = 4eb9000470d03210</action> <!-- y position -->
        <action>maincpu.mq@02578 = 4eb9000470da0241</action> <!-- x position -->
        <action>maincpu.mq@470d0 = d1fc00000054610c</action>
        <action>maincpu.mq@470d8 = 4e75301132106104</action>
        <action>maincpu.mq@470e0 = d2404e7574054a40</action>
        <action>maincpu.mq@470e8 = 67066a0244423002</action>
        <action>maincpu.mq@470f0 = 4e75ffffffffffff</action>
        <!--
        470d0 | d1fc 0000 0054 : adda.l #$54,A0 // y position
        470d6 | 610c           : bsr    $470e4
        470d8 | 4e75           : rts
        470da | 3011           : move.w (A1),D0 // x position
        470dc | 3210           : move.w (A0),D1
        470de | 6104           : bsr    $470e4
        470e0 | d240           : add.w  D0,D1
        470e2 | 4e75           : rts
        470e4 | 74xx           : moveq  #$xx,D2
        470e6 | 4a40           : tst.w  D0
        470e8 | 6706           : beq    $470f0
        470ea | 6a02           : bpl    $470ee
        470ec | 4442           : neg.w  D2
        470ee | 3002           : move.w D2,D0
        470f0 | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@470e5 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mq@02544 = d1fc000000543210</action>
        <action>maincpu.mq@02578 = 30113210d2400241</action>
        <action>maincpu.mq@470d0 = ffffffffffffffff</action>
        <action>maincpu.mq@470d8 = ffffffffffffffff</action>
        <action>maincpu.mq@470e0 = ffffffffffffffff</action>
        <action>maincpu.mq@470e8 = ffffffffffffffff</action>
        <action>maincpu.mq@470f0 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="bullet speed">
    <parameter>
        <item value="0x01">01</item>
        <item value="0x08">02</item>
        <item value="0x10">03</item>
        <item value="0x18">04</item>
        <item value="0x20">05</item>
    </parameter>
    <script state="on">
        <action>maincpu.mq@0362c = 4eb9000471003142</action>
        <action>maincpu.mq@47100 = 4a406b027010d440</action>
        <action>maincpu.mq@47108 = 024203ff4e75ffff</action>
        <!--
        47100 | 4a40           : tst.w  D0
        47102 | 6b02           : bmi    $47106
        47104 | 70xx           : moveq  #$xx,D0
        47106 | d440           : add.w  D0,D2
        47108 | 0242 03ff      : andi.w #$3ff,D2
        4710c | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@47105 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mq@0362c = d440024203ff3142</action>
        <action>maincpu.mq@47100 = ffffffffffffffff</action>
        <action>maincpu.mq@47108 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="max bullets up">
    <script state="on">
        <action>maincpu.mw@3354 = 7208</action>
    </script>
    <script state="off">
        <action>maincpu.mw@3354 = 3211</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mw@16958 =             4e75</action> <!-- sound routine stopper -->
        <action>maincpu.mq@12baa = 4ef9000471103c3c</action>
        <action>maincpu.mq@47110 = 41f90060100043f9</action>
        <action>maincpu.mq@47118 = 00601a7313c000a0</action>
        <action>maincpu.mq@47120 = 00001401123900a0</action>
        <action>maincpu.mq@47128 = 0004b40167ee0c01</action>
        <action>maincpu.mq@47130 = 00fb660253100c01</action>
        <action>maincpu.mq@47138 = 00f7660252100c01</action>
        <action>maincpu.mq@47140 = 00fd660404100010</action>
        <action>maincpu.mq@47148 = 0c0100fe66040610</action>
        <action>maincpu.mq@47150 = 00100c0100ef6604</action>
        <action>maincpu.mq@47158 = 129060080c0100df</action>
        <action>maincpu.mq@47160 = 660842114eb90001</action>
        <action>maincpu.mq@47168 = 693460b0ffffffff</action>
        <!--
        47110 | 41f9 0060 1000 : lea    $601000.l,A0 // sound code address
        47116 | 43f9 0060 1a73 : lea    $601a73.l,A1 // sound address
        4711c | 13c0 00a0 0000 : move.b D0,$a00000.l // watchdog
        47122 | 1401           : move.b D1,D2
        47124 | 1239 00a0 0004 : move.b $a00004.l,D1 // read input
        4712a | b401           : cmp.b  D1,D2
        4712c | 67ee           : beq    $4711c
        4712e | 0c01 00fb      : cmpi.b #-$5,D1
        47132 | 6602           : bne    $47136
        47134 | 5310           : subq.b #1,(A0)      // decrease code -01
        47136 | 0c01 00f7      : cmpi.b #-$9,D1
        4713a | 6602           : bne    $4713e
        4713c | 5210           : addq.b #1,(A0)      // increase code +01
        4713e | 0c01 00fd      : cmpi.b #-$3,D1
        47142 | 6604           : bne    $47148
        47144 | 0410 0010      : subi.b #$10,(A0)    // decrease code -10
        47148 | 0c01 00fe      : cmpi.b #-$2,D1
        4714c | 6604           : bne    $47152
        4714e | 0610 0010      : addi.b #$10,(A0)    // increase code +10
        47152 | 0c01 00ef      : cmpi.b #-$11,D1
        47156 | 6604           : bne    $4715c
        47158 | 1290           : move.b (A0),(A1)    // play sound
        4715a | 6008           : bra    $47164
        4715c | 0c01 00df      : cmpi.b #-$21,D1
        47160 | 6608           : bne    $4716a
        47162 | 4211           : clr.b  (A1)         // stop sound
        47164 | 4eb9 0001 6934 : jsr    $16934.l     // send sound code
        4716a | 60b0           : bra    $4711c
        -->
    </script>
    <script state="run">
        <output format="----- ashura blaster 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@601000</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@16958 =             43f9</action>
        <action>maincpu.mq@12baa = 4df900012c123c3c</action>
        <action>maincpu.mq@47110 = ffffffffffffffff</action>
        <action>maincpu.mq@47118 = ffffffffffffffff</action>
        <action>maincpu.mq@47120 = ffffffffffffffff</action>
        <action>maincpu.mq@47128 = ffffffffffffffff</action>
        <action>maincpu.mq@47130 = ffffffffffffffff</action>
        <action>maincpu.mq@47138 = ffffffffffffffff</action>
        <action>maincpu.mq@47140 = ffffffffffffffff</action>
        <action>maincpu.mq@47148 = ffffffffffffffff</action>
        <action>maincpu.mq@47150 = ffffffffffffffff</action>
        <action>maincpu.mq@47158 = ffffffffffffffff</action>
        <action>maincpu.mq@47160 = ffffffffffffffff</action>
        <action>maincpu.mq@47168 = ffffffffffffffff</action>
    </script>
</cheat>
If you set "player speed" with 0x03 or faster then hold down key, player character goes to out of screen.

[ashura]+ Ashura Blaster

Posted: Thu Oct 12, 2023 9:17 am
by jman
ashura.xml

Code: Select all

<!-- Ashura Blaster (World) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@726E = 60</action> <!-- enemy -->
            <action>maincpu.mb@7794 = 60</action> <!-- bullet -->
            <action>maincpu.mb@7EE4 = 60</action> <!-- middle enemy -->
            <action>maincpu.mb@A338 = 60</action> <!-- laser -->
        </script>
        <script state="off">
            <action>maincpu.mb@726E = 64</action>
            <action>maincpu.mb@7794 = 64</action>
            <action>maincpu.mb@7EE4 = 64</action>
            <action>maincpu.mb@A338 = 64</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@0B05 = 01</action> <!-- P1 -->
            <action>maincpu.mb@0B53 = 01</action> <!-- P2 -->
        </script>
        <script state="off">
            <action>maincpu.mb@0B05 = 40</action>
            <action>maincpu.mb@0B53 = 40</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mq@0255C = 4EB90004A0400C41</action> <!-- y position -->
            <action>maincpu.mq@0258C = 4EB90004A04C0C41</action> <!-- x position -->
            <action>maincpu.mq@4A040 = 61166A0272010241</action>
            <action>maincpu.mq@4A048 = 03FF4E75610A6A02</action>
            <action>maincpu.mq@4A050 = 7208024103FF4E75</action>
            <action>maincpu.mq@4A058 = 74004A4067066A02</action>
            <action>maincpu.mq@4A060 = 44423002D2404E75</action>
            <!--
            4A040 | 6116      : bsr    $4a058   // y-position
            4A042 | 6A02      : bpl    $4a046
            4A044 | 7201      : moveq  #$1,D1
            4A046 | 0241 03FF : andi.w #$3ff,D1
            4A04A | 4E75      : rts
            4A04C | 610A      : bsr    $4a058   // x-position
            4A04E | 6A02      : bpl    $4a052
            4A050 | 7208      : moveq  #$8,D1
            4A052 | 0241 03FF : andi.w #$3ff,D1
            4A056 | 4E75      : rts
            4A058 | 74xx      : moveq  #$xx,D2
            4A05A | 4A40      : tst.w  D0
            4A05C | 6706      : beq    $4a064
            4A05E | 6A02      : bpl    $4a062
            4A060 | 4442      : neg.w  D2
            4A062 | 3002      : move.w D2,D0
            4A064 | D240      : add.w  D0,D1
            4A066 | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@4A059 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@0255C = D240024103FF0C41</action>
            <action>maincpu.mq@0258C = D240024103FF0C41</action>
            <action>maincpu.mq@4A040 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A048 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A050 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A058 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A060 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x08">02       </item>
            <item value="0x10">03       </item>
            <item value="0x18">04       </item>
            <item value="0x20">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@03624 = 4EB90004A0703142</action>
            <action>maincpu.mq@4A070 = 4A406B027000D440</action>
            <action>maincpu.mq@4A078 = 024203FF4E75FFFF</action>
            <!--
            4A070 | 4A40      : tst.w  D0
            4A072 | 6B02      : bmi    $4a076
            4A074 | 70xx      : moveq  #$xx,D0
            4A076 | D440      : add.w  D0,D2
            4A078 | 0242 03FF : andi.w #$3ff,D2
            4A07C | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@4A075 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@03624 = D440024203FF3142</action>
            <action>maincpu.mq@4A070 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A078 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="max bullets up">
        <script state="on">
            <action>maincpu.mw@334C = 7208</action>
        </script>
        <script state="off">
            <action>maincpu.mw@334C = 3211</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@1620E = 4E75            </action> <!-- sound routine stopper -->
            <action>maincpu.mq@12AAA = 4EF90004A080303C</action>
            <action>maincpu.mq@4A080 = 41F90060000043E8</action>
            <action>maincpu.mq@4A088 = 1A6B13C000A00000</action>
            <action>maincpu.mq@4A090 = 1401123900A00004</action>
            <action>maincpu.mq@4A098 = B40167EE0C0100FB</action>
            <action>maincpu.mq@4A0A0 = 660253100C0100F7</action>
            <action>maincpu.mq@4A0A8 = 660252100C0100FD</action>
            <action>maincpu.mq@4A0B0 = 6604041000100C01</action>
            <action>maincpu.mq@4A0B8 = 00FE660406100010</action>
            <action>maincpu.mq@4A0C0 = 0C0100EF66041290</action>
            <action>maincpu.mq@4A0C8 = 60080C0100DF6608</action>
            <action>maincpu.mq@4A0D0 = 42114EB9000161EA</action>
            <action>maincpu.mq@4A0D8 = 60B0FFFFFFFFFFFF</action>
            <!--
            4A080 | 41F9 0060 0000 : lea    $600000.l,A0  // sound code address
            4A086 | 43E8 1A6B      : lea    ($1a6b,A0),A1 // sound latch address ($601a6b)
            4A08A | 13C0 00A0 0000 : move.b D0,$a00000.l  // watchdog
            4A090 | 1401           : move.b D1,D2
            4A092 | 1239 00A0 0004 : move.b $a00004.l,D1  // read input
            4A098 | B401           : cmp.b  D1,D2
            4A09A | 67EE           : beq    $4a08a
            4A09C | 0C01 00FB      : cmpi.b #-$5,D1
            4A0A0 | 6602           : bne    $4a0a4
            4A0A2 | 5310           : subq.b #1,(A0)       // decrease code -01
            4A0A4 | 0C01 00F7      : cmpi.b #-$9,D1
            4A0A8 | 6602           : bne    $4a0ac
            4A0AA | 5210           : addq.b #1,(A0)       // increase code +01
            4A0AC | 0C01 00FD      : cmpi.b #-$3,D1
            4A0B0 | 6604           : bne    $4a0b6
            4A0B2 | 0410 0010      : subi.b #$10,(A0)     // decrease code -10
            4A0B6 | 0C01 00FE      : cmpi.b #-$2,D1
            4A0BA | 6604           : bne    $4a0c0
            4A0BC | 0610 0010      : addi.b #$10,(A0)     // increase code +10
            4A0C0 | 0C01 00EF      : cmpi.b #-$11,D1
            4A0C4 | 6604           : bne    $4a0ca
            4A0C6 | 1290           : move.b (A0),(A1)     // play sound
            4A0C8 | 6008           : bra    $4a0d2
            4A0CA | 0C01 00DF      : cmpi.b #-$21,D1
            4A0CE | 6608           : bne    $4a0d8
            4A0D0 | 4211           : clr.b  (A1)          // stop sound
            4A0D2 | 4EB9 0001 61EA : jsr    $161ea.l      // send sound code
            4A0D8 | 60B0           : bra    $4a08a
            -->
        </script>
        <script state="run">
            <output format="----- ashura blaster 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@600000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@1620E = 43F9            </action>
            <action>maincpu.mq@12AAA = 207C0040810E303C</action>
            <action>maincpu.mq@4A080 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A088 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A090 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A098 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A0A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A0A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A0B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A0B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A0C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A0C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A0D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A0D8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
ashuraj.xml

Code: Select all

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

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@7276 = 60</action> <!-- enemy -->
            <action>maincpu.mb@779C = 60</action> <!-- bullet -->
            <action>maincpu.mb@7EEC = 60</action> <!-- middle enemy -->
            <action>maincpu.mb@A35E = 60</action> <!-- laser -->
        </script>
        <script state="off">
            <action>maincpu.mb@7276 = 64</action>
            <action>maincpu.mb@779C = 64</action>
            <action>maincpu.mb@7EEC = 64</action>
            <action>maincpu.mb@A35E = 64</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@0B05 = 01</action> <!-- P1 -->
            <action>maincpu.mb@0B53 = 01</action> <!-- P2 -->
        </script>
        <script state="off">
            <action>maincpu.mb@0B05 = 40</action>
            <action>maincpu.mb@0B53 = 40</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mq@0254C = 4EB9000470D00C41</action> <!-- y position -->
            <action>maincpu.mq@0257C = 4EB9000470DC0C41</action> <!-- x position -->
            <action>maincpu.mq@470D0 = 61166A0272010241</action>
            <action>maincpu.mq@470D8 = 03FF4E75610A6A02</action>
            <action>maincpu.mq@470E0 = 7208024103FF4E75</action>
            <action>maincpu.mq@470E8 = 74004A4067066A02</action>
            <action>maincpu.mq@470F0 = 44423002D2404E75</action>
            <!--
            470D0 | 6116      : bsr    $470e8   // y-position
            470D2 | 6A02      : bpl    $470d6
            470D4 | 7201      : moveq  #$1,D1
            470D6 | 0241 03FF : andi.w #$3ff,D1
            470DA | 4E75      : rts
            470DC | 610A      : bsr    $470e8   // x-position
            470DE | 6A02      : bpl    $470e2
            470E0 | 7208      : moveq  #$8,D1
            470E2 | 0241 03FF : andi.w #$3ff,D1
            470E6 | 4E75      : rts
            470E8 | 74xx      : moveq  #$xx,D2
            470EA | 4A40      : tst.w  D0
            470EC | 6706      : beq    $470f4
            470EE | 6A02      : bpl    $470f2
            470F0 | 4442      : neg.w  D2
            470F2 | 3002      : move.w D2,D0
            470F4 | D240      : add.w  D0,D1
            470F6 | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@470E9 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@0254C = D240024103FF0C41</action>
            <action>maincpu.mq@0257C = D240024103FF0C41</action>
            <action>maincpu.mq@470D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@470D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@470E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@470E8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@470F0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x08">02       </item>
            <item value="0x10">03       </item>
            <item value="0x18">04       </item>
            <item value="0x20">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@0362C = 4EB9000471003142</action>
            <action>maincpu.mq@47100 = 4A406B027000D440</action>
            <action>maincpu.mq@47108 = 024203FF4E75FFFF</action>
            <!--
            47100 | 4A40      : tst.w  D0
            47102 | 6B02      : bmi    $47106
            47104 | 70xx      : moveq  #$xx,D0
            47106 | D440      : add.w  D0,D2
            47108 | 0242 03FF : andi.w #$3ff,D2
            4710C | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@47105 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@0362C = D440024203FF3142</action>
            <action>maincpu.mq@47100 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@47108 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="max bullets up">
        <script state="on">
            <action>maincpu.mw@3354 = 7208</action>
        </script>
        <script state="off">
            <action>maincpu.mw@3354 = 3211</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@16958 = 4E75            </action> <!-- sound routine stopper -->
            <action>maincpu.mq@12BAA = 4EF9000471103C3C</action>
            <action>maincpu.mq@47110 = 41F90060000043E8</action>
            <action>maincpu.mq@47118 = 1A7313C000A00000</action>
            <action>maincpu.mq@47120 = 1401123900A00004</action>
            <action>maincpu.mq@47128 = B40167EE0C0100FB</action>
            <action>maincpu.mq@47130 = 660253100C0100F7</action>
            <action>maincpu.mq@47138 = 660252100C0100FD</action>
            <action>maincpu.mq@47140 = 6604041000100C01</action>
            <action>maincpu.mq@47148 = 00FE660406100010</action>
            <action>maincpu.mq@47150 = 0C0100EF66041290</action>
            <action>maincpu.mq@47158 = 60080C0100DF6608</action>
            <action>maincpu.mq@47160 = 42114EB900016934</action>
            <action>maincpu.mq@47168 = 60B0FFFFFFFFFFFF</action>
            <!--
            47110 | 41F9 0060 0000 : lea    $600000.l,A0  // sound code address
            47116 | 43E8 1A73      : lea    ($1a73,A0),A1 // sound latch address ($601a73)
            4711A | 13C0 00A0 0000 : move.b D0,$a00000.l  // watchdog
            47120 | 1401           : move.b D1,D2
            47122 | 1239 00A0 0004 : move.b $a00004.l,D1  // read input
            47128 | B401           : cmp.b  D1,D2
            4712A | 67EE           : beq    $4711a
            4712C | 0C01 00FB      : cmpi.b #-$5,D1
            47130 | 6602           : bne    $47134
            47132 | 5310           : subq.b #1,(A0)       // decrease code -01
            47134 | 0C01 00F7      : cmpi.b #-$9,D1
            47138 | 6602           : bne    $4713c
            4713A | 5210           : addq.b #1,(A0)       // increase code +01
            4713C | 0C01 00FD      : cmpi.b #-$3,D1
            47140 | 6604           : bne    $47146
            47142 | 0410 0010      : subi.b #$10,(A0)     // decrease code -10
            47146 | 0C01 00FE      : cmpi.b #-$2,D1
            4714A | 6604           : bne    $47150
            4714C | 0610 0010      : addi.b #$10,(A0)     // increase code +10
            47150 | 0C01 00EF      : cmpi.b #-$11,D1
            47154 | 6604           : bne    $4715a
            47156 | 1290           : move.b (A0),(A1)     // play sound
            47158 | 6008           : bra    $47162
            4715A | 0C01 00DF      : cmpi.b #-$21,D1
            4715E | 6608           : bne    $47168
            47160 | 4211           : clr.b  (A1)          // stop sound
            47162 | 4EB9 0001 6934 : jsr    $16934.l      // send sound code
            47168 | 60B0           : bra    $4711a
            -->
        </script>
        <script state="run">
            <output format="----- ashura blaster 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@600000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@16958 = 43F9            </action>
            <action>maincpu.mq@12BAA = 4DF900012C123C3C</action>
            <action>maincpu.mq@47110 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@47118 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@47120 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@47128 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@47130 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@47138 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@47140 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@47148 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@47150 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@47158 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@47160 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@47168 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
ashurau.xml

Code: Select all

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

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@7C5E = 60</action> <!-- enemy -->
            <action>maincpu.mb@8184 = 60</action> <!-- bullet -->
            <action>maincpu.mb@88D4 = 60</action> <!-- middle enemy -->
            <action>maincpu.mb@AD46 = 60</action> <!-- laser -->
        </script>
        <script state="off">
            <action>maincpu.mb@7C5E = 64</action>
            <action>maincpu.mb@8184 = 64</action>
            <action>maincpu.mb@88D4 = 64</action>
            <action>maincpu.mb@AD46 = 64</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@0B1D = 01</action> <!-- P1 -->
            <action>maincpu.mb@0B6B = 01</action> <!-- P2 -->
        </script>
        <script state="off">
            <action>maincpu.mb@0B1D = 40</action>
            <action>maincpu.mb@0B6B = 40</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mq@02618 = 4EB90004A0500C41</action> <!-- y position -->
            <action>maincpu.mq@02648 = 4EB90004A05C0C41</action> <!-- x position -->
            <action>maincpu.mq@4A050 = 61166A0272010241</action>
            <action>maincpu.mq@4A058 = 03FF4E75610A6A02</action>
            <action>maincpu.mq@4A060 = 7208024103FF4E75</action>
            <action>maincpu.mq@4A068 = 74004A4067066A02</action>
            <action>maincpu.mq@4A070 = 44423002D2404E75</action>
            <!--
            4A050 | 6116      : bsr    $4a068   // y-position
            4A052 | 6A02      : bpl    $4a056
            4A054 | 7201      : moveq  #$1,D1
            4A056 | 0241 03FF : andi.w #$3ff,D1
            4A05A | 4E75      : rts
            4A05C | 610A      : bsr    $4a068   // x-position
            4A05E | 6A02      : bpl    $4a062
            4A060 | 7208      : moveq  #$8,D1
            4A062 | 0241 03FF : andi.w #$3ff,D1
            4A066 | 4E75      : rts
            4A068 | 74xx      : moveq  #$xx,D2
            4A06A | 4A40      : tst.w  D0
            4A06C | 6706      : beq    $4a074
            4A06E | 6A02      : bpl    $4a072
            4A070 | 4442      : neg.w  D2
            4A072 | 3002      : move.w D2,D0
            4A074 | D240      : add.w  D0,D1
            4A076 | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@4A069 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@02618 = D240024103FF0C41</action>
            <action>maincpu.mq@02648 = D240024103FF0C41</action>
            <action>maincpu.mq@4A050 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A058 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A060 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A068 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A070 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x08">02       </item>
            <item value="0x10">03       </item>
            <item value="0x18">04       </item>
            <item value="0x20">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@03FFE = 4EB90004A0803142</action>
            <action>maincpu.mq@4A080 = 4A406B027000D440</action>
            <action>maincpu.mq@4A088 = 024203FF4E75FFFF</action>
            <!--
            4A080 | 4A40      : tst.w  D0
            4A082 | 6B02      : bmi    $4a086
            4A084 | 70xx      : moveq  #$xx,D0
            4A086 | D440      : add.w  D0,D2
            4A088 | 0242 03FF : andi.w #$3ff,D2
            4A08C | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@4A085 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@03FFE = D440024203FF3142</action>
            <action>maincpu.mq@4A080 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A088 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="max bullets up">
        <script state="on">
            <action>maincpu.mw@3D26 = 7208</action>
        </script>
        <script state="off">
            <action>maincpu.mw@3D26 = 3211</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@1966A = 4E75            </action> <!-- sound routine stopper -->
            <action>maincpu.mq@1357C = 4EF90004A090303C</action>
            <action>maincpu.mq@4A090 = 41F90060000043E8</action>
            <action>maincpu.mq@4A098 = 1A7713C000A00000</action>
            <action>maincpu.mq@4A0A0 = 1401123900A00004</action>
            <action>maincpu.mq@4A0A8 = B40167EE0C0100FB</action>
            <action>maincpu.mq@4A0B0 = 660253100C0100F7</action>
            <action>maincpu.mq@4A0B8 = 660252100C0100FD</action>
            <action>maincpu.mq@4A0C0 = 6604041000100C01</action>
            <action>maincpu.mq@4A0C8 = 00FE660406100010</action>
            <action>maincpu.mq@4A0D0 = 0C0100EF66041290</action>
            <action>maincpu.mq@4A0D8 = 60080C0100DF6608</action>
            <action>maincpu.mq@4A0E0 = 42114EB900019646</action>
            <action>maincpu.mq@4A0E8 = 60B0FFFFFFFFFFFF</action>
            <!--
            4A090 | 41F9 0060 0000 : lea    $600000.l,A0  // sound code address
            4A096 | 43E8 1A77      : lea    ($1a77,A0),A1 // sound latch address ($601a77)
            4A09A | 13C0 00A0 0000 : move.b D0,$a00000.l  // watchdog
            4A0A0 | 1401           : move.b D1,D2
            4A0A2 | 1239 00A0 0004 : move.b $a00004.l,D1  // read input
            4A0A8 | B401           : cmp.b  D1,D2
            4A0AA | 67EE           : beq    $4a09a
            4A0AC | 0C01 00FB      : cmpi.b #-$5,D1
            4A0B0 | 6602           : bne    $4a0b4
            4A0B2 | 5310           : subq.b #1,(A0)       // decrease code -01
            4A0B4 | 0C01 00F7      : cmpi.b #-$9,D1
            4A0B8 | 6602           : bne    $4a0bc
            4A0BA | 5210           : addq.b #1,(A0)       // increase code +01
            4A0BC | 0C01 00FD      : cmpi.b #-$3,D1
            4A0C0 | 6604           : bne    $4a0c6
            4A0C2 | 0410 0010      : subi.b #$10,(A0)     // decrease code -10
            4A0C6 | 0C01 00FE      : cmpi.b #-$2,D1
            4A0CA | 6604           : bne    $4a0d0
            4A0CC | 0610 0010      : addi.b #$10,(A0)     // increase code +10
            4A0D0 | 0C01 00EF      : cmpi.b #-$11,D1
            4A0D4 | 6604           : bne    $4a0da
            4A0D6 | 1290           : move.b (A0),(A1)     // play sound
            4A0D8 | 6008           : bra    $4a0e2
            4A0DA | 0C01 00DF      : cmpi.b #-$21,D1
            4A0DE | 6608           : bne    $4a0e8
            4A0E0 | 4211           : clr.b  (A1)          // stop sound
            4A0E2 | 4EB9 0001 9646 : jsr    $19646.l      // send sound code
            4A0E8 | 60B0           : bra    $4a09a
            -->
        </script>
        <script state="run">
            <output format="----- ashura blaster 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@600000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@1966A = 43F9            </action>
            <action>maincpu.mq@1357C = 207C0040810E303C</action>
            <action>maincpu.mq@4A090 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A098 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A0A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A0A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A0B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A0B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A0C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A0C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A0D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A0D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A0E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4A0E8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
  • "auto fire" : Fixed auto fire for player 2.
  • "player speed" : Fixed "out of screen" bug.