Page 1 of 1

[chwy] Highway Chase

Posted: Fri Jan 13, 2023 11:59 am
by jman

Code: Select all

<cheat desc="no hit">
    <script state="run">
        <action>maincpu.pw@15da = 6058</action> <!-- enemy -->
        <action>maincpu.pw@1a01 = 6058</action> <!-- motorbike -->
        <action>maincpu.pw@1eda = 6058</action> <!-- bullet -->
    </script>
    <script state="off">
        <action>maincpu.pw@15da = 45c5</action>
        <action>maincpu.pw@1a01 = 45c5</action>
        <action>maincpu.pw@1eda = 45c5</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="run">
        <action>maincpu.pw@1cf4 = fafa</action>
    </script>
    <script state="off">
        <action>maincpu.pw@1cf4 = 4e25</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x01">01 (slow)</item>
        <item value="0x03">02       </item>
        <item value="0x06">03       </item>
        <item value="0x09">04       </item>
        <item value="0x0c">05 (fast)</item>
    </parameter>
    <script state="run">
        <action>maincpu.pb@1cb4 = -param</action> <!-- up -->
        <action>maincpu.pb@1cb6 =  param</action> <!-- down -->
        <action>maincpu.pb@29d5 =  param</action> <!-- right -->
        <action>maincpu.pb@29d6 = -param</action> <!-- left -->
    </script>
    <script state="off">
        <action>maincpu.pb@1cb4 = fe</action>
        <action>maincpu.pb@1cb6 = 02</action>
        <action>maincpu.pb@29d5 = 03</action>
        <action>maincpu.pb@29d6 = fd</action>
    </script>
</cheat>

<cheat desc="bullet speed">
    <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="run">
        <action>maincpu.pb@1f3d = param</action>
    </script>
    <script state="off">
        <action>maincpu.pb@1f3d = 04</action>
    </script>
</cheat>

<cheat desc="penetration shot">
    <script state="run">
        <action>maincpu.pb@1f1a = 00</action>
    </script>
    <script state="off">
        <action>maincpu.pb@1f1a = 04</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <script state="run">
        <!-- routine -->
        <action>maincpu.pw@0526 =             50c0</action>
        <action>maincpu.pq@50c0 = f011a5e600cd1185</action>
        <action>maincpu.pq@50c8 = 01b002a910c6c8f7</action>
        <action>maincpu.pq@50d0 = 08a9e801b001a9aa</action>
        <action>maincpu.pq@50d8 = 98ca10e9588a06b0</action>
        <action>maincpu.pq@50e0 = 1069188a06b004a9</action>
        <action>maincpu.pq@50e8 = 06f010a9108698ca</action>
        <action>maincpu.pq@50f0 = 148e00c205b020a9</action>
        <action>maincpu.pq@50f8 = 0000000050c02ce4</action>
        <!--
        50c0 | 85 11    : sta $11
        50c2 | ad 00 e6 : lda $e600 // read input
        50c5 | c5 11    : cmp $11
        50c7 | f0 f7    : beq $50c0
        50c9 | a8       : tay
        50ca | a6 10    : ldx $10
        50cc | c9 02    : cmp #$02
        50ce | d0 01    : bne $50d1
        50d0 | ca       : dex       // decrease code -01
        50d1 | c9 01    : cmp #$01
        50d3 | d0 01    : bne $50d6
        50d5 | e8       : inx       // increase code +01
        50d6 | c9 08    : cmp #$08
        50d8 | d0 06    : bne $50e0
        50da | 8a       : txa       // decrease code -10
        50db | 38       : sec
        50dc | e9 10    : sbc #$10
        50de | aa       : tax
        50df | 98       : tya
        50e0 | c9 04    : cmp #$04
        50e2 | d0 06    : bne $50ea
        50e4 | 8a       : txa       // increase code +10
        50e5 | 18       : clc
        50e6 | 69 10    : adc #$10
        50e8 | aa       : tax
        50e9 | 98       : tya
        50ea | 86 10    : stx $10
        50ec | c9 10    : cmp #$10
        50ee | f0 06    : beq $50f6
        50f0 | c9 20    : cmp #$20
        50f2 | d0 05    : bne $50f9
        50f4 | a2 00    : ldx #$00  // stop sound
        50f6 | 8e 14 e4 : stx $e414 // send sound code
        50f9 | 4c c0 50 : jmp $50c0
        -->
        <action>audiocpu.pb@0ab5 = 58</action> <!-- enable interrupt in playing music to stop sound -->
        <!-- display -->
        <output format="----- highway chase 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@0010</argument>
        </output>
    </script>
    <script state="off">
        <action> maincpu.pw@0526 =             2488</action>
        <action> maincpu.pq@50c0 = 0000000000000000</action>
        <action> maincpu.pq@50c8 = 0000000000000000</action>
        <action> maincpu.pq@50d0 = 0000000000000000</action>
        <action> maincpu.pq@50d8 = 0000000000000000</action>
        <action> maincpu.pq@50e0 = 0000000000000000</action>
        <action> maincpu.pq@50e8 = 0000000000000000</action>
        <action> maincpu.pq@50f0 = 0000000000000000</action>
        <action> maincpu.pq@50f8 = 0000000000000000</action>
        <action>audiocpu.pb@0ab5 =               78</action>
    </script>
</cheat>

[chwy] Highway Chase

Posted: Thu Aug 08, 2024 2:41 pm
by jman
Small clean up.

chwy.xml

Code: Select all

<!-- Highway Chase (DECO Cassette) (US) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="run">
            <action>maincpu.pw@15DA = 6058</action> <!-- enemy -->
            <action>maincpu.pw@1A01 = 6058</action> <!-- motorbike -->
            <action>maincpu.pw@1EDA = 6058</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.pw@15DA = 45C5</action>
            <action>maincpu.pw@1A01 = 45C5</action>
            <action>maincpu.pw@1EDA = 45C5</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="run">
            <action>maincpu.pw@1CF4 = EAEA</action>
        </script>
        <script state="off">
            <action>maincpu.pw@1CF4 = 4E25</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x03">02       </item>
            <item value="0x06">03       </item>
            <item value="0x09">04       </item>
            <item value="0x0c">05 (fast)</item>
        </parameter>
        <script state="run">
            <action>maincpu.pb@1CB4 = -param</action> <!-- up -->
            <action>maincpu.pb@1CB6 =  param</action> <!-- down -->
            <action>maincpu.pb@29D5 =  param</action> <!-- right -->
            <action>maincpu.pb@29D6 = -param</action> <!-- left -->
        </script>
        <script state="off">
            <action>maincpu.pb@1CB4 = FE</action>
            <action>maincpu.pb@1CB6 = 02</action>
            <action>maincpu.pb@29D5 = 03</action>
            <action>maincpu.pb@29D6 = FD</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <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="run">
            <action>maincpu.pb@1F3D = param</action>
        </script>
        <script state="off">
            <action>maincpu.pb@1F3D = 04</action>
        </script>
    </cheat>

    <cheat desc="penetration shot">
        <script state="run">
            <action>maincpu.pb@1F1A = 00</action>
        </script>
        <script state="off">
            <action>maincpu.pb@1F1A = 04</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) then wait data load to enter sound test mode</comment>
        <script state="run">
            <!-- routine -->
            <action>maincpu.pw@0526 = 50C0            </action>
            <action>maincpu.pq@50C0 = F081A4E600CC8184</action>
            <action>maincpu.pq@50C8 = AA01B002A080C6F7</action>
            <action>maincpu.pq@50D0 = B008A0E801B001A0</action>
            <action>maincpu.pq@50D8 = 04A0CA10E9588A05</action>
            <action>maincpu.pq@50E0 = 86CA1069188A05B0</action>
            <action>maincpu.pq@50E8 = B020A006F010A080</action>
            <action>maincpu.pq@50F0 = C02CE4148E00C205</action>
            <action>maincpu.pq@50F8 = 0000000000000050</action>
            <!--
            50C0 | 84 81    : sty $81
            50C2 | AC 00 E6 : ldy $e600 // read input
            50C5 | C4 81    : cpy $81
            50C7 | F0 F7    : beq $50c0
            50C9 | A6 80    : ldx $80
            50CB | C0 02    : cpy #$02
            50CD | D0 01    : bne $50d0
            50CF | CA       : dex       // decrease code -01
            50D0 | C0 01    : cpy #$01
            50D2 | D0 01    : bne $50d5
            50D4 | E8       : inx       // increase code +01
            50D5 | C0 08    : cpy #$08
            50D7 | D0 05    : bne $50de
            50D9 | 8A       : txa       // decrease code -10
            50DA | 38       : sec
            50DB | E9 10    : sbc #$10
            50DD | AA       : tax
            50DE | C0 04    : cpy #$04
            50E0 | D0 05    : bne $50e7
            50E2 | 8A       : txa       // increase code +10
            50E3 | 18       : clc
            50E4 | 69 10    : adc #$10
            50E6 | AA       : tax
            50E7 | 86 80    : stx $80
            50E9 | C0 10    : cpy #$10
            50EB | F0 06    : beq $50f3 // play sound
            50ED | C0 20    : cpy #$20
            50EF | D0 05    : bne $50f6
            50F1 | A2 00    : ldx #$00  // stop sound
            50F3 | 8E 14 E4 : stx $e414 // send sound code
            50F6 | 4C C0 50 : jmp $50c0
            -->
            <action>audiocpu.pb@0AB5 = 58</action> <!-- enable interrupt in playing music to stop sound -->
            <!-- display -->
            <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@0080</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.pw@0526 = 2488            </action>
            <action> maincpu.pq@50C0 = 0000000000000000</action>
            <action> maincpu.pq@50C8 = 0000000000000000</action>
            <action> maincpu.pq@50D0 = 0000000000000000</action>
            <action> maincpu.pq@50D8 = 0000000000000000</action>
            <action> maincpu.pq@50E0 = 0000000000000000</action>
            <action> maincpu.pq@50E8 = 0000000000000000</action>
            <action> maincpu.pq@50F0 = 0000000000000000</action>
            <action> maincpu.pq@50F8 = 0000000000000000</action>
            <action>audiocpu.pb@0AB5 = 78              </action>
        </script>
    </cheat>

</mamecheat>

[madalien]+ Mad Alien

Posted: Thu Aug 08, 2024 2:54 pm
by jman
madalien is the original game of chwy.

madalien.xml

Code: Select all

<!-- Mad Alien (set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@CFE3 = 6038</action> <!-- enemy -->
            <action>maincpu.mw@D4A9 = 6038</action> <!-- motorbike -->
            <action>maincpu.mw@DA85 = 6038</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mw@CFE3 = 42A5</action>
            <action>maincpu.mw@D4A9 = 42A5</action>
            <action>maincpu.mw@DA85 = 42A5</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mw@D79F = EAEA</action>
        </script>
        <script state="off">
            <action>maincpu.mw@D79F = 454B</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <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@E5B5 =  param</action> <!-- right -->
            <action>maincpu.mb@E5B6 = -param</action> <!-- left -->
        </script>
        <script state="off">
            <action>maincpu.mb@E5B5 = 03</action>
            <action>maincpu.mb@E5B6 = FD</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <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@DB66 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@DB66 = 08</action>
        </script>
    </cheat>

    <cheat desc="penetration shot">
        <script state="on">
            <action>maincpu.mb@DB43 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@DB43 = 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.mb@C01B = 3D              </action> <!-- disable score display -->
            <action>maincpu.mb@E720 = FF              </action> <!-- disable background? -->
            <action>maincpu.mw@E163 = B000            </action>
            <action>maincpu.mq@B000 = F081C49000AC8184</action>
            <action>maincpu.mq@B008 = CA01D0FDC080A6F7</action>
            <action>maincpu.mq@B010 = D0F7C0E801D0FEC0</action>
            <action>maincpu.mq@B018 = FBC0AA10E9388A05</action>
            <action>maincpu.mq@B020 = 86AA1069188A05D0</action>
            <action>maincpu.mq@B028 = D0DFC006F0EFC080</action>
            <action>maincpu.mq@B030 = 004C80068E0DA205</action>
            <action>maincpu.mq@B038 = 00000000000000B0</action>
            <!--
            B000 | 84 81    : sty $81
            B002 | AC 00 90 : ldy $9000 // read input
            B005 | C4 81    : cpy $81
            B007 | F0 F7    : beq $b000
            B009 | A6 80    : ldx $80
            B00B | C0 FD    : cpy #$fd
            B00D | D0 01    : bne $b010
            B00F | CA       : dex       // decrease code -01
            B010 | C0 FE    : cpy #$fe
            B012 | D0 01    : bne $b015
            B014 | E8       : inx       // increase code +01
            B015 | C0 F7    : cpy #$f7
            B017 | D0 05    : bne $b01e
            B019 | 8A       : txa       // decrease code -10
            B01A | 38       : sec
            B01B | E9 10    : sbc #$10
            B01D | AA       : tax
            B01E | C0 FB    : cpy #$fb
            B020 | D0 05    : bne $b027
            B022 | 8A       : txa       // increase code +10
            B023 | 18       : clc
            B024 | 69 10    : adc #$10
            B026 | AA       : tax
            B027 | 86 80    : stx $80
            B029 | C0 EF    : cpy #$ef
            B02B | F0 06    : beq $b033 // play sound
            B02D | C0 DF    : cpy #$df
            B02F | D0 05    : bne $b036
            B031 | A2 0D    : ldx #$0d  // stop sound
            B033 | 8E 06 80 : stx $8006 // send sound code
            B036 | 4C 00 B0 : jmp $b000
            -->
            <!-- enable interrupt to stop sound in playing code 0x0e -->
            <action>audiocpu.mw@FBD0 = FF80            </action>
            <action>audiocpu.mq@FF80 = 00000000FDA24C58</action>
            <!--
            FF80 | 58       : cli
            FF81 | 4C A2 FD : jmp $fda2
            -->
        </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="start : 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.mb@C01B = 3E              </action>
            <action> maincpu.mb@E720 = 4C              </action>
            <action> maincpu.mw@E163 = E101            </action>
            <action> maincpu.mq@B000 = 0000000000000000</action>
            <action> maincpu.mq@B008 = 0000000000000000</action>
            <action> maincpu.mq@B010 = 0000000000000000</action>
            <action> maincpu.mq@B018 = 0000000000000000</action>
            <action> maincpu.mq@B020 = 0000000000000000</action>
            <action> maincpu.mq@B028 = 0000000000000000</action>
            <action> maincpu.mq@B030 = 0000000000000000</action>
            <action> maincpu.mq@B038 = 0000000000000000</action>
            <action>audiocpu.mw@FBD0 = FDA2            </action>
            <action>audiocpu.mq@FF80 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
madaliena.xml

Code: Select all

<!-- Mad Alien (set 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@BFFC = 6038</action> <!-- enemy -->
            <action>maincpu.mw@C4BC = 6038</action> <!-- motorbike -->
            <action>maincpu.mw@CA87 = 6038</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mw@BFFC = 42A5</action>
            <action>maincpu.mw@C4BC = 42A5</action>
            <action>maincpu.mw@CA87 = 42A5</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mw@C7A1 = EAEA</action>
        </script>
        <script state="off">
            <action>maincpu.mw@C7A1 = 454B</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <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@D5CD =  param</action> <!-- right -->
            <action>maincpu.mb@D5CE = -param</action> <!-- left -->
        </script>
        <script state="off">
            <action>maincpu.mb@D5CD = 03</action>
            <action>maincpu.mb@D5CE = FD</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <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@CB68 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@CB68 = 08</action>
        </script>
    </cheat>

    <cheat desc="penetration shot">
        <script state="on">
            <action>maincpu.mb@CB45 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@CB45 = 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.mb@B01B = 3C              </action> <!-- disable score display -->
            <action>maincpu.mb@D738 = FF              </action> <!-- disable background? -->
            <action>maincpu.mw@D162 = DE80            </action>
            <action>maincpu.mq@DE80 = F081C49000AC8184</action>
            <action>maincpu.mq@DE88 = CA01D0FDC080A6F7</action>
            <action>maincpu.mq@DE90 = D0F7C0E801D0FEC0</action>
            <action>maincpu.mq@DE98 = FBC0AA10E9388A05</action>
            <action>maincpu.mq@DEA0 = 86AA1069188A05D0</action>
            <action>maincpu.mq@DEA8 = D0DFC006F0EFC080</action>
            <action>maincpu.mq@DEB0 = 804C80068E0DA205</action>
            <action>maincpu.mq@DEB8 = 00000000000000DE</action>
            <!--
            DE80 | 84 81    : sty $81
            DE82 | AC 00 90 : ldy $9000 // read input
            DE85 | C4 81    : cpy $81
            DE87 | F0 F7    : beq $de80
            DE89 | A6 80    : ldx $80
            DE8B | C0 FD    : cpy #$fd
            DE8D | D0 01    : bne $de90
            DE8F | CA       : dex       // decrease code -01
            DE90 | C0 FE    : cpy #$fe
            DE92 | D0 01    : bne $de95
            DE94 | E8       : inx       // increase code +01
            DE95 | C0 F7    : cpy #$f7
            DE97 | D0 05    : bne $de9e
            DE99 | 8A       : txa       // decrease code -10
            DE9A | 38       : sec
            DE9B | E9 10    : sbc #$10
            DE9D | AA       : tax
            DE9E | C0 FB    : cpy #$fb
            DEA0 | D0 05    : bne $dea7
            DEA2 | 8A       : txa       // increase code +10
            DEA3 | 18       : clc
            DEA4 | 69 10    : adc #$10
            DEA6 | AA       : tax
            DEA7 | 86 80    : stx $80
            DEA9 | C0 EF    : cpy #$ef
            DEAB | F0 06    : beq $deb3 // play sound
            DEAD | C0 DF    : cpy #$df
            DEAF | D0 05    : bne $deb6
            DEB1 | A2 0D    : ldx #$0d  // stop sound
            DEB3 | 8E 06 80 : stx $8006 // send sound code
            DEB6 | 4C 80 DE : jmp $de80
            -->
            <!-- enable interrupt to stop sound in playing code 0x0e -->
            <action>audiocpu.mw@FBD0 = FF80            </action>
            <action>audiocpu.mq@FF80 = 00000000FDA24C58</action>
            <!--
            FF80 | 58       : cli
            FF81 | 4C A2 FD : jmp $fda2
            -->
        </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="start : 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.mb@B01B = 3D              </action>
            <action> maincpu.mb@D738 = 4C              </action>
            <action> maincpu.mw@D162 = D100            </action>
            <action> maincpu.mq@DE80 = 0000000000000000</action>
            <action> maincpu.mq@DE88 = 0000000000000000</action>
            <action> maincpu.mq@DE90 = 0000000000000000</action>
            <action> maincpu.mq@DE98 = 0000000000000000</action>
            <action> maincpu.mq@DEA0 = 0000000000000000</action>
            <action> maincpu.mq@DEA8 = 0000000000000000</action>
            <action> maincpu.mq@DEB0 = 0000000000000000</action>
            <action> maincpu.mq@DEB8 = 0000000000000000</action>
            <action>audiocpu.mw@FBD0 = FDA2            </action>
            <action>audiocpu.mq@FF80 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
madalienb.xml

Code: Select all

<!-- Mad Alien (set 2, alt gfx) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@BFFC = 6038</action> <!-- enemy -->
            <action>maincpu.mw@C4BC = 6038</action> <!-- motorbike -->
            <action>maincpu.mw@CA87 = 6038</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mw@BFFC = 42A5</action>
            <action>maincpu.mw@C4BC = 42A5</action>
            <action>maincpu.mw@CA87 = 42A5</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mw@C7A1 = EAEA</action>
        </script>
        <script state="off">
            <action>maincpu.mw@C7A1 = 454B</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <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@D5CD =  param</action> <!-- right -->
            <action>maincpu.mb@D5CE = -param</action> <!-- left -->
        </script>
        <script state="off">
            <action>maincpu.mb@D5CD = 03</action>
            <action>maincpu.mb@D5CE = FD</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <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@CB68 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@CB68 = 08</action>
        </script>
    </cheat>

    <cheat desc="penetration shot">
        <script state="on">
            <action>maincpu.mb@CB45 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@CB45 = 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.mb@B01B = 3C              </action> <!-- disable score display -->
            <action>maincpu.mb@D738 = FF              </action> <!-- disable background? -->
            <action>maincpu.mw@D162 = DE80            </action>
            <action>maincpu.mq@DE80 = F081C49000AC8184</action>
            <action>maincpu.mq@DE88 = CA01D0FDC080A6F7</action>
            <action>maincpu.mq@DE90 = D0F7C0E801D0FEC0</action>
            <action>maincpu.mq@DE98 = FBC0AA10E9388A05</action>
            <action>maincpu.mq@DEA0 = 86AA1069188A05D0</action>
            <action>maincpu.mq@DEA8 = D0DFC006F0EFC080</action>
            <action>maincpu.mq@DEB0 = 804C80068E0DA205</action>
            <action>maincpu.mq@DEB8 = 00000000000000DE</action>
            <!--
            DE80 | 84 81    : sty $81
            DE82 | AC 00 90 : ldy $9000 // read input
            DE85 | C4 81    : cpy $81
            DE87 | F0 F7    : beq $de80
            DE89 | A6 80    : ldx $80
            DE8B | C0 FD    : cpy #$fd
            DE8D | D0 01    : bne $de90
            DE8F | CA       : dex       // decrease code -01
            DE90 | C0 FE    : cpy #$fe
            DE92 | D0 01    : bne $de95
            DE94 | E8       : inx       // increase code +01
            DE95 | C0 F7    : cpy #$f7
            DE97 | D0 05    : bne $de9e
            DE99 | 8A       : txa       // decrease code -10
            DE9A | 38       : sec
            DE9B | E9 10    : sbc #$10
            DE9D | AA       : tax
            DE9E | C0 FB    : cpy #$fb
            DEA0 | D0 05    : bne $dea7
            DEA2 | 8A       : txa       // increase code +10
            DEA3 | 18       : clc
            DEA4 | 69 10    : adc #$10
            DEA6 | AA       : tax
            DEA7 | 86 80    : stx $80
            DEA9 | C0 EF    : cpy #$ef
            DEAB | F0 06    : beq $deb3 // play sound
            DEAD | C0 DF    : cpy #$df
            DEAF | D0 05    : bne $deb6
            DEB1 | A2 0D    : ldx #$0d  // stop sound
            DEB3 | 8E 06 80 : stx $8006 // send sound code
            DEB6 | 4C 80 DE : jmp $de80
            -->
            <!-- enable interrupt to stop sound in playing code 0x0e -->
            <action>audiocpu.mw@FBD0 = FF80            </action>
            <action>audiocpu.mq@FF80 = 00000000FDA24C58</action>
            <!--
            FF80 | 58       : cli
            FF81 | 4C A2 FD : jmp $fda2
            -->
        </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="start : 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.mb@B01B = 3D              </action>
            <action> maincpu.mb@D738 = 4C              </action>
            <action> maincpu.mw@D162 = D100            </action>
            <action> maincpu.mq@DE80 = 0000000000000000</action>
            <action> maincpu.mq@DE88 = 0000000000000000</action>
            <action> maincpu.mq@DE90 = 0000000000000000</action>
            <action> maincpu.mq@DE98 = 0000000000000000</action>
            <action> maincpu.mq@DEA0 = 0000000000000000</action>
            <action> maincpu.mq@DEA8 = 0000000000000000</action>
            <action> maincpu.mq@DEB0 = 0000000000000000</action>
            <action> maincpu.mq@DEB8 = 0000000000000000</action>
            <action>audiocpu.mw@FBD0 = FDA2            </action>
            <action>audiocpu.mq@FF80 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>