Page 1 of 1

[megazone] Mega Zone

Posted: Fri Mar 25, 2022 1:49 pm
by jman

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@8103 = 26</action>
    </script>
    <script state="off">
        <action>maincpu.mb@8103 = 27</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@86ff = 00</action>
    </script>
    <script state="off">
        <action>maincpu.mb@86ff = 0f</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x0080">01 (slow)</item>
        <item value="0x0180">02       </item>
        <item value="0x0280">03       </item>
        <item value="0x0380">04       </item>
        <item value="0x0480">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@7e0c = e4000055</action>
    </script>
    <script state="change">
        <action>maincpu.mw@7e0d = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@7e0c = 60c48655</action>
    </script>
</cheat>

<cheat desc="bullet speed">
    <parameter>
        <item value="0x04">01 (slow)</item>
        <item value="0x08">02       </item>
        <item value="0x0c">03       </item>
        <item value="0x10">04       </item>
        <item value="0x14">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@8732 = param</action> <!-- speed -->
        <action>maincpu.mb@87ba = param</action> <!-- range -->
    </script>
    <script state="off">
        <action>maincpu.mb@8732 = 08</action>
        <action>maincpu.mb@87ba = 09</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>set ram/rom check skip then reset the game (F3)</comment>
    <script state="on">
        <action>maincpu.mb@6801 =               00</action> <!-- enable music -->
        <action>maincpu.mw@abf3 =             a206</action> <!-- disable next sequence at boot -->
        <action>maincpu.mw@abfc =             5000</action>
        <action>maincpu.mq@5000 = b41e1381051d0301</action>
        <action>maincpu.mq@5008 = 0e028280a902ae02</action>
        <action>maincpu.mq@5010 = 2e80031004045480</action>
        <action>maincpu.mq@5018 = 080609040e054e01</action>
        <action>maincpu.mq@5020 = 9f965b15811b0000</action>
        <!--
        5000 | b4 1e    : LDA  $1E   // read input
        5002 | 13 81    : CMPA $81
        5004 | 05 1d    : BEQ  $5023
        5006 | 03 01    : CMPA #$01
        5008 | 0e 02    : BNE  $500C
        500a | 82 80    : DEC  $80   // decrease code
        500c | a9 02    : CMPA #$02
        500e | ae 02    : BNE  $5012
        5010 | 2e 80    : INC  $80   // increase code
        5012 | 03 10    : CMPA #$10
        5014 | 04 04    : BNE  $501A
        5016 | 54 80    : LDB  $80   // play sound
        5018 | 08 06    : BRA  $5020
        501a | 09 04    : CMPA #$04
        501c | 0e 05    : BNE  $5023
        501e | 4e 01    : LDB  #$01  // stop sound
        5020 | 9f 96 5b : JSR  $965B // send sound code
        5023 | 15 81    : STA  $81
        5025 | 1b       : RTS
        -->
    </script>
    <script state="run">
        <output format="----- mega zone sound test mode -----" line="10" align="center" />
        <output format="left : decrease code"                  line="11" align="center" />
        <output format="right : increase code"                 line="12" align="center" />
        <output format="button 1 : play sound"                 line="13" align="center" />
        <output format="up : stop sound"                       line="14" align="center" />
        <output format="----------------------------"          line="15" align="center" />
        <output format="&lt;&lt; sound code %2.2X &gt;&gt;"    line="17" align="center">
            <argument>maincpu.pb@3b80</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mb@6801 =               02</action>
        <action>maincpu.mw@abf3 =             a4f3</action>
        <action>maincpu.mw@abfc =             9648</action>
        <action>maincpu.mq@5000 = 0000000000000000</action>
        <action>maincpu.mq@5008 = 0000000000000000</action>
        <action>maincpu.mq@5010 = 0000000000000000</action>
        <action>maincpu.mq@5018 = 0000000000000000</action>
        <action>maincpu.mq@5020 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="skip ram/rom check">
    <script state="on">
        <action> maincpu.mw@aab3 = aab5</action> <!-- ram -->
        <action> maincpu.mw@aaeb = aaed</action> <!-- rom -->
        <action>audiocpu.mw@0005 = 020f</action> <!-- rom -->
    </script>
    <script state="off">
        <action> maincpu.mw@aab3 = b185</action>
        <action> maincpu.mw@aaeb = b008</action>
        <action>audiocpu.mw@0005 = 01d7</action>
    </script>
</cheat>

[megazone] Mega Zone (update)

Posted: Sat Dec 31, 2022 11:24 am
by jman

Code: Select all

<cheat desc="sound test mode">
    <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
    <script state="on">
        <action>maincpu.mb@6801 =               00</action> <!-- enable music -->
        <action>maincpu.mw@abf3 =             a206</action> <!-- disable next sequence at boot -->
        <action>maincpu.mw@abfc =             5000</action>
        <action>maincpu.mq@5000 = b42006086a6a1582</action>
        <action>maincpu.mq@5008 = be1e0c1fb2821981</action>
        <action>maincpu.mq@5010 = 05275480a301a401</action>
        <action>maincpu.mq@5018 = 72a902ae01740908</action>
        <action>maincpu.mq@5020 = 04024210a304a402</action>
        <action>maincpu.mq@5028 = e3105f80a910af06</action>
        <action>maincpu.mq@5030 = a320a405e4013f96</action>
        <action>maincpu.mq@5038 = 5bbf81b100000000</action>
        <!--
        5000 | 96 02    : LDA  $20   // read start button
        5002 | 84 8a    : ANDA #$08
        5004 | 48       : ASLA
        5005 | 48       : ASLA
        5006 | 97 00    : STA  $82
        5008 | 96 36    : LDA  $1E   // read other inputs
        500a | 84 97    : ANDA #$1F
        500c | 9a aa    : ORA  $82
        500e | 91 09    : CMPA $81
        5010 | 27 05    : BEQ  $5039
        5012 | d6 02    : LDB  $80
        5014 | 81 23    : CMPA #$01
        5016 | 26 83    : BNE  $5019
        5018 | 5a       : DECB       // decrease code -01
        5019 | 81 8a    : CMPA #$02
        501b | 26 29    : BNE  $501E
        501d | 5c       : INCB       // increase code +01
        501e | 81 80    : CMPA #$08
        5020 | 26 20    : BNE  $5024
        5022 | c0 92    : SUBB #$10  // decrease code -10
        5024 | 81 26    : CMPA #$04
        5026 | 26 80    : BNE  $502A
        5028 | cb 38    : ADDB #$10  // increase code +10
        502a | d7 08    : STB  $80
        502c | 81 38    : CMPA #$10
        502e | 27 8e    : BEQ  $5036
        5030 | 81 02    : CMPA #$20
        5032 | 26 87    : BNE  $5039
        5034 | c6 23    : LDB  #$01  // stop sound
        5036 | bd 14 73 : JSR  $965B // send sound code
        5039 | 97 09    : STA  $81
        503b | 39       : RTS
        -->
    </script>
    <script state="run">
        <output format="----- mega zone 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 %2.2X &gt;&gt;"    line="19" align="center"  >
            <argument>maincpu.pb@3b80</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mb@6801 =               02</action>
        <action>maincpu.mw@abf3 =             a4f3</action>
        <action>maincpu.mw@abfc =             9648</action>
        <action>maincpu.mq@5000 = 0000000000000000</action>
        <action>maincpu.mq@5008 = 0000000000000000</action>
        <action>maincpu.mq@5010 = 0000000000000000</action>
        <action>maincpu.mq@5018 = 0000000000000000</action>
        <action>maincpu.mq@5020 = 0000000000000000</action>
        <action>maincpu.mq@5028 = 0000000000000000</action>
        <action>maincpu.mq@5030 = 0000000000000000</action>
        <action>maincpu.mq@5038 = 0000000000000000</action>
    </script>
</cheat>
"sound test mode" : rewrite routine. add up/down key (code ±10).

[megazone]+ Mega Zone

Posted: Sun Mar 10, 2024 1:50 pm
by jman
megazone.xml

Code: Select all

<!-- Mega Zone (program code L) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@8103 = 26</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8103 = 27</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@86FF = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@86FF = 0F</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0180">02       </item>
            <item value="0x0280">03       </item>
            <item value="0x0380">04       </item>
            <item value="0x0480">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@7E0C = E4000055</action>
        </script>
        <script state="change">
            <action>maincpu.mw@7E0D = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@7E0C = 60C48655</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x04">01 (slow)</item>
            <item value="0x08">02       </item>
            <item value="0x0c">03       </item>
            <item value="0x10">04       </item>
            <item value="0x14">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@8732 = param</action> <!-- speed -->
            <action>maincpu.mb@87BA = param</action> <!-- range -->
        </script>
        <script state="off">
            <action>maincpu.mb@8732 = 08</action>
            <action>maincpu.mb@87BA = 09</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mb@6801 = 00              </action> <!-- enable music -->
            <action>maincpu.mw@ABF3 = A206            </action> <!-- disable next sequence at boot -->
            <action>maincpu.mw@ABFC = 5000            </action>
            <action>maincpu.mq@5000 = B42006086A6A1582</action>
            <action>maincpu.mq@5008 = BE1E0C1FB2821981</action>
            <action>maincpu.mq@5010 = 05275480A301A401</action>
            <action>maincpu.mq@5018 = 72A902AE01740908</action>
            <action>maincpu.mq@5020 = 04024210A304A402</action>
            <action>maincpu.mq@5028 = E3105F80A910AF06</action>
            <action>maincpu.mq@5030 = A320A405E4013F96</action>
            <action>maincpu.mq@5038 = 5BBF81B100000000</action>
            <!--
            5000 | 96 20    : LDA    $20  // read start button
            5002 | 84 08    : ANDA   #$08
            5004 | 48       : ASLA
            5005 | 48       : ASLA
            5006 | 97 82    : STA    $82
            5008 | 96 1E    : LDA    $1E  // read other inputs
            500A | 84 1F    : ANDA   #$1F
            500C | 9A 82    : ORA    $82
            500E | 91 81    : CMPA   $81
            5010 | 27 27    : BEQ    $5039
            5012 | D6 80    : LDB    $80
            5014 | 81 01    : CMPA   #$01
            5016 | 26 01    : BNE    $5019
            5018 | 5A       : DECB         // decrease code -01
            5019 | 81 02    : CMPA   #$02
            501B | 26 01    : BNE    $501E
            501D | 5C       : INCB         // increase code +01
            501E | 81 08    : CMPA   #$08
            5020 | 26 02    : BNE    $5024
            5022 | C0 10    : SUBB   #$10  // decrease code -10
            5024 | 81 04    : CMPA   #$04
            5026 | 26 02    : BNE    $502A
            5028 | CB 10    : ADDB   #$10  // increase code +10
            502A | D7 80    : STB    $80
            502C | 81 10    : CMPA   #$10
            502E | 27 06    : BEQ    $5036 // play sound
            5030 | 81 20    : CMPA   #$20
            5032 | 26 05    : BNE    $5039
            5034 | C6 01    : LDB    #$01  // stop sound
            5036 | BD 96 5B : JSR    $965B // send sound code
            5039 | 97 81    : STA    $81
            503B | 39       : RTS
            -->
        </script>
        <script state="run">
            <output format="----- mega zone 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="P1 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@3B80</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@6801 = 02              </action>
            <action>maincpu.mw@ABF3 = A4F3            </action>
            <action>maincpu.mw@ABFC = 9648            </action>
            <action>maincpu.mq@5000 = 0000000000000000</action>
            <action>maincpu.mq@5008 = 0000000000000000</action>
            <action>maincpu.mq@5010 = 0000000000000000</action>
            <action>maincpu.mq@5018 = 0000000000000000</action>
            <action>maincpu.mq@5020 = 0000000000000000</action>
            <action>maincpu.mq@5028 = 0000000000000000</action>
            <action>maincpu.mq@5030 = 0000000000000000</action>
            <action>maincpu.mq@5038 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action> maincpu.mw@AAB3 = AAB5</action> <!-- ram -->
            <action> maincpu.mw@AAEB = AAED</action> <!-- rom -->
            <action>audiocpu.mw@0005 = 020F</action> <!-- rom -->
        </script>
        <script state="off">
            <action> maincpu.mw@AAB3 = B185</action>
            <action> maincpu.mw@AAEB = B008</action>
            <action>audiocpu.mw@0005 = 01D7</action>
        </script>
    </cheat>

</mamecheat>
megazonej.xml

Code: Select all

<!-- Mega Zone (program code J) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@8101 = 24</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8101 = 25</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@86FD = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@86FD = 0F</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0180">02       </item>
            <item value="0x0280">03       </item>
            <item value="0x0380">04       </item>
            <item value="0x0480">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@7E0A = 440000F5</action>
        </script>
        <script state="change">
            <action>maincpu.mw@7E0B = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@7E0A = C06486F5</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x04">01 (slow)</item>
            <item value="0x08">02       </item>
            <item value="0x0c">03       </item>
            <item value="0x10">04       </item>
            <item value="0x14">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@8730 = param</action> <!-- speed -->
            <action>maincpu.mb@87B8 = param</action> <!-- range -->
        </script>
        <script state="off">
            <action>maincpu.mb@8730 = 08</action>
            <action>maincpu.mb@87B8 = 09</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mb@67FF = 00              </action> <!-- enable music -->
            <action>maincpu.mw@ABF5 = 0206            </action> <!-- disable next sequence at boot -->
            <action>maincpu.mw@ABFE = 5000            </action>
            <action>maincpu.mq@5000 = B42006086A6A1582</action>
            <action>maincpu.mq@5008 = BE1E0C1FB2821981</action>
            <action>maincpu.mq@5010 = 05275480A301A401</action>
            <action>maincpu.mq@5018 = 72A902AE01740908</action>
            <action>maincpu.mq@5020 = 04024210A304A402</action>
            <action>maincpu.mq@5028 = E3105F80A910AF06</action>
            <action>maincpu.mq@5030 = A320A405E4013F96</action>
            <action>maincpu.mq@5038 = 59BF81B100000000</action>
            <!--
            5000 | 96 20    : LDA    $20  // read start button
            5002 | 84 08    : ANDA   #$08
            5004 | 48       : ASLA
            5005 | 48       : ASLA
            5006 | 97 82    : STA    $82
            5008 | 96 1E    : LDA    $1E  // read other inputs
            500A | 84 1F    : ANDA   #$1F
            500C | 9A 82    : ORA    $82
            500E | 91 81    : CMPA   $81
            5010 | 27 27    : BEQ    $5039
            5012 | D6 80    : LDB    $80
            5014 | 81 01    : CMPA   #$01
            5016 | 26 01    : BNE    $5019
            5018 | 5A       : DECB         // decrease code -01
            5019 | 81 02    : CMPA   #$02
            501B | 26 01    : BNE    $501E
            501D | 5C       : INCB         // increase code +01
            501E | 81 08    : CMPA   #$08
            5020 | 26 02    : BNE    $5024
            5022 | C0 10    : SUBB   #$10  // decrease code -10
            5024 | 81 04    : CMPA   #$04
            5026 | 26 02    : BNE    $502A
            5028 | CB 10    : ADDB   #$10  // increase code +10
            502A | D7 80    : STB    $80
            502C | 81 10    : CMPA   #$10
            502E | 27 06    : BEQ    $5036 // play sound
            5030 | 81 20    : CMPA   #$20
            5032 | 26 05    : BNE    $5039
            5034 | C6 01    : LDB    #$01  // stop sound
            5036 | BD 96 59 : JSR    $9659 // send sound code
            5039 | 97 81    : STA    $81
            503B | 39       : RTS
            -->
        </script>
        <script state="run">
            <output format="----- mega zone 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="P1 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@3B80</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@67FF = 02              </action>
            <action>maincpu.mw@ABF5 = 04F3            </action>
            <action>maincpu.mw@ABFE = 9646            </action>
            <action>maincpu.mq@5000 = 0000000000000000</action>
            <action>maincpu.mq@5008 = 0000000000000000</action>
            <action>maincpu.mq@5010 = 0000000000000000</action>
            <action>maincpu.mq@5018 = 0000000000000000</action>
            <action>maincpu.mq@5020 = 0000000000000000</action>
            <action>maincpu.mq@5028 = 0000000000000000</action>
            <action>maincpu.mq@5030 = 0000000000000000</action>
            <action>maincpu.mq@5038 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action> maincpu.mw@AAB5 = AAB7</action> <!-- ram -->
            <action> maincpu.mw@AAED = AAEF</action> <!-- rom -->
            <action>audiocpu.mw@0005 = 020F</action> <!-- rom -->
        </script>
        <script state="off">
            <action> maincpu.mw@AAB5 = B16C</action>
            <action> maincpu.mw@AAED = AFEF</action>
            <action>audiocpu.mw@0005 = 01D7</action>
        </script>
    </cheat>

</mamecheat>
megazonei.xml

Code: Select all

<!-- Mega Zone (program code I) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@80ED = 10</action>
        </script>
        <script state="off">
            <action>maincpu.mb@80ED = 11</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@86E9 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@86E9 = 0F</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0180">02       </item>
            <item value="0x0280">03       </item>
            <item value="0x0380">04       </item>
            <item value="0x0480">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@7DF6 = 4E0000F5</action>
        </script>
        <script state="change">
            <action>maincpu.mw@7DF7 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@7DF6 = CA6E86F5</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x04">01 (slow)</item>
            <item value="0x08">02       </item>
            <item value="0x0c">03       </item>
            <item value="0x10">04       </item>
            <item value="0x14">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@871C = param</action> <!-- speed -->
            <action>maincpu.mb@87A4 = param</action> <!-- range -->
        </script>
        <script state="off">
            <action>maincpu.mb@871C = 08</action>
            <action>maincpu.mb@87A4 = 09</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mb@6801 = 00              </action> <!-- enable music -->
            <action>maincpu.mw@ABDD = 0806            </action> <!-- disable next sequence at boot -->
            <action>maincpu.mw@ABE6 = 5000            </action>
            <action>maincpu.mq@5000 = B42006086A6A1582</action>
            <action>maincpu.mq@5008 = BE1E0C1FB2821981</action>
            <action>maincpu.mq@5010 = 05275480A301A401</action>
            <action>maincpu.mq@5018 = 72A902AE01740908</action>
            <action>maincpu.mq@5020 = 04024210A304A402</action>
            <action>maincpu.mq@5028 = E3105F80A910AF06</action>
            <action>maincpu.mq@5030 = A320A405E4013F96</action>
            <action>maincpu.mq@5038 = 45BF81B100000000</action>
            <!--
            5000 | 96 20    : LDA    $20  // read start button
            5002 | 84 08    : ANDA   #$08
            5004 | 48       : ASLA
            5005 | 48       : ASLA
            5006 | 97 82    : STA    $82
            5008 | 96 1E    : LDA    $1E  // read other inputs
            500A | 84 1F    : ANDA   #$1F
            500C | 9A 82    : ORA    $82
            500E | 91 81    : CMPA   $81
            5010 | 27 27    : BEQ    $5039
            5012 | D6 80    : LDB    $80
            5014 | 81 01    : CMPA   #$01
            5016 | 26 01    : BNE    $5019
            5018 | 5A       : DECB         // decrease code -01
            5019 | 81 02    : CMPA   #$02
            501B | 26 01    : BNE    $501E
            501D | 5C       : INCB         // increase code +01
            501E | 81 08    : CMPA   #$08
            5020 | 26 02    : BNE    $5024
            5022 | C0 10    : SUBB   #$10  // decrease code -10
            5024 | 81 04    : CMPA   #$04
            5026 | 26 02    : BNE    $502A
            5028 | CB 10    : ADDB   #$10  // increase code +10
            502A | D7 80    : STB    $80
            502C | 81 10    : CMPA   #$10
            502E | 27 06    : BEQ    $5036 // play sound
            5030 | 81 20    : CMPA   #$20
            5032 | 26 05    : BNE    $5039
            5034 | C6 01    : LDB    #$01  // stop sound
            5036 | BD 96 45 : JSR    $9645 // send sound code
            5039 | 97 81    : STA    $81
            503B | 39       : RTS
            -->
        </script>
        <script state="run">
            <output format="----- mega zone 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="P1 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@3B80</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@6801 = 02              </action>
            <action>maincpu.mw@ABDD = 0EF3            </action>
            <action>maincpu.mw@ABE6 = 9632            </action>
            <action>maincpu.mq@5000 = 0000000000000000</action>
            <action>maincpu.mq@5008 = 0000000000000000</action>
            <action>maincpu.mq@5010 = 0000000000000000</action>
            <action>maincpu.mq@5018 = 0000000000000000</action>
            <action>maincpu.mq@5020 = 0000000000000000</action>
            <action>maincpu.mq@5028 = 0000000000000000</action>
            <action>maincpu.mq@5030 = 0000000000000000</action>
            <action>maincpu.mq@5038 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action> maincpu.mw@AA9D = AA9F</action> <!-- ram -->
            <action> maincpu.mw@AAD5 = AAD7</action> <!-- rom -->
            <action>audiocpu.mw@0005 = 020F</action> <!-- rom -->
        </script>
        <script state="off">
            <action> maincpu.mw@AA9D = B16F</action>
            <action> maincpu.mw@AAD5 = AFF2</action>
            <action>audiocpu.mw@0005 = 01D7</action>
        </script>
    </cheat>

</mamecheat>
megazoneh.xml

Code: Select all

<!-- Mega Zone (program code H) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@80EB = 0E</action>
        </script>
        <script state="off">
            <action>maincpu.mb@80EB = 0F</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@86E7 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@86E7 = 0F</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0180">02       </item>
            <item value="0x0280">03       </item>
            <item value="0x0380">04       </item>
            <item value="0x0480">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@7DF4 = EE00005F</action>
        </script>
        <script state="change">
            <action>maincpu.mw@7DF5 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@7DF4 = 6ACE865F</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x04">01 (slow)</item>
            <item value="0x08">02       </item>
            <item value="0x0c">03       </item>
            <item value="0x10">04       </item>
            <item value="0x14">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@871A = param</action> <!-- speed -->
            <action>maincpu.mb@87A2 = param</action> <!-- range -->
        </script>
        <script state="off">
            <action>maincpu.mb@871A = 08</action>
            <action>maincpu.mb@87A2 = 09</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mb@67FF = 00              </action> <!-- enable music -->
            <action>maincpu.mw@ABDF = A806            </action> <!-- disable next sequence at boot -->
            <action>maincpu.mw@ABE8 = 5000            </action>
            <action>maincpu.mq@5000 = B42006086A6A1582</action>
            <action>maincpu.mq@5008 = BE1E0C1FB2821981</action>
            <action>maincpu.mq@5010 = 05275480A301A401</action>
            <action>maincpu.mq@5018 = 72A902AE01740908</action>
            <action>maincpu.mq@5020 = 04024210A304A402</action>
            <action>maincpu.mq@5028 = E3105F80A910AF06</action>
            <action>maincpu.mq@5030 = A320A405E4013F96</action>
            <action>maincpu.mq@5038 = 43BF81B100000000</action>
            <!--
            5000 | 96 20    : LDA    $20  // read start button
            5002 | 84 08    : ANDA   #$08
            5004 | 48       : ASLA
            5005 | 48       : ASLA
            5006 | 97 82    : STA    $82
            5008 | 96 1E    : LDA    $1E  // read other inputs
            500A | 84 1F    : ANDA   #$1F
            500C | 9A 82    : ORA    $82
            500E | 91 81    : CMPA   $81
            5010 | 27 27    : BEQ    $5039
            5012 | D6 80    : LDB    $80
            5014 | 81 01    : CMPA   #$01
            5016 | 26 01    : BNE    $5019
            5018 | 5A       : DECB         // decrease code -01
            5019 | 81 02    : CMPA   #$02
            501B | 26 01    : BNE    $501E
            501D | 5C       : INCB         // increase code +01
            501E | 81 08    : CMPA   #$08
            5020 | 26 02    : BNE    $5024
            5022 | C0 10    : SUBB   #$10  // decrease code -10
            5024 | 81 04    : CMPA   #$04
            5026 | 26 02    : BNE    $502A
            5028 | CB 10    : ADDB   #$10  // increase code +10
            502A | D7 80    : STB    $80
            502C | 81 10    : CMPA   #$10
            502E | 27 06    : BEQ    $5036 // play sound
            5030 | 81 20    : CMPA   #$20
            5032 | 26 05    : BNE    $5039
            5034 | C6 01    : LDB    #$01  // stop sound
            5036 | BD 96 43 : JSR    $9643 // send sound code
            5039 | 97 81    : STA    $81
            503B | 39       : RTS
            -->
        </script>
        <script state="run">
            <output format="----- mega zone 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="P1 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@3B80</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@67FF = 02              </action>
            <action>maincpu.mw@ABDF = AEF3            </action>
            <action>maincpu.mw@ABE8 = 9630            </action>
            <action>maincpu.mq@5000 = 0000000000000000</action>
            <action>maincpu.mq@5008 = 0000000000000000</action>
            <action>maincpu.mq@5010 = 0000000000000000</action>
            <action>maincpu.mq@5018 = 0000000000000000</action>
            <action>maincpu.mq@5020 = 0000000000000000</action>
            <action>maincpu.mq@5028 = 0000000000000000</action>
            <action>maincpu.mq@5030 = 0000000000000000</action>
            <action>maincpu.mq@5038 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action> maincpu.mw@AA9F = AAA1</action> <!-- ram -->
            <action> maincpu.mw@AAD7 = AAD9</action> <!-- rom -->
            <action>audiocpu.mw@0005 = 020F</action> <!-- rom -->
        </script>
        <script state="off">
            <action> maincpu.mw@AA9F = B156</action>
            <action> maincpu.mw@AAD7 = AFD9</action>
            <action>audiocpu.mw@0005 = 01D7</action>
        </script>
    </cheat>

</mamecheat>
megazonea.xml

Code: Select all

<!-- Mega Zone (unknown program code 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@80EB = 0E</action>
        </script>
        <script state="off">
            <action>maincpu.mb@80EB = 0F</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@86E7 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@86E7 = 0F</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0180">02       </item>
            <item value="0x0280">03       </item>
            <item value="0x0380">04       </item>
            <item value="0x0480">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@7DF4 = EE00005F</action>
        </script>
        <script state="change">
            <action>maincpu.mw@7DF5 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@7DF4 = 6ACE865F</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x04">01 (slow)</item>
            <item value="0x08">02       </item>
            <item value="0x0c">03       </item>
            <item value="0x10">04       </item>
            <item value="0x14">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@871A = param</action> <!-- speed -->
            <action>maincpu.mb@87A2 = param</action> <!-- range -->
        </script>
        <script state="off">
            <action>maincpu.mb@871A = 08</action>
            <action>maincpu.mb@87A2 = 09</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mb@67FF = 00              </action> <!-- enable music -->
            <action>maincpu.mw@ABDF = A806            </action> <!-- disable next sequence at boot -->
            <action>maincpu.mw@ABE8 = 5000            </action>
            <action>maincpu.mq@5000 = B42006086A6A1582</action>
            <action>maincpu.mq@5008 = BE1E0C1FB2821981</action>
            <action>maincpu.mq@5010 = 05275480A301A401</action>
            <action>maincpu.mq@5018 = 72A902AE01740908</action>
            <action>maincpu.mq@5020 = 04024210A304A402</action>
            <action>maincpu.mq@5028 = E3105F80A910AF06</action>
            <action>maincpu.mq@5030 = A320A405E4013F96</action>
            <action>maincpu.mq@5038 = 43BF81B100000000</action>
            <!--
            5000 | 96 20    : LDA    $20  // read start button
            5002 | 84 08    : ANDA   #$08
            5004 | 48       : ASLA
            5005 | 48       : ASLA
            5006 | 97 82    : STA    $82
            5008 | 96 1E    : LDA    $1E  // read other inputs
            500A | 84 1F    : ANDA   #$1F
            500C | 9A 82    : ORA    $82
            500E | 91 81    : CMPA   $81
            5010 | 27 27    : BEQ    $5039
            5012 | D6 80    : LDB    $80
            5014 | 81 01    : CMPA   #$01
            5016 | 26 01    : BNE    $5019
            5018 | 5A       : DECB         // decrease code -01
            5019 | 81 02    : CMPA   #$02
            501B | 26 01    : BNE    $501E
            501D | 5C       : INCB         // increase code +01
            501E | 81 08    : CMPA   #$08
            5020 | 26 02    : BNE    $5024
            5022 | C0 10    : SUBB   #$10  // decrease code -10
            5024 | 81 04    : CMPA   #$04
            5026 | 26 02    : BNE    $502A
            5028 | CB 10    : ADDB   #$10  // increase code +10
            502A | D7 80    : STB    $80
            502C | 81 10    : CMPA   #$10
            502E | 27 06    : BEQ    $5036 // play sound
            5030 | 81 20    : CMPA   #$20
            5032 | 26 05    : BNE    $5039
            5034 | C6 01    : LDB    #$01  // stop sound
            5036 | BD 96 43 : JSR    $9643 // send sound code
            5039 | 97 81    : STA    $81
            503B | 39       : RTS
            -->
        </script>
        <script state="run">
            <output format="----- mega zone 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="P1 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@3B80</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@67FF = 02              </action>
            <action>maincpu.mw@ABDF = AEF3            </action>
            <action>maincpu.mw@ABE8 = 9630            </action>
            <action>maincpu.mq@5000 = 0000000000000000</action>
            <action>maincpu.mq@5008 = 0000000000000000</action>
            <action>maincpu.mq@5010 = 0000000000000000</action>
            <action>maincpu.mq@5018 = 0000000000000000</action>
            <action>maincpu.mq@5020 = 0000000000000000</action>
            <action>maincpu.mq@5028 = 0000000000000000</action>
            <action>maincpu.mq@5030 = 0000000000000000</action>
            <action>maincpu.mq@5038 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action> maincpu.mw@AA9F = AAA1</action> <!-- ram -->
            <action> maincpu.mw@AAD7 = AAD9</action> <!-- rom -->
            <action>audiocpu.mw@0005 = 020F</action> <!-- rom -->
        </script>
        <script state="off">
            <action> maincpu.mw@AA9F = B156</action>
            <action> maincpu.mw@AAD7 = AFD9</action>
            <action>audiocpu.mw@0005 = 01D7</action>
        </script>
    </cheat>

</mamecheat>
megazoneb.xml

Code: Select all

<!-- Mega Zone (unknown program code 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@8104 = 27</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8104 = 28</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@8700 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@8700 = 0F</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0180">02       </item>
            <item value="0x0280">03       </item>
            <item value="0x0380">04       </item>
            <item value="0x0480">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@7E0D = E40000FF</action>
        </script>
        <script state="change">
            <action>maincpu.mw@7E0E = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@7E0D = 606486FF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x04">01 (slow)</item>
            <item value="0x08">02       </item>
            <item value="0x0c">03       </item>
            <item value="0x10">04       </item>
            <item value="0x14">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@8733 = param</action> <!-- speed -->
            <action>maincpu.mb@87BB = param</action> <!-- range -->
        </script>
        <script state="off">
            <action>maincpu.mb@8733 = 08</action>
            <action>maincpu.mb@87BB = 09</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mb@6801 = 00              </action> <!-- enable music -->
            <action>maincpu.mw@ABF4 = 0206            </action> <!-- disable next sequence at boot -->
            <action>maincpu.mw@ABFD = 5000            </action>
            <action>maincpu.mq@5000 = B42006086A6A1582</action>
            <action>maincpu.mq@5008 = BE1E0C1FB2821981</action>
            <action>maincpu.mq@5010 = 05275480A301A401</action>
            <action>maincpu.mq@5018 = 72A902AE01740908</action>
            <action>maincpu.mq@5020 = 04024210A304A402</action>
            <action>maincpu.mq@5028 = E3105F80A910AF06</action>
            <action>maincpu.mq@5030 = A320A405E4013F96</action>
            <action>maincpu.mq@5038 = 5CBF81B100000000</action>
            <!--
            5000 | 96 20    : LDA    $20  // read start button
            5002 | 84 08    : ANDA   #$08
            5004 | 48       : ASLA
            5005 | 48       : ASLA
            5006 | 97 82    : STA    $82
            5008 | 96 1E    : LDA    $1E  // read other inputs
            500A | 84 1F    : ANDA   #$1F
            500C | 9A 82    : ORA    $82
            500E | 91 81    : CMPA   $81
            5010 | 27 27    : BEQ    $5039
            5012 | D6 80    : LDB    $80
            5014 | 81 01    : CMPA   #$01
            5016 | 26 01    : BNE    $5019
            5018 | 5A       : DECB         // decrease code -01
            5019 | 81 02    : CMPA   #$02
            501B | 26 01    : BNE    $501E
            501D | 5C       : INCB         // increase code +01
            501E | 81 08    : CMPA   #$08
            5020 | 26 02    : BNE    $5024
            5022 | C0 10    : SUBB   #$10  // decrease code -10
            5024 | 81 04    : CMPA   #$04
            5026 | 26 02    : BNE    $502A
            5028 | CB 10    : ADDB   #$10  // increase code +10
            502A | D7 80    : STB    $80
            502C | 81 10    : CMPA   #$10
            502E | 27 06    : BEQ    $5036 // play sound
            5030 | 81 20    : CMPA   #$20
            5032 | 26 05    : BNE    $5039
            5034 | C6 01    : LDB    #$01  // stop sound
            5036 | BD 96 5C : JSR    $965C // send sound code
            5039 | 97 81    : STA    $81
            503B | 39       : RTS
            -->
        </script>
        <script state="run">
            <output format="----- mega zone 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="P1 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@3B80</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@6801 = 02              </action>
            <action>maincpu.mw@ABF4 = 04F3            </action>
            <action>maincpu.mw@ABFD = 9649            </action>
            <action>maincpu.mq@5000 = 0000000000000000</action>
            <action>maincpu.mq@5008 = 0000000000000000</action>
            <action>maincpu.mq@5010 = 0000000000000000</action>
            <action>maincpu.mq@5018 = 0000000000000000</action>
            <action>maincpu.mq@5020 = 0000000000000000</action>
            <action>maincpu.mq@5028 = 0000000000000000</action>
            <action>maincpu.mq@5030 = 0000000000000000</action>
            <action>maincpu.mq@5038 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action> maincpu.mw@AAB4 = AAB6</action> <!-- ram -->
            <action> maincpu.mw@AAEC = AAEE</action> <!-- rom -->
            <action>audiocpu.mw@0005 = 020F</action> <!-- rom -->
        </script>
        <script state="off">
            <action> maincpu.mw@AAB4 = B186</action>
            <action> maincpu.mw@AAEC = B009</action>
            <action>audiocpu.mw@0005 = 01D7</action>
        </script>
    </cheat>

</mamecheat>