Page 1 of 1

[shootoutj] Shoot Out

Posted: Fri Jun 17, 2022 11:25 am
by jman

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mw@1b3d = 0290</action> <!-- bullet [boss] ($9b3d) -->
        <action>maincpu.mw@85b3 = 40f0</action> <!-- bullet ($45b3) -->
        <action>maincpu.mw@9080 = 13f0</action> <!-- enemy ($5080) -->
        <action>maincpu.mw@97f2 = 0290</action> <!-- dog ($57f2) -->
        <action>maincpu.mw@9b35 = 10f0</action> <!-- flower pot ($5b35) -->
    </script>
    <script state="off">
        <action>maincpu.mw@1b3d = 80a9</action>
        <action>maincpu.mw@85b3 = 04a9</action>
        <action>maincpu.mw@9080 = 64a5</action>
        <action>maincpu.mw@97f2 = 80a9</action>
        <action>maincpu.mw@9b35 = 0ca9</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@8045 = 5b</action> <!-- ($4045) -->
    </script>
    <script state="off">
        <action>maincpu.mb@8045 = 5c</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter min="0x01" max="0x05" step="0x01" />
    <script state="change">
        <action>maincpu.mb@81a8 = param</action> <!-- left ($41a8) -->
        <action>maincpu.mb@81b5 = param</action> <!-- right ($41b5) -->
    </script>
    <script state="off">
        <action>maincpu.mb@81a8 = 01</action>
        <action>maincpu.mb@81b5 = 01</action>
    </script>
</cheat>

<cheat desc="bullet speed">
    <comment>this code has an impact on throwing back enemy</comment>
    <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@82a8 =  param</action> <!-- up ($42a8) -->
        <action>maincpu.mb@82ab =  param</action> <!-- upper-left : left ($42ab) -->
        <action>maincpu.mb@82ac =  param</action> <!-- upper-left : up ($42ac) -->
        <action>maincpu.mb@82af = -param</action> <!-- upper-right : right ($42af) -->
        <action>maincpu.mb@82b0 =  param</action> <!-- upper-right : up ($42b0) -->
        <action>maincpu.mb@82b3 =  param</action> <!-- left ($42b3) -->
        <action>maincpu.mb@82b7 = -param</action> <!-- right ($42b4) -->
        <action>maincpu.mb@82bb =  param</action> <!-- upper-left [crouch] : left ($42bb) -->
        <action>maincpu.mb@82bc =  param</action> <!-- upper-left [crouch] : up ($42bc) -->
        <action>maincpu.mb@82bf = -param</action> <!-- upper-right [crouch] : right ($42bf) -->
        <action>maincpu.mb@82c0 =  param</action> <!-- upper-right [crouch] : up ($42c0) -->
        <action>maincpu.mb@82c4 =  param</action> <!-- up [crouch] ($42c4) -->
    </script>
    <script state="off">
        <action>maincpu.mb@82a8 = 08</action>
        <action>maincpu.mb@82ab = 06</action>
        <action>maincpu.mb@82ac = 07</action>
        <action>maincpu.mb@82af = fa</action>
        <action>maincpu.mb@82b0 = 07</action>
        <action>maincpu.mb@82b3 = 0c</action>
        <action>maincpu.mb@82b7 = f4</action>
        <action>maincpu.mb@82bb = 05</action>
        <action>maincpu.mb@82bf = 07</action>
        <action>maincpu.mb@82bf = fb</action>
        <action>maincpu.mb@82c0 = 07</action>
        <action>maincpu.mb@82c4 = 08</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@6332 =             ff80</action> <!-- ($e332) -->
        <action>maincpu.mq@7f80 = 848086ffa001a258</action>
        <action>maincpu.mq@7f88 = f081c5a81001ad81</action>
        <action>maincpu.mq@7f90 = fec9ca01d0fdc9f4</action>
        <action>maincpu.mq@7f98 = 4807d0f7c9e801d0</action>
        <action>maincpu.mq@7fa0 = fbc968aa10e9388a</action>
        <action>maincpu.mq@7fa8 = aa1069188a4807d0</action>
        <action>maincpu.mq@7fb0 = 86d08604d0efc968</action>
        <action>maincpu.mq@7fb8 = c982a512d0dfc982</action>
        <action>maincpu.mq@7fc0 = a904b01ec9089016</action>
        <action>maincpu.mq@7fc8 = 4cd08590a902d096</action>
        <action>maincpu.mq@7fd0 = 000000000000ff85</action>
        <!--
        ff80 | 58       : cli       // enable interrupt
        ff81 | a2 01    : ldx #$01  // initialize sound code value
        ff83 | a0 ff    : ldy #$ff  // initialize input value
        ff85 | 86 80    : stx $80
        ff87 | 84 81    : sty $81
        ff89 | ad 01 10 : lda $1001 // read input
        ff8c | a8       : tay
        ff8d | c5 81    : cmp $81
        ff8f | f0 f4    : beq $ff85
        ff91 | c9 fd    : cmp #$fd
        ff93 | d0 01    : bne $ff96
        ff95 | ca       : dex       // decrease code -01
        ff96 | c9 fe    : cmp #$fe
        ff98 | d0 01    : bne $ff9b
        ff9a | e8       : inx       // increase code +01
        ff9b | c9 f7    : cmp #$f7
        ff9d | d0 07    : bne $ffa6
        ff9f | 48       : pha       // decrease code -10
        ffa0 | 8a       : txa
        ffa1 | 38       : sec
        ffa2 | e9 10    : sbc #$10
        ffa4 | aa       : tax
        ffa5 | 68       : pla
        ffa6 | c9 fb    : cmp #$fb
        ffa8 | d0 07    : bne $ffb1
        ffaa | 48       : pha       // increase code +10
        ffab | 8a       : txa
        ffac | 18       : clc
        ffad | 69 10    : adc #$10
        ffaf | aa       : tax
        ffb0 | 68       : pla
        ffb1 | c9 ef    : cmp #$ef
        ffb3 | d0 04    : bne $ffb9
        ffb5 | 86 d0    : stx $d0   // play sound
        ffb7 | 86 82    : stx $82
        ffb9 | c9 df    : cmp #$df
        ffbb | d0 12    : bne $ffcf
        ffbd | a5 82    : lda $82   // stop sound
        ffbf | c9 16    : cmp #$16
        ffc1 | 90 08    : bcc $ffcb
        ffc3 | c9 1e    : cmp #$1e
        ffc5 | b0 04    : bcs $ffcb
        ffc7 | a9 96    : lda #$96
        ffc9 | d0 02    : bne $ffcd
        ffcb | a9 90    : lda #$90
        ffcd | 85 d0    : sta $d0   // send sound code
        ffcf | 4c 85 ff : jmp $ff85
        -->
    </script>
    <script state="run">
        <output format="----- shoot out 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@0080</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@6332 =             e400</action>
        <action>maincpu.mq@7f80 = ffffffffffffffff</action>
        <action>maincpu.mq@7f88 = ffffffffffffffff</action>
        <action>maincpu.mq@7f90 = ffffffffffffffff</action>
        <action>maincpu.mq@7f98 = ffffffffffffffff</action>
        <action>maincpu.mq@7fa0 = ffffffffffffffff</action>
        <action>maincpu.mq@7fa8 = ffffffffffffffff</action>
        <action>maincpu.mq@7fb0 = ffffffffffffffff</action>
        <action>maincpu.mq@7fb8 = ffffffffffffffff</action>
        <action>maincpu.mq@7fc0 = 0000000000000000</action>
        <action>maincpu.mq@7fc8 = 0000000000000000</action>
    </script>
</cheat>
"bullet speed" influences the speed of bending enemy backward after bullet hit though.

[shootout]+ Shoot Out

Posted: Fri May 10, 2024 11:54 pm
by jman
shootout.xml

Code: Select all

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

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@87E2 = 10F0</action> <!-- human ($47e2) -->
            <action>maincpu.mw@8DF6 = 38F0</action> <!-- bullet ($4df6) -->
            <action>maincpu.mw@98B4 = 11F0</action> <!-- enemy ($58b4) -->
            <action>maincpu.mw@A01A = 0AD0</action> <!-- barrel ($601a) -->
            <action>maincpu.mw@A34F = 0EF0</action> <!-- flower pot ($634f) -->
        </script>
        <script state="off">
            <action>maincpu.mw@87E2 = 80C9</action>
            <action>maincpu.mw@8DF6 = 04C9</action>
            <action>maincpu.mw@98B4 = 58C5</action>
            <action>maincpu.mw@A01A = 80C9</action>
            <action>maincpu.mw@A34F = 0CC9</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@8045 = 4F</action> <!-- ($4045) -->
        </script>
        <script state="off">
            <action>maincpu.mb@8045 = 50</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="change">
            <action>maincpu.mb@81A2 = param</action> <!-- left ($41a2) -->
            <action>maincpu.mb@81AF = param</action> <!-- right ($41af) -->
        </script>
        <script state="off">
            <action>maincpu.mb@81A2 = 01</action>
            <action>maincpu.mb@81AF = 01</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <comment>this code has an impact on throwing back enemy</comment>
        <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@82A2 =  param</action> <!-- up ($42a2) -->
            <action>maincpu.mb@82A5 =  param</action> <!-- upper-left : left ($42a5) -->
            <action>maincpu.mb@82A6 =  param</action> <!-- upper-left : up ($42a6) -->
            <action>maincpu.mb@82A9 = -param</action> <!-- upper-right : right ($42a9) -->
            <action>maincpu.mb@82AA =  param</action> <!-- upper-right : up ($42aa) -->
            <action>maincpu.mb@82AD =  param</action> <!-- left ($42ad) -->
            <action>maincpu.mb@82B1 = -param</action> <!-- right ($42b1) -->
            <action>maincpu.mb@82B5 =  param</action> <!-- upper-left [crouch] : left ($42b5) -->
            <action>maincpu.mb@82B6 =  param</action> <!-- upper-left [crouch] : up ($42b6) -->
            <action>maincpu.mb@82B9 = -param</action> <!-- upper-right [crouch] : right ($42b9) -->
            <action>maincpu.mb@82BA =  param</action> <!-- upper-right [crouch] : up ($42ba) -->
            <action>maincpu.mb@82BE =  param</action> <!-- up [crouch] ($42be) -->
        </script>
        <script state="off">
            <action>maincpu.mb@82A2 = 08</action>
            <action>maincpu.mb@82A5 = 06</action>
            <action>maincpu.mb@82A6 = 07</action>
            <action>maincpu.mb@82A9 = FA</action>
            <action>maincpu.mb@82AA = 07</action>
            <action>maincpu.mb@82AD = 0C</action>
            <action>maincpu.mb@82B1 = F4</action>
            <action>maincpu.mb@82B5 = 05</action>
            <action>maincpu.mb@82B6 = 07</action>
            <action>maincpu.mb@82B9 = FB</action>
            <action>maincpu.mb@82BA = 07</action>
            <action>maincpu.mb@82BE = 08</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@642E = FF80            </action> <!-- ($e42e) -->
            <action>maincpu.mq@7F80 = 81A41001CC818438</action>
            <action>maincpu.mq@7F88 = 01B0FDA080C6F7F0</action>
            <action>maincpu.mq@7F90 = F7A0E801B0FEA0AA</action>
            <action>maincpu.mq@7F98 = A0CA10E9588A05B0</action>
            <action>maincpu.mq@7FA0 = CA1069188A05B0FB</action>
            <action>maincpu.mq@7FA8 = DFA006F0EFA08086</action>
            <action>maincpu.mq@7FB0 = 2C10038E96C205B0</action>
            <action>maincpu.mq@7FB8 = FFFFFFFFFFFFFF81</action>
            <!--
            FF80 | 58       : cli       // enable interrupt
            FF81 | 84 81    : sty $81
            FF83 | AC 01 10 : ldy $1001
            FF86 | C4 81    : cpy $81
            FF88 | F0 F7    : beq $ff81
            FF8A | A6 80    : ldx $80
            FF8C | C0 FD    : cpy #$fd
            FF8E | D0 01    : bne $ff91
            FF90 | CA       : dex       // decrease code -01
            FF91 | C0 FE    : cpy #$fe
            FF93 | D0 01    : bne $ff96
            FF95 | E8       : inx       // increase code +01
            FF96 | C0 F7    : cpy #$f7
            FF98 | D0 05    : bne $ff9f
            FF9A | 8A       : txa       // decrease code -10
            FF9B | 38       : sec
            FF9C | E9 10    : sbc #$10
            FF9E | AA       : tax
            FF9F | C0 FB    : cpy #$fb
            FFA1 | D0 05    : bne $ffa8
            FFA3 | 8A       : txa       // increase code +10
            FFA4 | 18       : clc
            FFA5 | 69 10    : adc #$10
            FFA7 | AA       : tax
            FFA8 | 86 80    : stx $80
            FFAA | C0 EF    : cpy #$ef
            FFAC | F0 06    : beq $ffb4 // play sound
            FFAE | C0 DF    : cpy #$df
            FFB0 | D0 05    : bne $ffb7
            FFB2 | A2 96    : ldx #$96  // stop sound
            FFB4 | 8E 03 10 : stx $1003 // send sound code
            FFB7 | 4C 81 FF : jmp $ff81
            -->
            <action>audiocpu.mw@00F4 = C20E</action> <!-- go to sound stop ($c0f4) -->
            <action>audiocpu.mw@021E = 00D0</action> <!-- enable music stop ($c21e) -->
            <action>audiocpu.mw@0226 = C230</action> <!-- from music stop to sfx stop routine ($c226) -->
        </script>
        <script state="run">
            <output format="----- shoot out 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@0080</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mw@642E = E506            </action>
            <action> maincpu.mq@7F80 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@7F88 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@7F90 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@7F98 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@7FA0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@7FA8 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@7FB0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@7FB8 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mw@00F4 = C206            </action>
            <action>audiocpu.mw@021E = 05D0            </action>
            <action>audiocpu.mw@0226 = C104            </action>
        </script>
    </cheat>

</mamecheat>
shootoutj.xml

Code: Select all

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

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@1B3D = 0290</action> <!-- bullet [boss] ($9b3d) -->
            <action>maincpu.mw@85B3 = 40F0</action> <!-- bullet ($45b3) -->
            <action>maincpu.mw@9080 = 13F0</action> <!-- enemy ($5080) -->
            <action>maincpu.mw@97F2 = 0290</action> <!-- dog ($57f2) -->
            <action>maincpu.mw@9B35 = 10F0</action> <!-- flower pot ($5b35) -->
        </script>
        <script state="off">
            <action>maincpu.mw@1B3D = 80A9</action>
            <action>maincpu.mw@85B3 = 04A9</action>
            <action>maincpu.mw@9080 = 64A5</action>
            <action>maincpu.mw@97F2 = 80A9</action>
            <action>maincpu.mw@9B35 = 0CA9</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@8045 = 5B</action> <!-- ($4045) -->
        </script>
        <script state="off">
            <action>maincpu.mb@8045 = 5C</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="change">
            <action>maincpu.mb@81A8 = param</action> <!-- left ($41a8) -->
            <action>maincpu.mb@81B5 = param</action> <!-- right ($41b5) -->
        </script>
        <script state="off">
            <action>maincpu.mb@81A8 = 01</action>
            <action>maincpu.mb@81B5 = 01</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <comment>this code has an impact on throwing back enemy</comment>
        <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@82A8 =  param</action> <!-- up ($42a8) -->
            <action>maincpu.mb@82AB =  param</action> <!-- upper-left : left ($42ab) -->
            <action>maincpu.mb@82AC =  param</action> <!-- upper-left : up ($42ac) -->
            <action>maincpu.mb@82AF = -param</action> <!-- upper-right : right ($42af) -->
            <action>maincpu.mb@82B0 =  param</action> <!-- upper-right : up ($42b0) -->
            <action>maincpu.mb@82B3 =  param</action> <!-- left ($42b3) -->
            <action>maincpu.mb@82B7 = -param</action> <!-- right ($42b4) -->
            <action>maincpu.mb@82BB =  param</action> <!-- upper-left [crouch] : left ($42bb) -->
            <action>maincpu.mb@82BC =  param</action> <!-- upper-left [crouch] : up ($42bc) -->
            <action>maincpu.mb@82BF = -param</action> <!-- upper-right [crouch] : right ($42bf) -->
            <action>maincpu.mb@82C0 =  param</action> <!-- upper-right [crouch] : up ($42c0) -->
            <action>maincpu.mb@82C4 =  param</action> <!-- up [crouch] ($42c4) -->
        </script>
        <script state="off">
            <action>maincpu.mb@82A8 = 08</action>
            <action>maincpu.mb@82AB = 06</action>
            <action>maincpu.mb@82AC = 07</action>
            <action>maincpu.mb@82AF = FA</action>
            <action>maincpu.mb@82B0 = 07</action>
            <action>maincpu.mb@82B3 = 0C</action>
            <action>maincpu.mb@82B7 = F4</action>
            <action>maincpu.mb@82BB = 05</action>
            <action>maincpu.mb@82BF = 07</action>
            <action>maincpu.mb@82BF = FB</action>
            <action>maincpu.mb@82C0 = 07</action>
            <action>maincpu.mb@82C4 = 08</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@6332 = FF80            </action> <!-- ($e332) -->
            <action>maincpu.mq@7F80 = 81C41001AC818458</action>
            <action>maincpu.mq@7F88 = 01D0FDC080A6F7F0</action>
            <action>maincpu.mq@7F90 = F7C0E801D0FEC0CA</action>
            <action>maincpu.mq@7F98 = C0AA10E9388A05D0</action>
            <action>maincpu.mq@7FA0 = AA1069188A05D0FB</action>
            <action>maincpu.mq@7FA8 = DFC010F0EFC08086</action>
            <action>maincpu.mq@7FB0 = A907038D01A90ED0</action>
            <action>maincpu.mq@7FB8 = D08696A207058D00</action>
            <action>maincpu.mq@7FC0 = 0000000000FF814C</action>
            <!--
            FF80 | 58       : cli       // enable interrupt
            FF81 | 84 81    : sty $81
            FF83 | AC 01 10 : ldy $1001 // read input
            FF86 | C4 81    : cpy $81
            FF88 | F0 F7    : beq $ff81
            FF8A | A6 80    : ldx $80
            FF8C | C0 FD    : cpy #$fd
            FF8E | D0 01    : bne $ff91
            FF90 | CA       : dex       // decrease code -01
            FF91 | C0 FE    : cpy #$fe
            FF93 | D0 01    : bne $ff96
            FF95 | E8       : inx       // increase code +01
            FF96 | C0 F7    : cpy #$f7
            FF98 | D0 05    : bne $ff9f
            FF9A | 8A       : txa       // decrease code -10
            FF9B | 38       : sec
            FF9C | E9 10    : sbc #$10
            FF9E | AA       : tax
            FF9F | C0 FB    : cpy #$fb
            FFA1 | D0 05    : bne $ffa8
            FFA3 | 8A       : txa       // increase code +10
            FFA4 | 18       : clc
            FFA5 | 69 10    : adc #$10
            FFA7 | AA       : tax
            FFA8 | 86 80    : stx $80
            FFAA | C0 EF    : cpy #$ef
            FFAC | F0 10    : beq $ffbe // play sound
            FFAE | C0 DF    : cpy #$df
            FFB0 | D0 0E    : bne $ffc0
            FFB2 | A9 01    : lda #$01  // stop sound
            FFB4 | 8D 03 07 : sta $0703
            FFB7 | A9 00    : lda #$00
            FFB9 | 8D 05 07 : sta $0705
            FFBC | A2 96    : ldx #$96
            FFBE | 86 D0    : stx $d0   // send sound code
            FFC0 | 4C 81 FF : jmp $ff81
            -->
            <action>maincpu.mw@4226 = C238</action> <!-- from music stop to sfx stop routine ($c226) -->
        </script>
        <script state="run">
            <output format="----- shoot out 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@0080</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@6332 = E400            </action>
            <action>maincpu.mq@7F80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7F88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7F90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7F98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7FA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7FA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7FB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7FB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7FC0 = 0000000000000000</action>
            <action>maincpu.mw@4226 = C104            </action>
        </script>
    </cheat>

</mamecheat>
shootoutb.xml

Code: Select all

<!-- Shoot Out (Korean Bootleg) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@1B3D = 0290</action> <!-- bullet [boss] ($9b3d) -->
            <action>maincpu.mw@85B3 = 40F0</action> <!-- bullet ($45b3) -->
            <action>maincpu.mw@9080 = 13F0</action> <!-- enemy ($5080) -->
            <action>maincpu.mw@97F2 = 0290</action> <!-- dog ($57f2) -->
            <action>maincpu.mw@9B35 = 10F0</action> <!-- flower pot ($5b35) -->
        </script>
        <script state="off">
            <action>maincpu.mw@1B3D = 80C9</action>
            <action>maincpu.mw@85B3 = 04C9</action>
            <action>maincpu.mw@9080 = 64C5</action>
            <action>maincpu.mw@97F2 = 80C9</action>
            <action>maincpu.mw@9B35 = 0CC9</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@8045 = 5B</action> <!-- ($4045) -->
        </script>
        <script state="off">
            <action>maincpu.mb@8045 = 5C</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="change">
            <action>maincpu.mb@81A8 = param</action> <!-- left ($41a8) -->
            <action>maincpu.mb@81B5 = param</action> <!-- right ($41b5) -->
        </script>
        <script state="off">
            <action>maincpu.mb@81A8 = 01</action>
            <action>maincpu.mb@81B5 = 01</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <comment>this code has an impact on throwing back enemy</comment>
        <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@82A8 =  param</action> <!-- up ($42a8) -->
            <action>maincpu.mb@82AB =  param</action> <!-- upper-left : left ($42ab) -->
            <action>maincpu.mb@82AC =  param</action> <!-- upper-left : up ($42ac) -->
            <action>maincpu.mb@82AF = -param</action> <!-- upper-right : right ($42af) -->
            <action>maincpu.mb@82B0 =  param</action> <!-- upper-right : up ($42b0) -->
            <action>maincpu.mb@82B3 =  param</action> <!-- left ($42b3) -->
            <action>maincpu.mb@82B7 = -param</action> <!-- right ($42b4) -->
            <action>maincpu.mb@82BB =  param</action> <!-- upper-left [crouch] : left ($42bb) -->
            <action>maincpu.mb@82BC =  param</action> <!-- upper-left [crouch] : up ($42bc) -->
            <action>maincpu.mb@82BF = -param</action> <!-- upper-right [crouch] : right ($42bf) -->
            <action>maincpu.mb@82C0 =  param</action> <!-- upper-right [crouch] : up ($42c0) -->
            <action>maincpu.mb@82C4 =  param</action> <!-- up [crouch] ($42c4) -->
        </script>
        <script state="off">
            <action>maincpu.mb@82A8 = 08</action>
            <action>maincpu.mb@82AB = 06</action>
            <action>maincpu.mb@82AC = 07</action>
            <action>maincpu.mb@82AF = FA</action>
            <action>maincpu.mb@82B0 = 07</action>
            <action>maincpu.mb@82B3 = 0C</action>
            <action>maincpu.mb@82B7 = F4</action>
            <action>maincpu.mb@82BB = 05</action>
            <action>maincpu.mb@82BC = 07</action>
            <action>maincpu.mb@82BF = FB</action>
            <action>maincpu.mb@82C0 = 07</action>
            <action>maincpu.mb@82C4 = 08</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@6332 = FF80            </action> <!-- ($e332) -->
            <action>maincpu.mq@7F80 = 81A41001CC818438</action>
            <action>maincpu.mq@7F88 = 01B0FDA080C6F7F0</action>
            <action>maincpu.mq@7F90 = F7A0E801B0FEA0AA</action>
            <action>maincpu.mq@7F98 = A0CA10E9588A05B0</action>
            <action>maincpu.mq@7FA0 = CA1069188A05B0FB</action>
            <action>maincpu.mq@7FA8 = DFA010F0EFA08086</action>
            <action>maincpu.mq@7FB0 = C907038D01C90EB0</action>
            <action>maincpu.mq@7FB8 = D08696C207058D00</action>
            <action>maincpu.mq@7FC0 = 0000000000FF812C</action>
            <!--
            FF80 | 58       : cli       // enable interrupt
            FF81 | 84 81    : sty $81
            FF83 | AC 01 10 : ldy $1001 // read input
            FF86 | C4 81    : cpy $81
            FF88 | F0 F7    : beq $ff81
            FF8A | A6 80    : ldx $80
            FF8C | C0 FD    : cpy #$fd
            FF8E | D0 01    : bne $ff91
            FF90 | CA       : dex       // decrease code -01
            FF91 | C0 FE    : cpy #$fe
            FF93 | D0 01    : bne $ff96
            FF95 | E8       : inx       // increase code +01
            FF96 | C0 F7    : cpy #$f7
            FF98 | D0 05    : bne $ff9f
            FF9A | 8A       : txa       // decrease code -10
            FF9B | 38       : sec
            FF9C | E9 10    : sbc #$10
            FF9E | AA       : tax
            FF9F | C0 FB    : cpy #$fb
            FFA1 | D0 05    : bne $ffa8
            FFA3 | 8A       : txa       // increase code +10
            FFA4 | 18       : clc
            FFA5 | 69 10    : adc #$10
            FFA7 | AA       : tax
            FFA8 | 86 80    : stx $80
            FFAA | C0 EF    : cpy #$ef
            FFAC | F0 10    : beq $ffbe // play sound
            FFAE | C0 DF    : cpy #$df
            FFB0 | D0 0E    : bne $ffc0
            FFB2 | A9 01    : lda #$01  // stop sound
            FFB4 | 8D 03 07 : sta $0703
            FFB7 | A9 00    : lda #$00
            FFB9 | 8D 05 07 : sta $0705
            FFBC | A2 96    : ldx #$96
            FFBE | 86 D0    : stx $d0   // send sound code
            FFC0 | 4C 81 FF : jmp $ff81
            -->
            <action>maincpu.mw@4226 = C238</action> <!-- from music stop to sfx stop routine ($c226) -->
        </script>
        <script state="run">
            <output format="----- shoot out 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@0080</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@6332 = E400            </action>
            <action>maincpu.mq@7F80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7F88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7F90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7F98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7FA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7FA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7FB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7FB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@7FC0 = 0000000000000000</action>
            <action>maincpu.mw@4226 = C104            </action>
        </script>
    </cheat>

</mamecheat>