Page 1 of 1

[argus] Argus

Posted: Tue Mar 21, 2023 1:31 pm
by jman

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@2339 = c9</action> <!-- pipe -->
        <action>maincpu.mb@3272 = c9</action> <!-- pipe -->
        <action>maincpu.mb@58dc = c9</action> <!-- bullet -->
        <action>maincpu.mb@5af5 = c3</action> <!-- mine -->
        <action>maincpu.mb@5e3d = c9</action> <!-- laser -->
        <action>maincpu.mb@60f0 = af</action> <!-- bullet from ground -->
        <action>maincpu.mb@756a = c3</action> <!-- enemy -->
    </script>
    <script state="off">
        <action>maincpu.mb@2339 = cb</action>
        <action>maincpu.mb@3272 = 21</action>
        <action>maincpu.mb@58dc = d0</action>
        <action>maincpu.mb@5af5 = d2</action>
        <action>maincpu.mb@5e3d = d0</action>
        <action>maincpu.mb@60f0 = b9</action>
        <action>maincpu.mb@756a = c2</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@2930 = 18</action> <!-- shot -->
        <action>maincpu.mb@294f = 18</action> <!-- shot -->
        <action>maincpu.mb@29a2 = 18</action> <!-- bomb -->
    </script>
    <script state="off">
        <action>maincpu.mb@2930 = 28</action>
        <action>maincpu.mb@294f = 28</action>
        <action>maincpu.mb@29a2 = 28</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x0100">01 (slow)</item>
        <item value="0x0200">02       </item>
        <item value="0x0400">03       </item>
        <item value="0x0600">04       </item>
        <item value="0x0800">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@205c = 00000011</action> <!-- left scroll -->
        <action>maincpu.md@2085 = 00000011</action> <!-- right scroll -->
        <action>maincpu.md@215b = 00000011</action> <!-- down -->
        <action>maincpu.md@2172 = 00000011</action> <!-- up -->
        <action>maincpu.md@2cd0 = 00000011</action> <!-- bomb? -->
        <action>maincpu.md@5848 = 00000001</action> <!-- left/right -->
    </script>
    <script state="change">
        <action>maincpu.mw@205d = param</action>
        <action>maincpu.mw@2086 = param</action>
        <action>maincpu.mw@215c = param</action>
        <action>maincpu.mw@2173 = param</action>
        <action>maincpu.mw@2cd1 = param</action>
        <action>maincpu.mw@5849 = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@205c = fc645bed</action>
        <action>maincpu.md@2085 = fc645bed</action>
        <action>maincpu.md@215b = fc625bed</action>
        <action>maincpu.md@2172 = fc625bed</action>
        <action>maincpu.md@2cd0 = fc645bed</action>
        <action>maincpu.md@5848 = fc644bed</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@1121b = param</action> <!-- shot ($921b) -->
        <action>maincpu.mb@11228 = param</action> <!-- shot ($9228) -->
        <action>maincpu.mb@11235 = param</action> <!-- v-shot ($9235) -->
        <action>maincpu.mb@1123f = param</action> <!-- v-shot ($923f) -->
        <action>maincpu.mb@1124c = param</action> <!-- twin shot ($924c) -->
        <action>maincpu.mb@11256 = param</action> <!-- twin shot ($9256) -->
    </script>
    <script state="off">
        <action>maincpu.mb@1121b = 08</action>
        <action>maincpu.mb@11228 = 0a</action>
        <action>maincpu.mb@11235 = 08</action>
        <action>maincpu.mb@1123f = 08</action>
        <action>maincpu.mb@1124c = 08</action>
        <action>maincpu.mb@11256 = 08</action>
    </script>
</cheat>

<cheat desc="weapon - shot">
    <parameter>
        <item value="0x00">single shot     </item>
        <item value="0x01">fast single shot</item>
        <item value="0x02">v-shot          </item>
        <item value="0x03">twin shot       </item>
        <item value="0x06">laser           </item>
    </parameter>
    <script state="on">
        <action>maincpu.md@28f2 = cd00003e</action>
        <action>maincpu.md@2bfd = cd00003e</action>
    </script>
    <script state="change">
        <action>maincpu.mb@28f3 = param</action>
        <action>maincpu.mb@2bfe = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@28f2 = cde0803a</action>
        <action>maincpu.md@2bfd = cde0803a</action>
    </script>
</cheat>

<cheat desc="weapon - bomb">
    <parameter>
        <item value="0x04">twin   </item>
        <item value="0x05">missile</item>
        <item value="0x07">laser  </item>
    </parameter>
    <script state="on">
        <action>maincpu.md@2912 = cd00003e</action>
        <action>maincpu.md@2c0f = cd00003e</action>
    </script>
    <script state="change">
        <action>maincpu.mb@2913 = param</action>
        <action>maincpu.mb@2c10 = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@2912 = cde0813a</action>
        <action>maincpu.md@2c0f = cde0813a</action>
    </script>
</cheat>

<cheat desc="fast bomb">
    <script state="on">
        <action>maincpu.mw@02a55 =             9e70</action> <!-- twin -->
        <action>maincpu.mw@02a88 =             9e70</action> <!-- missile -->
        <action>maincpu.mq@11e70 = dd040436dd2b8bcd</action>
        <action>maincpu.mq@11e78 = c90c77dd66c60c7e</action>
        <!--
        9e70 | cd 8b 2b    : call $2B8B
        9e73 | dd 36 04 04 : ld   (ix+$04),$04
        9e77 | dd 7e 0c    : ld   a,(ix+$0c)
        9e7a | c6 66       : add  a,$66
        9e7c | dd 77 0c    : ld   (ix+$0c),a
        9e7f | c9          : ret
        -->
        <action>maincpu.mb@2a93 = 04</action> <!-- missile at boss area -->
    </script>
    <script state="off">
        <action>maincpu.mw@02a55 =             2b8b</action>
        <action>maincpu.mw@02a88 =             2b8b</action>
        <action>maincpu.mq@11e70 = 0000000000000000</action>
        <action>maincpu.mq@11e78 = 0000000000000000</action>
        <action>maincpu.mb@02a93 =               68</action>
    </script>
</cheat>

<cheat desc="landing successful">
    <script state="on">
        <action>maincpu.mb@3b2c = 00</action> <!-- wind -->
        <action>maincpu.mb@3b44 = 18</action> <!-- runway -->
    </script>
    <script state="off">
        <action>maincpu.mb@3b2c = 1b</action>
        <action>maincpu.mb@3b44 = 30</action>
    </script>
</cheat>

<cheat desc="unlock test mode">
    <comment>reset the game (F3) to enter test mode</comment>
    <script state="on">
        <action>maincpu.mb@0339 = 3b</action>
    </script>
    <script state="off">
        <action>maincpu.mb@0339 = 43</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@00005 =               3b</action> <!-- go to test mode directly -->
        <action>maincpu.mw@1502c =             9c00</action> <!-- ($902c) -->
        <action>maincpu.mq@15c00 = 47b8c0013ae10021</action>
        <action>maincpu.mq@15c08 = fe350120fdfef928</action>
        <action>maincpu.mq@15c10 = 0420fbfe340120fe</action>
        <action>maincpu.mq@15c18 = 0520f7fe0618f03e</action>
        <action>maincpu.mq@15c20 = 20effe787786103e</action>
        <action>maincpu.mq@15c28 = 0420dffe05187e03</action>
        <action>maincpu.mq@15c30 = ffffcd18c20032af</action>
        <!--
        9c00 | 21 00 e1 : ld  hl,$E100  // sound code address
        9c03 | 3a 01 c0 : ld  a,($C001) // read input
        9c06 | b8       : cp  b
        9c07 | 47       : ld  b,a
        9c08 | 28 f9    : jr  z,$9C03
        9c0a | fe fd    : cp  $FD
        9c0c | 20 01    : jr  nz,$9C0F
        9c0e | 35       : dec (hl)      // decrease code -01
        9c0f | fe fe    : cp  $FE
        9c11 | 20 01    : jr  nz,$9C14
        9c13 | 34       : inc (hl)      // increase code +01
        9c14 | fe fb    : cp  $FB
        9c16 | 20 04    : jr  nz,$9C1C
        9c18 | 3e f0    : ld  a,$F0     // decrease code -10
        9c1a | 18 06    : jr  $9C22
        9c1c | fe f7    : cp  $F7
        9c1e | 20 05    : jr  nz,$9C25
        9c20 | 3e 10    : ld  a,$10     // increase code +10
        9c22 | 86       : add a,(hl)
        9c23 | 77       : ld  (hl),a
        9c24 | 78       : ld  a,b
        9c25 | fe ef    : cp  $EF
        9c27 | 20 03    : jr  nz,$9C2C
        9c29 | 7e       : ld  a,(hl)    // play sound
        9c2a | 18 05    : jr  $9C31
        9c2c | fe df    : cp  $DF
        9c2e | 20 04    : jr  nz,$9C34
        9c30 | af       : xor a         // stop sound
        9c31 | 32 00 c2 : ld  ($C200),a // send sound code
        9c34 | 18 cd    : jr  $9C03
        -->
    </script>
    <script state="run">
        <output format="----- argus 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@e100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mb@00005 =               33</action>
        <action>maincpu.mw@1502c =             94d9</action>
        <action>maincpu.mq@15c00 = ffffffffffffffff</action>
        <action>maincpu.mq@15c08 = ffffffffffffffff</action>
        <action>maincpu.mq@15c10 = ffffffffffffffff</action>
        <action>maincpu.mq@15c18 = ffffffffffffffff</action>
        <action>maincpu.mq@15c20 = ffffffffffffffff</action>
        <action>maincpu.mq@15c28 = ffffffffffffffff</action>
        <action>maincpu.mq@15c30 = ffffffffffffffff</action>
    </script>
</cheat>
"landing successful" is unique. You always succeed in landing.
Image

[argus] Argus

Posted: Wed Nov 06, 2024 1:20 am
by jman
argus.xml

Code: Select all

<!-- Argus -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@2339 = C9</action> <!-- pipe -->
            <action>maincpu.mb@3272 = C9</action> <!-- pipe -->
            <action>maincpu.mb@58DC = C9</action> <!-- bullet (air) -->
            <action>maincpu.mb@5AF5 = C3</action> <!-- mine -->
            <action>maincpu.mb@5E3D = C9</action> <!-- laser -->
            <action>maincpu.mb@60F0 = AF</action> <!-- bullet (ground) -->
            <action>maincpu.mb@756A = C3</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@2339 = CB</action>
            <action>maincpu.mb@3272 = 21</action>
            <action>maincpu.mb@58DC = D0</action>
            <action>maincpu.mb@5AF5 = D2</action>
            <action>maincpu.mb@5E3D = D0</action>
            <action>maincpu.mb@60F0 = B9</action>
            <action>maincpu.mb@756A = C2</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mb@2930 = 18</action> <!-- shot -->
            <action>maincpu.mb@294F = 18</action> <!-- shot -->
            <action>maincpu.mb@29A2 = 18</action> <!-- bomb -->
        </script>
        <script state="off">
            <action>maincpu.mb@2930 = 28</action>
            <action>maincpu.mb@294F = 28</action>
            <action>maincpu.mb@29A2 = 28</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0100">01 (slow)</item>
            <item value="0x0200">02       </item>
            <item value="0x0400">03       </item>
            <item value="0x0600">04       </item>
            <item value="0x0800">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@205C = 00000011</action> <!-- left scroll -->
            <action>maincpu.md@2085 = 00000011</action> <!-- right scroll -->
            <action>maincpu.md@215B = 00000011</action> <!-- down -->
            <action>maincpu.md@2172 = 00000011</action> <!-- up -->
            <action>maincpu.md@2CD0 = 00000011</action> <!-- bomb? -->
            <action>maincpu.md@5848 = 00000001</action> <!-- left/right -->
        </script>
        <script state="change">
            <action>maincpu.mw@205D = param</action>
            <action>maincpu.mw@2086 = param</action>
            <action>maincpu.mw@215C = param</action>
            <action>maincpu.mw@2173 = param</action>
            <action>maincpu.mw@2CD1 = param</action>
            <action>maincpu.mw@5849 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@205C = FC645BED</action>
            <action>maincpu.md@2085 = FC645BED</action>
            <action>maincpu.md@215B = FC625BED</action>
            <action>maincpu.md@2172 = FC625BED</action>
            <action>maincpu.md@2CD0 = FC645BED</action>
            <action>maincpu.md@5848 = FC644BED</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@1121B = param</action> <!-- shot ($921b) -->
            <action>maincpu.mb@11228 = param</action> <!-- shot ($9228) -->
            <action>maincpu.mb@11235 = param</action> <!-- v shot ($9235) -->
            <action>maincpu.mb@1123F = param</action> <!-- v shot ($923f) -->
            <action>maincpu.mb@1124C = param</action> <!-- twin shot ($924c) -->
            <action>maincpu.mb@11256 = param</action> <!-- twin shot ($9256) -->
        </script>
        <script state="off">
            <action>maincpu.mb@1121B = 08</action>
            <action>maincpu.mb@11228 = 0A</action>
            <action>maincpu.mb@11235 = 08</action>
            <action>maincpu.mb@1123F = 08</action>
            <action>maincpu.mb@1124C = 08</action>
            <action>maincpu.mb@11256 = 08</action>
        </script>
    </cheat>

    <cheat desc="fast bomb">
        <script state="on">
            <action>maincpu.mw@02A55 = 9E70            </action> <!-- twin -->
            <action>maincpu.mw@02A88 = 9E70            </action> <!-- missile -->
            <action>maincpu.mq@11E70 = DD040436DD2B8BCD</action>
            <action>maincpu.mq@11E78 = C90C77DD66C60C7E</action>
            <!--
            9E70 | CD 8B 2B    : call $2B8B
            9E73 | DD 36 04 04 : ld   (ix+$04),$04
            9E77 | DD 7E 0C    : ld   a,(ix+$0c)
            9E7A | C6 66       : add  a,$66
            9E7C | DD 77 0C    : ld   (ix+$0c),a
            9E7F | C9          : ret
            -->
            <action>maincpu.mb@2A93 = 04</action> <!-- missile at boss area -->
        </script>
        <script state="off">
            <action>maincpu.mw@02A55 = 2B8B            </action>
            <action>maincpu.mw@02A88 = 2B8B            </action>
            <action>maincpu.mq@11E70 = 0000000000000000</action>
            <action>maincpu.mq@11E78 = 0000000000000000</action>
            <action>maincpu.mb@02A93 = 68              </action>
        </script>
    </cheat>

    <cheat desc="weapon (shot)">
        <parameter>
            <item value="0x00">single shot     </item>
            <item value="0x01">fast single shot</item>
            <item value="0x02">v-shot          </item>
            <item value="0x03">twin shot       </item>
            <item value="0x06">laser           </item>
        </parameter>
        <script state="on">
            <action>maincpu.md@28F2 = CD00003E</action>
            <action>maincpu.md@2BFD = CD00003E</action>
        </script>
        <script state="change">
            <action>maincpu.mb@28F3 = param</action>
            <action>maincpu.mb@2BFE = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@28F2 = CDE0803A</action>
            <action>maincpu.md@2BFD = CDE0803A</action>
        </script>
    </cheat>

    <cheat desc="weapon (bomb)">
        <parameter>
            <item value="0x04">twin   </item>
            <item value="0x05">missile</item>
            <item value="0x07">laser  </item>
        </parameter>
        <script state="on">
            <action>maincpu.md@2912 = CD00003E</action>
            <action>maincpu.md@2C0F = CD00003E</action>
        </script>
        <script state="change">
            <action>maincpu.mb@2913 = param</action>
            <action>maincpu.mb@2C10 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@2912 = CDE0813A</action>
            <action>maincpu.md@2C0F = CDE0813A</action>
        </script>
    </cheat>

    <cheat desc="landing successful">
        <script state="on">
            <action>maincpu.mb@36B6 = 72</action>
            <action>maincpu.mb@390A = 72</action>
        </script>
        <script state="off">
            <action>maincpu.mb@36B6 = 1D</action>
            <action>maincpu.mb@390A = 1D</action>
        </script>
    </cheat>

    <cheat desc="unlock test mode">
        <comment>reset the game (F3) to enter test mode</comment>
        <script state="on">
            <action>maincpu.mb@0339 = 3B</action>
        </script>
        <script state="off">
            <action>maincpu.mb@0339 = 43</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@00005 = 3B              </action> <!-- go to test mode directly -->
            <action>maincpu.mw@1502C = 9C00            </action> <!-- ($902c) -->
            <action>maincpu.mq@15C00 = 47B8C0013AE10021</action>
            <action>maincpu.mq@15C08 = FE350120FDFEF928</action>
            <action>maincpu.mq@15C10 = 0420FBFE340120FE</action>
            <action>maincpu.mq@15C18 = 0520F7FE0618F03E</action>
            <action>maincpu.mq@15C20 = 20EFFE787786103E</action>
            <action>maincpu.mq@15C28 = 0420DFFE05187E03</action>
            <action>maincpu.mq@15C30 = FFFFCD18C20032AF</action>
            <!--
            9C00 | 21 00 E1 : ld   hl,$E100  // sound code address
            9C03 | 3A 01 C0 : ld   a,($C001) // read input
            9C06 | B8       : cp   b
            9C07 | 47       : ld   b,a
            9C08 | 28 F9    : jr   z,$9C03
            9C0A | FE FD    : cp   $FD
            9C0C | 20 01    : jr   nz,$9C0F
            9C0E | 35       : dec  (hl)      // decrease code -01
            9C0F | FE FE    : cp   $FE
            9C11 | 20 01    : jr   nz,$9C14
            9C13 | 34       : inc  (hl)      // increase code +01
            9C14 | FE FB    : cp   $FB
            9C16 | 20 04    : jr   nz,$9C1C
            9C18 | 3E F0    : ld   a,$F0     // decrease code -10
            9C1A | 18 06    : jr   $9C22
            9C1C | FE F7    : cp   $F7
            9C1E | 20 05    : jr   nz,$9C25
            9C20 | 3E 10    : ld   a,$10     // increase code +10
            9C22 | 86       : add  a,(hl)
            9C23 | 77       : ld   (hl),a
            9C24 | 78       : ld   a,b
            9C25 | FE EF    : cp   $EF
            9C27 | 20 03    : jr   nz,$9C2C
            9C29 | 7E       : ld   a,(hl)    // play sound
            9C2A | 18 05    : jr   $9C31
            9C2C | FE DF    : cp   $DF
            9C2E | 20 04    : jr   nz,$9C34
            9C30 | AF       : xor  a         // stop sound
            9C31 | 32 00 C2 : ld   ($C200),a // send sound code
            9C34 | 18 CD    : jr   $9C03
            -->
        </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="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@E100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@00005 = 33              </action>
            <action>maincpu.mw@1502C = 94D9            </action>
            <action>maincpu.mq@15C00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@15C08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@15C10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@15C18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@15C20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@15C28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@15C30 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
"landing successful" : Fixed that sometimes this code doesn't work.