Page 1 of 1

[drgnmst] Dragon Master

Posted: Thu Dec 24, 2020 12:53 pm
by jman

Code: Select all

<cheat desc="no hit">
    <parameter>
        <item value="0x01">P1          </item>
        <item value="0x02">P2          </item>
        <item value="0x03">both players</item>
    </parameter>
    <script state="on">
        <!-- attack -->
        <action>maincpu.md@37c86 =         4eb80280</action>
        <action>maincpu.mq@00280 = b4fc880066047000</action>
        <action>maincpu.mq@00288 = 4e75b4fc8c006604</action>
        <action>maincpu.mq@00290 = 70004e75302d8ae6</action>
        <action>maincpu.mq@00298 = 4e75ffffffffffff</action>
        <!--
        00280 | b4fc 8800 : cmpa.w #$8800,A2
        00284 | 6604      : bne    $28a
        00286 | 7000      : moveq  #$0,D0
        00288 | 4e75      : rts
        0028a | b4fc 8800 : cmpa.w #$8c00,A2
        0028e | 6604      : bne    $294
        00290 | 7000      : moveq  #$0,D0
        00292 | 4e75      : rts
        00294 | 302d 8ae6 : move.w (-$751a,A5),D0
        00298 | 4e75      : rts
        -->
        <!-- throw -->
        <action>maincpu.md@05580 =         4eb802a0</action>
        <action>maincpu.mq@002a0 = b6fc880066047001</action>
        <action>maincpu.mq@002a8 = 4e75b6fc8c006604</action>
        <action>maincpu.mq@002b0 = 70014e75d844bc44</action>
        <action>maincpu.mq@002b8 = 4e75ffffffffffff</action>
        <!--
        002a0 | b6fc 8800 : cmpa.w #$8800,A3
        002a4 | 6604      : bne    $2aa
        002a6 | 7001      : moveq  #$1,D0
        002a8 | 4e75      : rts
        002aa | b6fc 8c00 : cmpa.w #$8c00,A3
        002ae | 6604      : bne    $2b4
        002b0 | 7001      : moveq  #$1,D0
        002b2 | 4e75      : rts
        002b4 | d844      : add.w  D4,D4
        002b6 | bc44      : cmp.w  D4,D6
        002b8 | 4e75      : rts
        -->
    </script>
    <script state="change">
        <action                                  >maincpu.mb@00284 = 60</action>
        <action                                  >maincpu.mb@0028e = 60</action>
        <action condition="(param band 01) != 00">maincpu.mb@00284 = 66</action>
        <action condition="(param band 02) != 00">maincpu.mb@0028e = 66</action>
        <action                                  >maincpu.mb@002a4 = 60</action>
        <action                                  >maincpu.mb@002ae = 60</action>
        <action condition="(param band 01) != 00">maincpu.mb@002a4 = 66</action>
        <action condition="(param band 02) != 00">maincpu.mb@002ae = 66</action>
    </script>
    <script state="off">
        <action>maincpu.md@37c86 =         302d8ae6</action>
        <action>maincpu.mq@00280 = ffffffffffffffff</action>
        <action>maincpu.mq@00288 = ffffffffffffffff</action>
        <action>maincpu.mq@00290 = ffffffffffffffff</action>
        <action>maincpu.mq@00298 = ffffffffffffffff</action>
        <action>maincpu.md@05580 =         d844bc44</action>
        <action>maincpu.mq@002a0 = ffffffffffffffff</action>
        <action>maincpu.mq@002a8 = ffffffffffffffff</action>
        <action>maincpu.mq@002b0 = ffffffffffffffff</action>
        <action>maincpu.mq@002b8 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="P1 auto fire">
    <script state="on">
        <action>maincpu.md@32104 =         4eb80300</action>
        <action>maincpu.md@322ce =         4eb80300</action>
        <action>maincpu.mq@00300 = 4eb8515e302e0292</action>
        <action>maincpu.mq@00308 = 024000f04e75ffff</action>
        <!--
        00300 | 4eb8 515e : jsr    $515e.w
        00304 | 302e 0292 : move.w ($292,A6),D0
        00308 | 0240 00f0 : andi.w #$f0,D0
        0030c | 4e75      : rts
        -->
    </script>
    <script state="off">
        <action>maincpu.md@32104 =         4eb8515e</action>
        <action>maincpu.md@322ce =         4eb8515e</action>
        <action>maincpu.mq@00300 = ffffffffffffffff</action>
        <action>maincpu.mq@00308 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="P2 auto fire">
    <script state="on">
        <action>maincpu.md@326e0 =         4eb80310</action>
        <action>maincpu.md@32866 =         4eb80310</action>
        <action>maincpu.mq@00310 = 4eb8515e302e0292</action>
        <action>maincpu.mq@00318 = 024000f04e75ffff</action>
        <!--
        00310 | 4eb8 515e : jsr    $515e.w
        00314 | 302e 0292 : move.w ($292,A6),D0
        00318 | 0240 00f0 : andi.w #$f0,D0
        0031c | 4e75      : rts
        -->
    </script>
    <script state="off">
        <action>maincpu.md@326e0 =         4eb8515e</action>
        <action>maincpu.md@32866 =         4eb8515e</action>
        <action>maincpu.mq@00310 = ffffffffffffffff</action>
        <action>maincpu.mq@00318 = ffffffffffffffff</action>
    </script>
</cheat>
Unfortunately, "no hit" code is incomplete. It does not take care of the electric attack by final boss. Trace is very hard!

[drgnmst] update codes

Posted: Sat Dec 26, 2020 2:52 pm
by jman
Update.

Code: Select all

<cheat desc="auto fire">
    <parameter>
        <item value="0x01">P1          </item>
        <item value="0x02">P2          </item>
        <item value="0x03">both players</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@5168 =         4eb80300</action>
        <action>maincpu.mq@0300 = c06e0292bcfc8800</action>
        <action>maincpu.mq@0308 = 6704302e0292bcfc</action>
        <action>maincpu.mq@0310 = 8c006704302e0292</action>
        <action>maincpu.mq@0318 = 4e75ffffffffffff</action>
        <!--
        0300 | c06e 0292 : and.w  ($292,A6),D0
        0304 | bcfc 8800 : cmpa.w #$8800,A6
        0308 | 6604      : bne    $30e
        030a | 302e 0292 : move.w ($292,A6),D0
        030e | bcfc 8c00 : cmpa.w #$8c00,A6
        0312 | 6604      : bne    $318
        0314 | 302e 0292 : move.w ($292,A6),D0
        0318 | 4e75      : rts
        -->
    </script>
    <script state="change">
        <action                                  >maincpu.mb@00308 = 60</action>
        <action                                  >maincpu.mb@00312 = 60</action>
        <action condition="(param band 01) != 00">maincpu.mb@00308 = 66</action>
        <action condition="(param band 02) != 00">maincpu.mb@00312 = 66</action>
    </script>
    <script state="off">
        <action>maincpu.md@5168 =         c06e0292</action>
        <action>maincpu.mq@0300 = ffffffffffffffff</action>
        <action>maincpu.mq@0308 = ffffffffffffffff</action>
        <action>maincpu.mq@0310 = ffffffffffffffff</action>
        <action>maincpu.mq@0318 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="attack speed up">
    <parameter>
        <item value="0x01">P1          </item>
        <item value="0x02">P2          </item>
        <item value="0x03">both players</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@4350 =         4eb80350</action>
        <action>maincpu.mq@0350 = bcfc88006602610e</action>
        <action>maincpu.mq@0358 = bcfc8c0066026106</action>
        <action>maincpu.mq@0360 = 536e00184e75302e</action>
        <action>maincpu.mq@0368 = 000241fa00240c10</action>
        <action>maincpu.mq@0370 = 00ff6706b0186710</action>
        <action>maincpu.mq@0378 = 60f40c6e00020018</action>
        <action>maincpu.mq@0380 = 65063d7c00020018</action>
        <action>maincpu.mq@0388 = 4e75ffffffffffff</action>
        <action>maincpu.mq@0390 = 0002040effffffff</action>
        <!--
        0350 | bcfc 8800      : cmpa.w #$8800,A6
        0354 | 6602           : bne    $358
        0356 | 610e           : bsr    $366
        0358 | bcfc 8c00      : cmpa.w #$8c00,A6
        035c | 6602           : bne    $360
        035e | 6106           : bsr    $366
        0360 | 536e 0018      : subq.w #1,($18,A6)
        0364 | 4e75           : rts
        0366 | 302e 0002      : move.w ($2,A6),D0
        036a | 41fa 0024      : lea    ($24,PC);($390),A0
        036e | 0c10 00ff      : cmpi.b #-$1,(A0)
        0372 | 6706           : beq    $37a
        0374 | b018           : cmp.b  (A0)+,D0
        0376 | 6710           : beq    $388
        0378 | 60f4           : bra    $36e
        037a | 0c6e 0002 0018 : cmpi.w #$2,($18,A6)
        0380 | 6506           : bcs    $388
        0382 | 3d7c 0002 0018 : move.w #$2,($18,A6)
        0388 | 4e75           : rts
        0390 - 039f           : action status table
        -->
    </script>
    <script state="change">
        <action                                  >maincpu.mb@00354 = 60</action>
        <action                                  >maincpu.mb@0035c = 60</action>
        <action condition="(param band 01) != 00">maincpu.mb@00354 = 66</action>
        <action condition="(param band 02) != 00">maincpu.mb@0035c = 66</action>
    </script>
    <script state="off">
        <action>maincpu.md@4350 =         536e0018</action>
        <action>maincpu.mq@0350 = ffffffffffffffff</action>
        <action>maincpu.mq@0358 = ffffffffffffffff</action>
        <action>maincpu.mq@0360 = ffffffffffffffff</action>
        <action>maincpu.mq@0368 = ffffffffffffffff</action>
        <action>maincpu.mq@0370 = ffffffffffffffff</action>
        <action>maincpu.mq@0378 = ffffffffffffffff</action>
        <action>maincpu.mq@0380 = ffffffffffffffff</action>
        <action>maincpu.mq@0388 = ffffffffffffffff</action>
        <action>maincpu.mq@0390 = ffffffffffffffff</action>
    </script>
</cheat>
  • Rewritten "auto fire" code. Previous code doesn't work some characters.
  • Added "attack speed up" code.

[drgnmst] Dragon Master (update)

Posted: Sun Jun 25, 2023 1:19 pm
by jman

Code: Select all

<!-- Dragon Master (set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <parameter>
            <item value="0x01">P1          </item>
            <item value="0x02">P2          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <!-- attack -->
            <action>maincpu.md@37c86 =         4eb800d0</action>
            <action>maincpu.mq@000d0 = b4fc88006706b4fc</action>
            <action>maincpu.mq@000d8 = 8c00660470004e75</action>
            <action>maincpu.mq@000e0 = 302d8ae64e75ffff</action>
            <!--
            00d0 | b4fc 8800 : cmpa.w #$8800,A2
            00d4 | 6706      : beq    $dc
            00d6 | b4fc 8c00 : cmpa.w #$8c00,A2
            00da | 6604      : bne    $e0
            00dc | 7000      : moveq  #$0,D0
            00de | 4e75      : rts
            00e0 | 302d 8ae6 : move.w (-$751a,A5),D0
            00e4 | 4e75      : rts
            -->
            <!-- throw -->
            <action>maincpu.md@5580 =         4eb800f0</action>
            <action>maincpu.mq@00f0 = b6fc88006706b6fc</action>
            <action>maincpu.mq@00f8 = 8c00660470014e75</action>
            <action>maincpu.mq@0100 = d844bc444e75ffff</action>
            <!--
            00f0 | b6fc 8800 : cmpa.w #$8800,A3
            00f4 | 6706      : beq    $fc
            00f6 | b6fc 8c00 : cmpa.w #$8c00,A3
            00fa | 6604      : bne    $100
            00fc | 7001      : moveq  #$1,D0
            00fe | 4e75      : rts
            0100 | d844      : add.w  D4,D4
            0102 | bc44      : cmp.w  D4,D6
            0104 | 4e75      : rts
            -->
            <!-- electric attack -->
            <action>maincpu.md@29b5a =         4eb80110</action>
            <action>maincpu.mq@00110 = b6fc88006706b6fc</action>
            <action>maincpu.mq@00118 = 8c00660470014e75</action>
            <action>maincpu.mq@00120 = 4a2b01814e75ffff</action>
            <!--
            0110 | b6fc 8800 : cmpa.w #$8800,A3
            0114 | 6706      : beq    $11c
            0116 | b6fc 8c00 : cmpa.w #$8c00,A3
            011a | 6604      : bne    $120
            011c | 7001      : moveq  #$1,D0
            011e | 4e75      : rts
            0120 | 4a2b 0181 : tst.b  ($181,A3)
            0124 | 4e75      : rts
            -->
        </script>
        <script state="change">
            <action                          >maincpu.mb@00d2 = 00</action>
            <action                          >maincpu.mb@00d8 = 00</action>
            <action condition="param band 01">maincpu.mb@00d2 = 88</action>
            <action condition="param band 02">maincpu.mb@00d8 = 8c</action>
            <action                          >maincpu.mb@00f2 = 00</action>
            <action                          >maincpu.mb@00f8 = 00</action>
            <action condition="param band 01">maincpu.mb@00f2 = 88</action>
            <action condition="param band 02">maincpu.mb@00f8 = 8c</action>
            <action                          >maincpu.mb@0112 = 00</action>
            <action                          >maincpu.mb@0118 = 00</action>
            <action condition="param band 01">maincpu.mb@0112 = 88</action>
            <action condition="param band 02">maincpu.mb@0118 = 8c</action>
        </script>
        <script state="off">
            <action>maincpu.md@37c86 =         302d8ae6</action>
            <action>maincpu.mq@000d0 = ffffffffffffffff</action>
            <action>maincpu.mq@000d8 = ffffffffffffffff</action>
            <action>maincpu.mq@000e0 = ffffffffffffffff</action>
            <action>maincpu.md@05580 =         d844bc44</action>
            <action>maincpu.mq@000f0 = ffffffffffffffff</action>
            <action>maincpu.mq@000f8 = ffffffffffffffff</action>
            <action>maincpu.mq@00100 = ffffffffffffffff</action>
            <action>maincpu.md@29b5a =         4a2b0181</action>
            <action>maincpu.mq@00110 = ffffffffffffffff</action>
            <action>maincpu.mq@00118 = ffffffffffffffff</action>
            <action>maincpu.mq@00120 = ffffffffffffffff</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <parameter>
            <item value="0x01">P1          </item>
            <item value="0x02">P2          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@5168 =         4eb80130</action>
            <action>maincpu.md@517c =         4eb80146</action>
            <action>maincpu.md@519a =         4eb80146</action>
            <action>maincpu.md@531e =         4eb80130</action>
            <action>maincpu.mq@0130 = c06e0292bcfc8800</action>
            <action>maincpu.mq@0138 = 6706bcfc8c006604</action>
            <action>maincpu.mq@0140 = 302e02924e75302e</action>
            <action>maincpu.mq@0148 = 0082bcfc88006706</action>
            <action>maincpu.mq@0150 = bcfc8c006604302e</action>
            <action>maincpu.mq@0158 = 02924e75ffffffff</action>
            <!--
            0130 | c06e 0292 : and.w  ($292,A6),D0
            0134 | bcfc 8800 : cmpa.w #$8800,A6
            0138 | 6706      : beq    $140
            013a | bcfc 8c00 : cmpa.w #$8c00,A6
            013e | 6604      : bne    $144
            0140 | 302e 0292 : move.w ($292,A6),D0
            0144 | 4e75      : rts
            0146 | 302e 0082 : move.w ($82,A6),D0
            014a | bcfc 8800 : cmpa.w #$8800,A6
            014e | 6706      : beq    $156
            0150 | bcfc 8c00 : cmpa.w #$8c00,A6
            0154 | 6604      : bne    $15a
            0156 | 302e 0292 : move.w ($292,A6),D0
            015a | 4e75      : rts
            -->
        </script>
        <script state="change">
            <action                          >maincpu.mb@00136 = 00</action>
            <action                          >maincpu.mb@0013c = 00</action>
            <action condition="param band 01">maincpu.mb@00136 = 88</action>
            <action condition="param band 02">maincpu.mb@0013c = 8c</action>
            <action                          >maincpu.mb@0014c = 00</action>
            <action                          >maincpu.mb@00152 = 00</action>
            <action condition="param band 01">maincpu.mb@0014c = 88</action>
            <action condition="param band 02">maincpu.mb@00152 = 8c</action>
        </script>
        <script state="off">
            <action>maincpu.md@5168 =         c06e0292</action>
            <action>maincpu.md@517c =         302e0082</action>
            <action>maincpu.md@519a =         302e0082</action>
            <action>maincpu.md@531e =         c06e0292</action>
            <action>maincpu.mq@0130 = ffffffffffffffff</action>
            <action>maincpu.mq@0138 = ffffffffffffffff</action>
            <action>maincpu.mq@0140 = ffffffffffffffff</action>
            <action>maincpu.mq@0148 = ffffffffffffffff</action>
            <action>maincpu.mq@0150 = ffffffffffffffff</action>
            <action>maincpu.mq@0158 = ffffffffffffffff</action>
        </script>
    </cheat>

    <cheat desc="attack speed up">
        <parameter>
            <item value="0x01">P1          </item>
            <item value="0x02">P2          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@4350 =         4eb80160</action>
            <action>maincpu.mq@0160 = bcfc88006706bcfc</action>
            <action>maincpu.mq@0168 = 8c006622302e0002</action>
            <action>maincpu.mq@0170 = 41fa00220c1000ff</action>
            <action>maincpu.mq@0178 = 6706b018671060f4</action>
            <action>maincpu.mq@0180 = 0c6e000200186506</action>
            <action>maincpu.mq@0188 = 3d7c00020018536e</action>
            <action>maincpu.mq@0190 = 00184e750002040e</action>
            <action>maincpu.mq@0198 = ffffffffffffffff</action>
            <!--
            0160 | bcfc 8800      : cmpa.w #$8800,A6
            0164 | 6706           : beq    $16c
            0166 | bcfc 8c00      : cmpa.w #$8c00,A6
            016a | 6622           : bne    $18e
            016c | 302e 0002      : move.w ($2,A6),D0
            0170 | 41fa 0022      : lea    ($22,PC);($194),A0
            0174 | 0c10 00ff      : cmpi.b #-$1,(A0)
            0178 | 6706           : beq    $180
            017a | b018           : cmp.b  (A0)+,D0
            017c | 6710           : beq    $18e
            017e | 60f4           : bra    $174
            0180 | 0c6e 0002 0018 : cmpi.w #$2,($18,A6)
            0186 | 6506           : bcs    $18e
            0188 | 3d7c 0002 0018 : move.w #$2,($18,A6)
            018e | 536e 0018      : subq.w #1,($18,A6)
            0192 | 4e75           : rts
            0194 - 019f           : action status table
            -->
        </script>
        <script state="change">
            <action                          >maincpu.mb@0162 = 00</action>
            <action                          >maincpu.mb@0168 = 00</action>
            <action condition="param band 01">maincpu.mb@0162 = 88</action>
            <action condition="param band 02">maincpu.mb@0168 = 8c</action>
        </script>
        <script state="off">
            <action>maincpu.md@4350 =         536e0018</action>
            <action>maincpu.mq@0160 = ffffffffffffffff</action>
            <action>maincpu.mq@0168 = ffffffffffffffff</action>
            <action>maincpu.mq@0170 = ffffffffffffffff</action>
            <action>maincpu.mq@0178 = ffffffffffffffff</action>
            <action>maincpu.mq@0180 = ffffffffffffffff</action>
            <action>maincpu.mq@0188 = ffffffffffffffff</action>
            <action>maincpu.mq@0190 = ffffffffffffffff</action>
            <action>maincpu.mq@0198 = ffffffffffffffff</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x80">02       </item>
            <item value="0x40">03       </item>
            <item value="0x20">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@6535 = param</action>
            <action>maincpu.mb@6541 = param</action>
            <action>maincpu.mb@7cf1 = param</action> <!-- initialize -->
        </script>
        <script state="off">
            <action>maincpu.mb@6535 = 1d</action>
            <action>maincpu.mb@6541 = 28</action>
            <action>maincpu.mb@7cf1 = 34</action>
        </script>
    </cheat>

    <cheat desc="unlock secret characters">
        <comment>move cursor to left at Garcia or right at Deliza</comment>
        <script state="on">
            <!-- cursor/character conversion table -->
            <action>maincpu.mw@97d6 =             01a0</action>
            <action>maincpu.mq@01a0 = 000b080402050703</action>
            <action>maincpu.mq@01a8 = 0106090a0106090a</action>
            <!-- move cursor to right -->
            <action>maincpu.mb@13d37 = 0f</action>
            <action>maincpu.mb@13d3b = 10</action>
            <!-- move cursor to left -->
            <action>maincpu.mb@13d4f = 0f</action>
            <action>maincpu.mb@13d53 = 10</action>
        </script>
        <script state="off">
            <action>maincpu.mw@097d6 =             95b2</action>
            <action>maincpu.mq@001a0 = ffffffffffffffff</action>
            <action>maincpu.mq@001a8 = ffffffffffffffff</action>
            <action>maincpu.mb@13d37 =               03</action>
            <action>maincpu.mb@13d3b =               04</action>
            <action>maincpu.mb@13d4f =               03</action>
            <action>maincpu.mb@13d53 =               04</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@200c =         4ef80280</action>
            <action>maincpu.mq@0280 = 41f8800043f90080</action>
            <action>maincpu.mq@0288 = 000112001011b200</action>
            <action>maincpu.mq@0290 = 67f80c0000fd6602</action>
            <action>maincpu.mq@0298 = 53100c0000fe6602</action>
            <action>maincpu.mq@02a0 = 52100c0000fb6604</action>
            <action>maincpu.mq@02a8 = 041000100c0000f7</action>
            <action>maincpu.mq@02b0 = 6604061000100c00</action>
            <action>maincpu.mq@02b8 = 00ef66041610600a</action>
            <action>maincpu.mq@02c0 = 0c0000df660c163c</action>
            <action>maincpu.mq@02c8 = 00f0422901881343</action>
            <action>maincpu.mq@02d0 = 018060b6ffffffff</action>
            <!--
            0280 | 41f8 8000      : lea    $8000.w,A0   // sound code address ($ff8000)
            0284 | 43f9 0080 0001 : lea    $800001.l,A1 // input address ($800001)
            028a | 1200           : move.b D0,D1
            028c | 1011           : move.b (A1),D0
            028e | b200           : cmp.b  D0,D1
            0290 | 67f8           : beq    $28a
            0292 | 0c00 00fd      : cmpi.b #-$3,D0
            0296 | 6602           : bne    $29a
            0298 | 5310           : subq.b #1,(A0)      // decrease code -01
            029a | 0c00 00fe      : cmpi.b #-$2,D0
            029e | 6602           : bne    $2a2
            02a0 | 5210           : addq.b #1,(A0)      // increase code +01
            02a2 | 0c00 00fb      : cmpi.b #-$5,D0
            02a6 | 6604           : bne    $2ac
            02a8 | 0410 0010      : subi.b #$10,(A0)    // decrease code -10
            02ac | 0c00 00f7      : cmpi.b #-$9,D0
            02b0 | 6604           : bne    $2b6
            02b2 | 0610 0010      : addi.b #$10,(A0)    // increase code +10
            02b6 | 0c00 00ef      : cmpi.b #-$11,D0
            02ba | 6604           : bne    $2c0
            02bc | 1610           : move.b (A0),D3      // play sound
            02be | 600a           : bra    $2ca
            02c0 | 0c00 00df      : cmpi.b #-$21,D0
            02c4 | 660c           : bne    $2d2
            02c6 | 163c 00f0      : move.b #$f0,D3      // stop sound
            02ca | 4229 0188      : clr.b  ($188,A1)    // set sound flag ($800189)
            02ce | 1343 0180      : move.b D3,($180,A1) // send sound code ($800181)
            02d2 | 60b6           : bra    $28a
            -->
        </script>
        <script state="run">
            <output format="----- dragon master 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@ff8000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@200c =         303b0010</action>
            <action>maincpu.mq@0280 = ffffffffffffffff</action>
            <action>maincpu.mq@0288 = ffffffffffffffff</action>
            <action>maincpu.mq@0290 = ffffffffffffffff</action>
            <action>maincpu.mq@0298 = ffffffffffffffff</action>
            <action>maincpu.mq@02a0 = ffffffffffffffff</action>
            <action>maincpu.mq@02a8 = ffffffffffffffff</action>
            <action>maincpu.mq@02b0 = ffffffffffffffff</action>
            <action>maincpu.mq@02b8 = ffffffffffffffff</action>
            <action>maincpu.mq@02c0 = ffffffffffffffff</action>
            <action>maincpu.mq@02c8 = ffffffffffffffff</action>
            <action>maincpu.mq@02d0 = ffffffffffffffff</action>
        </script>
    </cheat>

</mamecheat>
  • "no hit" : add the codes for electric attack by Garner.
  • "auto fire" : fix no auto fire for some characters.
  • "timer speed", "unlock secret characters", "sound test mode" : add new.

[drgnmst]+ Dragon Master

Posted: Sat May 10, 2025 8:02 am
by jman
drgnmst.xml

Code: Select all

<!-- Dragon Master (set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@0553C = 4EB800D0        </action> <!-- catch / throw -->
            <action>maincpu.md@29B5A = 4EB800DE        </action> <!-- electric attack -->
            <action>maincpu.md@37C86 = 4EB800EC        </action> <!-- direct attack / firearms -->
            <action>maincpu.mq@000D0 = 082B000002FF6604</action>
            <action>maincpu.mq@000D8 = 4A2B01A14E75082A</action>
            <action>maincpu.mq@000E0 = 000002FF66044A2B</action>
            <action>maincpu.mq@000E8 = 01814E75082A0000</action>
            <action>maincpu.mq@000F0 = 02FF6704426D8AE6</action>
            <action>maincpu.mq@000F8 = 302D8AE64E75FFFF</action>
            <!--
            00D0 | 082B 0000 02FF : btst    #$0, ($2ff,A3)
            00D6 | 6604           : bne     $dc
            00D8 | 4A2B 01A1      : tst.b   ($1a1,A3)
            00DC | 4E75           : rts
            00DE | 082A 0000 02FF : btst    #$0, ($2ff,A2)
            00E4 | 6604           : bne     $ea
            00E6 | 4A2B 0181      : tst.b   ($181,A3)
            00EA | 4E75           : rts
            00EC | 082A 0000 02FF : btst    #$0, ($2ff,A2)
            00F2 | 6704           : beq     $f8
            00F4 | 426D 8AE6      : clr.w   (-$751a,A5)
            00F8 | 302D 8AE6      : move.w  (-$751a,A5), D0
            00FC | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@FF8AFF &amp;= ~01</action>
            <action condition="(param band 02) == 00">maincpu.pb@FF8EFF &amp;= ~01</action>
            <action condition="(param band 01) != 00">maincpu.pb@FF8AFF |= 01     </action>
            <action condition="(param band 02) != 00">maincpu.pb@FF8EFF |= 01     </action>
        </script>
        <script state="off">
            <action>maincpu.md@0553C = 4A2B01A1        </action>
            <action>maincpu.md@29B5A = 4A2B0181        </action>
            <action>maincpu.md@37C86 = 302D8AE6        </action>
            <action>maincpu.mq@000D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@000D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@000E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@000E8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@000F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@000F8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@5168 = 4EB80100        </action>
            <action>maincpu.md@517C = 4EB8010E        </action>
            <action>maincpu.md@519A = 4EB8010E        </action>
            <action>maincpu.md@531E = 4EB80100        </action>
            <action>maincpu.mq@0100 = C06E0292082E0001</action>
            <action>maincpu.mq@0108 = 02FF660E4E75302E</action>
            <action>maincpu.mq@0110 = 0082082E000102FF</action>
            <action>maincpu.mq@0118 = 6704302E02924E75</action>
            <!--
            0100 | C06E 0292      : and.w   ($292,A6), D0
            0104 | 082E 0001 02FF : btst    #$1, ($2ff,A6)
            010A | 660E           : bne     $11a
            010C | 4E75           : rts
            010E | 302E 0082      : move.w  ($82,A6), D0
            0112 | 082E 0001 02FF : btst    #$1, ($2ff,A6)
            0118 | 6704           : beq     $11e
            011A | 302E 0292      : move.w  ($292,A6), D0
            011E | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@FF8AFF &amp;= ~02</action>
            <action condition="(param band 02) == 00">maincpu.pb@FF8EFF &amp;= ~02</action>
            <action condition="(param band 01) != 00">maincpu.pb@FF8AFF |= 02     </action>
            <action condition="(param band 02) != 00">maincpu.pb@FF8EFF |= 02     </action>
        </script>
        <script state="off">
            <action>maincpu.md@5168 = C06E0292        </action>
            <action>maincpu.md@517C = 302E0082        </action>
            <action>maincpu.md@519A = 302E0082        </action>
            <action>maincpu.md@531E = C06E0292        </action>
            <action>maincpu.mq@0100 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0108 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0110 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0118 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="action speed up">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@4344 = 4EB80120        </action>
            <action>maincpu.md@436C = 4EB80120        </action>
            <action>maincpu.mq@0120 = 3010082E000202FF</action>
            <action>maincpu.mq@0128 = 6704303C00013D40</action>
            <action>maincpu.mq@0130 = 00184E75FFFFFFFF</action>
            <!--
            0120 | 3010           : move.w  (A0), D0
            0122 | 082E 0002 02FF : btst    #$2, ($2ff,A6)
            0128 | 6704           : beq     $12e
            012A | 303C 0001      : move.w  #$1, D0
            012E | 3D40 0018      : move.w  D0, ($18,A6)
            0132 | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@FF8AFF &amp;= ~04</action>
            <action condition="(param band 02) == 00">maincpu.pb@FF8EFF &amp;= ~04</action>
            <action condition="(param band 01) != 00">maincpu.pb@FF8AFF |= 04     </action>
            <action condition="(param band 02) != 00">maincpu.pb@FF8EFF |= 04     </action>
        </script>
        <script state="off">
            <action>maincpu.md@4344 = 3D500018        </action>
            <action>maincpu.md@436C = 3D500018        </action>
            <action>maincpu.mq@0120 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0128 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0130 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xFF">01 (slow)</item>
            <item value="0x80">02       </item>
            <item value="0x40">03       </item>
            <item value="0x20">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@6535 = param</action>
            <action>maincpu.mb@6541 = param</action>
            <action>maincpu.mb@7CF1 = param</action> <!-- initialize -->
        </script>
        <script state="off">
            <action>maincpu.mb@6535 = 1D</action>
            <action>maincpu.mb@6541 = 28</action>
            <action>maincpu.mb@7CF1 = 34</action>
        </script>
    </cheat>

    <cheat desc="bonus stage">
        <parameter>
            <item value="0x602A">none  </item>
            <item value="0x6068">always</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@80BA = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@80BA = 6608</action>
        </script>
    </cheat>

    <cheat desc="unlock secret characters">
        <comment>move cursor to left on Garcia or right on Deliza</comment>
        <script state="on">
            <!-- cursor/character conversion table -->
            <action>maincpu.mw@97D6 = 0140            </action>
            <action>maincpu.mq@0140 = 000B080402050703</action>
            <action>maincpu.mq@0148 = 0106090A0106090A</action>
            <!-- move cursor to right -->
            <action>maincpu.mb@13D37 = 0F</action>
            <action>maincpu.mb@13D3B = 10</action>
            <!-- move cursor to left -->
            <action>maincpu.mb@13D4F = 0F</action>
            <action>maincpu.mb@13D53 = 10</action>
        </script>
        <script state="off">
            <action>maincpu.mw@097D6 = 95B2            </action>
            <action>maincpu.mq@00140 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@00148 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@13D37 = 03              </action>
            <action>maincpu.mb@13D3B = 04              </action>
            <action>maincpu.mb@13D4F = 03              </action>
            <action>maincpu.mb@13D53 = 04              </action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@200C = 4EF80150        </action>
            <action>maincpu.mq@0150 = 41F8800043F90080</action>
            <action>maincpu.mq@0158 = 000112001011B200</action>
            <action>maincpu.mq@0160 = 67F80C0000FD6602</action>
            <action>maincpu.mq@0168 = 53100C0000FE6602</action>
            <action>maincpu.mq@0170 = 52100C0000FB6604</action>
            <action>maincpu.mq@0178 = 041000100C0000F7</action>
            <action>maincpu.mq@0180 = 6604061000100C00</action>
            <action>maincpu.mq@0188 = 00EF66041610600A</action>
            <action>maincpu.mq@0190 = 0C0000DF660C163C</action>
            <action>maincpu.mq@0198 = 00F0422901881343</action>
            <action>maincpu.mq@01A0 = 018060B6FFFFFFFF</action>
            <!--
            0150 | 41F8 8000      : lea     $8000.w, A0   // sound code address ($FF8000)
            0154 | 43F9 0080 0001 : lea     $800001.l, A1 // input address
            015A | 1200           : move.b  D0, D1
            015C | 1011           : move.b  (A1), D0
            015E | B200           : cmp.b   D0, D1
            0160 | 67F8           : beq     $15a
            0162 | 0C00 00FD      : cmpi.b  #-$3, D0
            0166 | 6602           : bne     $16a
            0168 | 5310           : subq.b  #1, (A0)      // decrease code -01
            016A | 0C00 00FE      : cmpi.b  #-$2, D0
            016E | 6602           : bne     $172
            0170 | 5210           : addq.b  #1, (A0)      // increase code +01
            0172 | 0C00 00FB      : cmpi.b  #-$5, D0
            0176 | 6604           : bne     $17c
            0178 | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            017C | 0C00 00F7      : cmpi.b  #-$9, D0
            0180 | 6604           : bne     $186
            0182 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            0186 | 0C00 00EF      : cmpi.b  #-$11, D0
            018A | 6604           : bne     $190
            018C | 1610           : move.b  (A0), D3      // play sound
            018E | 600A           : bra     $19a
            0190 | 0C00 00DF      : cmpi.b  #-$21, D0
            0194 | 660C           : bne     $1a2
            0196 | 163C 00F0      : move.b  #$f0, D3      // stop sound
            019A | 4229 0188      : clr.b   ($188,A1)     // set sound flag ($800189)
            019E | 1343 0180      : move.b  D3, ($180,A1) // send sound code ($800181)
            01A2 | 60B6           : bra     $15a
            -->
        </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="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@FF8000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@200C = 303B0010        </action>
            <action>maincpu.mq@0150 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0158 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0160 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0168 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0170 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0178 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0180 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0188 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0190 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0198 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@01A0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
drgnmst2.xml

Code: Select all

<!-- Dragon Master (set 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@0552C = 4EB800D0        </action> <!-- catch / throw -->
            <action>maincpu.md@29B2E = 4EB800DE        </action> <!-- electric attack -->
            <action>maincpu.md@37C5E = 4EB800EC        </action> <!-- direct attack / firearms -->
            <action>maincpu.mq@000D0 = 082B000002FF6604</action>
            <action>maincpu.mq@000D8 = 4A2B01A14E75082A</action>
            <action>maincpu.mq@000E0 = 000002FF66044A2B</action>
            <action>maincpu.mq@000E8 = 01814E75082A0000</action>
            <action>maincpu.mq@000F0 = 02FF6704426D8AE6</action>
            <action>maincpu.mq@000F8 = 302D8AE64E75FFFF</action>
            <!--
            00D0 | 082B 0000 02FF : btst    #$0, ($2ff,A3)
            00D6 | 6604           : bne     $dc
            00D8 | 4A2B 01A1      : tst.b   ($1a1,A3)
            00DC | 4E75           : rts
            00DE | 082A 0000 02FF : btst    #$0, ($2ff,A2)
            00E4 | 6604           : bne     $ea
            00E6 | 4A2B 0181      : tst.b   ($181,A3)
            00EA | 4E75           : rts
            00EC | 082A 0000 02FF : btst    #$0, ($2ff,A2)
            00F2 | 6704           : beq     $f8
            00F4 | 426D 8AE6      : clr.w   (-$751a,A5)
            00F8 | 302D 8AE6      : move.w  (-$751a,A5), D0
            00FC | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@FF8AFF &amp;= ~01</action>
            <action condition="(param band 02) == 00">maincpu.pb@FF8EFF &amp;= ~01</action>
            <action condition="(param band 01) != 00">maincpu.pb@FF8AFF |= 01     </action>
            <action condition="(param band 02) != 00">maincpu.pb@FF8EFF |= 01     </action>
        </script>
        <script state="off">
            <action>maincpu.md@0552C = 4A2B01A1        </action>
            <action>maincpu.md@29B2E = 4A2B0181        </action>
            <action>maincpu.md@37C5E = 302D8AE6        </action>
            <action>maincpu.mq@000D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@000D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@000E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@000E8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@000F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@000F8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@5158 = 4EB80100        </action>
            <action>maincpu.md@516C = 4EB8010E        </action>
            <action>maincpu.md@518A = 4EB8010E        </action>
            <action>maincpu.md@530E = 4EB80100        </action>
            <action>maincpu.mq@0100 = C06E0292082E0001</action>
            <action>maincpu.mq@0108 = 02FF660E4E75302E</action>
            <action>maincpu.mq@0110 = 0082082E000102FF</action>
            <action>maincpu.mq@0118 = 6704302E02924E75</action>
            <!--
            0100 | C06E 0292      : and.w   ($292,A6), D0
            0104 | 082E 0001 02FF : btst    #$1, ($2ff,A6)
            010A | 660E           : bne     $11a
            010C | 4E75           : rts
            010E | 302E 0082      : move.w  ($82,A6), D0
            0112 | 082E 0001 02FF : btst    #$1, ($2ff,A6)
            0118 | 6704           : beq     $11e
            011A | 302E 0292      : move.w  ($292,A6), D0
            011E | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@FF8AFF &amp;= ~02</action>
            <action condition="(param band 02) == 00">maincpu.pb@FF8EFF &amp;= ~02</action>
            <action condition="(param band 01) != 00">maincpu.pb@FF8AFF |= 02     </action>
            <action condition="(param band 02) != 00">maincpu.pb@FF8EFF |= 02     </action>
        </script>
        <script state="off">
            <action>maincpu.md@5158 = C06E0292        </action>
            <action>maincpu.md@516C = 302E0082        </action>
            <action>maincpu.md@518A = 302E0082        </action>
            <action>maincpu.md@530E = C06E0292        </action>
            <action>maincpu.mq@0100 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0108 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0110 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0118 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="action speed up">
        <parameter>
            <item value="0x01">1P          </item>
            <item value="0x02">2P          </item>
            <item value="0x03">both players</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@4334 = 4EB80120        </action>
            <action>maincpu.md@435C = 4EB80120        </action>
            <action>maincpu.mq@0120 = 3010082E000202FF</action>
            <action>maincpu.mq@0128 = 6704303C00013D40</action>
            <action>maincpu.mq@0130 = 00184E75FFFFFFFF</action>
            <!--
            0120 | 3010           : move.w  (A0), D0
            0122 | 082E 0002 02FF : btst    #$2, ($2ff,A6)
            0128 | 6704           : beq     $12e
            012A | 303C 0001      : move.w  #$1, D0
            012E | 3D40 0018      : move.w  D0, ($18,A6)
            0132 | 4E75           : rts
            -->
        </script>
        <script state="run">
            <action condition="(param band 01) == 00">maincpu.pb@FF8AFF &amp;= ~04</action>
            <action condition="(param band 02) == 00">maincpu.pb@FF8EFF &amp;= ~04</action>
            <action condition="(param band 01) != 00">maincpu.pb@FF8AFF |= 04     </action>
            <action condition="(param band 02) != 00">maincpu.pb@FF8EFF |= 04     </action>
        </script>
        <script state="off">
            <action>maincpu.md@4334 = 3D500018        </action>
            <action>maincpu.md@435C = 3D500018        </action>
            <action>maincpu.mq@0120 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0128 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0130 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xFF">01 (slow)</item>
            <item value="0x80">02       </item>
            <item value="0x40">03       </item>
            <item value="0x20">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@6525 = param</action>
            <action>maincpu.mb@6531 = param</action>
            <action>maincpu.mb@7CD1 = param</action> <!-- initialize -->
        </script>
        <script state="off">
            <action>maincpu.mb@6525 = 1D</action>
            <action>maincpu.mb@6531 = 28</action>
            <action>maincpu.mb@7CD1 = 34</action>
        </script>
    </cheat>

    <cheat desc="bonus stage">
        <parameter>
            <item value="0x602A">none  </item>
            <item value="0x6068">always</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@8090 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@8090 = 6608</action>
        </script>
    </cheat>

    <cheat desc="unlock secret characters">
        <comment>move cursor to left on Garcia or right on Deliza</comment>
        <script state="on">
            <!-- cursor/character conversion table -->
            <action>maincpu.mw@97E6 = 0140            </action>
            <action>maincpu.mq@0140 = 000B080402050703</action>
            <action>maincpu.mq@0148 = 0106090A0106090A</action>
            <!-- move cursor to right -->
            <action>maincpu.mb@13D45 = 0F</action>
            <action>maincpu.mb@13D49 = 10</action>
            <!-- move cursor to left -->
            <action>maincpu.mb@13D5D = 0F</action>
            <action>maincpu.mb@13D61 = 10</action>
        </script>
        <script state="off">
            <action>maincpu.mw@097E6 = 95C0            </action>
            <action>maincpu.mq@00140 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@00148 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@13D45 = 03              </action>
            <action>maincpu.mb@13D49 = 04              </action>
            <action>maincpu.mb@13D5D = 03              </action>
            <action>maincpu.mb@13D61 = 04              </action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@1FFC = 4EF80150        </action>
            <action>maincpu.mq@0150 = 41F8800043F90080</action>
            <action>maincpu.mq@0158 = 000112001011B200</action>
            <action>maincpu.mq@0160 = 67F80C0000FD6602</action>
            <action>maincpu.mq@0168 = 53100C0000FE6602</action>
            <action>maincpu.mq@0170 = 52100C0000FB6604</action>
            <action>maincpu.mq@0178 = 041000100C0000F7</action>
            <action>maincpu.mq@0180 = 6604061000100C00</action>
            <action>maincpu.mq@0188 = 00EF66041610600A</action>
            <action>maincpu.mq@0190 = 0C0000DF660C163C</action>
            <action>maincpu.mq@0198 = 00F0422901881343</action>
            <action>maincpu.mq@01A0 = 018060B6FFFFFFFF</action>
            <!--
            0150 | 41F8 8000      : lea     $8000.w, A0   // sound code address ($FF8000)
            0154 | 43F9 0080 0001 : lea     $800001.l, A1 // input address
            015A | 1200           : move.b  D0, D1
            015C | 1011           : move.b  (A1), D0
            015E | B200           : cmp.b   D0, D1
            0160 | 67F8           : beq     $15a
            0162 | 0C00 00FD      : cmpi.b  #-$3, D0
            0166 | 6602           : bne     $16a
            0168 | 5310           : subq.b  #1, (A0)      // decrease code -01
            016A | 0C00 00FE      : cmpi.b  #-$2, D0
            016E | 6602           : bne     $172
            0170 | 5210           : addq.b  #1, (A0)      // increase code +01
            0172 | 0C00 00FB      : cmpi.b  #-$5, D0
            0176 | 6604           : bne     $17c
            0178 | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            017C | 0C00 00F7      : cmpi.b  #-$9, D0
            0180 | 6604           : bne     $186
            0182 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            0186 | 0C00 00EF      : cmpi.b  #-$11, D0
            018A | 6604           : bne     $190
            018C | 1610           : move.b  (A0), D3      // play sound
            018E | 600A           : bra     $19a
            0190 | 0C00 00DF      : cmpi.b  #-$21, D0
            0194 | 660C           : bne     $1a2
            0196 | 163C 00F0      : move.b  #$f0, D3      // stop sound
            019A | 4229 0188      : clr.b   ($188,A1)     // set sound flag ($800189)
            019E | 1343 0180      : move.b  D3, ($180,A1) // send sound code ($800181)
            01A2 | 60B6           : bra     $15a
            -->
        </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="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@FF8000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@1FFC = 303B0010        </action>
            <action>maincpu.mq@0150 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0158 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0160 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0168 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0170 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0178 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0180 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0188 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0190 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0198 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@01A0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
  • "no hit" and "rapid fire" : Major rewritten routine.
  • "action speed up" : Renamed from "attack speed up" and major rewritten routine.
  • "bonus stage" : Added new. You need to set this code before stage finish. But bonus stage is infinite loop when you set "always".