[sectionz] Section Z

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: 842
Joined: Tue Dec 01, 2020 1:24 pm

[sectionz] Section Z

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@1144 = 18</action> <!-- bullet -->
        <action>maincpu.mb@1186 = 18</action> <!-- enemy -->
        <action>maincpu.mb@11da = 18</action> <!-- enemy -->
        <action>maincpu.mb@11fb = 18</action> <!-- enemy -->
        <action>maincpu.mb@1232 = 18</action> <!-- boss 1 -->
        <action>maincpu.mb@28b8 = c9</action> <!-- laser -->
        <action>maincpu.mb@2950 = c9</action> <!-- laser -->
        <action>maincpu.mb@2994 = 18</action> <!-- beam -->
        <action>maincpu.mb@29a6 = 18</action> <!-- beam -->
        <action>maincpu.mb@2a46 = 18</action> <!-- beam -->
        <action>maincpu.mb@416b = c9</action> <!-- enemy -->
        <action>maincpu.mb@4d84 = c9</action> <!-- small shutter -->
        <action>maincpu.mb@4d93 = c9</action> <!-- small shutter -->
        <action>maincpu.mb@506e = c9</action> <!-- shutter -->
        <action>maincpu.mb@5096 = 18</action> <!-- shutter -->
        <action>maincpu.mb@6610 = c9</action> <!-- enemy -->
        <action>maincpu.mb@6621 = c9</action> <!-- enemy -->
        <action>maincpu.mb@6aa3 = c9</action> <!-- last boss -->
        <action>maincpu.mb@6e98 = 18</action> <!-- boss 2 -->
        <action>maincpu.mb@7236 = c9</action> <!-- boss 3 -->
        <action>maincpu.mb@7482 = c9</action> <!-- enemy -->
    </script>
    <script state="off">
        <action>maincpu.mb@1144 = 30</action>
        <action>maincpu.mb@1186 = 30</action>
        <action>maincpu.mb@11da = 30</action>
        <action>maincpu.mb@11fb = 30</action>
        <action>maincpu.mb@1232 = 30</action>
        <action>maincpu.mb@28b8 = d0</action>
        <action>maincpu.mb@2950 = d0</action>
        <action>maincpu.mb@2994 = 30</action>
        <action>maincpu.mb@29a6 = 38</action>
        <action>maincpu.mb@2a46 = 30</action>
        <action>maincpu.mb@416b = d0</action>
        <action>maincpu.mb@4d84 = d0</action>
        <action>maincpu.mb@4d93 = d0</action>
        <action>maincpu.mb@506e = 3e</action>
        <action>maincpu.mb@5096 = 30</action>
        <action>maincpu.mb@6610 = d0</action>
        <action>maincpu.mb@6621 = d0</action>
        <action>maincpu.mb@6aa3 = d0</action>
        <action>maincpu.mb@6e98 = 30</action>
        <action>maincpu.mb@7236 = d0</action>
        <action>maincpu.mb@7482 = d0</action>
    </script>
</cheat>

<cheat desc="walk through wall">
    <script state="on">
        <action>maincpu.mb@1a77 = c9</action> <!-- right -->
        <action>maincpu.mb@1abe = c9</action> <!-- left -->
        <action>maincpu.mb@1adf = c9</action> <!-- down -->
        <action>maincpu.mb@1b09 = c9</action> <!-- up -->
        <action>maincpu.mb@1b28 = c9</action> <!-- lower-right -->
        <action>maincpu.mb@1b4e = c9</action> <!-- lower-left -->
        <action>maincpu.mb@1b74 = c9</action> <!-- upper-left -->
        <action>maincpu.mb@1b99 = c9</action> <!-- upper-right -->
    </script>
    <script state="off">
        <action>maincpu.mb@1a77 = cd</action>
        <action>maincpu.mb@1abe = cd</action>
        <action>maincpu.mb@1adf = cd</action>
        <action>maincpu.mb@1b09 = cd</action>
        <action>maincpu.mb@1b28 = cd</action>
        <action>maincpu.mb@1b4e = cd</action>
        <action>maincpu.mb@1b74 = cd</action>
        <action>maincpu.mb@1b99 = cd</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@2195 = 01</action> <!-- bomb -->
        <action>maincpu.mb@21a3 = 01</action> <!-- shot -->
    </script>
    <script state="off">
        <action>maincpu.mb@2195 = 07</action>
        <action>maincpu.mb@21a3 = 07</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x0080">01 (slow)</item>
        <item value="0x0180">02       </item>
        <item value="0x0380">03       </item>
        <item value="0x0580">04       </item>
        <item value="0x0780">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@01a25 =         dd8c10cd</action>
        <action>maincpu.mq@1cc10 = f20000110928a77a</action>
        <action>maincpu.mq@1cc18 = 28a7780000118c1d</action>
        <action>maincpu.mq@1cc20 = 018c2af200000109</action>
        <action>maincpu.mq@1cc28 = ffffc90466dd0000</action>
        <!--
        8c10 | 7a       : ld  a,d
        8c11 | a7       : and a
        8c12 | 28 09    : jr  z,$8C1D
        8c14 | 11 xx xx : ld  de,$xxxx
        8c17 | f2 1d 8c : jp  p,$8C1D
        8c1a | 11 xx xx : ld  de,$xxxx
        8c1d | 78       : ld  a,b
        8c1e | a7       : and a
        8c1f | 28 09    : jr  z,$8C2A
        8c21 | 01 xx xx : ld  bc,$xxxx
        8c24 | f2 2a 8c : jp  p,$8C2A
        8c27 | 01 xx xx : ld  bc,$xxxx
        8c2a | dd 66 04 : ld  h,(ix+$04)
        8c2d | c9       : ret
        -->
    </script>
    <script state="change">
        <action>maincpu.mw@1cc15 =  param</action>
        <action>maincpu.mw@1cc1b = -param</action>
        <action>maincpu.mw@1cc22 =  param</action>
        <action>maincpu.mw@1cc28 = -param</action>
    </script>
    <script state="off">
        <action>maincpu.md@01a25 =         dd0466dd</action>
        <action>maincpu.mq@1cc10 = ffffffffffffffff</action>
        <action>maincpu.mq@1cc18 = ffffffffffffffff</action>
        <action>maincpu.mq@1cc20 = ffffffffffffffff</action>
        <action>maincpu.mq@1cc28 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="bullet speed - shot">
    <parameter>
        <item value="0x01">01 (slow)</item>
        <item value="0x04">02       </item>
        <item value="0x08">03       </item>
        <item value="0x0c">04       </item>
        <item value="0x10">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@21d2 =  param</action> <!-- right -->
        <action>maincpu.mb@21e5 = -param</action> <!-- left -->
    </script>
    <script state="off">
        <action>maincpu.mb@21d2 = 05</action>
        <action>maincpu.mb@21e5 = fb</action>
    </script>
</cheat>

<cheat desc="quick turn">
    <script state="on">
        <action>maincpu.mb@1d18 = 01</action>
    </script>
    <script state="off">
        <action>maincpu.mb@1d18 = 09</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@00195 =         21b390c3</action>
        <action>maincpu.mq@1b390 = 47b8f8093ac10021</action>
        <action>maincpu.mq@1b398 = fe350120fdfef928</action>
        <action>maincpu.mq@1b3a0 = 0420fbfe340120fe</action>
        <action>maincpu.mq@1b3a8 = 0520f7fe0618f03e</action>
        <action>maincpu.mq@1b3b0 = 20effe787786103e</action>
        <action>maincpu.mq@1b3b8 = 0420dffe05187e03</action>
        <action>maincpu.mq@1b3c0 = ffffcd18f80c32af</action>
        <!--
        b390 | 21 00 c1 : ld  hl,$C100  // sound code address
        b393 | 3a 09 f8 : ld  a,($F809) // read input
        b396 | b8       : cp  b
        b397 | 47       : ld  b,a
        b398 | 28 f9    : jr  z,$B393
        b39a | fe fd    : cp  $FD
        b39c | 20 01    : jr  nz,$B39F
        b39e | 35       : dec (hl)      // decrease code -01
        b39f | fe fe    : cp  $FE
        b3a1 | 20 01    : jr  nz,$B3A4
        b3a3 | 34       : inc (hl)      // increase code +01
        b3a4 | fe fb    : cp  $FB
        b3a6 | 20 04    : jr  nz,$B3AC
        b3a8 | 3e f0    : ld  a,$F0     // decrease code -10
        b3aa | 18 06    : jr  $B3B2
        b3ac | fe f7    : cp  $F7
        b3ae | 20 05    : jr  nz,$B3B5
        b3b0 | 3e 10    : ld  a,$10     // increase code +10
        b3b2 | 86       : add a,(hl)
        b3b3 | 77       : ld  (hl),a
        b3b4 | 78       : ld  a,b
        b3b5 | fe ef    : cp  $EF
        b3b7 | 20 03    : jr  nz,$B3BC
        b3b9 | 7e       : ld  a,(hl)    // play sound
        b3ba | 18 05    : jr  $B3C1
        b3bc | fe df    : cp  $DF
        b3be | 20 04    : jr  nz,$B3C4
        b3c0 | af       : xor a         // stop sound
        b3c1 | 32 0c f8 : ld  ($F80C),a // send sound code
        b3c4 | 18 cd    : jr  $B393
        -->
        <action>soundcpu.mb@01cd = 00</action> <!-- enable sfx and music stop at the same time -->
    </script>
    <script state="run">
        <output format="----- section z 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@c100</argument>
        </output>
    </script>
    <script state="off">
        <action> maincpu.md@00195 =         210424c3</action>
        <action> maincpu.mq@1b390 = ffffffffffffffff</action>
        <action> maincpu.mq@1b398 = ffffffffffffffff</action>
        <action> maincpu.mq@1b3a0 = ffffffffffffffff</action>
        <action> maincpu.mq@1b3a8 = ffffffffffffffff</action>
        <action> maincpu.mq@1b3b0 = ffffffffffffffff</action>
        <action> maincpu.mq@1b3b8 = ffffffffffffffff</action>
        <action> maincpu.mq@1b3c0 = ffffffffffffffff</action>
        <action>soundcpu.mb@001cd =               00</action>
    </script>
</cheat>
jman
Posts: 842
Joined: Tue Dec 01, 2020 1:24 pm

[sectionz]+ Section Z

Post by jman »

Code: Select all

<!-- Section Z (set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@1144 = 18</action> <!-- bullet -->
            <action>maincpu.mb@1186 = 18</action> <!-- enemy -->
            <action>maincpu.mb@11DA = 18</action> <!-- enemy -->
            <action>maincpu.mb@11FB = 18</action> <!-- enemy -->
            <action>maincpu.mb@1232 = 18</action> <!-- boss 1 -->
            <action>maincpu.mb@28B8 = C9</action> <!-- laser -->
            <action>maincpu.mb@2950 = C9</action> <!-- laser -->
            <action>maincpu.mb@2994 = 18</action> <!-- beam -->
            <action>maincpu.mb@29A6 = 18</action> <!-- beam -->
            <action>maincpu.mb@2A46 = 18</action> <!-- beam -->
            <action>maincpu.mb@416B = C9</action> <!-- enemy -->
            <action>maincpu.mb@4D84 = C9</action> <!-- small shutter -->
            <action>maincpu.mb@4D93 = C9</action> <!-- small shutter -->
            <action>maincpu.mb@506E = C9</action> <!-- shutter -->
            <action>maincpu.mb@5096 = 18</action> <!-- shutter -->
            <action>maincpu.mb@6610 = C9</action> <!-- enemy -->
            <action>maincpu.mb@6621 = C9</action> <!-- enemy -->
            <action>maincpu.mb@6AA3 = C9</action> <!-- last boss -->
            <action>maincpu.mb@6E98 = 18</action> <!-- boss 2 -->
            <action>maincpu.mb@7236 = C9</action> <!-- boss 3 -->
            <action>maincpu.mb@7482 = C9</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@1144 = 30</action>
            <action>maincpu.mb@1186 = 30</action>
            <action>maincpu.mb@11DA = 30</action>
            <action>maincpu.mb@11FB = 30</action>
            <action>maincpu.mb@1232 = 30</action>
            <action>maincpu.mb@28B8 = D0</action>
            <action>maincpu.mb@2950 = D0</action>
            <action>maincpu.mb@2994 = 30</action>
            <action>maincpu.mb@29A6 = 38</action>
            <action>maincpu.mb@2A46 = 30</action>
            <action>maincpu.mb@416B = D0</action>
            <action>maincpu.mb@4D84 = D0</action>
            <action>maincpu.mb@4D93 = D0</action>
            <action>maincpu.mb@506E = 3E</action>
            <action>maincpu.mb@5096 = 30</action>
            <action>maincpu.mb@6610 = D0</action>
            <action>maincpu.mb@6621 = D0</action>
            <action>maincpu.mb@6AA3 = D0</action>
            <action>maincpu.mb@6E98 = 30</action>
            <action>maincpu.mb@7236 = D0</action>
            <action>maincpu.mb@7482 = D0</action>
        </script>
    </cheat>

    <cheat desc="walk through wall">
        <script state="on">
            <action>maincpu.mb@1A77 = C9</action> <!-- right -->
            <action>maincpu.mb@1ABE = C9</action> <!-- left -->
            <action>maincpu.mb@1ADF = C9</action> <!-- down -->
            <action>maincpu.mb@1B09 = C9</action> <!-- up -->
            <action>maincpu.mb@1B28 = C9</action> <!-- lower-right -->
            <action>maincpu.mb@1B4E = C9</action> <!-- lower-left -->
            <action>maincpu.mb@1B74 = C9</action> <!-- upper-left -->
            <action>maincpu.mb@1B99 = C9</action> <!-- upper-right -->
        </script>
        <script state="off">
            <action>maincpu.mb@1A77 = CD</action>
            <action>maincpu.mb@1ABE = CD</action>
            <action>maincpu.mb@1ADF = CD</action>
            <action>maincpu.mb@1B09 = CD</action>
            <action>maincpu.mb@1B28 = CD</action>
            <action>maincpu.mb@1B4E = CD</action>
            <action>maincpu.mb@1B74 = CD</action>
            <action>maincpu.mb@1B99 = CD</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@2195 = 01</action> <!-- bomb -->
            <action>maincpu.mb@21A3 = 01</action> <!-- shot -->
        </script>
        <script state="off">
            <action>maincpu.mb@2195 = 07</action>
            <action>maincpu.mb@21A3 = 07</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0180">02       </item>
            <item value="0x0380">03       </item>
            <item value="0x0580">04       </item>
            <item value="0x0780">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@01A1E = 238C10CD        </action> <!-- x position -->
            <action>maincpu.md@01A22 = DD8C1FCD        </action> <!-- y position -->
            <action>maincpu.mq@1CC10 = 11C8000011A77E23</action>
            <action>maincpu.mq@1CC18 = 23C9000011F00000</action>
            <action>maincpu.mq@1CC20 = 0001C8000001A77E</action>
            <action>maincpu.mq@1CC28 = FFFFC9000001F000</action>
            <!--
            8C10 | 23       : inc  hl       // x position
            8C11 | 7E       : ld   a,(hl)
            8C12 | A7       : and  a
            8C13 | 11 00 00 : ld   de,$0000
            8C16 | C8       : ret  z
            8C17 | 11 xx xx : ld   de,$xxxx
            8C1A | F0       : ret  p
            8C1B | 11 xx xx : ld   de,$xxxx
            8C1E | C9       : ret
            8C1F | 23       : inc  hl       // y position
            8C20 | 7E       : ld   a,(hl)
            8C21 | A7       : and  a
            8C22 | 01 00 00 : ld   bc,$0000
            8C25 | C8       : ret  z
            8C26 | 01 xx xx : ld   bc,$xxxx
            8C29 | F0       : ret  p
            8C2A | 01 xx xx : ld   bc,$xxxx
            8C2D | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@1CC18 =  param</action>
            <action>maincpu.mw@1CC1C = -param</action>
            <action>maincpu.mw@1CC27 =  param</action>
            <action>maincpu.mw@1CC2B = -param</action>
        </script>
        <script state="off">
            <action>maincpu.md@01A1E = 2356235E        </action>
            <action>maincpu.md@01A22 = DD46234E        </action>
            <action>maincpu.mq@1CC10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1CC18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1CC20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1CC28 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x04">02       </item>
            <item value="0x08">03       </item>
            <item value="0x0c">04       </item>
            <item value="0x10">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@21D2 =  param</action> <!-- right -->
            <action>maincpu.mb@21E5 = -param</action> <!-- left -->
        </script>
        <script state="off">
            <action>maincpu.mb@21D2 = 05</action>
            <action>maincpu.mb@21E5 = FB</action>
        </script>
    </cheat>

    <cheat desc="quick turn">
        <script state="on">
            <action>maincpu.mb@1D18 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1D18 = 09</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- this code has problem about "repeat the same code" -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@00196 = B390            </action>
            <action>maincpu.mq@1B390 = 47B8F8093AC00021</action>
            <action>maincpu.mq@1B398 = FE350120FDFEF928</action>
            <action>maincpu.mq@1B3A0 = 0420FBFE340120FE</action>
            <action>maincpu.mq@1B3A8 = 0520F7FE0618F03E</action>
            <action>maincpu.mq@1B3B0 = 20EFFE787786103E</action>
            <action>maincpu.mq@1B3B8 = 0420DFFE05187E03</action>
            <action>maincpu.mq@1B3C0 = FFFFCD18F80C32AF</action>
            <!--
            B390 | 21 00 C0 : ld   hl,$C000  // sound code address
            B393 | 3A 09 F8 : ld   a,($F809) // read input
            B396 | B8       : cp   b
            B397 | 47       : ld   b,a
            B398 | 28 F9    : jr   z,$B393
            B39A | FE FD    : cp   $FD
            B39C | 20 01    : jr   nz,$B39F
            B39E | 35       : dec  (hl)      // decreease code -01
            B39F | FE FE    : cp   $FE
            B3A1 | 20 01    : jr   nz,$B3A4
            B3A3 | 34       : inc  (hl)      // increase code +01
            B3A4 | FE FB    : cp   $FB
            B3A6 | 20 04    : jr   nz,$B3AC
            B3A8 | 3E F0    : ld   a,$F0     // decrease code -10
            B3AA | 18 06    : jr   $B3B2
            B3AC | FE F7    : cp   $F7
            B3AE | 20 05    : jr   nz,$B3B5
            B3B0 | 3E 10    : ld   a,$10     // increase code +10
            B3B2 | 86       : add  a,(hl)
            B3B3 | 77       : ld   (hl),a
            B3B4 | 78       : ld   a,b
            B3B5 | FE EF    : cp   $EF
            B3B7 | 20 03    : jr   nz,$B3BC
            B3B9 | 7E       : ld   a,(hl)    // play sound
            B3BA | 18 05    : jr   $B3C1
            B3BC | FE DF    : cp   $DF
            B3BE | 20 04    : jr   nz,$B3C4
            B3C0 | AF       : xor  a         // stop sound
            B3C1 | 32 0C F8 : ld   ($F80C),a // send sound code
            B3C4 | 18 CD    : jr   $B393
            -->
            <action>soundcpu.mb@01CD = 00</action> <!-- stop sfx and music at the same time -->
        </script>
        <script state="run">
            <output format="----- section z 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@C000</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mw@00196 = 0424            </action>
            <action> maincpu.mq@1B390 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@1B398 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@1B3A0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@1B3A8 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@1B3B0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@1B3B8 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@1B3C0 = FFFFFFFFFFFFFFFF</action>
            <action>soundcpu.mb@001CD = C9              </action>
        </script>
    </cheat>

</mamecheat>
sectionza.xml

Code: Select all

<!-- Section Z (set 2 rev. A) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@1147 = 18</action> <!-- bullet -->
            <action>maincpu.mb@1189 = 18</action> <!-- enemy -->
            <action>maincpu.mb@11DD = 18</action> <!-- enemy -->
            <action>maincpu.mb@11FE = 18</action> <!-- enemy -->
            <action>maincpu.mb@1235 = 18</action> <!-- boss 1 -->
            <action>maincpu.mb@28BB = C9</action> <!-- laser -->
            <action>maincpu.mb@2953 = C9</action> <!-- laser -->
            <action>maincpu.mb@2997 = 18</action> <!-- beam -->
            <action>maincpu.mb@29A9 = 18</action> <!-- beam -->
            <action>maincpu.mb@2A49 = 18</action> <!-- beam -->
            <action>maincpu.mb@4165 = C9</action> <!-- enemy -->
            <action>maincpu.mb@4D88 = C9</action> <!-- small shutter -->
            <action>maincpu.mb@4D97 = C9</action> <!-- small shutter -->
            <action>maincpu.mb@5072 = C9</action> <!-- shutter -->
            <action>maincpu.mb@509A = 18</action> <!-- shutter -->
            <action>maincpu.mb@6615 = C9</action> <!-- enemy -->
            <action>maincpu.mb@6626 = C9</action> <!-- enemy -->
            <action>maincpu.mb@6AC6 = C9</action> <!-- last boss -->
            <action>maincpu.mb@6EBB = 18</action> <!-- boss 2 -->
            <action>maincpu.mb@725E = C9</action> <!-- boss 3 -->
            <action>maincpu.mb@749B = C9</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@1147 = 30</action>
            <action>maincpu.mb@1189 = 30</action>
            <action>maincpu.mb@11DD = 30</action>
            <action>maincpu.mb@11FE = 30</action>
            <action>maincpu.mb@1235 = 30</action>
            <action>maincpu.mb@28BB = D0</action>
            <action>maincpu.mb@2953 = D0</action>
            <action>maincpu.mb@2997 = 30</action>
            <action>maincpu.mb@29A9 = 38</action>
            <action>maincpu.mb@2A49 = 30</action>
            <action>maincpu.mb@4165 = D0</action>
            <action>maincpu.mb@4D88 = D0</action>
            <action>maincpu.mb@4D97 = D0</action>
            <action>maincpu.mb@5072 = 3E</action>
            <action>maincpu.mb@509A = 30</action>
            <action>maincpu.mb@6615 = D0</action>
            <action>maincpu.mb@6626 = D0</action>
            <action>maincpu.mb@6AC6 = D0</action>
            <action>maincpu.mb@6EBB = 30</action>
            <action>maincpu.mb@725E = D0</action>
            <action>maincpu.mb@749B = D0</action>
        </script>
    </cheat>

    <cheat desc="walk through wall">
        <script state="on">
            <action>maincpu.mb@1A7A = C9</action> <!-- right -->
            <action>maincpu.mb@1AC1 = C9</action> <!-- left -->
            <action>maincpu.mb@1AE2 = C9</action> <!-- down -->
            <action>maincpu.mb@1B0C = C9</action> <!-- up -->
            <action>maincpu.mb@1B2B = C9</action> <!-- lower-right -->
            <action>maincpu.mb@1B51 = C9</action> <!-- lower-left -->
            <action>maincpu.mb@1B77 = C9</action> <!-- upper-left -->
            <action>maincpu.mb@1B9C = C9</action> <!-- upper-right -->
        </script>
        <script state="off">
            <action>maincpu.mb@1A7A = CD</action>
            <action>maincpu.mb@1AC1 = CD</action>
            <action>maincpu.mb@1AE2 = CD</action>
            <action>maincpu.mb@1B0C = CD</action>
            <action>maincpu.mb@1B2B = CD</action>
            <action>maincpu.mb@1B51 = CD</action>
            <action>maincpu.mb@1B77 = CD</action>
            <action>maincpu.mb@1B9C = CD</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@2198 = 01</action> <!-- bomb -->
            <action>maincpu.mb@21A6 = 01</action> <!-- shot -->
        </script>
        <script state="off">
            <action>maincpu.mb@2198 = 07</action>
            <action>maincpu.mb@21A6 = 07</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0180">02       </item>
            <item value="0x0380">03       </item>
            <item value="0x0580">04       </item>
            <item value="0x0780">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@01A21 = 238C10CD        </action> <!-- x position -->
            <action>maincpu.md@01A25 = DD8C1FCD        </action> <!-- y position -->
            <action>maincpu.mq@1CC10 = 11C8000011A77E23</action>
            <action>maincpu.mq@1CC18 = 23C9000011F00000</action>
            <action>maincpu.mq@1CC20 = 0001C8000001A77E</action>
            <action>maincpu.mq@1CC28 = FFFFC9000001F000</action>
            <!--
            8C10 | 23       : inc  hl       // x position
            8C11 | 7E       : ld   a,(hl)
            8C12 | A7       : and  a
            8C13 | 11 00 00 : ld   de,$0000
            8C16 | C8       : ret  z
            8C17 | 11 xx xx : ld   de,$xxxx
            8C1A | F0       : ret  p
            8C1B | 11 xx xx : ld   de,$xxxx
            8C1E | C9       : ret
            8C1F | 23       : inc  hl       // y position
            8C20 | 7E       : ld   a,(hl)
            8C21 | A7       : and  a
            8C22 | 01 00 00 : ld   bc,$0000
            8C25 | C8       : ret  z
            8C26 | 01 xx xx : ld   bc,$xxxx
            8C29 | F0       : ret  p
            8C2A | 01 xx xx : ld   bc,$xxxx
            8C2D | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@1CC18 =  param</action>
            <action>maincpu.mw@1CC1C = -param</action>
            <action>maincpu.mw@1CC27 =  param</action>
            <action>maincpu.mw@1CC2B = -param</action>
        </script>
        <script state="off">
            <action>maincpu.md@01A21 = 2356235E        </action>
            <action>maincpu.md@01A25 = DD46234E        </action>
            <action>maincpu.mq@1CC10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1CC18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1CC20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@1CC28 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x04">02       </item>
            <item value="0x08">03       </item>
            <item value="0x0c">04       </item>
            <item value="0x10">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@21D5 =  param</action> <!-- right -->
            <action>maincpu.mb@21E8 = -param</action> <!-- left -->
        </script>
        <script state="off">
            <action>maincpu.mb@21D5 = 05</action>
            <action>maincpu.mb@21E8 = FB</action>
        </script>
    </cheat>

    <cheat desc="quick turn">
        <script state="on">
            <action>maincpu.mb@1D1B = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1D1B = 09</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- this code has problem about "repeat the same code" -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@00196 = B390            </action>
            <action>maincpu.mq@1B390 = 47B8F8093AC00021</action>
            <action>maincpu.mq@1B398 = FE350120FDFEF928</action>
            <action>maincpu.mq@1B3A0 = 0420FBFE340120FE</action>
            <action>maincpu.mq@1B3A8 = 0520F7FE0618F03E</action>
            <action>maincpu.mq@1B3B0 = 20EFFE787786103E</action>
            <action>maincpu.mq@1B3B8 = 0420DFFE05187E03</action>
            <action>maincpu.mq@1B3C0 = FFFFCD18F80C32AF</action>
            <!--
            B390 | 21 00 C0 : ld   hl,$C000  // sound code address
            B393 | 3A 09 F8 : ld   a,($F809) // read input
            B396 | B8       : cp   b
            B397 | 47       : ld   b,a
            B398 | 28 F9    : jr   z,$B393
            B39A | FE FD    : cp   $FD
            B39C | 20 01    : jr   nz,$B39F
            B39E | 35       : dec  (hl)      // decreease code -01
            B39F | FE FE    : cp   $FE
            B3A1 | 20 01    : jr   nz,$B3A4
            B3A3 | 34       : inc  (hl)      // increase code +01
            B3A4 | FE FB    : cp   $FB
            B3A6 | 20 04    : jr   nz,$B3AC
            B3A8 | 3E F0    : ld   a,$F0     // decrease code -10
            B3AA | 18 06    : jr   $B3B2
            B3AC | FE F7    : cp   $F7
            B3AE | 20 05    : jr   nz,$B3B5
            B3B0 | 3E 10    : ld   a,$10     // increase code +10
            B3B2 | 86       : add  a,(hl)
            B3B3 | 77       : ld   (hl),a
            B3B4 | 78       : ld   a,b
            B3B5 | FE EF    : cp   $EF
            B3B7 | 20 03    : jr   nz,$B3BC
            B3B9 | 7E       : ld   a,(hl)    // play sound
            B3BA | 18 05    : jr   $B3C1
            B3BC | FE DF    : cp   $DF
            B3BE | 20 04    : jr   nz,$B3C4
            B3C0 | AF       : xor  a         // stop sound
            B3C1 | 32 0C F8 : ld   ($F80C),a // send sound code
            B3C4 | 18 CD    : jr   $B393
            -->
            <action>soundcpu.mb@01CD = 00</action> <!-- stop sfx and music at the same time -->
        </script>
        <script state="run">
            <output format="----- section z 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@C000</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mw@00196 = 0424            </action>
            <action> maincpu.mq@1B390 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@1B398 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@1B3A0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@1B3A8 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@1B3B0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@1B3B8 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@1B3C0 = FFFFFFFFFFFFFFFF</action>
            <action>soundcpu.mb@001CD = C9              </action>
        </script>
    </cheat>

</mamecheat>
  • "player speed" : Rewritten routine.
  • "sound test mode" : This code has "repeat the same sound" problem. No sound when you try to play the same sound repeatedly.
    For example,
    1. Play sound code 0x01 (sfx)
    2. Press "sound play button" again
    3. No response.
    In this case, you can listen the same sound by pressing "sound stop button".
Post Reply