[gardiaj] Gardia

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: 870
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 1 time

[gardiaj] Gardia

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.ob@1e15 = c9</action>
    </script>
    <script state="off">
        <action>maincpu.ob@1e15 = d0</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@204b = a0</action> <!-- shot -->
        <action>maincpu.mb@21cd = 50</action> <!-- bomb -->
    </script>
    <script state="off">
        <action>maincpu.mb@204b = 20</action>
        <action>maincpu.mb@21cd = 10</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x01">01 (slow)</item>
        <item value="0x02">02       </item>
        <item value="0x04">03       </item>
        <item value="0x06">04       </item>
        <item value="0x08">05 (fast)</item>
    </parameter>
    <script state="on">
        <!-- y-position -->
        <action>maincpu.od@5157 = 23ffffcd</action>
        <action>maincpu.md@5157 = ff7080ff</action>
        <!-- x-position -->
        <action>maincpu.od@5161 = c9ffffcd</action>
        <action>maincpu.md@5161 = ff708eff</action>
        <!-- calculation routine -->
        <action>maincpu.oq@7080 = fffff2ff3eff28a7</action>
        <action>maincpu.mq@7080 = 708aff00ff07ffff</action>
        <action>maincpu.oq@7088 = 28a7c9ff77dd44ed</action>
        <action>maincpu.mq@7088 = ffffff10ffffffff</action>
        <action>maincpu.oq@7090 = 44edfffff2ff3eff</action>
        <action>maincpu.mq@7090 = ffff7098ff00ff07</action>
        <action>maincpu.oq@7098 = ffffffffc9ff77dd</action>
        <action>maincpu.mq@7098 = ffffffffff12ffff</action>
        <!--
        7080 | a7       : and a          // y-position
        7081 | 28 07    : jr  z,$708A
        7083 | 3e xx    : ld  a,$xx
        7085 | f2 8a 70 : jp  p,$708A
        7088 | ed 44    : neg
        708a | dd 77 10 : ld  (ix+$10),a
        708d | c9       : ret
        708e | a7       : and a          // x-position
        708f | 28 07    : jr  z,$7098
        7091 | 3e xx    : ld  a,$xx
        7093 | f2 98 70 : jp  p,$7098
        7096 | ed 44    : neg
        7098 | dd 77 12 : ld  (ix+$12),a
        709b | c9       : ret
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@7084 = param + 1</action>
        <action>maincpu.mb@7092 = param    </action>
    </script>
    <script state="off">
        <action>maincpu.od@5157 =         231577dd</action>
        <action>maincpu.md@5157 =         721037cc</action>
        <action>maincpu.od@5161 =         c90677dd</action>
        <action>maincpu.md@5161 =         8c1223cc</action>
        <action>maincpu.oq@7080 = baafbaafbaafbaaf</action>
        <action>maincpu.mq@7080 = ffffffffffffffff</action>
        <action>maincpu.oq@7088 = beebbeebbeebbeeb</action>
        <action>maincpu.mq@7088 = ffffffffffffffff</action>
        <action>maincpu.oq@7090 = baafbaafbaafbaaf</action>
        <action>maincpu.mq@7090 = ffffffffffffffff</action>
        <action>maincpu.oq@7098 = beebbeebbeebbeeb</action>
        <action>maincpu.mq@7098 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="bullet speed">
    <parameter>
        <item value="0x04">01 (slow)</item>
        <item value="0x08">02       </item>
        <item value="0x10">03       </item>
        <item value="0x18">04       </item>
        <item value="0x20">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@2077 = param</action> <!-- normal -->
        <action>maincpu.mb@207c = param</action> <!-- power up -->
    </script>
    <script state="off">
        <action>maincpu.mb@2077 = 08</action>
        <action>maincpu.mb@207c = 10</action>
    </script>
</cheat>

<cheat desc="secret character finder">
    <script state="on">
        <action>maincpu.mb@5f77 = 79</action>
    </script>
    <script state="off">
        <action>maincpu.mb@5f77 = 99</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mw@004b =             70a0</action>
        <action>maincpu.oq@70a0 = 2847b8ffdbffff21</action>
        <action>maincpu.mq@70a0 = ffffff00ffc300ff</action>
        <action>maincpu.oq@70a8 = fffe35ff20fffeff</action>
        <action>maincpu.mq@70a8 = bfffff01ff7ffffa</action>
        <action>maincpu.oq@70b0 = 3eff20fffe34ff20</action>
        <action>maincpu.mq@70b0 = ff04ffefffff01ff</action>
        <action>maincpu.oq@70b8 = 3eff20fffeff18ff</action>
        <action>maincpu.mq@70b8 = ff05ffdfff06fff0</action>
        <action>maincpu.oq@70c0 = ff20fffe787786ff</action>
        <action>maincpu.mq@70c0 = 05fffbffffffff10</action>
        <action>maincpu.oq@70c8 = 20fffeff18fff67e</action>
        <action>maincpu.mq@70c8 = fffdff05ff80ffff</action>
        <action>maincpu.oq@70d0 = ffffff18ffd3afff</action>
        <action>maincpu.mq@70d0 = ffffcdff14ffff03</action>
        <!--
        70a0 | 21 00 c3 : ld  hl,$C300 // sound code address
        70a3 | db 00    : in  a,($00)  // read input
        70a5 | b8       : cp  b
        70a6 | 47       : ld  b,a
        70a7 | 28 fa    : jr  z,$70A3
        70a9 | fe 7f    : cp  $7F
        70ab | 20 01    : jr  nz,$70AE
        70ad | 35       : dec (hl)     // decrease code -01
        70ae | fe bf    : cp  $BF
        70b0 | 20 01    : jr  nz,$70B3
        70b2 | 34       : inc (hl)     // increase code +01
        70b3 | fe ef    : cp  $EF
        70b5 | 20 04    : jr  nz,$70BB
        70b7 | 3e f0    : ld  a,$F0    // decrease code -10
        70b9 | 18 06    : jr  $70C1
        70bb | fe df    : cp  $DF
        70bd | 20 05    : jr  nz,$70C4
        70bf | 3e 10    : ld  a,$10    // increase code +10
        70c1 | 86       : add a,(hl)
        70c2 | 77       : ld  (hl),a
        70c3 | 78       : ld  a,b
        70c4 | fe fb    : cp  $FB
        70c6 | 20 05    : jr  nz,$70CD
        70c8 | 7e       : ld  a,(hl)   // play sound
        70c9 | f6 80    : or  $80
        70cb | 18 05    : jr  $70D2
        70cd | fe fd    : cp  $FD
        70cf | 20 03    : jr  nz,$70D4
        70d1 | af       : xor a        // stop sound
        70d2 | d3 14    : out ($14),a  // send sound code
        70d4 | 18 cd    : jr  $70A3
        -->
    </script>
    <script state="run">
        <output format="----- gardia 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@c300</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@004b =             018c</action>
        <action>maincpu.oq@70a0 = baafbaafbaafbaaf</action>
        <action>maincpu.mq@70a0 = ffffffffffffffff</action>
        <action>maincpu.oq@70a8 = beebbeebbeebbeeb</action>
        <action>maincpu.mq@70a8 = ffffffffffffffff</action>
        <action>maincpu.oq@70b0 = baafbaafbaafbaaf</action>
        <action>maincpu.mq@70b0 = ffffffffffffffff</action>
        <action>maincpu.oq@70b8 = beebbeebbeebbeeb</action>
        <action>maincpu.mq@70b8 = ffffffffffffffff</action>
        <action>maincpu.oq@70c0 = bbbabbbabbbabbba</action>
        <action>maincpu.mq@70c0 = ffffffffffffffff</action>
        <action>maincpu.oq@70c8 = eebfeebfeebfeebf</action>
        <action>maincpu.mq@70c8 = ffffffffffffffff</action>
        <action>maincpu.oq@70d0 = bbbabbbabbbabbba</action>
        <action>maincpu.mq@70d0 = ffffffffffffffff</action>
    </script>
</cheat>
jman
Posts: 870
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 1 time

[gardia]+ Gardia

Post by jman »

gardia.xml

Code: Select all

<!-- Gardia (317-0006) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.ob@1E1E = C9</action>
        </script>
        <script state="off">
            <action>maincpu.ob@1E1E = D0</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@2054 = A0</action> <!-- shot -->
            <action>maincpu.mb@21D6 = 50</action> <!-- bomb -->
        </script>
        <script state="off">
            <action>maincpu.mb@2054 = 20</action>
            <action>maincpu.mb@21D6 = 10</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="on">
            <!-- y position -->
            <action>maincpu.od@5160 = 23FFFFCD</action>
            <action>maincpu.md@5160 = FF7080FF</action>
            <!-- x position -->
            <action>maincpu.od@516A = C9FFFFCD</action>
            <action>maincpu.md@516A = FF708EFF</action>
            <!-- calculation routine -->
            <action>maincpu.oq@7080 = FFFFF2FF3EFF28A7</action>
            <action>maincpu.mq@7080 = 708AFF00FF07FFFF</action>
            <action>maincpu.oq@7088 = 28A7C9FF77DD44ED</action>
            <action>maincpu.mq@7088 = FFFFFF10FFFFFFFF</action>
            <action>maincpu.oq@7090 = 44EDFFFFF2FF3EFF</action>
            <action>maincpu.mq@7090 = FFFF7098FF00FF07</action>
            <action>maincpu.oq@7098 = FFFFFFFFC9FF77DD</action>
            <action>maincpu.mq@7098 = FFFFFFFFFF12FFFF</action>
            <!--
            7080 | A7       : and  a          // y position
            7081 | 28 07    : jr   z,$708A
            7083 | 3E xx    : ld   a,$xx
            7085 | F2 8A 70 : jp   p,$708A
            7088 | ED 44    : neg
            708A | DD 77 10 : ld   (ix+$10),a
            708D | C9       : ret
            708E | A7       : and  a          // x position
            708F | 28 07    : jr   z,$7098
            7091 | 3E xx    : ld   a,$xx
            7093 | F2 98 70 : jp   p,$7098
            7096 | ED 44    : neg
            7098 | DD 77 12 : ld   (ix+$12),a
            709B | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@7084 = param + 1</action>
            <action>maincpu.mb@7092 = param    </action>
        </script>
        <script state="off">
            <action>maincpu.od@5160 = 234477DD        </action>
            <action>maincpu.md@5160 = 73106689        </action>
            <action>maincpu.od@516A = C94377DD        </action>
            <action>maincpu.md@516A = C912729D        </action>
            <action>maincpu.oq@7080 = BAAFBAAFBAAFBAAF</action>
            <action>maincpu.mq@7080 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@7088 = BEEBBEEBBEEBBEEB</action>
            <action>maincpu.mq@7088 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@7090 = BAAFBAAFBAAFBAAF</action>
            <action>maincpu.mq@7090 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@7098 = BEEBBEEBBEEBBEEB</action>
            <action>maincpu.mq@7098 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x04">01 (slow)</item>
            <item value="0x08">02       </item>
            <item value="0x10">03       </item>
            <item value="0x18">04       </item>
            <item value="0x20">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@2080 = param</action> <!-- normal -->
            <action>maincpu.mb@2085 = param</action> <!-- power up -->
        </script>
        <script state="off">
            <action>maincpu.mb@2080 = 08</action>
            <action>maincpu.mb@2085 = 10</action>
        </script>
    </cheat>

    <cheat desc="secret character finder">
        <script state="on">
            <action>maincpu.mb@5F80 = 82</action>
        </script>
        <script state="off">
            <action>maincpu.mb@5F80 = A2</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@004B = 70A0            </action>
            <action>maincpu.oq@70A0 = 2847B8FFDBFFFF21</action>
            <action>maincpu.mq@70A0 = FFFFFF00FFC300FF</action>
            <action>maincpu.oq@70A8 = FFFE35FF20FFFEFF</action>
            <action>maincpu.mq@70A8 = BFFFFF01FF7FFFFA</action>
            <action>maincpu.oq@70B0 = 3EFF20FFFE34FF20</action>
            <action>maincpu.mq@70B0 = FF04FFEFFFFF01FF</action>
            <action>maincpu.oq@70B8 = 3EFF20FFFEFF18FF</action>
            <action>maincpu.mq@70B8 = FF05FFDFFF06FFF0</action>
            <action>maincpu.oq@70C0 = FF20FFFE787786FF</action>
            <action>maincpu.mq@70C0 = 05FFFBFFFFFFFF10</action>
            <action>maincpu.oq@70C8 = 20FFFEFF18FFF67E</action>
            <action>maincpu.mq@70C8 = FFFDFF05FF80FFFF</action>
            <action>maincpu.oq@70D0 = FFFFFF18FFD3AFFF</action>
            <action>maincpu.mq@70D0 = FFFFCDFF18FFFF03</action>
            <!--
            70A0 | 21 00 C3 : ld   hl,$C300 // sound code address
            70A3 | DB 00    : in   a,($00)  // read input
            70A5 | B8       : cp   b
            70A6 | 47       : ld   b,a
            70A7 | 28 FA    : jr   z,$70A3
            70A9 | FE 7F    : cp   $7F
            70AB | 20 01    : jr   nz,$70AE
            70AD | 35       : dec  (hl)     // decrease code -01
            70AE | FE BF    : cp   $BF
            70B0 | 20 01    : jr   nz,$70B3
            70B2 | 34       : inc  (hl)     // increase code +01
            70B3 | FE EF    : cp   $EF
            70B5 | 20 04    : jr   nz,$70BB
            70B7 | 3E F0    : ld   a,$F0    // decrease code -10
            70B9 | 18 06    : jr   $70C1
            70BB | FE DF    : cp   $DF
            70BD | 20 05    : jr   nz,$70C4
            70BF | 3E 10    : ld   a,$10    // increase code +10
            70C1 | 86       : add  a,(hl)
            70C2 | 77       : ld   (hl),a
            70C3 | 78       : ld   a,b
            70C4 | FE FB    : cp   $FB
            70C6 | 20 05    : jr   nz,$70CD
            70C8 | 7E       : ld   a,(hl)   // play sound
            70C9 | F6 80    : or   $80
            70CB | 18 05    : jr   $70D2
            70CD | FE FD    : cp   $FD
            70CF | 20 03    : jr   nz,$70D4
            70D1 | AF       : xor  a        // stop sound
            70D2 | D3 18    : out  ($18),a  // send sound code
            70D4 | 18 CD    : jr   $70A3
            -->
        </script>
        <script state="run">
            <output format="----- gardia 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@C300</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@004B = 018D            </action>
            <action>maincpu.oq@70A0 = BAAFBAAFBAAFBAAF</action>
            <action>maincpu.mq@70A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@70A8 = BEEBBEEBBEEBBEEB</action>
            <action>maincpu.mq@70A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@70B0 = BAAFBAAFBAAFBAAF</action>
            <action>maincpu.mq@70B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@70B8 = BEEBBEEBBEEBBEEB</action>
            <action>maincpu.mq@70B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@70C0 = BBBABBBABBBABBBA</action>
            <action>maincpu.mq@70C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@70C8 = EEBFEEBFEEBFEEBF</action>
            <action>maincpu.mq@70C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@70D0 = BBBABBBABBBABBBA</action>
            <action>maincpu.mq@70D0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
gardiab.xml

Code: Select all

<!-- Gardia (317-0007?, bootleg) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.ob@1E15 = C9</action>
        </script>
        <script state="off">
            <action>maincpu.ob@1E15 = D0</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@204B = A0</action> <!-- shot -->
            <action>maincpu.mb@21CD = 50</action> <!-- bomb -->
        </script>
        <script state="off">
            <action>maincpu.mb@204B = 20</action>
            <action>maincpu.mb@21CD = 10</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="on">
            <!-- y position -->
            <action>maincpu.od@5157 = 23FFFFCD</action>
            <action>maincpu.md@5157 = FF7080FF</action>
            <!-- x position -->
            <action>maincpu.od@5161 = C9FFFFCD</action>
            <action>maincpu.md@5161 = FF708EFF</action>
            <!-- calculation routine -->
            <action>maincpu.oq@7080 = FFFFF2FF3EFF28A7</action>
            <action>maincpu.mq@7080 = 708AFF00FF07FFFF</action>
            <action>maincpu.oq@7088 = 28A7C9FF77DD44ED</action>
            <action>maincpu.mq@7088 = FFFFFF10FFFFFFFF</action>
            <action>maincpu.oq@7090 = 44EDFFFFF2FF3EFF</action>
            <action>maincpu.mq@7090 = FFFF7098FF00FF07</action>
            <action>maincpu.oq@7098 = FFFFFFFFC9FF77DD</action>
            <action>maincpu.mq@7098 = FFFFFFFFFF12FFFF</action>
            <!--
            7080 | A7       : and  a          // y position
            7081 | 28 07    : jr   z,$708A
            7083 | 3E xx    : ld   a,$xx
            7085 | F2 8A 70 : jp   p,$708A
            7088 | ED 44    : neg
            708A | DD 77 10 : ld   (ix+$10),a
            708D | C9       : ret
            708E | A7       : and  a          // x position
            708F | 28 07    : jr   z,$7098
            7091 | 3E xx    : ld   a,$xx
            7093 | F2 98 70 : jp   p,$7098
            7096 | ED 44    : neg
            7098 | DD 77 12 : ld   (ix+$12),a
            709B | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@7084 = param + 1</action>
            <action>maincpu.mb@7092 = param    </action>
        </script>
        <script state="off">
            <action>maincpu.od@5157 = 231577DD        </action>
            <action>maincpu.md@5157 = 721037CC        </action>
            <action>maincpu.od@5161 = C90677DD        </action>
            <action>maincpu.md@5161 = 8C1223CC        </action>
            <action>maincpu.oq@7080 = BAAFBAAFBAAFBAAF</action>
            <action>maincpu.mq@7080 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@7088 = BEEBBEEBBEEBBEEB</action>
            <action>maincpu.mq@7088 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@7090 = BAAFBAAFBAAFBAAF</action>
            <action>maincpu.mq@7090 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@7098 = BEEBBEEBBEEBBEEB</action>
            <action>maincpu.mq@7098 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x04">01 (slow)</item>
            <item value="0x08">02       </item>
            <item value="0x10">03       </item>
            <item value="0x18">04       </item>
            <item value="0x20">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@2077 = param</action> <!-- normal -->
            <action>maincpu.mb@207C = param</action> <!-- power up -->
        </script>
        <script state="off">
            <action>maincpu.mb@2077 = 08</action>
            <action>maincpu.mb@207C = 10</action>
        </script>
    </cheat>

    <cheat desc="secret character finder">
        <script state="on">
            <action>maincpu.mb@5F77 = 79</action>
        </script>
        <script state="off">
            <action>maincpu.mb@5F77 = 99</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@004B = 70A0            </action>
            <action>maincpu.oq@70A0 = 2847B8FFDBFFFF21</action>
            <action>maincpu.mq@70A0 = FFFFFF00FFC300FF</action>
            <action>maincpu.oq@70A8 = FFFE35FF20FFFEFF</action>
            <action>maincpu.mq@70A8 = BFFFFF01FF7FFFFA</action>
            <action>maincpu.oq@70B0 = 3EFF20FFFE34FF20</action>
            <action>maincpu.mq@70B0 = FF04FFEFFFFF01FF</action>
            <action>maincpu.oq@70B8 = 3EFF20FFFEFF18FF</action>
            <action>maincpu.mq@70B8 = FF05FFDFFF06FFF0</action>
            <action>maincpu.oq@70C0 = FF20FFFE787786FF</action>
            <action>maincpu.mq@70C0 = 05FFFBFFFFFFFF10</action>
            <action>maincpu.oq@70C8 = 20FFFEFF18FFF67E</action>
            <action>maincpu.mq@70C8 = FFFDFF05FF80FFFF</action>
            <action>maincpu.oq@70D0 = FFFFFF18FFD3AFFF</action>
            <action>maincpu.mq@70D0 = FFFFCDFF14FFFF03</action>
            <!--
            70A0 | 21 00 C3 : ld   hl,$C300 // sound code address
            70A3 | DB 00    : in   a,($00)  // read input
            70A5 | B8       : cp   b
            70A6 | 47       : ld   b,a
            70A7 | 28 FA    : jr   z,$70A3
            70A9 | FE 7F    : cp   $7F
            70AB | 20 01    : jr   nz,$70AE
            70AD | 35       : dec  (hl)     // decrease code -01
            70AE | FE BF    : cp   $BF
            70B0 | 20 01    : jr   nz,$70B3
            70B2 | 34       : inc  (hl)     // increase code +01
            70B3 | FE EF    : cp   $EF
            70B5 | 20 04    : jr   nz,$70BB
            70B7 | 3E F0    : ld   a,$F0    // decrease code -10
            70B9 | 18 06    : jr   $70C1
            70BB | FE DF    : cp   $DF
            70BD | 20 05    : jr   nz,$70C4
            70BF | 3E 10    : ld   a,$10    // increase code +10
            70C1 | 86       : add  a,(hl)
            70C2 | 77       : ld   (hl),a
            70C3 | 78       : ld   a,b
            70C4 | FE FB    : cp   $FB
            70C6 | 20 05    : jr   nz,$70CD
            70C8 | 7E       : ld   a,(hl)   // play sound
            70C9 | F6 80    : or   $80
            70CB | 18 05    : jr   $70D2
            70CD | FE FD    : cp   $FD
            70CF | 20 03    : jr   nz,$70D4
            70D1 | AF       : xor  a        // stop sound
            70D2 | D3 14    : out  ($14),a  // send sound code
            70D4 | 18 CD    : jr   $70A3
            -->
        </script>
        <script state="run">
            <output format="----- gardia 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@C300</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@004B = 018C            </action>
            <action>maincpu.oq@70A0 = BAAFBAAFBAAFBAAF</action>
            <action>maincpu.mq@70A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@70A8 = BEEBBEEBBEEBBEEB</action>
            <action>maincpu.mq@70A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@70B0 = BAAFBAAFBAAFBAAF</action>
            <action>maincpu.mq@70B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@70B8 = BEEBBEEBBEEBBEEB</action>
            <action>maincpu.mq@70B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@70C0 = BBBABBBABBBABBBA</action>
            <action>maincpu.mq@70C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@70C8 = EEBFEEBFEEBFEEBF</action>
            <action>maincpu.mq@70C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@70D0 = BBBABBBABBBABBBA</action>
            <action>maincpu.mq@70D0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
gardiaj.xml

Code: Select all

<!-- Gardia (Japan, 317-0006) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.ob@1E15 = C9</action>
        </script>
        <script state="off">
            <action>maincpu.ob@1E15 = D0</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@204B = A0</action> <!-- shot -->
            <action>maincpu.mb@21CD = 50</action> <!-- bomb -->
        </script>
        <script state="off">
            <action>maincpu.mb@204B = 20</action>
            <action>maincpu.mb@21CD = 10</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="on">
            <!-- y position -->
            <action>maincpu.od@5157 = 23FFFFCD</action>
            <action>maincpu.md@5157 = FF7080FF</action>
            <!-- x position -->
            <action>maincpu.od@5161 = C9FFFFCD</action>
            <action>maincpu.md@5161 = FF708EFF</action>
            <!-- calculation routine -->
            <action>maincpu.oq@7080 = FFFFF2FF3EFF28A7</action>
            <action>maincpu.mq@7080 = 708AFF00FF07FFFF</action>
            <action>maincpu.oq@7088 = 28A7C9FF77DD44ED</action>
            <action>maincpu.mq@7088 = FFFFFF10FFFFFFFF</action>
            <action>maincpu.oq@7090 = 44EDFFFFF2FF3EFF</action>
            <action>maincpu.mq@7090 = FFFF7098FF00FF07</action>
            <action>maincpu.oq@7098 = FFFFFFFFC9FF77DD</action>
            <action>maincpu.mq@7098 = FFFFFFFFFF12FFFF</action>
            <!--
            7080 | A7       : and  a          // y position
            7081 | 28 07    : jr   z,$708A
            7083 | 3E xx    : ld   a,$xx
            7085 | F2 8A 70 : jp   p,$708A
            7088 | ED 44    : neg
            708A | DD 77 10 : ld   (ix+$10),a
            708D | C9       : ret
            708E | A7       : and  a          // x position
            708F | 28 07    : jr   z,$7098
            7091 | 3E xx    : ld   a,$xx
            7093 | F2 98 70 : jp   p,$7098
            7096 | ED 44    : neg
            7098 | DD 77 12 : ld   (ix+$12),a
            709B | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@7084 = param + 1</action>
            <action>maincpu.mb@7092 = param    </action>
        </script>
        <script state="off">
            <action>maincpu.od@5157 = 231577DD        </action>
            <action>maincpu.md@5157 = 721037CC        </action>
            <action>maincpu.od@5161 = C90677DD        </action>
            <action>maincpu.md@5161 = 8C1223CC        </action>
            <action>maincpu.oq@7080 = BAAFBAAFBAAFBAAF</action>
            <action>maincpu.mq@7080 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@7088 = BEEBBEEBBEEBBEEB</action>
            <action>maincpu.mq@7088 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@7090 = BAAFBAAFBAAFBAAF</action>
            <action>maincpu.mq@7090 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@7098 = BEEBBEEBBEEBBEEB</action>
            <action>maincpu.mq@7098 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x04">01 (slow)</item>
            <item value="0x08">02       </item>
            <item value="0x10">03       </item>
            <item value="0x18">04       </item>
            <item value="0x20">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@2077 = param</action> <!-- normal -->
            <action>maincpu.mb@207C = param</action> <!-- power up -->
        </script>
        <script state="off">
            <action>maincpu.mb@2077 = 08</action>
            <action>maincpu.mb@207C = 10</action>
        </script>
    </cheat>

    <cheat desc="secret character finder">
        <script state="on">
            <action>maincpu.mb@5F77 = 79</action>
        </script>
        <script state="off">
            <action>maincpu.mb@5F77 = 99</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@004B = 70A0            </action>
            <action>maincpu.oq@70A0 = 2847B8FFDBFFFF21</action>
            <action>maincpu.mq@70A0 = FFFFFF00FFC300FF</action>
            <action>maincpu.oq@70A8 = FFFE35FF20FFFEFF</action>
            <action>maincpu.mq@70A8 = BFFFFF01FF7FFFFA</action>
            <action>maincpu.oq@70B0 = 3EFF20FFFE34FF20</action>
            <action>maincpu.mq@70B0 = FF04FFEFFFFF01FF</action>
            <action>maincpu.oq@70B8 = 3EFF20FFFEFF18FF</action>
            <action>maincpu.mq@70B8 = FF05FFDFFF06FFF0</action>
            <action>maincpu.oq@70C0 = FF20FFFE787786FF</action>
            <action>maincpu.mq@70C0 = 05FFFBFFFFFFFF10</action>
            <action>maincpu.oq@70C8 = 20FFFEFF18FFF67E</action>
            <action>maincpu.mq@70C8 = FFFDFF05FF80FFFF</action>
            <action>maincpu.oq@70D0 = FFFFFF18FFD3AFFF</action>
            <action>maincpu.mq@70D0 = FFFFCDFF14FFFF03</action>
            <!--
            70A0 | 21 00 C3 : ld   hl,$C300 // sound code address
            70A3 | DB 00    : in   a,($00)  // read input
            70A5 | B8       : cp   b
            70A6 | 47       : ld   b,a
            70A7 | 28 FA    : jr   z,$70A3
            70A9 | FE 7F    : cp   $7F
            70AB | 20 01    : jr   nz,$70AE
            70AD | 35       : dec  (hl)     // decrease code -01
            70AE | FE BF    : cp   $BF
            70B0 | 20 01    : jr   nz,$70B3
            70B2 | 34       : inc  (hl)     // increase code +01
            70B3 | FE EF    : cp   $EF
            70B5 | 20 04    : jr   nz,$70BB
            70B7 | 3E F0    : ld   a,$F0    // decrease code -10
            70B9 | 18 06    : jr   $70C1
            70BB | FE DF    : cp   $DF
            70BD | 20 05    : jr   nz,$70C4
            70BF | 3E 10    : ld   a,$10    // increase code +10
            70C1 | 86       : add  a,(hl)
            70C2 | 77       : ld   (hl),a
            70C3 | 78       : ld   a,b
            70C4 | FE FB    : cp   $FB
            70C6 | 20 05    : jr   nz,$70CD
            70C8 | 7E       : ld   a,(hl)   // play sound
            70C9 | F6 80    : or   $80
            70CB | 18 05    : jr   $70D2
            70CD | FE FD    : cp   $FD
            70CF | 20 03    : jr   nz,$70D4
            70D1 | AF       : xor  a        // stop sound
            70D2 | D3 14    : out  ($14),a  // send sound code
            70D4 | 18 CD    : jr   $70A3
            -->
        </script>
        <script state="run">
            <output format="----- gardia 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@C300</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@004B = 018C            </action>
            <action>maincpu.oq@70A0 = BAAFBAAFBAAFBAAF</action>
            <action>maincpu.mq@70A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@70A8 = BEEBBEEBBEEBBEEB</action>
            <action>maincpu.mq@70A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@70B0 = BAAFBAAFBAAFBAAF</action>
            <action>maincpu.mq@70B0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@70B8 = BEEBBEEBBEEBBEEB</action>
            <action>maincpu.mq@70B8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@70C0 = BBBABBBABBBABBBA</action>
            <action>maincpu.mq@70C0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@70C8 = EEBFEEBFEEBFEEBF</action>
            <action>maincpu.mq@70C8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@70D0 = BBBABBBABBBABBBA</action>
            <action>maincpu.mq@70D0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
Post Reply