[tharrier]+ Task Force Harrier

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

[tharrier]+ Task Force Harrier

Post by jman »

tharrier.xml

Code: Select all

<!-- Task Force Harrier -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@0BA0 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@0BA0 = 66</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mb@146F = 01</action> <!-- sidefighters (v-shot) -->
            <action>maincpu.mb@1565 = 01</action> <!-- sidefighters (missile) -->
            <action>maincpu.mb@16AF = 01</action> <!-- sidefighters (homing) -->
            <action>maincpu.mb@1941 = 01</action> <!-- player (shot) -->
            <action>maincpu.mb@1AB5 = 01</action> <!-- player (bomb I) -->
            <action>maincpu.mb@1B89 = 01</action> <!-- player (bomb II) -->
            <action>maincpu.mb@1C57 = 01</action> <!-- plaery (bomb III) -->
            <action>maincpu.mb@1DC5 = 01</action> <!-- player (bomb I) -->
            <action>maincpu.mb@1E99 = 01</action> <!-- player (bomb II) -->
            <action>maincpu.mb@1F67 = 01</action> <!-- player (bomb III) -->
        </script>
        <script state="off">
            <action>maincpu.mb@146F = 08</action>
            <action>maincpu.mb@1565 = 0A</action>
            <action>maincpu.mb@16AF = 06</action>
            <action>maincpu.mb@1941 = 06</action>
            <action>maincpu.mb@1AB5 =  B</action>
            <action>maincpu.mb@1B89 = 20</action>
            <action>maincpu.mb@1C57 =  B</action>
            <action>maincpu.mb@1DC5 =  B</action>
            <action>maincpu.mb@1E99 = 20</action>
            <action>maincpu.mb@1F67 =  B</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00028000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00068000">04       </item>
            <item value="0x00088000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@00D2E = 4EB900023E604E71</action>
            <action>maincpu.mq@23E60 = 223008000C6E00A2</action>
            <action>maincpu.mq@23E68 = 00486410263C0000</action>
            <action>maincpu.mq@23E70 = 00004A8167066A02</action>
            <action>maincpu.mq@23E78 = 4483220320300804</action>
            <action>maincpu.mq@23E80 = 0C6E00A200486410</action>
            <action>maincpu.mq@23E88 = 263C000000004A80</action>
            <action>maincpu.mq@23E90 = 67066A0244832003</action>
            <action>maincpu.mq@23E98 = 4E75000000000000</action>
            <!--
            23E60 | 2230 0800      : move.l  (A0,D0.l), D1    // y position
            23E64 | 0C6E 00A2 0048 : cmpi.w  #$a2, ($48,A6)   // check auto move flag
            23E6A | 6410           : bcc     $23e7c
            23E6C | 263C xxxx xxxx : move.l  #$xxxx, D3
            23E72 | 4A81           : tst.l   D1
            23E74 | 6706           : beq     $23e7c
            23E76 | 6A02           : bpl     $23e7a
            23E78 | 4483           : neg.l   D3
            23E7A | 2203           : move.l  D3, D1
            23E7C | 2030 0804      : move.l  ($4,A0,D0.l), D0 // x position
            23E80 | 0C6E 00A2 0048 : cmpi.w  #$a2, ($48,A6)   // check auto move flag
            23E86 | 6410           : bcc     $23e98
            23E88 | 263C xxxx xxxx : move.l  #$xxxx, D3
            23E8E | 4A80           : tst.l   D0
            23E90 | 6706           : beq     $23e98
            23E92 | 6A02           : bpl     $23e96
            23E94 | 4483           : neg.l   D3
            23E96 | 2003           : move.l  D3, D0
            23E98 | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@23E6E = param</action>
            <action>maincpu.md@23E8A = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@00D2E = 2230080020300804</action>
            <action>maincpu.mq@23E60 = 0000000000000000</action>
            <action>maincpu.mq@23E68 = 0000000000000000</action>
            <action>maincpu.mq@23E70 = 0000000000000000</action>
            <action>maincpu.mq@23E78 = 0000000000000000</action>
            <action>maincpu.mq@23E80 = 0000000000000000</action>
            <action>maincpu.mq@23E88 = 0000000000000000</action>
            <action>maincpu.mq@23E90 = 0000000000000000</action>
            <action>maincpu.mq@23E98 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter min="01" max="05" step="01" />
        <script state="on">
            <action>maincpu.mw@09D8 = F828            </action>
            <action>maincpu.mw@523C = AFC4            </action>
            <action>maincpu.mq@0200 = 7E002F074EB80EE6</action>
            <action>maincpu.mq@0208 = 2E1F51CFFFF64E75</action>
            <!--
            0200 | 7Exx      : moveq   #$xx, D7
            0202 | 2F07      : move.l  D7, -(A7)
            0204 | 4EB8 0EE6 : jsr     $ee6.w
            0208 | 2E1F      : move.l  (A7)+, D7
            020A | 51CF FFF6 : dbra    D7, $202
            020E | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@0201 = param - 1</action>
        </script>
        <script state="off">
            <action>maincpu.mw@09D8 = 050E            </action>
            <action>maincpu.mw@523C = BCAA            </action>
            <action>maincpu.mq@0200 = 0000000000000000</action>
            <action>maincpu.mq@0208 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <action>maincpu.mb@0F12 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@0F12 = 67</action>
        </script>
    </cheat>

    <cheat desc="shot breaks ground enemy (test)">
        <script state="on">
            <action>maincpu.mw@3C24 = 0002</action>
        </script>
        <script state="off">
            <action>maincpu.mw@3C24 = 0102</action>
        </script>
    </cheat>

    <cheat desc="auto damage">
        <script state="on">
            <action>maincpu.mq@03B8C = 4EB900023EF04E71</action>
            <action>maincpu.mq@03C40 = 4EB900023EF04E71</action>
            <action>maincpu.mq@23EF0 = 302E00100C4002E8</action>
            <action>maincpu.mq@23EF8 = 62240C400200631E</action>
            <action>maincpu.mq@23F00 = 302E00140C4002E0</action>
            <action>maincpu.mq@23F08 = 62140C4001F8630E</action>
            <action>maincpu.mq@23F10 = 3D7C0008000C586E</action>
            <action>maincpu.mq@23F18 = 002A08D600073A2E</action>
            <action>maincpu.mq@23F20 = 0040382E00424E75</action>
            <!--
            23EF0 | 302E 0010      : move.w  ($10,A6), D0 // check y position
            23EF4 | 0C40 02E8      : cmpi.w  #$2e8, D0
            23EF8 | 6224           : bhi     $23f1e
            23EFA | 0C40 0200      : cmpi.w  #$200, D0
            23EFE | 631E           : bls     $23f1e
            23F00 | 302E 0014      : move.w  ($14,A6), D0 // check x position
            23F04 | 0C40 02E0      : cmpi.w  #$2e0, D0
            23F08 | 6214           : bhi     $23f1e
            23F0A | 0C40 01F8      : cmpi.w  #$1f8, D0
            23F0E | 630E           : bls     $23f1e
            23F10 | 3D7C 0008 000C : move.w  #$8, ($c,A6) // set flags
            23F16 | 586E 002A      : addq.w  #4, ($2a,A6)
            23F1A | 08D6 0007      : bset    #$7, (A6)
            23F1E | 3A2E 0040      : move.w  ($40,A6), D5
            23F22 | 382E 0042      : move.w  ($42,A6), D4
            23F26 | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@03B8C = 3A2E0040382E0042</action>
            <action>maincpu.mq@03C40 = 3A2E0040382E0042</action>
            <action>maincpu.mq@23EF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@23EF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@23F00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@23F08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@23F10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@23F18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@23F20 = FFFFFFFFFFFFFFFF</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@00422 = 60              </action> <!-- disable "stop" opcode after soft reset -->
            <action>maincpu.mq@04CB4 = 4EF900023EA06100</action>
            <action>maincpu.mq@23EA0 = 41F9000F000043F9</action>
            <action>maincpu.mq@23EA8 = 0008001F12001029</action>
            <action>maincpu.mq@23EB0 = 01E4B20067F60C00</action>
            <action>maincpu.mq@23EB8 = 0010660253100C00</action>
            <action>maincpu.mq@23EC0 = 0008660252100C00</action>
            <action>maincpu.mq@23EC8 = 0020660404100010</action>
            <action>maincpu.mq@23ED0 = 0C00004066040610</action>
            <action>maincpu.mq@23ED8 = 00100C0000026602</action>
            <action>maincpu.mq@23EE0 = 12900C0000046602</action>
            <action>maincpu.mq@23EE8 = 421160C000000000</action>
            <!--
            23EA0 | 41F9 000F 0000 : lea     $f0000.l, A0  // sound code address
            23EA6 | 43F9 0008 001F : lea     $8001f.l, A1  // sound latch address
            23EAC | 1200           : move.b  D0, D1
            23EAE | 1029 01E4      : move.b  ($1e4,A1), D0 // read input ($80203)
            23EB2 | B200           : cmp.b   D0, D1
            23EB4 | 67F6           : beq     $23eac
            23EB6 | 0C00 0010      : cmpi.b  #$10, D0
            23EBA | 6602           : bne     $23ebe
            23EBC | 5310           : subq.b  #1, (A0)      // decrease code -01
            23EBE | 0C00 0008      : cmpi.b  #$8, D0
            23EC2 | 6602           : bne     $23ec6
            23EC4 | 5210           : addq.b  #1, (A0)      // increase code +01
            23EC6 | 0C00 0020      : cmpi.b  #$20, D0
            23ECA | 6604           : bne     $23ed0
            23ECC | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            23ED0 | 0C00 0040      : cmpi.b  #$40, D0
            23ED4 | 6604           : bne     $23eda
            23ED6 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            23EDA | 0C00 0002      : cmpi.b  #$2, D0
            23EDE | 6602           : bne     $23ee2
            23EE0 | 1290           : move.b  (A0), (A1)    // play sound
            23EE2 | 0C00 0004      : cmpi.b  #$4, D0
            23EE6 | 6602           : bne     $23eea
            23EE8 | 4211           : clr.b   (A1)          // stop sound
            23EEA | 60C0           : bra     $23eac
            -->
            <!-- stop music and sfx at the same time -->
            <action>audiocpu.md@0109 = 000E10CD        </action>
            <action>audiocpu.mq@0E10 = E03EC0A721AE21DD</action>
            <action>audiocpu.mq@0E18 = FFC9AFC10D01CDC5</action>
            <!--
            0E10 | DD 21 AE 21 : ld   ix,$21AE
            0E14 | A7          : and  a
            0E15 | C0          : ret  nz
            0E16 | 3E E0       : ld   a,$E0
            0E18 | C5          : push bc
            0E19 | CD 01 0D    : call $0D01
            0E1C | C1          : pop  bc
            0E1D | AF          : xor  a
            0E1E | C9          : ret
            -->
        </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@F0000</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mb@00422 = 67              </action>
            <action> maincpu.mq@04CB4 = 007C070070136100</action>
            <action> maincpu.mq@23EA0 = 0000000000000000</action>
            <action> maincpu.mq@23EA8 = 0000000000000000</action>
            <action> maincpu.mq@23EB0 = 0000000000000000</action>
            <action> maincpu.mq@23EB8 = 0000000000000000</action>
            <action> maincpu.mq@23EC0 = 0000000000000000</action>
            <action> maincpu.mq@23EC8 = 0000000000000000</action>
            <action> maincpu.mq@23ED0 = 0000000000000000</action>
            <action> maincpu.mq@23ED8 = 0000000000000000</action>
            <action> maincpu.mq@23EE0 = 0000000000000000</action>
            <action> maincpu.mq@23EE8 = 0000000000000000</action>
            <action>audiocpu.md@00109 = 21AE21DD        </action>
            <action>audiocpu.mq@00E10 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@00E18 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.mw@4CAE = 2052</action>
        </script>
        <script state="off">
            <action>maincpu.mw@4CAE = 2054</action>
        </script>
    </cheat>

</mamecheat>
tharrieru.xml

Code: Select all

<!-- Task Force Harrier (US) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@0BB4 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@0BB4 = 66</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mb@1483 = 01</action> <!-- sidefighters (v-shot) -->
            <action>maincpu.mb@1579 = 01</action> <!-- sidefighters (missile) -->
            <action>maincpu.mb@16C3 = 01</action> <!-- sidefighters (homing) -->
            <action>maincpu.mb@1955 = 01</action> <!-- player (shot) -->
            <action>maincpu.mb@1AC9 = 01</action> <!-- player (bomb I) -->
            <action>maincpu.mb@1B9D = 01</action> <!-- player (bomb II) -->
            <action>maincpu.mb@1C6B = 01</action> <!-- plaery (bomb III) -->
            <action>maincpu.mb@1DD9 = 01</action> <!-- player (bomb I) -->
            <action>maincpu.mb@1EAD = 01</action> <!-- player (bomb II) -->
            <action>maincpu.mb@1F7B = 01</action> <!-- player (bomb III) -->
        </script>
        <script state="off">
            <action>maincpu.mb@1483 = 08</action>
            <action>maincpu.mb@1579 = 0A</action>
            <action>maincpu.mb@16C3 = 06</action>
            <action>maincpu.mb@1955 = 06</action>
            <action>maincpu.mb@1AC9 =  B</action>
            <action>maincpu.mb@1B9D = 20</action>
            <action>maincpu.mb@1C6B =  B</action>
            <action>maincpu.mb@1DD9 =  B</action>
            <action>maincpu.mb@1EAE = 20</action>
            <action>maincpu.mb@1F7B =  B</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00028000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00068000">04       </item>
            <item value="0x00088000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@00D42 = 4EB900023E604E71</action>
            <action>maincpu.mq@23E60 = 223008000C6E00A2</action>
            <action>maincpu.mq@23E68 = 00486410263C0000</action>
            <action>maincpu.mq@23E70 = 00004A8167066A02</action>
            <action>maincpu.mq@23E78 = 4483220320300804</action>
            <action>maincpu.mq@23E80 = 0C6E00A200486410</action>
            <action>maincpu.mq@23E88 = 263C000000004A80</action>
            <action>maincpu.mq@23E90 = 67066A0244832003</action>
            <action>maincpu.mq@23E98 = 4E75000000000000</action>
            <!--
            23E60 | 2230 0800      : move.l  (A0,D0.l), D1    // y position
            23E64 | 0C6E 00A2 0048 : cmpi.w  #$a2, ($48,A6)   // check auto move flag
            23E6A | 6410           : bcc     $23e7c
            23E6C | 263C xxxx xxxx : move.l  #$xxxx, D3
            23E72 | 4A81           : tst.l   D1
            23E74 | 6706           : beq     $23e7c
            23E76 | 6A02           : bpl     $23e7a
            23E78 | 4483           : neg.l   D3
            23E7A | 2203           : move.l  D3, D1
            23E7C | 2030 0804      : move.l  ($4,A0,D0.l), D0 // x position
            23E80 | 0C6E 00A2 0048 : cmpi.w  #$a2, ($48,A6)   // check auto move flag
            23E86 | 6410           : bcc     $23e98
            23E88 | 263C xxxx xxxx : move.l  #$xxxx, D3
            23E8E | 4A80           : tst.l   D0
            23E90 | 6706           : beq     $23e98
            23E92 | 6A02           : bpl     $23e96
            23E94 | 4483           : neg.l   D3
            23E96 | 2003           : move.l  D3, D0
            23E98 | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@23E6E = param</action>
            <action>maincpu.md@23E8A = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@00D42 = 2230080020300804</action>
            <action>maincpu.mq@23E60 = 0000000000000000</action>
            <action>maincpu.mq@23E68 = 0000000000000000</action>
            <action>maincpu.mq@23E70 = 0000000000000000</action>
            <action>maincpu.mq@23E78 = 0000000000000000</action>
            <action>maincpu.mq@23E80 = 0000000000000000</action>
            <action>maincpu.mq@23E88 = 0000000000000000</action>
            <action>maincpu.mq@23E90 = 0000000000000000</action>
            <action>maincpu.mq@23E98 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter min="01" max="05" step="01" />
        <script state="on">
            <action>maincpu.mw@09D8 = F828            </action>
            <action>maincpu.mw@526A = AF94            </action>
            <action>maincpu.mq@0200 = 7E002F074EB80EFA</action>
            <action>maincpu.mq@0208 = 2E1F51CFFFF64E75</action>
            <!--
            0200 | 7Exx      : moveq   #$xx, D7
            0202 | 2F07      : move.l  D7, -(A7)
            0204 | 4EB8 0EFA : jsr     $efa.w
            0208 | 2E1F      : move.l  (A7)+, D7
            020A | 51CF FFF6 : dbra    D7, $202
            020E | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@0201 = param - 1</action>
        </script>
        <script state="off">
            <action>maincpu.mw@09D8 = 0522            </action>
            <action>maincpu.mw@526A = BC90            </action>
            <action>maincpu.mq@0200 = 0000000000000000</action>
            <action>maincpu.mq@0208 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <action>maincpu.mb@0F26 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@0F26 = 67</action>
        </script>
    </cheat>

    <cheat desc="shot breaks ground enemy (test)">
        <script state="on">
            <action>maincpu.mw@3C38 = 0002</action>
        </script>
        <script state="off">
            <action>maincpu.mw@3C38 = 0102</action>
        </script>
    </cheat>

    <cheat desc="auto damage">
        <script state="on">
            <action>maincpu.mq@03BA0 = 4EB900023EF04E71</action>
            <action>maincpu.mq@03C54 = 4EB900023EF04E71</action>
            <action>maincpu.mq@23EF0 = 302E00100C4002E8</action>
            <action>maincpu.mq@23EF8 = 62240C400200631E</action>
            <action>maincpu.mq@23F00 = 302E00140C4002E0</action>
            <action>maincpu.mq@23F08 = 62140C4001F8630E</action>
            <action>maincpu.mq@23F10 = 3D7C0008000C586E</action>
            <action>maincpu.mq@23F18 = 002A08D600073A2E</action>
            <action>maincpu.mq@23F20 = 0040382E00424E75</action>
            <!--
            23EF0 | 302E 0010      : move.w  ($10,A6), D0 // check y position
            23EF4 | 0C40 02E8      : cmpi.w  #$2e8, D0
            23EF8 | 6224           : bhi     $23f1e
            23EFA | 0C40 0200      : cmpi.w  #$200, D0
            23EFE | 631E           : bls     $23f1e
            23F00 | 302E 0014      : move.w  ($14,A6), D0 // check x position
            23F04 | 0C40 02E0      : cmpi.w  #$2e0, D0
            23F08 | 6214           : bhi     $23f1e
            23F0A | 0C40 01F8      : cmpi.w  #$1f8, D0
            23F0E | 630E           : bls     $23f1e
            23F10 | 3D7C 0008 000C : move.w  #$8, ($c,A6) // set flags
            23F16 | 586E 002A      : addq.w  #4, ($2a,A6)
            23F1A | 08D6 0007      : bset    #$7, (A6)
            23F1E | 3A2E 0040      : move.w  ($40,A6), D5
            23F22 | 382E 0042      : move.w  ($42,A6), D4
            23F26 | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@03BA0 = 3A2E0040382E0042</action>
            <action>maincpu.mq@03C54 = 3A2E0040382E0042</action>
            <action>maincpu.mq@23EF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@23EF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@23F00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@23F08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@23F10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@23F18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@23F20 = FFFFFFFFFFFFFFFF</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@00422 = 60              </action> <!-- disable "stop" opcode after soft reset -->
            <action>maincpu.mq@04CD4 = 4EF900023EA06100</action>
            <action>maincpu.mq@23EA0 = 41F9000F000043F9</action>
            <action>maincpu.mq@23EA8 = 0008001F12001029</action>
            <action>maincpu.mq@23EB0 = 01E4B20067F60C00</action>
            <action>maincpu.mq@23EB8 = 0010660253100C00</action>
            <action>maincpu.mq@23EC0 = 0008660252100C00</action>
            <action>maincpu.mq@23EC8 = 0020660404100010</action>
            <action>maincpu.mq@23ED0 = 0C00004066040610</action>
            <action>maincpu.mq@23ED8 = 00100C0000026602</action>
            <action>maincpu.mq@23EE0 = 12900C0000046602</action>
            <action>maincpu.mq@23EE8 = 421160C000000000</action>
            <!--
            23EA0 | 41F9 000F 0000 : lea     $f0000.l, A0  // sound code address
            23EA6 | 43F9 0008 001F : lea     $8001f.l, A1  // sound latch address
            23EAC | 1200           : move.b  D0, D1
            23EAE | 1029 01E4      : move.b  ($1e4,A1), D0 // read input ($80203)
            23EB2 | B200           : cmp.b   D0, D1
            23EB4 | 67F6           : beq     $23eac
            23EB6 | 0C00 0010      : cmpi.b  #$10, D0
            23EBA | 6602           : bne     $23ebe
            23EBC | 5310           : subq.b  #1, (A0)      // decrease code -01
            23EBE | 0C00 0008      : cmpi.b  #$8, D0
            23EC2 | 6602           : bne     $23ec6
            23EC4 | 5210           : addq.b  #1, (A0)      // increase code +01
            23EC6 | 0C00 0020      : cmpi.b  #$20, D0
            23ECA | 6604           : bne     $23ed0
            23ECC | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            23ED0 | 0C00 0040      : cmpi.b  #$40, D0
            23ED4 | 6604           : bne     $23eda
            23ED6 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            23EDA | 0C00 0002      : cmpi.b  #$2, D0
            23EDE | 6602           : bne     $23ee2
            23EE0 | 1290           : move.b  (A0), (A1)    // play sound
            23EE2 | 0C00 0004      : cmpi.b  #$4, D0
            23EE6 | 6602           : bne     $23eea
            23EE8 | 4211           : clr.b   (A1)          // stop sound
            23EEA | 60C0           : bra     $23eac
            -->
            <!-- stop music and sfx at the same time -->
            <action>audiocpu.md@0109 = 000E10CD        </action>
            <action>audiocpu.mq@0E10 = E03EC0A721AE21DD</action>
            <action>audiocpu.mq@0E18 = FFC9AFC10D01CDC5</action>
            <!--
            0E10 | DD 21 AE 21 : ld   ix,$21AE
            0E14 | A7          : and  a
            0E15 | C0          : ret  nz
            0E16 | 3E E0       : ld   a,$E0
            0E18 | C5          : push bc
            0E19 | CD 01 0D    : call $0D01
            0E1C | C1          : pop  bc
            0E1D | AF          : xor  a
            0E1E | C9          : ret
            -->
        </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@F0000</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mb@00422 = 67              </action>
            <action> maincpu.mq@04CD4 = 007C070070136100</action>
            <action> maincpu.mq@23EA0 = 0000000000000000</action>
            <action> maincpu.mq@23EA8 = 0000000000000000</action>
            <action> maincpu.mq@23EB0 = 0000000000000000</action>
            <action> maincpu.mq@23EB8 = 0000000000000000</action>
            <action> maincpu.mq@23EC0 = 0000000000000000</action>
            <action> maincpu.mq@23EC8 = 0000000000000000</action>
            <action> maincpu.mq@23ED0 = 0000000000000000</action>
            <action> maincpu.mq@23ED8 = 0000000000000000</action>
            <action> maincpu.mq@23EE0 = 0000000000000000</action>
            <action> maincpu.mq@23EE8 = 0000000000000000</action>
            <action>audiocpu.md@00109 = 21AE21DD        </action>
            <action>audiocpu.mq@00E10 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@00E18 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.mw@4CCE = 208A</action>
        </script>
        <script state="off">
            <action>maincpu.mw@4CCE = 208C</action>
        </script>
    </cheat>

</mamecheat>
tharrierb.xml

Code: Select all

<!-- Task Force Harrier (Lettering bootleg) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@0BA0 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@0BA0 = 66</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mb@146F = 01</action> <!-- sidefighters (v-shot) -->
            <action>maincpu.mb@1565 = 01</action> <!-- sidefighters (missile) -->
            <action>maincpu.mb@16AF = 01</action> <!-- sidefighters (homing) -->
            <action>maincpu.mb@1941 = 01</action> <!-- player (shot) -->
            <action>maincpu.mb@1AB5 = 01</action> <!-- player (bomb I) -->
            <action>maincpu.mb@1B89 = 01</action> <!-- player (bomb II) -->
            <action>maincpu.mb@1C57 = 01</action> <!-- plaery (bomb III) -->
            <action>maincpu.mb@1DC5 = 01</action> <!-- player (bomb I) -->
            <action>maincpu.mb@1E99 = 01</action> <!-- player (bomb II) -->
            <action>maincpu.mb@1F67 = 01</action> <!-- player (bomb III) -->
        </script>
        <script state="off">
            <action>maincpu.mb@146F = 08</action>
            <action>maincpu.mb@1565 = 0A</action>
            <action>maincpu.mb@16AF = 06</action>
            <action>maincpu.mb@1941 = 06</action>
            <action>maincpu.mb@1AB5 =  B</action>
            <action>maincpu.mb@1B89 = 20</action>
            <action>maincpu.mb@1C57 =  B</action>
            <action>maincpu.mb@1DC5 =  B</action>
            <action>maincpu.mb@1E99 = 20</action>
            <action>maincpu.mb@1F67 =  B</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00028000">02       </item>
            <item value="0x00048000">03       </item>
            <item value="0x00068000">04       </item>
            <item value="0x00088000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@00D2E = 4EB900023E604E71</action>
            <action>maincpu.mq@23E60 = 223008000C6E00A2</action>
            <action>maincpu.mq@23E68 = 00486410263C0000</action>
            <action>maincpu.mq@23E70 = 00004A8167066A02</action>
            <action>maincpu.mq@23E78 = 4483220320300804</action>
            <action>maincpu.mq@23E80 = 0C6E00A200486410</action>
            <action>maincpu.mq@23E88 = 263C000000004A80</action>
            <action>maincpu.mq@23E90 = 67066A0244832003</action>
            <action>maincpu.mq@23E98 = 4E75000000000000</action>
            <!--
            23E60 | 2230 0800      : move.l  (A0,D0.l), D1    // y position
            23E64 | 0C6E 00A2 0048 : cmpi.w  #$a2, ($48,A6)   // check auto move flag
            23E6A | 6410           : bcc     $23e7c
            23E6C | 263C xxxx xxxx : move.l  #$xxxx, D3
            23E72 | 4A81           : tst.l   D1
            23E74 | 6706           : beq     $23e7c
            23E76 | 6A02           : bpl     $23e7a
            23E78 | 4483           : neg.l   D3
            23E7A | 2203           : move.l  D3, D1
            23E7C | 2030 0804      : move.l  ($4,A0,D0.l), D0 // x position
            23E80 | 0C6E 00A2 0048 : cmpi.w  #$a2, ($48,A6)   // check auto move flag
            23E86 | 6410           : bcc     $23e98
            23E88 | 263C xxxx xxxx : move.l  #$xxxx, D3
            23E8E | 4A80           : tst.l   D0
            23E90 | 6706           : beq     $23e98
            23E92 | 6A02           : bpl     $23e96
            23E94 | 4483           : neg.l   D3
            23E96 | 2003           : move.l  D3, D0
            23E98 | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@23E6E = param</action>
            <action>maincpu.md@23E8A = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@00D2E = 2230080020300804</action>
            <action>maincpu.mq@23E60 = 0000000000000000</action>
            <action>maincpu.mq@23E68 = 0000000000000000</action>
            <action>maincpu.mq@23E70 = 0000000000000000</action>
            <action>maincpu.mq@23E78 = 0000000000000000</action>
            <action>maincpu.mq@23E80 = 0000000000000000</action>
            <action>maincpu.mq@23E88 = 0000000000000000</action>
            <action>maincpu.mq@23E90 = 0000000000000000</action>
            <action>maincpu.mq@23E98 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter min="01" max="05" step="01" />
        <script state="on">
            <action>maincpu.mw@09D8 = F828            </action>
            <action>maincpu.mw@523C = AFC4            </action>
            <action>maincpu.mq@0200 = 7E002F074EB80EE6</action>
            <action>maincpu.mq@0208 = 2E1F51CFFFF64E75</action>
            <!--
            0200 | 7Exx      : moveq   #$xx, D7
            0202 | 2F07      : move.l  D7, -(A7)
            0204 | 4EB8 0EE6 : jsr     $ee6.w
            0208 | 2E1F      : move.l  (A7)+, D7
            020A | 51CF FFF6 : dbra    D7, $202
            020E | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@0201 = param - 1</action>
        </script>
        <script state="off">
            <action>maincpu.mw@09D8 = 050E            </action>
            <action>maincpu.mw@523C = BCAA            </action>
            <action>maincpu.mq@0200 = 0000000000000000</action>
            <action>maincpu.mq@0208 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <action>maincpu.mb@0F12 = 60</action>
        </script>
        <script state="off">
            <action>maincpu.mb@0F12 = 67</action>
        </script>
    </cheat>

    <cheat desc="shot breaks ground enemy (test)">
        <script state="on">
            <action>maincpu.mw@3C24 = 0002</action>
        </script>
        <script state="off">
            <action>maincpu.mw@3C24 = 0102</action>
        </script>
    </cheat>

    <cheat desc="auto damage">
        <script state="on">
            <action>maincpu.mq@03B8C = 4EB900023EF04E71</action>
            <action>maincpu.mq@03C40 = 4EB900023EF04E71</action>
            <action>maincpu.mq@23EF0 = 302E00100C4002E8</action>
            <action>maincpu.mq@23EF8 = 62240C400200631E</action>
            <action>maincpu.mq@23F00 = 302E00140C4002E0</action>
            <action>maincpu.mq@23F08 = 62140C4001F8630E</action>
            <action>maincpu.mq@23F10 = 3D7C0008000C586E</action>
            <action>maincpu.mq@23F18 = 002A08D600073A2E</action>
            <action>maincpu.mq@23F20 = 0040382E00424E75</action>
            <!--
            23EF0 | 302E 0010      : move.w  ($10,A6), D0 // check y position
            23EF4 | 0C40 02E8      : cmpi.w  #$2e8, D0
            23EF8 | 6224           : bhi     $23f1e
            23EFA | 0C40 0200      : cmpi.w  #$200, D0
            23EFE | 631E           : bls     $23f1e
            23F00 | 302E 0014      : move.w  ($14,A6), D0 // check x position
            23F04 | 0C40 02E0      : cmpi.w  #$2e0, D0
            23F08 | 6214           : bhi     $23f1e
            23F0A | 0C40 01F8      : cmpi.w  #$1f8, D0
            23F0E | 630E           : bls     $23f1e
            23F10 | 3D7C 0008 000C : move.w  #$8, ($c,A6) // set flags
            23F16 | 586E 002A      : addq.w  #4, ($2a,A6)
            23F1A | 08D6 0007      : bset    #$7, (A6)
            23F1E | 3A2E 0040      : move.w  ($40,A6), D5
            23F22 | 382E 0042      : move.w  ($42,A6), D4
            23F26 | 4E75           : rts
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@03B8C = 3A2E0040382E0042</action>
            <action>maincpu.mq@03C40 = 3A2E0040382E0042</action>
            <action>maincpu.mq@23EF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@23EF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@23F00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@23F08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@23F10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@23F18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@23F20 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="unlock test mode">
        <comment>reset the game (F3) to enter test mode</comment>
        <script state="on">
            <action>maincpu.mw@4CAE = 279C</action>
        </script>
        <script state="off">
            <action>maincpu.mw@4CAE = 2054</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@00422 = 60              </action> <!-- disable "stop" opcode after soft reset -->
            <action>maincpu.mq@04CB4 = 4EF900023EA06100</action>
            <action>maincpu.mq@23EA0 = 41F9000F000043F9</action>
            <action>maincpu.mq@23EA8 = 0008001F12001029</action>
            <action>maincpu.mq@23EB0 = 01E4B20067F60C00</action>
            <action>maincpu.mq@23EB8 = 0010660253100C00</action>
            <action>maincpu.mq@23EC0 = 0008660252100C00</action>
            <action>maincpu.mq@23EC8 = 0020660404100010</action>
            <action>maincpu.mq@23ED0 = 0C00004066040610</action>
            <action>maincpu.mq@23ED8 = 00100C0000026602</action>
            <action>maincpu.mq@23EE0 = 12900C0000046602</action>
            <action>maincpu.mq@23EE8 = 421160C000000000</action>
            <!--
            23EA0 | 41F9 000F 0000 : lea     $f0000.l, A0  // sound code address
            23EA6 | 43F9 0008 001F : lea     $8001f.l, A1  // sound latch address
            23EAC | 1200           : move.b  D0, D1
            23EAE | 1029 01E4      : move.b  ($1e4,A1), D0 // read input ($80203)
            23EB2 | B200           : cmp.b   D0, D1
            23EB4 | 67F6           : beq     $23eac
            23EB6 | 0C00 0010      : cmpi.b  #$10, D0
            23EBA | 6602           : bne     $23ebe
            23EBC | 5310           : subq.b  #1, (A0)      // decrease code -01
            23EBE | 0C00 0008      : cmpi.b  #$8, D0
            23EC2 | 6602           : bne     $23ec6
            23EC4 | 5210           : addq.b  #1, (A0)      // increase code +01
            23EC6 | 0C00 0020      : cmpi.b  #$20, D0
            23ECA | 6604           : bne     $23ed0
            23ECC | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            23ED0 | 0C00 0040      : cmpi.b  #$40, D0
            23ED4 | 6604           : bne     $23eda
            23ED6 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            23EDA | 0C00 0002      : cmpi.b  #$2, D0
            23EDE | 6602           : bne     $23ee2
            23EE0 | 1290           : move.b  (A0), (A1)    // play sound
            23EE2 | 0C00 0004      : cmpi.b  #$4, D0
            23EE6 | 6602           : bne     $23eea
            23EE8 | 4211           : clr.b   (A1)          // stop sound
            23EEA | 60C0           : bra     $23eac
            -->
            <!-- stop music and sfx at the same time -->
            <action>audiocpu.md@0109 = 000E10CD        </action>
            <action>audiocpu.mq@0E10 = E03EC0A721AE21DD</action>
            <action>audiocpu.mq@0E18 = FFC9AFC10D01CDC5</action>
            <!--
            0E10 | DD 21 AE 21 : ld   ix,$21AE
            0E14 | A7          : and  a
            0E15 | C0          : ret  nz
            0E16 | 3E E0       : ld   a,$E0
            0E18 | C5          : push bc
            0E19 | CD 01 0D    : call $0D01
            0E1C | C1          : pop  bc
            0E1D | AF          : xor  a
            0E1E | C9          : ret
            -->
        </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@F0000</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mb@00422 = 67              </action>
            <action> maincpu.mq@04CB4 = 007C070070136100</action>
            <action> maincpu.mq@23EA0 = 0000000000000000</action>
            <action> maincpu.mq@23EA8 = 0000000000000000</action>
            <action> maincpu.mq@23EB0 = 0000000000000000</action>
            <action> maincpu.mq@23EB8 = 0000000000000000</action>
            <action> maincpu.mq@23EC0 = 0000000000000000</action>
            <action> maincpu.mq@23EC8 = 0000000000000000</action>
            <action> maincpu.mq@23ED0 = 0000000000000000</action>
            <action> maincpu.mq@23ED8 = 0000000000000000</action>
            <action> maincpu.mq@23EE0 = 0000000000000000</action>
            <action> maincpu.mq@23EE8 = 0000000000000000</action>
            <action>audiocpu.md@00109 = 21AE21DD        </action>
            <action>audiocpu.mq@00E10 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@00E18 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.mw@4CAE = 2052</action>
        </script>
        <script state="off">
            <action>maincpu.mw@4CAE = 2054</action>
        </script>
    </cheat>

</mamecheat>
  • "shot breaks ground enemy" : Some objects (tree in level 3 etc) are "unbreakable" and cut off player's bullet.
  • "auto damage" : You damage/kill an enemy automatically without bullet hit but point is always added to player 1.
  • "unlock test mode" : tharrierb only. No response in other sets.
  • "skip rom check" : ROM check for this game is unique. The checker searches "0x4E71" (NOP) value in ROM insted of checksum. Unfortunately, "player speed" and "auto damage" codes use "NOP".
jman

my wip cheat database back-up (2024/12/01 ver.)
https://u3.getuploader.com/...../download/47
downloadpass : jman2020
Post Reply