[halleyscj] Halley's Comet

This forum is for posting M.A.M.E. Work In Progress "Arcade"cheats that are not quite ready for the prime time. If the cheats are buggy or the cheat descriptions are non-standard then please post them here. Help maybe given but there are no guarantees and they will only be added to the cheat file when the cheat file maintainer is happy with them.
Post Reply
jman
Posts: 842
Joined: Tue Dec 01, 2020 1:24 pm

[halleyscj] Halley's Comet

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@b1b9 = c3</action> <!-- enemy -->
        <action>maincpu.mb@b1c0 = 9a</action> <!-- enemy -->
        <action>maincpu.mb@b1dd = e0</action> <!-- enemy -->
        <action>maincpu.mb@b44e = 6e</action> <!-- bullet -->
    </script>
    <script state="off">
        <action>maincpu.mb@b1b9 = c4</action>
        <action>maincpu.mb@b1c0 = 9b</action>
        <action>maincpu.mb@b1dd = e1</action>
        <action>maincpu.mb@b44e = 6f</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@cbfc = 01</action>
    </script>
    <script state="off">
        <action>maincpu.mb@cbfc = 18</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter min="0x01" max="0x05" step="0x01" />
    <script state="on">
        <action>maincpu.mb@8d71 = c0</action> <!-- up -->
        <action>maincpu.mb@8d7e = 80</action> <!-- upper-right : right -->
        <action>maincpu.mb@8d80 = c0</action> <!-- upper-right : up -->
        <action>maincpu.mb@8d93 = 80</action> <!-- right -->
        <action>maincpu.mb@8da1 = 80</action> <!-- lower-right : right -->
        <action>maincpu.mb@8da3 = cb</action> <!-- lower-right : down -->
        <action>maincpu.mb@8db6 = cb</action> <!-- down -->
        <action>maincpu.mb@8dc3 = 8b</action> <!-- lower-left : left -->
        <action>maincpu.mb@8dc5 = cb</action> <!-- lower-left : down -->
        <action>maincpu.mb@8dd8 = 8b</action> <!-- left -->
        <action>maincpu.mb@8de6 = 8b</action> <!-- upper-left : left -->
        <action>maincpu.mb@8de8 = c0</action> <!-- upper-left : up -->
    </script>
    <script state="change">
        <action>maincpu.mb@8d72 = param</action>
        <action>maincpu.mb@8d7f = param</action>
        <action>maincpu.mb@8d81 = param</action>
        <action>maincpu.mb@8d94 = param</action>
        <action>maincpu.mb@8da2 = param</action>
        <action>maincpu.mb@8da4 = param</action>
        <action>maincpu.mb@8db7 = param</action>
        <action>maincpu.mb@8dc4 = param</action>
        <action>maincpu.mb@8dc6 = param</action>
        <action>maincpu.mb@8dd9 = param</action>
        <action>maincpu.mb@8de7 = param</action>
        <action>maincpu.mb@8de9 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mw@8d71 = d040</action>
        <action>maincpu.mw@8d7e = 9040</action>
        <action>maincpu.mw@8d80 = d040</action>
        <action>maincpu.mw@8d93 = 9040</action>
        <action>maincpu.mw@8da1 = 9040</action>
        <action>maincpu.mw@8da3 = db40</action>
        <action>maincpu.mw@8db6 = db40</action>
        <action>maincpu.mw@8dc3 = 9b40</action>
        <action>maincpu.mw@8dc5 = db40</action>
        <action>maincpu.mw@8dd8 = 9b40</action>
        <action>maincpu.mw@8de6 = 9b40</action>
        <action>maincpu.mw@8de8 = d040</action>
    </script>
</cheat>

<cheat desc="bullet speed">
    <parameter>
        <item value="0x01">01 (slow)</item>
        <item value="0x08">02       </item>
        <item value="0x10">03       </item>
        <item value="0x14">04       </item>
        <item value="0x18">05 (fast)</item>
    </parameter>
    <script state="change">
        <!-- player -->
        <action>maincpu.mb@2ff4 = -param</action>
        <action>maincpu.mb@2ffe = -param</action>
        <action>maincpu.mb@3008 = -param</action>
        <action>maincpu.mb@3012 = -param</action>
        <action>maincpu.mb@301c = -param</action>
        <action>maincpu.mb@3032 = -param</action>
        <action>maincpu.mb@303c = -param</action>
        <action>maincpu.mb@3046 = -param</action>
        <action>maincpu.mb@3050 = -param</action>
        <action>maincpu.mb@305a = -param</action>
        <action>maincpu.mb@3070 = -param</action>
        <action>maincpu.mb@307a = -param</action>
        <action>maincpu.mb@3084 = -param</action>
        <action>maincpu.mb@308e = -param</action>
        <action>maincpu.mb@3098 = -param</action>
        <action>maincpu.mb@30ae = -param</action>
        <action>maincpu.mb@30b8 = -param</action>
        <action>maincpu.mb@30c2 = -param</action>
        <action>maincpu.mb@30cc = -param</action>
        <action>maincpu.mb@30d6 = -param</action>
        <!-- range -->
        <action>maincpu.mb@cd74 = f4 - param</action>
        <!-- sub unit -->
        <action>maincpu.mb@cde8 = -param</action>
    </script>
    <script state="off">
        <action>maincpu.mb@2ff4 = f8</action>
        <action>maincpu.mb@2ffe = f6</action>
        <action>maincpu.mb@3008 = f6</action>
        <action>maincpu.mb@3012 = f6</action>
        <action>maincpu.mb@301c = f6</action>
        <action>maincpu.mb@3032 = f8</action>
        <action>maincpu.mb@303c = f6</action>
        <action>maincpu.mb@3046 = f4</action>
        <action>maincpu.mb@3050 = f4</action>
        <action>maincpu.mb@305a = f4</action>
        <action>maincpu.mb@3070 = f8</action>
        <action>maincpu.mb@307a = f6</action>
        <action>maincpu.mb@3084 = f4</action>
        <action>maincpu.mb@308e = f4</action>
        <action>maincpu.mb@3098 = f4</action>
        <action>maincpu.mb@30ae = f8</action>
        <action>maincpu.mb@30b8 = f6</action>
        <action>maincpu.mb@30c2 = f6</action>
        <action>maincpu.mb@30cc = f6</action>
        <action>maincpu.mb@30d6 = f6</action>
        <action>maincpu.mb@cd74 = f4</action>
        <action>maincpu.mb@cde8 = f8</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mq@805f = 97519691915127f8</action>
        <action>maincpu.mq@8067 = d65081fe26015a81</action>
        <action>maincpu.mq@806f = fd26015c81fb2602</action>
        <action>maincpu.mq@8077 = c01081f72602cb10</action>
        <action>maincpu.mq@807f = d750817f2602d78a</action>
        <action>maincpu.mq@8087 = 81bf26020f8a20d0</action>
        <!--
        805f | 97 51 : STA  $51
        8061 | 96 91 : LDA  $91   // read input
        8063 | 91 51 : CMPA $51
        8065 | 27 f8 : BEQ  $805F
        8067 | d6 50 : LDB  $50
        8069 | 81 fe : CMPA #$FE
        806b | 26 01 : BNE  $806E
        806d | 5a    : DECB       // decrease code -01
        806e | 81 fd : CMPA #$FD
        8070 | 26 01 : BNE  $8073
        8072 | 5c    : INCB       // increase code +01
        8073 | 81 fb : CMPA #$FB
        8075 | 26 02 : BNE  $8079
        8077 | c0 10 : SUBB #$10  // decrease code -10
        8079 | 81 f7 : CMPA #$F7
        807b | 26 02 : BNE  $807F
        807d | cb 10 : ADDB #$10  // increase code +10
        807f | d7 50 : STB  $50
        8081 | 81 7f : CMPA #$7F
        8083 | 26 02 : BNE  $8087
        8085 | d7 8a : STB  $8A   // play sound
        8087 | 81 bf : CMPA #$BF
        8089 | 26 02 : BNE  $808D
        808b | 0f 8a : CLR  $8A   // stop sound
        808d | 20 d0 : BRA  $805F
        -->
    </script>
    <script state="run">
        <output format="----- halley's comet 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@ff50</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mq@805f = 9695c68085022701</action>
        <action>maincpu.mq@8067 = 5fd79ebd874c8611</action>
        <action>maincpu.mq@806f = bd982f10ceff0096</action>
        <action>maincpu.mq@8077 = 908510102703f385</action>
        <action>maincpu.mq@807f = 201027014d854010</action>
        <action>maincpu.mq@8087 = 2601478580102601</action>
    </script>
</cheat>
For some reason, "no hit" affects player and sub-units at the same time.
Post Reply