[smsj/astrow] Astro Warrior

This forum is for posting cheats for any non-arcade game in M.A.M.E. ( aka the M.E.S.S. games ) including any softwarelist game. Requests will be fulfilled here....but please keep the requests to the requests forum.
Post Reply
jman
Posts: 1315
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times

[smsj/astrow] Astro Warrior

Post by jman »

Code: Select all

<cheat desc="no hit (wip)">
	<script state="on">
		<!-- objects -->
		<action>slot:cart:rom.mw@01a7d =             8000</action>
		<action>slot:cart:rom.mq@18000 = fe08380ffe007efd</action>
		<action>slot:cart:rom.mq@18008 = a7c91a88cd043013</action>
		<action>slot:cart:rom.mq@18010 = ffffffffffffffc9</action>
		<!--
		8000 | fd 7e 00 : ld   a,(iy+$00)
		8003 | fe 0f    : cp   $0f
		8005 | 38 08    : jr   c,$800f
		8007 | fe 13    : cp   $13
		8009 | 30 04    : jr   nc,$800f
		800b | cd 88 1a : call $1a88
		800e | c9       : ret
		800f | a7       : and  a
		8010 | c9       : ret
		-->
		<action>slot:cart:rom.mb@02528 = e3</action> <!-- boss -->
	</script>
	<script state="off">
		<action>slot:cart:rom.mw@01a7d =             1a88</action>
		<action>slot:cart:rom.mq@18000 = ffffffffffffffff</action>
		<action>slot:cart:rom.mq@18008 = ffffffffffffffff</action>
		<action>slot:cart:rom.mq@18010 = ffffffffffffffff</action>
		<action>slot:cart:rom.mb@02528 =               34</action>
	</script>
</cheat>

<cheat desc="auto fire (wip)">
	<script state="on">
		<action>slot:cart:rom.mb@0950 = 01</action>
		<action>slot:cart:rom.mb@0964 = 01</action>
	</script>
	<script state="off">
		<action>slot:cart:rom.mb@0950 = 20</action>
		<action>slot:cart:rom.mb@0964 = 20</action>
	</script>
</cheat>

<cheat desc="player speed (wip)">
	<parameter>
		<item value="0x01">01 (slow)</item>
		<item value="0x03">02       </item>
		<item value="0x06">03       </item>
		<item value="0x09">04       </item>
		<item value="0x0c">05       </item>
		<item value="0x0f">06       </item>
		<item value="0x12">07       </item>
		<item value="0x15">08 (fast)</item>
	</parameter>
	<script state="on">
		<action>slot:cart:rom.md@0a3e = 7d00002e</action>
	</script>
	<script state="change">
		<action>slot:cart:rom.mb@0a3f = param</action>
	</script>
	<script state="off">
		<action>slot:cart:rom.md@0a3e = 7d136edd</action>
	</script>
</cheat>

<cheat desc="information display (wip)">
	<script state="run">
		<action>temp0 = maincpu.pb@c102 band 0x01</action>
		<action condition="maincpu.pb@c23f == 0">temp1 = 0</action>
		<action condition="maincpu.pb@c23f != 0">temp1 = tobcd(frombcd(maincpu.pb@c23f - 1))</action>
		<action condition="maincpu.pb@c120 == 0">temp2 = 0</action>
		<action condition="maincpu.pb@c120 != 0">temp2 = tobcd(frombcd(maincpu.pb@c120 - 1))</action>
		<action condition="maincpu.pb@c121 == 0">temp3 = 0</action>
		<action condition="maincpu.pb@c121 != 0">temp3 = tobcd(frombcd(maincpu.pb@c121 - 1))</action>
		<output condition="temp0 == 1" format="Player1 &lt; %x &gt; %6X     HighScore : %6X     Player2 &lt; %x &gt; %6X" line="1" align="center">
			<argument>temp1</argument>
			<argument>(maincpu.pb@c232 * 10000) + (maincpu.pb@c233 * 100) + (maincpu.pb@c234)</argument>
			<argument>(maincpu.pb@c030 * 10000) + (maincpu.pb@c031 * 100) + (maincpu.pb@c032)</argument>
			<argument>temp3</argument>
			<argument>(maincpu.pb@c133 * 10000) + (maincpu.pb@c134 * 100) + (maincpu.pb@c135)</argument>
		</output>
		<output condition="temp0 == 0" format="Player1 &lt; %x &gt; %6X     HighScore : %6X     Player2 &lt; %x &gt; %6X" line="1" align="center">
			<argument>temp2</argument>
			<argument>(maincpu.pb@c130 * 10000) + (maincpu.pb@c131 * 100) + (maincpu.pb@c132)</argument>
			<argument>(maincpu.pb@c030 * 10000) + (maincpu.pb@c031 * 100) + (maincpu.pb@c032)</argument>
			<argument>temp1</argument>
			<argument>(maincpu.pb@c232 * 10000) + (maincpu.pb@c233 * 100) + (maincpu.pb@c234)</argument>
		</output>
	</script>
</cheat>

<cheat desc="sound test mode (wip)">
	<comment>reset the game (F3) to enter sound test mode</comment>
	<script state="on">
		<action>slot:cart:rom.mq@1d40 = b810c3ffff32033e</action>
		<action>slot:cart:rom.mq@f810 = d5b81411810021fb</action>
		<action>slot:cart:rom.mq@f818 = c86fbddcdbc10022</action>
		<action>slot:cart:rom.mq@f820 = 20f7fe250120fbfe</action>
		<action>slot:cart:rom.mq@f828 = 187c0320effe2401</action>
		<action>slot:cart:rom.mq@f830 = dc0032afc0dffe04</action>
		<action>slot:cart:rom.mq@f838 = ffffffffffffffc9</action>
		<!--
		1d40 | 3e 03    : ld   a,$03
		1d42 | 32 ff ff : ld   ($ffff),a  // set bank
		1d45 | c3 10 b8 : jp   $b810
		b810 | fb       : ei
		b811 | 21 00 81 : ld   hl,$8100   // initialize sound and input value
		b814 | 11 14 b8 : ld   de,$b814
		b817 | d5       : push de
		b818 | 22 00 c1 : ld   ($c100),hl
		b81b | db dc    : in   a,($dc)    // read input
		b81d | bd       : cp   l
		b81e | 6f       : ld   l,a
		b81f | c8       : ret  z
		b820 | fe fb    : cp   $fb
		b822 | 20 01    : jr   nz,$b825
		b824 | 25       : dec  h          // pressed left - code decrement
		b825 | fe f7    : cp   $f7
		b827 | 20 01    : jr   nz,$b82a
		b829 | 24       : inc  h          // pressed right - code increment
		b82a | fe ef    : cp   $ef
		b82c | 20 03    : jr   nz,$b831
		b82e | 7c       : ld   a,h        // pressed button 1 - play sound
		b82f | 18 04    : jr   $b835
		b831 | fe df    : cp   $df
		b833 | c0       : ret  nz
		b834 | af       : xor  a          // pressed button 2 - stop sound
		b835 | 32 00 dc : ld   ($dc00),a  // send sound code
		b838 | c9       : ret
		-->
	</script>
	<script state="run">
		<output format="----- astro warrior sound test mode -----" line="10" align="center" />
		<output format="left : code decrement"                     line="11" align="center" />
		<output format="right : code increment"                    line="12" align="center" />
		<output format="button 1 : play sound"                     line="13" align="center" />
		<output format="button 2 : stop sound"                     line="14" align="center" />
		<output format="----------------------------"              line="15" align="center" />
		<output format="&lt;&lt; sound code %2.2X &gt;&gt;"        line="17" align="center">
			<argument>maincpu.pb@c101</argument>
		</output>
	</script>
	<script state="off">
		<action>slot:cart:rom.mq@1d40 = cd05f4cddffe31f3</action>
		<action>slot:cart:rom.mq@f810 = ffffffffffffffff</action>
		<action>slot:cart:rom.mq@f818 = ffffffffffffffff</action>
		<action>slot:cart:rom.mq@f820 = ffffffffffffffff</action>
		<action>slot:cart:rom.mq@f828 = ffffffffffffffff</action>
		<action>slot:cart:rom.mq@f830 = ffffffffffffffff</action>
		<action>slot:cart:rom.mq@f838 = ffffffffffffffff</action>
	</script>
</cheat>
"information display" outputs score for player 1, 2, hiscore and life for player 1 and 2 on current screen.
jman

my wip cheat database back-up (06/01/2025 ver.)
https://u3.getuploader.com/...../download/58
downloadpass : jman2020
jman
Posts: 1315
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times

[sms/astrow]+ Astro Warrior

Post by jman »

sms/astrow.xml

Code: Select all

<!-- Astro Warrior (Japan, USA, Brazil) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- objects -->
            <action>slot:cart:rom.mw@01A7D = 8000            </action>
            <action>slot:cart:rom.mq@18000 = FE08380FFE007EFD</action>
            <action>slot:cart:rom.mq@18008 = A7C91A88CD043013</action>
            <action>slot:cart:rom.mq@18010 = FFFFFFFFFFFFFFC9</action>
            <!--
            8000 | fd 7e 00 : ld   a,(iy+$00)
            8003 | fe 0f    : cp   $0f
            8005 | 38 08    : jr   c,$800f
            8007 | fe 13    : cp   $13
            8009 | 30 04    : jr   nc,$800f
            800b | cd 88 1a : call $1a88
            800e | c9       : ret
            800f | a7       : and  a
            8010 | c9       : ret
            -->
            <action>slot:cart:rom.mb@2528 = E3</action> <!-- boss -->
        </script>
        <script state="off">
            <action>slot:cart:rom.mw@01A7D = 1A88            </action>
            <action>slot:cart:rom.mq@18000 = FFFFFFFFFFFFFFFF</action>
            <action>slot:cart:rom.mq@18008 = FFFFFFFFFFFFFFFF</action>
            <action>slot:cart:rom.mq@18010 = FFFFFFFFFFFFFFFF</action>
            <action>slot:cart:rom.mb@02528 = 34              </action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>slot:cart:rom.mb@0950 = 01</action>
            <action>slot:cart:rom.mb@0964 = 01</action>
        </script>
        <script state="off">
            <action>slot:cart:rom.mb@0950 = 20</action>
            <action>slot:cart:rom.mb@0964 = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x04">02       </item>
            <item value="0x08">03       </item>
            <item value="0x0c">04       </item>
            <item value="0x10">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>slot:cart:rom.md@0A3E = 7D00002E</action>
        </script>
        <script state="change">
            <action>slot:cart:rom.mb@0A3F = param</action>
        </script>
        <script state="off">
            <action>slot:cart:rom.md@0A3E = 7D136EDD</action>
        </script>
    </cheat>

    <cheat desc="information display">
        <script state="run">
            <action>temp0 = maincpu.pb@C102 band 0x01</action>
            <action condition="maincpu.pb@c23f == 0">temp1 = 00</action>
            <action condition="maincpu.pb@c23f != 0">temp1 = tobcd(frombcd(maincpu.pb@C23F - 1))</action>
            <action condition="maincpu.pb@c120 == 0">temp2 = 00</action>
            <action condition="maincpu.pb@c120 != 0">temp2 = tobcd(frombcd(maincpu.pb@C120 - 1))</action>
            <action condition="maincpu.pb@c121 == 0">temp3 = 00</action>
            <action condition="maincpu.pb@c121 != 0">temp3 = tobcd(frombcd(maincpu.pb@C121 - 1))</action>
            <output condition="temp0 == 01" format="1P &lt; %x &gt; %6X     HighScore : %6X     2P &lt; %x &gt; %6X" line="1" align="center">
                <argument>temp1</argument>
                <argument>(maincpu.pb@C232 * 10000) + (maincpu.pb@C233 * 100) + (maincpu.pb@C234)</argument>
                <argument>(maincpu.pb@C030 * 10000) + (maincpu.pb@C031 * 100) + (maincpu.pb@C032)</argument>
                <argument>temp3</argument>
                <argument>(maincpu.pb@C133 * 10000) + (maincpu.pb@C134 * 100) + (maincpu.pb@C135)</argument>
            </output>
            <output condition="temp0 == 00" format="1P &lt; %x &gt; %6X     HighScore : %6X     2P &lt; %x &gt; %6X" line="1" align="center">
                <argument>temp2</argument>
                <argument>(maincpu.pb@C130 * 10000) + (maincpu.pb@C131 * 100) + (maincpu.pb@C132)</argument>
                <argument>(maincpu.pb@C030 * 10000) + (maincpu.pb@C031 * 100) + (maincpu.pb@C032)</argument>
                <argument>temp1</argument>
                <argument>(maincpu.pb@C232 * 10000) + (maincpu.pb@C233 * 100) + (maincpu.pb@C234)</argument>
            </output>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip rom check error&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>slot:cart:rom.mq@1D40 = B810C3FFFF32033E</action>
            <action>slot:cart:rom.mq@F810 = 47B8DCDBC10021FB</action>
            <action>slot:cart:rom.mq@F818 = FE350120FBFEFA28</action>
            <action>slot:cart:rom.mq@F820 = 0420FDFE340120F7</action>
            <action>slot:cart:rom.mq@F828 = 0520FEFE0618F03E</action>
            <action>slot:cart:rom.mq@F830 = 20EFFE787786103E</action>
            <action>slot:cart:rom.mq@F838 = DFFE051880F67E05</action>
            <action>slot:cart:rom.mq@F840 = CC18DC0032AF0420</action>
            <!--
            1D40 | 3E 03    : ld   a,$03     // set bank
            1D42 | 32 FF FF : ld   ($FFFF),a
            1D45 | C3 10 B8 : jp   $B810
            ================================
            B810 | FB       : ei             // enable interrupt
            B811 | 21 00 C1 : ld   hl,$C100  // sound code address
            B814 | DB DC    : in   a,($DC)
            B816 | B8       : cp   b
            B817 | 47       : ld   b,a
            B818 | 28 FA    : jr   z,$B814
            B81A | FE FB    : cp   $FB
            B81C | 20 01    : jr   nz,$B81F
            B81E | 35       : dec  (hl)      // decrease code -01
            B81F | FE F7    : cp   $F7
            B821 | 20 01    : jr   nz,$B824
            B823 | 34       : inc  (hl)      // increase code +01
            B824 | FE FD    : cp   $FD
            B826 | 20 04    : jr   nz,$B82C
            B828 | 3E F0    : ld   a,$F0     // decrease code -10
            B82A | 18 06    : jr   $B832
            B82C | FE FE    : cp   $FE
            B82E | 20 05    : jr   nz,$B835
            B830 | 3E 10    : ld   a,$10     // increase code +10
            B832 | 86       : add  a,(hl)
            B833 | 77       : ld   (hl),a
            B834 | 78       : ld   a,b
            B835 | FE EF    : cp   $EF
            B837 | 20 05    : jr   nz,$B83E
            B839 | 7E       : ld   a,(hl)    // play sound
            B83A | F6 80    : or   $80
            B83C | 18 05    : jr   $B843
            B83E | FE DF    : cp   $DF
            B840 | 20 04    : jr   nz,$B846
            B842 | AF       : xor  a         // stop sound
            B843 | 32 00 DC : ld   ($DC00),a // send sound code
            B846 | 18 CC    : jr   $B814
            -->
        </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@C100</argument>
            </output>
        </script>
        <script state="off">
            <action>slot:cart:rom.mq@1D40 = CD05F4CDDFFE31F3</action>
            <action>slot:cart:rom.mq@F810 = FFFFFFFFFFFFFFFF</action>
            <action>slot:cart:rom.mq@F818 = FFFFFFFFFFFFFFFF</action>
            <action>slot:cart:rom.mq@F820 = FFFFFFFFFFFFFFFF</action>
            <action>slot:cart:rom.mq@F828 = FFFFFFFFFFFFFFFF</action>
            <action>slot:cart:rom.mq@F830 = FFFFFFFFFFFFFFFF</action>
            <action>slot:cart:rom.mq@F838 = FFFFFFFFFFFFFFFF</action>
            <action>slot:cart:rom.mq@F840 = 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>
sms/saposos.xml

Code: Select all

<!-- S.O.S. Lagoa Poluida (Brazil) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- objects -->
            <action>slot:cart:rom.mw@01A7D = 8000            </action>
            <action>slot:cart:rom.mq@18000 = FE08380FFE007EFD</action>
            <action>slot:cart:rom.mq@18008 = A7C91A88CD043013</action>
            <action>slot:cart:rom.mq@18010 = FFFFFFFFFFFFFFC9</action>
            <!--
            8000 | fd 7e 00 : ld   a,(iy+$00)
            8003 | fe 0f    : cp   $0f
            8005 | 38 08    : jr   c,$800f
            8007 | fe 13    : cp   $13
            8009 | 30 04    : jr   nc,$800f
            800b | cd 88 1a : call $1a88
            800e | c9       : ret
            800f | a7       : and  a
            8010 | c9       : ret
            -->
            <action>slot:cart:rom.mb@2528 = E3</action> <!-- boss -->
        </script>
        <script state="off">
            <action>slot:cart:rom.mw@01A7D = 1A88            </action>
            <action>slot:cart:rom.mq@18000 = FFFFFFFFFFFFFFFF</action>
            <action>slot:cart:rom.mq@18008 = FFFFFFFFFFFFFFFF</action>
            <action>slot:cart:rom.mq@18010 = FFFFFFFFFFFFFFFF</action>
            <action>slot:cart:rom.mb@02528 = 34              </action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>slot:cart:rom.mb@0950 = 01</action>
            <action>slot:cart:rom.mb@0964 = 01</action>
        </script>
        <script state="off">
            <action>slot:cart:rom.mb@0950 = 20</action>
            <action>slot:cart:rom.mb@0964 = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x04">02       </item>
            <item value="0x08">03       </item>
            <item value="0x0c">04       </item>
            <item value="0x10">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>slot:cart:rom.md@0A3E = 7D00002E</action>
        </script>
        <script state="change">
            <action>slot:cart:rom.mb@0A3F = param</action>
        </script>
        <script state="off">
            <action>slot:cart:rom.md@0A3E = 7D136EDD</action>
        </script>
    </cheat>

    <cheat desc="information display">
        <script state="run">
            <action>temp0 = maincpu.pb@C102 band 0x01</action>
            <action condition="maincpu.pb@c23f == 0">temp1 = 00</action>
            <action condition="maincpu.pb@c23f != 0">temp1 = tobcd(frombcd(maincpu.pb@C23F - 1))</action>
            <action condition="maincpu.pb@c120 == 0">temp2 = 00</action>
            <action condition="maincpu.pb@c120 != 0">temp2 = tobcd(frombcd(maincpu.pb@C120 - 1))</action>
            <action condition="maincpu.pb@c121 == 0">temp3 = 00</action>
            <action condition="maincpu.pb@c121 != 0">temp3 = tobcd(frombcd(maincpu.pb@C121 - 1))</action>
            <output condition="temp0 == 01" format="1P &lt; %x &gt; %6X     HighScore : %6X     2P &lt; %x &gt; %6X" line="1" align="center">
                <argument>temp1</argument>
                <argument>(maincpu.pb@C232 * 10000) + (maincpu.pb@C233 * 100) + (maincpu.pb@C234)</argument>
                <argument>(maincpu.pb@C030 * 10000) + (maincpu.pb@C031 * 100) + (maincpu.pb@C032)</argument>
                <argument>temp3</argument>
                <argument>(maincpu.pb@C133 * 10000) + (maincpu.pb@C134 * 100) + (maincpu.pb@C135)</argument>
            </output>
            <output condition="temp0 == 00" format="1P &lt; %x &gt; %6X     HighScore : %6X     2P &lt; %x &gt; %6X" line="1" align="center">
                <argument>temp2</argument>
                <argument>(maincpu.pb@C130 * 10000) + (maincpu.pb@C131 * 100) + (maincpu.pb@C132)</argument>
                <argument>(maincpu.pb@C030 * 10000) + (maincpu.pb@C031 * 100) + (maincpu.pb@C032)</argument>
                <argument>temp1</argument>
                <argument>(maincpu.pb@C232 * 10000) + (maincpu.pb@C233 * 100) + (maincpu.pb@C234)</argument>
            </output>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip rom check error&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>slot:cart:rom.mq@1D40 = B810C3FFFF32033E</action>
            <action>slot:cart:rom.mq@F810 = 47B8DCDBC10021FB</action>
            <action>slot:cart:rom.mq@F818 = FE350120FBFEFA28</action>
            <action>slot:cart:rom.mq@F820 = 0420FDFE340120F7</action>
            <action>slot:cart:rom.mq@F828 = 0520FEFE0618F03E</action>
            <action>slot:cart:rom.mq@F830 = 20EFFE787786103E</action>
            <action>slot:cart:rom.mq@F838 = DFFE051880F67E05</action>
            <action>slot:cart:rom.mq@F840 = CC18DC0032AF0420</action>
            <!--
            1D40 | 3E 03    : ld   a,$03     // set bank
            1D42 | 32 FF FF : ld   ($FFFF),a
            1D45 | C3 10 B8 : jp   $B810
            ================================
            B810 | FB       : ei             // enable interrupt
            B811 | 21 00 C1 : ld   hl,$C100  // sound code address
            B814 | DB DC    : in   a,($DC)
            B816 | B8       : cp   b
            B817 | 47       : ld   b,a
            B818 | 28 FA    : jr   z,$B814
            B81A | FE FB    : cp   $FB
            B81C | 20 01    : jr   nz,$B81F
            B81E | 35       : dec  (hl)      // decrease code -01
            B81F | FE F7    : cp   $F7
            B821 | 20 01    : jr   nz,$B824
            B823 | 34       : inc  (hl)      // increase code +01
            B824 | FE FD    : cp   $FD
            B826 | 20 04    : jr   nz,$B82C
            B828 | 3E F0    : ld   a,$F0     // decrease code -10
            B82A | 18 06    : jr   $B832
            B82C | FE FE    : cp   $FE
            B82E | 20 05    : jr   nz,$B835
            B830 | 3E 10    : ld   a,$10     // increase code +10
            B832 | 86       : add  a,(hl)
            B833 | 77       : ld   (hl),a
            B834 | 78       : ld   a,b
            B835 | FE EF    : cp   $EF
            B837 | 20 05    : jr   nz,$B83E
            B839 | 7E       : ld   a,(hl)    // play sound
            B83A | F6 80    : or   $80
            B83C | 18 05    : jr   $B843
            B83E | FE DF    : cp   $DF
            B840 | 20 04    : jr   nz,$B846
            B842 | AF       : xor  a         // stop sound
            B843 | 32 00 DC : ld   ($DC00),a // send sound code
            B846 | 18 CC    : jr   $B814
            -->
        </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@C100</argument>
            </output>
        </script>
        <script state="off">
            <action>slot:cart:rom.mq@1D40 = CD05F4CDDFFE31F3</action>
            <action>slot:cart:rom.mq@F810 = FFFFFFFFFFFFFFFF</action>
            <action>slot:cart:rom.mq@F818 = FFFFFFFFFFFFFFFF</action>
            <action>slot:cart:rom.mq@F820 = FFFFFFFFFFFFFFFF</action>
            <action>slot:cart:rom.mq@F828 = FFFFFFFFFFFFFFFF</action>
            <action>slot:cart:rom.mq@F830 = FFFFFFFFFFFFFFFF</action>
            <action>slot:cart:rom.mq@F838 = FFFFFFFFFFFFFFFF</action>
            <action>slot:cart:rom.mq@F840 = 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>
jman

my wip cheat database back-up (06/01/2025 ver.)
https://u3.getuploader.com/...../download/58
downloadpass : jman2020
Post Reply