Page 1 of 1

[sms/aztecadv] Aztec Adventure/Nazca '88

Posted: Wed Jun 26, 2024 10:19 am
by jman
sms/aztecadv.xml

Code: Select all

<!-- Aztec Adventure - The Golden Road to Paradise (Europe, USA) ~ Nazca '88 - The Golden Road to Paradise (Japan) -->
<mamecheat version="1">

    <cheat desc="no hit - player">
        <script state="on">
            <action>slot:cart:rom.mb@1A98 = 18</action> <!-- objects -->
            <action>slot:cart:rom.mb@6B74 = 9D</action> <!-- trap -->
        </script>
        <script state="off">
            <action>slot:cart:rom.mb@1A98 = 20</action>
            <action>slot:cart:rom.mb@6B74 = 8C</action>
        </script>
    </cheat>

    <cheat desc="no hit - partner">
        <script state="on">
            <action>slot:cart:rom.mb@1B59 = 18</action> <!-- objects -->
            <action>slot:cart:rom.mb@6B80 = 9D</action> <!-- trap -->
            <action>slot:cart:rom.mb@6B8B = C9</action> <!-- trap -->
        </script>
        <script state="off">
            <action>slot:cart:rom.mb@1B59 = 28</action>
            <action>slot:cart:rom.mb@6B80 = 8C</action>
            <action>slot:cart:rom.mb@6B8B = D8</action>
        </script>
    </cheat>

    <cheat desc="walk through wall">
        <script state="on">
            <action>slot:cart:rom.mb@1DDC = 00  </action> <!-- water -->
            <action>slot:cart:rom.mb@1E46 = 00  </action> <!-- up -->
            <action>slot:cart:rom.mw@1E6E = 1E70</action> <!-- down -->
            <action>slot:cart:rom.mb@1E96 = 00  </action> <!-- left -->
            <action>slot:cart:rom.mb@1ED7 = 00  </action> <!-- right -->
        </script>
        <script state="off">
            <action>slot:cart:rom.mb@1DDC = EB  </action>
            <action>slot:cart:rom.mb@1E46 = D8  </action>
            <action>slot:cart:rom.mw@1E6E = 229C</action>
            <action>slot:cart:rom.mb@1E96 = D8  </action>
            <action>slot:cart:rom.mb@1ED7 = D8  </action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>slot:cart:rom.mb@1F25 = 2E</action> <!-- player -->
            <action>slot:cart:rom.mb@2EBE = 2E</action> <!-- partner -->
        </script>
        <script state="off">
            <action>slot:cart:rom.mb@1F25 = 2F</action>
            <action>slot:cart:rom.mb@2EBE = 2F</action>
        </script>
    </cheat>

    <cheat desc="attack speed up">
        <script state="on">
            <action>slot:cart:rom.mb@1F34 = 01</action>
        </script>
        <script state="off">
            <action>slot:cart:rom.mb@1F34 = 08</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0100">02       </item>
            <item value="0x0180">03       </item>
            <item value="0x0200">04       </item>
            <item value="0x0280">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>slot:cart:rom.mw@1E48 = -param</action>
            <action>slot:cart:rom.mw@1E71 =  param</action>
            <action>slot:cart:rom.mw@1E98 = -param</action>
            <action>slot:cart:rom.mw@1ED9 =  param</action>
        </script>
        <script state="off">
            <action>slot:cart:rom.mw@1E48 = FF40</action>
            <action>slot:cart:rom.mw@1E71 = 00C0</action>
            <action>slot:cart:rom.mw@1E98 = FF40</action>
            <action>slot:cart:rom.mw@1ED9 = 00C0</action>
        </script>
    </cheat>

    <cheat desc="title">
        <parameter>
            <item value="0x0918">aztec adventure</item>
            <item value="0x0020">nazca '88      </item>
        </parameter>
        <script state="change">
            <action>slot:cart:rom.mw@0C32 = param</action>
        </script>
        <script state="off">
            <action>slot:cart:rom.mw@0C32 = 0920</action>
        </script>
    </cheat>

    <cheat desc="sound device">
        <!-- smsj and sms1krfm only -->
        <comment>reset the game (F3) to switch sound device</comment>
        <parameter>
            <item value="0x0028">PSG</item>
            <item value="0x0118">FM </item>
        </parameter>
        <script state="change">
            <action>slot:cart:rom.mw@05EF = param</action>
        </script>
        <script state="off">
            <action>slot:cart:rom.mw@05EF = 0128</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <script state="on">
            <action>slot:cart:rom.mw@0042 = 7F70            </action>
            <action>slot:cart:rom.mq@7F70 = 2847B8DCDBC80021</action>
            <action>slot:cart:rom.mq@7F78 = F7FE350120FBFEFA</action>
            <action>slot:cart:rom.mq@7F80 = 3E0420FDFE340120</action>
            <action>slot:cart:rom.mq@7F88 = 3E052020FE0618F0</action>
            <action>slot:cart:rom.mq@7F90 = 0520EFFE78778610</action>
            <action>slot:cart:rom.mq@7F98 = 20DFFE061880F67E</action>
            <action>slot:cart:rom.mq@7FA0 = CB18C00432FF3E05</action>
            <!--
            7F70 | 21 00 C8 : ld   hl,$C800  // sound code address
            7F73 | DB DC    : in   a,($DC)   // read input
            7F75 | B8       : cp   b
            7F76 | 47       : ld   b,a
            7F77 | 28 FA    : jr   z,$7F73
            7F79 | FE FB    : cp   $FB
            7F7B | 20 01    : jr   nz,$7F7E
            7F7D | 35       : dec  (hl)      // decrease code -01
            7F7E | FE F7    : cp   $F7
            7F80 | 20 01    : jr   nz,$7F83
            7F82 | 34       : inc  (hl)      // increase code +01
            7F83 | FE FD    : cp   $FD
            7F85 | 20 04    : jr   nz,$7F8B
            7F87 | 3E F0    : ld   a,$F0     // decrease code -10
            7F89 | 18 06    : jr   $7F91
            7F8B | FE 20    : cp   $20
            7F8D | 20 05    : jr   nz,$7F94
            7F8F | 3E 10    : ld   a,$10     // increase code +10
            7F91 | 86       : add  a,(hl)
            7F92 | 77       : ld   (hl),a
            7F93 | 78       : ld   a,b
            7F94 | FE EF    : cp   $EF
            7F96 | 20 05    : jr   nz,$7F9D
            7F98 | 7E       : ld   a,(hl)    // play sound
            7F99 | F6 80    : or   $80
            7F9B | 18 06    : jr   $7FA3
            7F9D | FE DF    : cp   $DF
            7F9F | 20 05    : jr   nz,$7FA6
            7FA1 | 3E FF    : ld   a,$FF     // stop sound
            7FA3 | 32 04 C0 : ld   ($C004),a // send sound code
            7FA6 | 18 CB    : jr   $7F73
            -->
        </script>
        <script state="run">
            <output format="----- aztec adventure/nazca '88 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@C800</argument>
            </output>
        </script>
        <script state="off">
            <action>slot:cart:rom.mw@0042 = 0AD1            </action>
            <action>slot:cart:rom.mq@7F70 = FFFFFFFFFFFFFFFF</action>
            <action>slot:cart:rom.mq@7F78 = FFFFFFFFFFFFFFFF</action>
            <action>slot:cart:rom.mq@7F80 = FFFFFFFFFFFFFFFF</action>
            <action>slot:cart:rom.mq@7F88 = FFFFFFFFFFFFFFFF</action>
            <action>slot:cart:rom.mq@7F90 = FFFFFFFFFFFFFFFF</action>
            <action>slot:cart:rom.mq@7F98 = FFFFFFFFFFFFFFFF</action>
            <action>slot:cart:rom.mq@7FA0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip rom check error">
        <script state="on">
            <!-- detect bios -->
            <action>                                    temp0 = 00</action> <!-- initialize flag -->
            <action condition="user1.mw@0006 == 0x7d18">temp0 = 01</action>
            <action condition="user1.mw@0006 == 0x6518">temp0 = 02</action>
            <action condition="user1.mw@0006 == 0x36ff">temp0 = 03</action>
            <action condition="user1.mw@0006 == 0x6f18">temp0 = 04</action>
            <action condition="user1.mw@0006 == 0x0000">temp0 = 05</action>
            <action condition="user1.mw@0006 == 0x0406">temp0 = 06</action>
            <action condition="user1.mw@0006 == 0x94cd">temp0 = 07</action>
            <!-- US/European BIOS with Alex Kidd ($bef2) -->
            <action condition="temp0 == 01">user1.mb@17EF2 = C3</action>
            <!-- US/European BIOS v1.3 -->
            <action condition="temp0 == 02">user1.mb@00128 = C3</action>
            <!-- US/European BIOS v2.4 ($8142) -->
            <action condition="temp0 == 03">user1.mb@1C142 = C3</action>
            <!-- US/European BIOS v3.4 -->
            <action condition="temp0 == 04">user1.mb@0813E = C3</action>
            <!-- US/European BIOS v4.4 ($b0b9) -->
            <action condition="temp0 == 05">user1.mb@170B9 = C3</action>
            <!-- US Master System BIOS v1.0 -->
            <action condition="temp0 == 06">user1.mb@00140 = C3</action>
            <!-- European/Brazilian BIOS with Sonic -->
            <action condition="temp0 == 07">user1.mb@0270E = C3</action>
        </script>
        <script state="off">
            <action condition="temp0 == 01">user1.mb@17EF2 = CA</action>
            <action condition="temp0 == 02">user1.mb@00128 = CA</action>
            <action condition="temp0 == 03">user1.mb@1C142 = CA</action>
            <action condition="temp0 == 04">user1.mb@0813E = CA</action>
            <action condition="temp0 == 05">user1.mb@170B9 = CA</action>
            <action condition="temp0 == 06">user1.mb@00140 = CA</action>
            <action condition="temp0 == 07">user1.mb@0270E = CA</action>
        </script>
    </cheat>

</mamecheat>