[rescue]+ Rescue

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

[rescue]+ Rescue

Post by jman »

rescue.xml

Code: Select all

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

    <cheat desc="no hit - player">
        <script state="on">
            <!-- objects -->
            <action>maincpu.md@160A = E65000CD        </action>
            <action>maincpu.mq@5000 = AF02280CE60C7EFD</action>
            <action>maincpu.mq@5008 = 000000C9007EFDC9</action>
            <!--
            5000 | FD 7E 0C : ld   a,(iy+$0c)
            5003 | E6 0C    : and  $0C
            5005 | 28 02    : jr   z,$5009
            5007 | AF       : xor  a
            5008 | C9       : ret
            5009 | FD 7E 00 : ld   a,(iy+$00)
            500C | C9       : ret
            -->
            <!-- water (bonus mission) -->
            <action>maincpu.mq@3B66 = 023054FE063850FE</action>
            <action>maincpu.mq@3B6E = 0000003A72C30818</action>
            <!--
            3B66 | FE 50    : cp   $50
            3B68 | 38 06    : jr   c,$3B70
            3B6A | FE 54    : cp   $54
            3B6C | 30 02    : jr   nc,$3B70
            3B6E | 18 08    : jr   $3B78
            3B70 | C3 72 3A : jp   $3A72
            3B73 | 00       : nop
            3B74 | 00       : nop
            3B75 | 00       : nop
            -->
            <!-- water -->
            <action>maincpu.mq@46BE = 023054FE063850FE</action>
            <action>maincpu.mq@46C6 = 00000045C1C30818</action>
            <!--
            46BE | FE 50    : cp   $50
            46C0 | 38 06    : jr   c,$46C8
            46C2 | FE 54    : cp   $54
            46C4 | 30 02    : jr   nc,$46C8
            46C6 | 18 08    : jr   $46D0
            46C8 | C3 C1 45 : jp   $45C1
            46CB | 00       : nop
            46CC | 00       : nop
            46CD | 00       : nop
            -->
        </script>
        <script state="off">
            <action>maincpu.md@160A = E6007EFD        </action>
            <action>maincpu.mq@5000 = 0000000000000000</action>
            <action>maincpu.mq@5008 = 0000000000000000</action>
            <action>maincpu.mq@3B66 = 0A2851FE0E2850FE</action>
            <action>maincpu.mq@3B6E = 022853FE062852FE</action>
            <action>maincpu.mq@46BE = 0A2851FE0E2850FE</action>
            <action>maincpu.mq@46C6 = 022853FE062852FE</action>
        </script>
    </cheat>

    <cheat desc="no hit - people">
        <script state="on">
            <action>maincpu.mb@2A33 = C9</action> <!-- objects -->
            <action>maincpu.mb@2B16 = 86</action> <!-- helicopter -->
            <action>maincpu.mb@2B18 = 1A</action> <!-- helicopter -->
        </script>
        <script state="off">
            <action>maincpu.mb@2A33 = D8</action>
            <action>maincpu.mb@2B16 = 46</action>
            <action>maincpu.mb@2B18 = 3A</action>
        </script>
    </cheat>

    <cheat desc="fire speed up">
        <script state="on">
            <action>maincpu.mb@467C = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@467C = 06</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0010">02       </item>
            <item value="0x0018">03       </item>
            <item value="0x0020">04       </item>
            <item value="0x0028">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@25BD = -param</action> <!-- up -->
            <action>maincpu.mw@25DB =  param</action> <!-- upper-right : right -->
            <action>maincpu.mw@25DD = -param</action> <!-- upper-right : up -->
            <action>maincpu.mw@25FB =  param</action> <!-- right -->
            <action>maincpu.mw@261B =  param</action> <!-- lower-right : right -->
            <action>maincpu.mw@261D =  param</action> <!-- lower-right : down -->
            <action>maincpu.mw@263D =  param</action> <!-- down -->
            <action>maincpu.mw@265B = -param</action> <!-- lower-left : left -->
            <action>maincpu.mw@265D =  param</action> <!-- lower-left : down -->
            <action>maincpu.mw@267B = -param</action> <!-- left -->
            <action>maincpu.mw@269B = -param</action> <!-- upper-left : left -->
            <action>maincpu.mw@269D = -param</action> <!-- upper-left : up -->
        </script>
        <script state="off">
            <action>maincpu.mw@25BD = FFF0</action>
            <action>maincpu.mw@25DB = 000B</action>
            <action>maincpu.mw@25DD = FFF5</action>
            <action>maincpu.mw@25FB = 0010</action>
            <action>maincpu.mw@261B = 000B</action>
            <action>maincpu.mw@261D = 000B</action>
            <action>maincpu.mw@263D = 0010</action>
            <action>maincpu.mw@265B = FFF5</action>
            <action>maincpu.mw@265D = 000B</action>
            <action>maincpu.mw@267B = FFF0</action>
            <action>maincpu.mw@269B = FFF5</action>
            <action>maincpu.mw@269D = FFF5</action>
        </script>
    </cheat>

    <cheat desc="bonus mission">
        <parameter>
            <item value="0x1C18">none  </item>
            <item value="0x0018">always</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@4ABC = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@4ABC = 1C20</action>
        </script>
    </cheat>

    <cheat desc="bonus mission timer speed">
        <parameter>
            <item value="0x0F">01 (slow)</item>
            <item value="0x07">02       </item>
            <item value="0x03">03       </item>
            <item value="0x01">04       </item>
            <item value="0x00">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@4DCD = 5010            </action>
            <action>maincpu.mq@5010 = 86F03AC1E10B0DCD</action>
            <action>maincpu.mq@5018 = C9E5C504012800E6</action>
            <!--
            5010 | CD 0D 0B : call $0B0D
            5013 | E1       : pop  hl
            5014 | C1       : pop  bc
            5015 | 3A F0 86 : ld   a,($86F0)
            5018 | E6 xx    : and  $xx
            501A | 28 01    : jr   z,$501D
            501C | 04       : inc  b
            501D | C5       : push bc
            501E | E5       : push hl
            501F | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@5019 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@4DCD = 0B0D            </action>
            <action>maincpu.mq@5010 = 0000000000000000</action>
            <action>maincpu.mq@5018 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@1EE2 = 5020            </action>
            <action>maincpu.mq@5020 = E62F98023A800021</action>
            <action>maincpu.mq@5028 = E62F98003A4F0F01</action>
            <action>maincpu.mq@5030 = 20FEED2847B8B13D</action>
            <action>maincpu.mq@5038 = 34012010FE350120</action>
            <action>maincpu.mq@5040 = 0618F03E042008FE</action>
            <action>maincpu.mq@5048 = 7786103E052004FE</action>
            <action>maincpu.mq@5050 = 05187E032001FE78</action>
            <action>maincpu.mq@5058 = 0965CDAF042080FE</action>
            <action>maincpu.mq@5060 = 000000000000C118</action>
            <!--
            5020 | 21 00 80 : ld   hl,$8000  // sound code address
            5023 | 3A 02 98 : ld   a,($9802) // read start button
            5026 | 2F       : cpl
            5027 | E6 01    : and  $01
            5029 | 0F       : rrca
            502A | 4F       : ld   c,a
            502B | 3A 00 98 : ld   a,($9800) // read other inputs
            502E | 2F       : cpl
            502F | E6 3D    : and  $3D
            5031 | B1       : or   c
            5032 | B8       : cp   b
            5033 | 47       : ld   b,a
            5034 | 28 ED    : jr   z,$5023
            5036 | FE 20    : cp   $20
            5038 | 20 01    : jr   nz,$503B
            503A | 35       : dec  (hl)      // decrease code -01
            503B | FE 10    : cp   $10
            503D | 20 01    : jr   nz,$5040
            503F | 34       : inc  (hl)      // increase code +01
            5040 | FE 08    : cp   $08
            5042 | 20 04    : jr   nz,$5048
            5044 | 3E F0    : ld   a,$F0     // decrease code -10
            5046 | 18 06    : jr   $504E
            5048 | FE 04    : cp   $04
            504A | 20 05    : jr   nz,$5051
            504C | 3E 10    : ld   a,$10     // increase code +10
            504E | 86       : add  a,(hl)
            504F | 77       : ld   (hl),a
            5050 | 78       : ld   a,b
            5051 | FE 01    : cp   $01
            5053 | 20 03    : jr   nz,$5058
            5055 | 7E       : ld   a,(hl)    // play sound
            5056 | 18 05    : jr   $505D
            5058 | FE 80    : cp   $80
            505A | 20 04    : jr   nz,$5060
            505C | AF       : xor  a         // stop sound
            505D | CD 65 09 : call $0965     // send sound code
            5060 | 18 C1    : jr   $5023
            -->
            <!-- disable helicopter sound after playing sfx/music -->
            <action>audiocpu.md@0659 = E91000CD        </action>
            <action>audiocpu.mq@1000 = FFFE030A0B6F6623</action>
            <action>audiocpu.mq@1008 = 000000C9063821C0</action>
            <!--
            1000 | 23       : inc  hl
            1001 | 66       : ld   h,(hl)
            1002 | 6F       : ld   l,a
            1003 | 0B       : dec  bc
            1004 | 0A       : ld   a,(bc)
            1005 | 03       : inc  bc
            1006 | FE FF    : cp   $FF
            1008 | C0       : ret  nz
            1009 | 21 38 06 : ld   hl,$0638
            100C | C9       : ret
            -->
            <!-- replace helicopter sound flag -->
            <action>audiocpu.mb@018F = FF</action> <!-- music (code 0x0E) -->
            <action>audiocpu.mb@02D0 = FF</action> <!-- sfx (code 0x10) -->
            <action>audiocpu.mb@030D = FF</action> <!-- sfx (code 0x0C, 0x0D) -->
            <action>audiocpu.mb@0359 = FF</action> <!-- sfx (code 0x01) -->
            <action>audiocpu.mb@03C0 = FF</action> <!-- sfx (code 0x08) -->
            <action>audiocpu.mb@03F7 = FF</action> <!-- sfx (code 0x03) -->
            <action>audiocpu.mb@0429 = FF</action> <!-- sfx (code 0x05) -->
            <action>audiocpu.mb@045E = FF</action> <!-- sfx (code 0x0A) -->
            <action>audiocpu.mb@048E = FF</action> <!-- sfx (code 0x07) -->
            <action>audiocpu.mb@04D0 = FF</action> <!-- sfx (code 0x09) -->
            <action>audiocpu.mb@055D = FF</action> <!-- sfx (code 0x06) -->
            <action>audiocpu.mb@05A1 = FF</action> <!-- sfx (code 0x04) -->
            <action>audiocpu.mb@05D8 = FF</action> <!-- sfx (code 0x0B) -->
            <action>audiocpu.mb@0603 = FF</action> <!-- sfx (code 0x02) -->
        </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="start : stop sound"                line="16" align="center" />
            <output format="----------------------------"      line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;" line="19" align="center"  >
                <argument>maincpu.pb@8000</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mw@1EE2 = 22C5            </action>
            <action> maincpu.mq@5020 = 0000000000000000</action>
            <action> maincpu.mq@5028 = 0000000000000000</action>
            <action> maincpu.mq@5030 = 0000000000000000</action>
            <action> maincpu.mq@5038 = 0000000000000000</action>
            <action> maincpu.mq@5040 = 0000000000000000</action>
            <action> maincpu.mq@5048 = 0000000000000000</action>
            <action> maincpu.mq@5050 = 0000000000000000</action>
            <action> maincpu.mq@5058 = 0000000000000000</action>
            <action> maincpu.mq@5060 = 0000000000000000</action>
            <action>audiocpu.md@0659 = E96F6623        </action>
            <action>audiocpu.mq@1000 = 0000000000000000</action>
            <action>audiocpu.mq@1008 = 0000000000000000</action>
            <action>audiocpu.mb@018F = 10              </action>
            <action>audiocpu.mb@02D0 = 10              </action>
            <action>audiocpu.mb@030D = 10              </action>
            <action>audiocpu.mb@0359 = 10              </action>
            <action>audiocpu.mb@03C0 = 10              </action>
            <action>audiocpu.mb@03F7 = 10              </action>
            <action>audiocpu.mb@0429 = 10              </action>
            <action>audiocpu.mb@045E = 10              </action>
            <action>audiocpu.mb@048E = 10              </action>
            <action>audiocpu.mb@04D0 = 10              </action>
            <action>audiocpu.mb@055D = 10              </action>
            <action>audiocpu.mb@05A1 = 10              </action>
            <action>audiocpu.mb@05D8 = 10              </action>
            <action>audiocpu.mb@0603 = 10              </action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.mw@0117 = E9DD</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0117 = 86AF</action>
        </script>
    </cheat>

</mamecheat>
rescueb.xml

Code: Select all

<!-- Tuono Blu (bootleg of Rescue) -->
<mamecheat version="1">

    <cheat desc="no hit - player">
        <script state="on">
            <!-- objects -->
            <action>maincpu.md@160A = E65000CD        </action>
            <action>maincpu.mq@5000 = AF02280CE60C7EFD</action>
            <action>maincpu.mq@5008 = 000000C9007EFDC9</action>
            <!--
            5000 | FD 7E 0C : ld   a,(iy+$0c)
            5003 | E6 0C    : and  $0C
            5005 | 28 02    : jr   z,$5009
            5007 | AF       : xor  a
            5008 | C9       : ret
            5009 | FD 7E 00 : ld   a,(iy+$00)
            500C | C9       : ret
            -->
            <!-- water (bonus mission) -->
            <action>maincpu.mq@3B66 = 023054FE063850FE</action>
            <action>maincpu.mq@3B6E = 0000003A72C30818</action>
            <!--
            3B66 | FE 50    : cp   $50
            3B68 | 38 06    : jr   c,$3B70
            3B6A | FE 54    : cp   $54
            3B6C | 30 02    : jr   nc,$3B70
            3B6E | 18 08    : jr   $3B78
            3B70 | C3 72 3A : jp   $3A72
            3B73 | 00       : nop
            3B74 | 00       : nop
            3B75 | 00       : nop
            -->
            <!-- water -->
            <action>maincpu.mq@46BE = 023054FE063850FE</action>
            <action>maincpu.mq@46C6 = 00000045C1C30818</action>
            <!--
            46BE | FE 50    : cp   $50
            46C0 | 38 06    : jr   c,$46C8
            46C2 | FE 54    : cp   $54
            46C4 | 30 02    : jr   nc,$46C8
            46C6 | 18 08    : jr   $46D0
            46C8 | C3 C1 45 : jp   $45C1
            46CB | 00       : nop
            46CC | 00       : nop
            46CD | 00       : nop
            -->
        </script>
        <script state="off">
            <action>maincpu.md@160A = E6007EFD        </action>
            <action>maincpu.mq@5000 = 0000000000000000</action>
            <action>maincpu.mq@5008 = 0000000000000000</action>
            <action>maincpu.mq@3B66 = 0A2851FE0E2850FE</action>
            <action>maincpu.mq@3B6E = 022853FE062852FE</action>
            <action>maincpu.mq@46BE = 0A2851FE0E2850FE</action>
            <action>maincpu.mq@46C6 = 022853FE062852FE</action>
        </script>
    </cheat>

    <cheat desc="no hit - people">
        <script state="on">
            <action>maincpu.mb@2A33 = C9</action> <!-- objects -->
            <action>maincpu.mb@2B16 = 86</action> <!-- helicopter -->
            <action>maincpu.mb@2B18 = 1A</action> <!-- helicopter -->
        </script>
        <script state="off">
            <action>maincpu.mb@2A33 = D8</action>
            <action>maincpu.mb@2B16 = 46</action>
            <action>maincpu.mb@2B18 = 3A</action>
        </script>
    </cheat>

    <cheat desc="fire speed up">
        <script state="on">
            <action>maincpu.mb@467C = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@467C = 06</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0010">02       </item>
            <item value="0x0018">03       </item>
            <item value="0x0020">04       </item>
            <item value="0x0028">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@25BD = -param</action> <!-- up -->
            <action>maincpu.mw@25DB =  param</action> <!-- upper-right : right -->
            <action>maincpu.mw@25DD = -param</action> <!-- upper-right : up -->
            <action>maincpu.mw@25FB =  param</action> <!-- right -->
            <action>maincpu.mw@261B =  param</action> <!-- lower-right : right -->
            <action>maincpu.mw@261D =  param</action> <!-- lower-right : down -->
            <action>maincpu.mw@263D =  param</action> <!-- down -->
            <action>maincpu.mw@265B = -param</action> <!-- lower-left : left -->
            <action>maincpu.mw@265D =  param</action> <!-- lower-left : down -->
            <action>maincpu.mw@267B = -param</action> <!-- left -->
            <action>maincpu.mw@269B = -param</action> <!-- upper-left : left -->
            <action>maincpu.mw@269D = -param</action> <!-- upper-left : up -->
        </script>
        <script state="off">
            <action>maincpu.mw@25BD = FFF0</action>
            <action>maincpu.mw@25DB = 000B</action>
            <action>maincpu.mw@25DD = FFF5</action>
            <action>maincpu.mw@25FB = 0010</action>
            <action>maincpu.mw@261B = 000B</action>
            <action>maincpu.mw@261D = 000B</action>
            <action>maincpu.mw@263D = 0010</action>
            <action>maincpu.mw@265B = FFF5</action>
            <action>maincpu.mw@265D = 000B</action>
            <action>maincpu.mw@267B = FFF0</action>
            <action>maincpu.mw@269B = FFF5</action>
            <action>maincpu.mw@269D = FFF5</action>
        </script>
    </cheat>

    <cheat desc="bonus mission">
        <parameter>
            <item value="0x1C18">none  </item>
            <item value="0x0018">always</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@4ABC = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@4ABC = 1C20</action>
        </script>
    </cheat>

    <cheat desc="bonus mission timer speed">
        <parameter>
            <item value="0x0F">01 (slow)</item>
            <item value="0x07">02       </item>
            <item value="0x03">03       </item>
            <item value="0x01">04       </item>
            <item value="0x00">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@4DCD = 5010            </action>
            <action>maincpu.mq@5010 = 86F03AC1E10B0DCD</action>
            <action>maincpu.mq@5018 = C9E5C504012800E6</action>
            <!--
            5010 | CD 0D 0B : call $0B0D
            5013 | E1       : pop  hl
            5014 | C1       : pop  bc
            5015 | 3A F0 86 : ld   a,($86F0)
            5018 | E6 xx    : and  $xx
            501A | 28 01    : jr   z,$501D
            501C | 04       : inc  b
            501D | C5       : push bc
            501E | E5       : push hl
            501F | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@5019 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@4DCD = 0B0D            </action>
            <action>maincpu.mq@5010 = 0000000000000000</action>
            <action>maincpu.mq@5018 = 0000000000000000</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@1EE2 = 5020            </action>
            <action>maincpu.mq@5020 = E62F98023A800021</action>
            <action>maincpu.mq@5028 = E62F98003A4F0F01</action>
            <action>maincpu.mq@5030 = 20FEED2847B8B13D</action>
            <action>maincpu.mq@5038 = 34012010FE350120</action>
            <action>maincpu.mq@5040 = 0618F03E042008FE</action>
            <action>maincpu.mq@5048 = 7786103E052004FE</action>
            <action>maincpu.mq@5050 = 05187E032001FE78</action>
            <action>maincpu.mq@5058 = 0965CDAF042080FE</action>
            <action>maincpu.mq@5060 = 000000000000C118</action>
            <!--
            5020 | 21 00 80 : ld   hl,$8000  // sound code address
            5023 | 3A 02 98 : ld   a,($9802) // read start button
            5026 | 2F       : cpl
            5027 | E6 01    : and  $01
            5029 | 0F       : rrca
            502A | 4F       : ld   c,a
            502B | 3A 00 98 : ld   a,($9800) // read other inputs
            502E | 2F       : cpl
            502F | E6 3D    : and  $3D
            5031 | B1       : or   c
            5032 | B8       : cp   b
            5033 | 47       : ld   b,a
            5034 | 28 ED    : jr   z,$5023
            5036 | FE 20    : cp   $20
            5038 | 20 01    : jr   nz,$503B
            503A | 35       : dec  (hl)      // decrease code -01
            503B | FE 10    : cp   $10
            503D | 20 01    : jr   nz,$5040
            503F | 34       : inc  (hl)      // increase code +01
            5040 | FE 08    : cp   $08
            5042 | 20 04    : jr   nz,$5048
            5044 | 3E F0    : ld   a,$F0     // decrease code -10
            5046 | 18 06    : jr   $504E
            5048 | FE 04    : cp   $04
            504A | 20 05    : jr   nz,$5051
            504C | 3E 10    : ld   a,$10     // increase code +10
            504E | 86       : add  a,(hl)
            504F | 77       : ld   (hl),a
            5050 | 78       : ld   a,b
            5051 | FE 01    : cp   $01
            5053 | 20 03    : jr   nz,$5058
            5055 | 7E       : ld   a,(hl)    // play sound
            5056 | 18 05    : jr   $505D
            5058 | FE 80    : cp   $80
            505A | 20 04    : jr   nz,$5060
            505C | AF       : xor  a         // stop sound
            505D | CD 65 09 : call $0965     // send sound code
            5060 | 18 C1    : jr   $5023
            -->
            <!-- disable helicopter sound after playing sfx/music -->
            <action>audiocpu.md@0659 = E91000CD        </action>
            <action>audiocpu.mq@1000 = FFFE030A0B6F6623</action>
            <action>audiocpu.mq@1008 = 000000C9063821C0</action>
            <!--
            1000 | 23       : inc  hl
            1001 | 66       : ld   h,(hl)
            1002 | 6F       : ld   l,a
            1003 | 0B       : dec  bc
            1004 | 0A       : ld   a,(bc)
            1005 | 03       : inc  bc
            1006 | FE FF    : cp   $FF
            1008 | C0       : ret  nz
            1009 | 21 38 06 : ld   hl,$0638
            100C | C9       : ret
            -->
            <!-- replace helicopter sound flag -->
            <action>audiocpu.mb@018F = FF</action> <!-- music (code 0x0E) -->
            <action>audiocpu.mb@02D0 = FF</action> <!-- sfx (code 0x10) -->
            <action>audiocpu.mb@030D = FF</action> <!-- sfx (code 0x0C, 0x0D) -->
            <action>audiocpu.mb@0359 = FF</action> <!-- sfx (code 0x01) -->
            <action>audiocpu.mb@03C0 = FF</action> <!-- sfx (code 0x08) -->
            <action>audiocpu.mb@03F7 = FF</action> <!-- sfx (code 0x03) -->
            <action>audiocpu.mb@0429 = FF</action> <!-- sfx (code 0x05) -->
            <action>audiocpu.mb@045E = FF</action> <!-- sfx (code 0x0A) -->
            <action>audiocpu.mb@048E = FF</action> <!-- sfx (code 0x07) -->
            <action>audiocpu.mb@04D0 = FF</action> <!-- sfx (code 0x09) -->
            <action>audiocpu.mb@055D = FF</action> <!-- sfx (code 0x06) -->
            <action>audiocpu.mb@05A1 = FF</action> <!-- sfx (code 0x04) -->
            <action>audiocpu.mb@05D8 = FF</action> <!-- sfx (code 0x0B) -->
            <action>audiocpu.mb@0603 = FF</action> <!-- sfx (code 0x02) -->
        </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="start : stop sound"                line="16" align="center" />
            <output format="----------------------------"      line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;" line="19" align="center"  >
                <argument>maincpu.pb@8000</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mw@1EE2 = 22C5            </action>
            <action> maincpu.mq@5020 = 0000000000000000</action>
            <action> maincpu.mq@5028 = 0000000000000000</action>
            <action> maincpu.mq@5030 = 0000000000000000</action>
            <action> maincpu.mq@5038 = 0000000000000000</action>
            <action> maincpu.mq@5040 = 0000000000000000</action>
            <action> maincpu.mq@5048 = 0000000000000000</action>
            <action> maincpu.mq@5050 = 0000000000000000</action>
            <action> maincpu.mq@5058 = 0000000000000000</action>
            <action> maincpu.mq@5060 = 0000000000000000</action>
            <action>audiocpu.md@0659 = E96F6623        </action>
            <action>audiocpu.mq@1000 = 0000000000000000</action>
            <action>audiocpu.mq@1008 = 0000000000000000</action>
            <action>audiocpu.mb@018F = 10              </action>
            <action>audiocpu.mb@02D0 = 10              </action>
            <action>audiocpu.mb@030D = 10              </action>
            <action>audiocpu.mb@0359 = 10              </action>
            <action>audiocpu.mb@03C0 = 10              </action>
            <action>audiocpu.mb@03F7 = 10              </action>
            <action>audiocpu.mb@0429 = 10              </action>
            <action>audiocpu.mb@045E = 10              </action>
            <action>audiocpu.mb@048E = 10              </action>
            <action>audiocpu.mb@04D0 = 10              </action>
            <action>audiocpu.mb@055D = 10              </action>
            <action>audiocpu.mb@05A1 = 10              </action>
            <action>audiocpu.mb@05D8 = 10              </action>
            <action>audiocpu.mb@0603 = 10              </action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.mw@0117 = E9DD</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0117 = 86AF</action>
        </script>
    </cheat>

</mamecheat>
aponow.xml

Code: Select all

<!-- Apocaljpse Now (bootleg of Rescue) -->
<mamecheat version="1">

    <cheat desc="no hit - player">
        <script state="on">
            <!-- objects -->
            <action>maincpu.md@160A = E65000CD        </action>
            <action>maincpu.mq@5000 = AF02280CE60C7EFD</action>
            <action>maincpu.mq@5008 = 000000C9007EFDC9</action>
            <!--
            5000 | FD 7E 0C : ld   a,(iy+$0c)
            5003 | E6 0C    : and  $0C
            5005 | 28 02    : jr   z,$5009
            5007 | AF       : xor  a
            5008 | C9       : ret
            5009 | FD 7E 00 : ld   a,(iy+$00)
            500C | C9       : ret
            -->
            <!-- water (bonus mission) -->
            <action>maincpu.mq@3B66 = 023054FE063850FE</action>
            <action>maincpu.mq@3B6E = 0000003A72C30818</action>
            <!--
            3B66 | FE 50    : cp   $50
            3B68 | 38 06    : jr   c,$3B70
            3B6A | FE 54    : cp   $54
            3B6C | 30 02    : jr   nc,$3B70
            3B6E | 18 08    : jr   $3B78
            3B70 | C3 72 3A : jp   $3A72
            3B73 | 00       : nop
            3B74 | 00       : nop
            3B75 | 00       : nop
            -->
            <!-- water -->
            <action>maincpu.mq@46BE = 023054FE063850FE</action>
            <action>maincpu.mq@46C6 = 00000045C1C30818</action>
            <!--
            46BE | FE 50    : cp   $50
            46C0 | 38 06    : jr   c,$46C8
            46C2 | FE 54    : cp   $54
            46C4 | 30 02    : jr   nc,$46C8
            46C6 | 18 08    : jr   $46D0
            46C8 | C3 C1 45 : jp   $45C1
            46CB | 00       : nop
            46CC | 00       : nop
            46CD | 00       : nop
            -->
        </script>
        <script state="off">
            <action>maincpu.md@160A = E6007EFD        </action>
            <action>maincpu.mq@5000 = 0000000000000000</action>
            <action>maincpu.mq@5008 = 0000000000000000</action>
            <action>maincpu.mq@3B66 = 0A2851FE0E2850FE</action>
            <action>maincpu.mq@3B6E = 022853FE062852FE</action>
            <action>maincpu.mq@46BE = 0A2851FE0E2850FE</action>
            <action>maincpu.mq@46C6 = 022853FE062852FE</action>
        </script>
    </cheat>

    <cheat desc="no hit - people">
        <script state="on">
            <action>maincpu.mb@2A33 = C9</action> <!-- objects -->
            <action>maincpu.mb@2B16 = 86</action> <!-- helicopter -->
            <action>maincpu.mb@2B18 = 1A</action> <!-- helicopter -->
        </script>
        <script state="off">
            <action>maincpu.mb@2A33 = D8</action>
            <action>maincpu.mb@2B16 = 46</action>
            <action>maincpu.mb@2B18 = 3A</action>
        </script>
    </cheat>

    <cheat desc="fire speed up">
        <script state="on">
            <action>maincpu.mb@467C = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@467C = 06</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0010">02       </item>
            <item value="0x0018">03       </item>
            <item value="0x0020">04       </item>
            <item value="0x0028">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@25BD = -param</action> <!-- up -->
            <action>maincpu.mw@25DB =  param</action> <!-- upper-right : right -->
            <action>maincpu.mw@25DD = -param</action> <!-- upper-right : up -->
            <action>maincpu.mw@25FB =  param</action> <!-- right -->
            <action>maincpu.mw@261B =  param</action> <!-- lower-right : right -->
            <action>maincpu.mw@261D =  param</action> <!-- lower-right : down -->
            <action>maincpu.mw@263D =  param</action> <!-- down -->
            <action>maincpu.mw@265B = -param</action> <!-- lower-left : left -->
            <action>maincpu.mw@265D =  param</action> <!-- lower-left : down -->
            <action>maincpu.mw@267B = -param</action> <!-- left -->
            <action>maincpu.mw@269B = -param</action> <!-- upper-left : left -->
            <action>maincpu.mw@269D = -param</action> <!-- upper-left : up -->
        </script>
        <script state="off">
            <action>maincpu.mw@25BD = FFF0</action>
            <action>maincpu.mw@25DB = 000B</action>
            <action>maincpu.mw@25DD = FFF5</action>
            <action>maincpu.mw@25FB = 0010</action>
            <action>maincpu.mw@261B = 000B</action>
            <action>maincpu.mw@261D = 000B</action>
            <action>maincpu.mw@263D = 0010</action>
            <action>maincpu.mw@265B = FFF5</action>
            <action>maincpu.mw@265D = 000B</action>
            <action>maincpu.mw@267B = FFF0</action>
            <action>maincpu.mw@269B = FFF5</action>
            <action>maincpu.mw@269D = FFF5</action>
        </script>
    </cheat>

    <cheat desc="bonus mission">
        <parameter>
            <item value="0x1C18">none  </item>
            <item value="0x0018">always</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@4ABC = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@4ABC = 1C20</action>
        </script>
    </cheat>

    <cheat desc="bonus mission timer speed">
        <parameter>
            <item value="0x0F">01 (slow)</item>
            <item value="0x07">02       </item>
            <item value="0x03">03       </item>
            <item value="0x01">04       </item>
            <item value="0x00">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mw@4DCD = 5010            </action>
            <action>maincpu.mq@5010 = 86F03AC1E10B0DCD</action>
            <action>maincpu.mq@5018 = C9E5C504012800E6</action>
            <!--
            5010 | CD 0D 0B : call $0B0D
            5013 | E1       : pop  hl
            5014 | C1       : pop  bc
            5015 | 3A F0 86 : ld   a,($86F0)
            5018 | E6 xx    : and  $xx
            501A | 28 01    : jr   z,$501D
            501C | 04       : inc  b
            501D | C5       : push bc
            501E | E5       : push hl
            501F | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@5019 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@4DCD = 0B0D            </action>
            <action>maincpu.mq@5010 = 0000000000000000</action>
            <action>maincpu.mq@5018 = 0000000000000000</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@1EE2 = 5020            </action>
            <action>maincpu.mq@5020 = E62F98023A800021</action>
            <action>maincpu.mq@5028 = E62F98003A4F0F01</action>
            <action>maincpu.mq@5030 = 20FEED2847B8B13D</action>
            <action>maincpu.mq@5038 = 34012010FE350120</action>
            <action>maincpu.mq@5040 = 0618F03E042008FE</action>
            <action>maincpu.mq@5048 = 7786103E052004FE</action>
            <action>maincpu.mq@5050 = 05187E032001FE78</action>
            <action>maincpu.mq@5058 = 0965CDAF042080FE</action>
            <action>maincpu.mq@5060 = 000000000000C118</action>
            <!--
            5020 | 21 00 80 : ld   hl,$8000  // sound code address
            5023 | 3A 02 98 : ld   a,($9802) // read start button
            5026 | 2F       : cpl
            5027 | E6 01    : and  $01
            5029 | 0F       : rrca
            502A | 4F       : ld   c,a
            502B | 3A 00 98 : ld   a,($9800) // read other inputs
            502E | 2F       : cpl
            502F | E6 3D    : and  $3D
            5031 | B1       : or   c
            5032 | B8       : cp   b
            5033 | 47       : ld   b,a
            5034 | 28 ED    : jr   z,$5023
            5036 | FE 20    : cp   $20
            5038 | 20 01    : jr   nz,$503B
            503A | 35       : dec  (hl)      // decrease code -01
            503B | FE 10    : cp   $10
            503D | 20 01    : jr   nz,$5040
            503F | 34       : inc  (hl)      // increase code +01
            5040 | FE 08    : cp   $08
            5042 | 20 04    : jr   nz,$5048
            5044 | 3E F0    : ld   a,$F0     // decrease code -10
            5046 | 18 06    : jr   $504E
            5048 | FE 04    : cp   $04
            504A | 20 05    : jr   nz,$5051
            504C | 3E 10    : ld   a,$10     // increase code +10
            504E | 86       : add  a,(hl)
            504F | 77       : ld   (hl),a
            5050 | 78       : ld   a,b
            5051 | FE 01    : cp   $01
            5053 | 20 03    : jr   nz,$5058
            5055 | 7E       : ld   a,(hl)    // play sound
            5056 | 18 05    : jr   $505D
            5058 | FE 80    : cp   $80
            505A | 20 04    : jr   nz,$5060
            505C | AF       : xor  a         // stop sound
            505D | CD 65 09 : call $0965     // send sound code
            5060 | 18 C1    : jr   $5023
            -->
            <!-- disable helicopter sound after playing sfx/music -->
            <action>audiocpu.md@0659 = E91000CD        </action>
            <action>audiocpu.mq@1000 = FFFE030A0B6F6623</action>
            <action>audiocpu.mq@1008 = 000000C9063821C0</action>
            <!--
            1000 | 23       : inc  hl
            1001 | 66       : ld   h,(hl)
            1002 | 6F       : ld   l,a
            1003 | 0B       : dec  bc
            1004 | 0A       : ld   a,(bc)
            1005 | 03       : inc  bc
            1006 | FE FF    : cp   $FF
            1008 | C0       : ret  nz
            1009 | 21 38 06 : ld   hl,$0638
            100C | C9       : ret
            -->
            <!-- replace helicopter sound flag -->
            <action>audiocpu.mb@018F = FF</action> <!-- music (code 0x0E) -->
            <action>audiocpu.mb@02D0 = FF</action> <!-- sfx (code 0x10) -->
            <action>audiocpu.mb@030D = FF</action> <!-- sfx (code 0x0C, 0x0D) -->
            <action>audiocpu.mb@0359 = FF</action> <!-- sfx (code 0x01) -->
            <action>audiocpu.mb@03C0 = FF</action> <!-- sfx (code 0x08) -->
            <action>audiocpu.mb@03F7 = FF</action> <!-- sfx (code 0x03) -->
            <action>audiocpu.mb@0429 = FF</action> <!-- sfx (code 0x05) -->
            <action>audiocpu.mb@045E = FF</action> <!-- sfx (code 0x0A) -->
            <action>audiocpu.mb@048E = FF</action> <!-- sfx (code 0x07) -->
            <action>audiocpu.mb@04D0 = FF</action> <!-- sfx (code 0x09) -->
            <action>audiocpu.mb@055D = FF</action> <!-- sfx (code 0x06) -->
            <action>audiocpu.mb@05A1 = FF</action> <!-- sfx (code 0x04) -->
            <action>audiocpu.mb@05D8 = FF</action> <!-- sfx (code 0x0B) -->
            <action>audiocpu.mb@0603 = FF</action> <!-- sfx (code 0x02) -->
        </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="start : stop sound"                line="16" align="center" />
            <output format="----------------------------"      line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;" line="19" align="center"  >
                <argument>maincpu.pb@8000</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mw@1EE2 = 22C5            </action>
            <action> maincpu.mq@5020 = 0000000000000000</action>
            <action> maincpu.mq@5028 = 0000000000000000</action>
            <action> maincpu.mq@5030 = 0000000000000000</action>
            <action> maincpu.mq@5038 = 0000000000000000</action>
            <action> maincpu.mq@5040 = 0000000000000000</action>
            <action> maincpu.mq@5048 = 0000000000000000</action>
            <action> maincpu.mq@5050 = 0000000000000000</action>
            <action> maincpu.mq@5058 = 0000000000000000</action>
            <action> maincpu.mq@5060 = 0000000000000000</action>
            <action>audiocpu.md@0659 = E96F6623        </action>
            <action>audiocpu.mq@1000 = 0000000000000000</action>
            <action>audiocpu.mq@1008 = 0000000000000000</action>
            <action>audiocpu.mb@018F = 10              </action>
            <action>audiocpu.mb@02D0 = 10              </action>
            <action>audiocpu.mb@030D = 10              </action>
            <action>audiocpu.mb@0359 = 10              </action>
            <action>audiocpu.mb@03C0 = 10              </action>
            <action>audiocpu.mb@03F7 = 10              </action>
            <action>audiocpu.mb@0429 = 10              </action>
            <action>audiocpu.mb@045E = 10              </action>
            <action>audiocpu.mb@048E = 10              </action>
            <action>audiocpu.mb@04D0 = 10              </action>
            <action>audiocpu.mb@055D = 10              </action>
            <action>audiocpu.mb@05A1 = 10              </action>
            <action>audiocpu.mb@05D8 = 10              </action>
            <action>audiocpu.mb@0603 = 10              </action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.mw@0117 = E9DD</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0117 = 86AF</action>
        </script>
    </cheat>

</mamecheat>
rescuefe.xml

Code: Select all

<!-- Rescue (Free Enterprise Games, bootleg) -->
<mamecheat version="1">

    <cheat desc="no hit - player">
        <script state="on">
            <!-- objects -->
            <action>maincpu.md@4CD9 = E6A6A0CD        </action>
            <action>maincpu.mq@A6A0 = AF02280CE60C7EFD</action>
            <action>maincpu.mq@A6A8 = 000000C9007EFDC9</action>
            <!--
            A6A0 | FD 7E 0C : ld   a,(iy+$0c)
            A6A3 | E6 0C    : and  $0C
            A6A5 | 28 02    : jr   z,$A6A9
            A6A7 | AF       : xor  a
            A6A8 | C9       : ret
            A6A9 | FD 7E 00 : ld   a,(iy+$00)
            A6AC | C9       : ret
            -->
            <!-- water -->
            <action>maincpu.mb@913E = C3</action>
        </script>
        <script state="off">
            <action>maincpu.md@4CD9 = E6007EFD        </action>
            <action>maincpu.mq@A6A0 = FF00FF00FF00FF00</action>
            <action>maincpu.mq@A6A8 = FF00FF00FF00FF00</action>
            <action>maincpu.mb@913E = CA              </action>
        </script>
    </cheat>

    <cheat desc="no hit - people">
        <script state="on">
            <action>maincpu.mb@5FA7 = C9</action> <!-- objects -->
            <action>maincpu.mb@6088 = 86</action> <!-- helicopter -->
            <action>maincpu.mb@608A = 8C</action> <!-- helicopter -->
        </script>
        <script state="off">
            <action>maincpu.mb@5FA7 = D8</action>
            <action>maincpu.mb@6088 = 46</action>
            <action>maincpu.mb@608A = AA</action>
        </script>
    </cheat>

    <cheat desc="fire speed up">
        <script state="on">
            <action>maincpu.mb@90E5 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@90E5 = 06</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0010">02       </item>
            <item value="0x0018">03       </item>
            <item value="0x0020">04       </item>
            <item value="0x0028">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@5B62 = -param</action> <!-- up -->
            <action>maincpu.mw@5B80 =  param</action> <!-- upper-right : right -->
            <action>maincpu.mw@5B82 = -param</action> <!-- upper-right : up -->
            <action>maincpu.mw@5BA0 =  param</action> <!-- right -->
            <action>maincpu.mw@5BC0 =  param</action> <!-- lower-right : right -->
            <action>maincpu.mw@5BC2 =  param</action> <!-- lower-right : down -->
            <action>maincpu.mw@5BE2 =  param</action> <!-- down -->
            <action>maincpu.mw@5C00 = -param</action> <!-- lower-left : left -->
            <action>maincpu.mw@5C02 =  param</action> <!-- lower-left : down -->
            <action>maincpu.mw@5C20 = -param</action> <!-- left -->
            <action>maincpu.mw@5C40 = -param</action> <!-- upper-left : left -->
            <action>maincpu.mw@5C42 = -param</action> <!-- upper-left : up -->
        </script>
        <script state="off">
            <action>maincpu.mw@5B62 = FFF0</action>
            <action>maincpu.mw@5B80 = 000B</action>
            <action>maincpu.mw@5B82 = FFF5</action>
            <action>maincpu.mw@5BA0 = 0010</action>
            <action>maincpu.mw@5BC0 = 000B</action>
            <action>maincpu.mw@5BC2 = 000B</action>
            <action>maincpu.mw@5BE2 = 0010</action>
            <action>maincpu.mw@5C00 = FFF5</action>
            <action>maincpu.mw@5C02 = 000B</action>
            <action>maincpu.mw@5C20 = FFF0</action>
            <action>maincpu.mw@5C40 = FFF5</action>
            <action>maincpu.mw@5C42 = FFF5</action>
        </script>
    </cheat>

</mamecheat>
I remove bonus mission codes and sound test mode from rescuefe.
Because I can't find corresponded routine in this set (different ROM from other sets).
And the game doesn't work so that I can't test all codes.
jman

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