[warpwarp]+ Warp & Warp

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

[warpwarp]+ Warp & Warp

Post by jman »

warpwarp.xml

Code: Select all

<!-- Warp & Warp -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@10F8 = C9</action> <!-- enemy -->
            <action>maincpu.mb@14F1 = C9</action> <!-- bullet -->
            <action>maincpu.mb@199E = A3</action> <!-- bomb explosion -->
        </script>
        <script state="off">
            <action>maincpu.mb@10F8 = D0</action>
            <action>maincpu.mb@14F1 = D0</action>
            <action>maincpu.mb@199E = A4</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mw@112F = 3000            </action> <!-- shot -->
            <action>maincpu.mw@16E5 = 3000            </action> <!-- bomb -->
            <action>maincpu.mq@3000 = C900FE01E677177E</action>
            <!--
            3000 | 7E    : mov  a,m
            3001 | 17    : ral
            3002 | 77    : mov  m,a
            3003 | E6 01 : ani  $01
            3005 | FE 00 : cpi  $00
            3007 | C9    : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@112F = 00A3            </action>
            <action>maincpu.mw@16E5 = 00A3            </action>
            <action>maincpu.mq@3000 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x10">02       </item>
            <item value="0x20">03       </item>
            <item value="0x40">04       </item>
            <item value="0x80">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@2F3C = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@2F3C = 20</action>
        </script>
    </cheat>

    <cheat desc="shot speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x10">02       </item>
            <item value="0x20">03       </item>
            <item value="0x40">04       </item>
            <item value="0x80">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@2F42 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@2F42 = 30</action>
        </script>
    </cheat>

    <cheat desc="bomb explosion speed">
        <parameter>
            <item value="0x20">01 (slow)</item>
            <item value="0x10">02       </item>
            <item value="0x08">03       </item>
            <item value="0x04">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@1746 = param</action>
            <action>maincpu.mb@1755 = param</action>
            <action>maincpu.mb@175A = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1746 = 2D</action>
            <action>maincpu.mb@1755 = 0F</action>
            <action>maincpu.mb@175A = 1E</action>
        </script>
    </cheat>

    <cheat desc="enemy speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x10">02       </item>
            <item value="0x20">03       </item>
            <item value="0x40">04       </item>
            <item value="0x80">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mb@2E22 = 3E</action>
        </script>
        <script state="change">
            <action>maincpu.mb@2E23 = param</action>
            <action>maincpu.mb@2E46 = param</action>
            <action>maincpu.mb@2F51 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@2E22 = 7E23</action>
            <action>maincpu.mb@2E46 = 75  </action>
            <action>maincpu.mb@2F51 = 20  </action>
        </script>
    </cheat>

    <cheat desc="sound test mode (test)">
        <!-- incorrect sound is played when you resume after sound stop by sound stop button -->
        <!-- you can't stop code 0x0E and 0x0F by sound stop button -->
        <!-- code 0x12 and 0x13 are played oddly -->
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@0350 = 0253            </action> <!-- disble HUD -->
            <action>maincpu.mw@0338 = 1159            </action> <!-- disable ball? -->
            <action>maincpu.mw@037A = 3010            </action>
            <action>maincpu.mq@3010 = 0022301A2119CFCD</action>
            <action>maincpu.mq@3018 = C0103A800121C983</action>
            <action>maincpu.mq@3020 = 2DC201E6C0023A47</action>
            <action>maincpu.mq@3028 = C0043A47FDE67830</action>
            <action>maincpu.mq@3030 = FEE6783039C201E6</action>
            <action>maincpu.mq@3038 = 6FFE2BC877BE7847</action>
            <action>maincpu.mq@3040 = 4AC29FFE353044C2</action>
            <action>maincpu.mq@3048 = 3E3054C20FFE3430</action>
            <action>maincpu.mq@3050 = 5EC23FFE305BC3F0</action>
            <action>maincpu.mq@3058 = FEFEC97786103E30</action>
            <action>maincpu.mq@3060 = 858080217E306DC2</action>
            <action>maincpu.mq@3068 = C0FDFEC977013E6F</action>
            <action>maincpu.mq@3070 = 230036808021153E</action>
            <action>maincpu.mq@3078 = 8032013E3075C23D</action>
            <action>maincpu.mq@3080 = 000000C980903280</action>
            <!--
            3010 | CD CF 19 : call $19cf   // clear screen
            3013 | 21 1A 30 : lxi  h,$301a
            3016 | 22 00 83 : shld $8300
            3019 | C9       : ret
            301A | 21 01 80 : lxi  h,$8001 // temporary input address
            301D | 3A 10 C0 : lda  $c010   // read direction key
            3020 | 47       : mov  b,a
            3021 | 3A 02 C0 : lda  $c002   // read button
            3024 | E6 01    : ani  $01
            3026 | C2 2D 30 : jnz  $302d
            3029 | 78       : mov  a,b
            302A | E6 FD    : ani  $fd
            302C | 47       : mov  b,a
            302D | 3A 04 C0 : lda  $c004   // read start button
            3030 | E6 01    : ani  $01
            3032 | C2 39 30 : jnz  $3039
            3035 | 78       : mov  a,b
            3036 | E6 FE    : ani  $fe
            3038 | 47       : mov  b,a
            3039 | 78       : mov  a,b
            303A | BE       : cmp  m
            303B | 77       : mov  m,a
            303C | C8       : rz
            303D | 2B       : dcx  h       // sound code address ($8000)
            303E | FE 6F    : cpi  $6f
            3040 | C2 44 30 : jnz  $3044
            3043 | 35       : dcr  m       // decrease code -01
            3044 | FE 9F    : cpi  $9f
            3046 | C2 4A 30 : jnz  $304a
            3049 | 34       : inr  m       // increase code +01
            304A | FE 0F    : cpi  $0f
            304C | C2 54 30 : jnz  $3054
            304F | 3E F0    : mvi  a,$f0   // decrease code -10
            3051 | C3 5B 30 : jmp  $305b
            3054 | FE 3F    : cpi  $3f
            3056 | C2 5E 30 : jnz  $305e
            3059 | 3E 10    : mvi  a,$10   // increase code +10
            305B | 86       : add  m
            305C | 77       : mov  m,a
            305D | C9       : ret
            305E | FE FE    : cpi  $fe
            3060 | C2 6D 30 : jnz  $306d
            3063 | 7E       : mov  a,m     // play sound
            3064 | 21 80 80 : lxi  h,$8080
            3067 | 85       : add  l
            3068 | 6F       : mov  l,a
            3069 | 3E 01    : mvi  a,$01
            306B | 77       : mov  m,a
            306C | C9       : ret
            306D | FE FD    : cpi  $fd
            306F | C0       : rnz
            3070 | 3E 15    : mvi  a,$15   // stop sound
            3072 | 21 80 80 : lxi  h,$8080
            3075 | 36 00    : mvi  m,$00
            3077 | 23       : inx  h
            3078 | 3D       : dcr  a
            3079 | C2 75 30 : jnz  $3075
            307C | 3E 01    : mvi  a,$01
            307E | 32 80 80 : sta  $8080
            3081 | 32 90 80 : sta  $8090
            3084 | 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="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@0350 = 0254            </action>
            <action>maincpu.mw@0338 = 115A            </action>
            <action>maincpu.mw@037A = 03B7            </action>
            <action>maincpu.mq@3010 = 0000000000000000</action>
            <action>maincpu.mq@3018 = 0000000000000000</action>
            <action>maincpu.mq@3020 = 0000000000000000</action>
            <action>maincpu.mq@3028 = 0000000000000000</action>
            <action>maincpu.mq@3030 = 0000000000000000</action>
            <action>maincpu.mq@3038 = 0000000000000000</action>
            <action>maincpu.mq@3040 = 0000000000000000</action>
            <action>maincpu.mq@3048 = 0000000000000000</action>
            <action>maincpu.mq@3050 = 0000000000000000</action>
            <action>maincpu.mq@3058 = 0000000000000000</action>
            <action>maincpu.mq@3060 = 0000000000000000</action>
            <action>maincpu.mq@3068 = 0000000000000000</action>
            <action>maincpu.mq@3070 = 0000000000000000</action>
            <action>maincpu.mq@3078 = 0000000000000000</action>
            <action>maincpu.mq@3080 = 0000000000000000</action>
            <action>maincpu.mq@3088 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.md@2913 = 0E2978C3</action> <!-- ram -->
            <action>maincpu.md@29EC = 212A16C3</action> <!-- rom -->
            <action>maincpu.mb@2AB3 = 01      </action> <!-- cross-hatch -->
        </script>
        <script state="off">
            <action>maincpu.md@2913 = 0E2910C2</action>
            <action>maincpu.md@29EC = 212FF811</action>
            <action>maincpu.mb@2AB3 = 78      </action>
        </script>
    </cheat>

</mamecheat>
warpwarpr.xml

Code: Select all

<!-- Warp Warp (Rock-Ola set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@10F8 = C9</action> <!-- enemy -->
            <action>maincpu.mb@14F1 = C9</action> <!-- bullet -->
            <action>maincpu.mb@199E = A3</action> <!-- bomb explosion -->
        </script>
        <script state="off">
            <action>maincpu.mb@10F8 = D0</action>
            <action>maincpu.mb@14F1 = D0</action>
            <action>maincpu.mb@199E = A4</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mw@112F = 3420            </action> <!-- shot -->
            <action>maincpu.mw@16E5 = 3420            </action> <!-- bomb -->
            <action>maincpu.mq@3420 = C900FE01E677177E</action>
            <!--
            3420 | 7E    : mov  a,m
            3421 | 17    : ral
            3422 | 77    : mov  m,a
            3423 | E6 01 : ani  $01
            3425 | FE 00 : cpi  $00
            3427 | C9    : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@112F = 00A3            </action>
            <action>maincpu.mw@16E5 = 00A3            </action>
            <action>maincpu.mq@3420 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x10">02       </item>
            <item value="0x20">03       </item>
            <item value="0x40">04       </item>
            <item value="0x80">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@2F0C = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@2F0C = 20</action>
        </script>
    </cheat>

    <cheat desc="shot speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x10">02       </item>
            <item value="0x20">03       </item>
            <item value="0x40">04       </item>
            <item value="0x80">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@2F12 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@2F12 = 30</action>
        </script>
    </cheat>

    <cheat desc="bomb explosion speed">
        <parameter>
            <item value="0x20">01 (slow)</item>
            <item value="0x10">02       </item>
            <item value="0x08">03       </item>
            <item value="0x04">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@1746 = param</action>
            <action>maincpu.mb@1755 = param</action>
            <action>maincpu.mb@175A = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1746 = 2D</action>
            <action>maincpu.mb@1755 = 0F</action>
            <action>maincpu.mb@175A = 1E</action>
        </script>
    </cheat>

    <cheat desc="enemy speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x10">02       </item>
            <item value="0x20">03       </item>
            <item value="0x40">04       </item>
            <item value="0x80">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mb@2DF2 = 3E</action>
        </script>
        <script state="change">
            <action>maincpu.mb@2DF3 = param</action>
            <action>maincpu.mb@2E16 = param</action>
            <action>maincpu.mb@2F21 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@2DF2 = 7E23</action>
            <action>maincpu.mb@2E16 = 75  </action>
            <action>maincpu.mb@2F21 = 20  </action>
        </script>
    </cheat>

    <cheat desc="sound test mode (test)">
        <!-- incorrect sound is played when you resume after sound stop by sound stop button -->
        <!-- you can't stop code 0x0E and 0x0F by sound stop button -->
        <!-- code 0x12 and 0x13 are played oddly -->
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@0350 = 0253            </action> <!-- disble HUD -->
            <action>maincpu.mw@0338 = 1159            </action> <!-- disable ball? -->
            <action>maincpu.mw@037A = 3430            </action>
            <action>maincpu.mq@3430 = 0022343A2119CFCD</action>
            <action>maincpu.mq@3438 = C0103A800121C983</action>
            <action>maincpu.mq@3440 = 4DC201E6C0023A47</action>
            <action>maincpu.mq@3448 = C0043A47FDE67834</action>
            <action>maincpu.mq@3450 = FEE6783459C201E6</action>
            <action>maincpu.mq@3458 = 6FFE2BC877BE7847</action>
            <action>maincpu.mq@3460 = 6AC29FFE353464C2</action>
            <action>maincpu.mq@3468 = 3E3474C20FFE3434</action>
            <action>maincpu.mq@3470 = 7EC23FFE347BC3F0</action>
            <action>maincpu.mq@3478 = FEFEC97786103E34</action>
            <action>maincpu.mq@3480 = 858080217E348DC2</action>
            <action>maincpu.mq@3488 = C0FDFEC977013E6F</action>
            <action>maincpu.mq@3490 = 230036808021153E</action>
            <action>maincpu.mq@3498 = 8032013E3495C23D</action>
            <action>maincpu.mq@34A0 = 000000C980903280</action>
            <!--
            3430 | CD CF 19 : call $19cf   // clear screen
            3433 | 21 3A 34 : lxi  h,$343a
            3436 | 22 00 83 : shld $8300
            3439 | C9       : ret
            343A | 21 01 80 : lxi  h,$8001 // temporary input address
            343D | 3A 10 C0 : lda  $c010   // read direction key
            3440 | 47       : mov  b,a
            3441 | 3A 02 C0 : lda  $c002   // read button
            3444 | E6 01    : ani  $01
            3446 | C2 4D 34 : jnz  $344d
            3449 | 78       : mov  a,b
            344A | E6 FD    : ani  $fd
            344C | 47       : mov  b,a
            344D | 3A 04 C0 : lda  $c004   // read start button
            3450 | E6 01    : ani  $01
            3452 | C2 59 34 : jnz  $3459
            3455 | 78       : mov  a,b
            3456 | E6 FE    : ani  $fe
            3458 | 47       : mov  b,a
            3459 | 78       : mov  a,b
            345A | BE       : cmp  m
            345B | 77       : mov  m,a
            345C | C8       : rz
            345D | 2B       : dcx  h       // sound code address ($8000)
            345E | FE 6F    : cpi  $6f
            3460 | C2 64 34 : jnz  $3464
            3463 | 35       : dcr  m       // decrease code -01
            3464 | FE 9F    : cpi  $9f
            3466 | C2 6A 34 : jnz  $346a
            3469 | 34       : inr  m       // increase code +01
            346A | FE 0F    : cpi  $0f
            346C | C2 74 34 : jnz  $3474
            346F | 3E F0    : mvi  a,$f0   // decrease code -10
            3471 | C3 7B 34 : jmp  $347b
            3474 | FE 3F    : cpi  $3f
            3476 | C2 7E 34 : jnz  $347e
            3479 | 3E 10    : mvi  a,$10   // increase code +10
            347B | 86       : add  m
            347C | 77       : mov  m,a
            347D | C9       : ret
            347E | FE FE    : cpi  $fe
            3480 | C2 8D 34 : jnz  $348d
            3483 | 7E       : mov  a,m     // play sound
            3484 | 21 80 80 : lxi  h,$8080
            3487 | 85       : add  l
            3488 | 6F       : mov  l,a
            3489 | 3E 01    : mvi  a,$01
            348B | 77       : mov  m,a
            348C | C9       : ret
            348D | FE FD    : cpi  $fd
            348F | C0       : rnz
            3490 | 3E 15    : mvi  a,$15   // stop sound
            3492 | 21 80 80 : lxi  h,$8080
            3495 | 36 00    : mvi  m,$00
            3497 | 23       : inx  h
            3498 | 3D       : dcr  a
            3499 | C2 95 34 : jnz  $3495
            349C | 3E 01    : mvi  a,$01
            349E | 32 80 80 : sta  $8080
            34A1 | 32 90 80 : sta  $8090
            34A4 | 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="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@0350 = 0254            </action>
            <action>maincpu.mw@0338 = 115A            </action>
            <action>maincpu.mw@037A = 03B7            </action>
            <action>maincpu.mq@3430 = 0000000000000000</action>
            <action>maincpu.mq@3438 = 0000000000000000</action>
            <action>maincpu.mq@3440 = 0000000000000000</action>
            <action>maincpu.mq@3448 = 0000000000000000</action>
            <action>maincpu.mq@3450 = 0000000000000000</action>
            <action>maincpu.mq@3458 = 0000000000000000</action>
            <action>maincpu.mq@3460 = 0000000000000000</action>
            <action>maincpu.mq@3468 = 0000000000000000</action>
            <action>maincpu.mq@3470 = 0000000000000000</action>
            <action>maincpu.mq@3478 = 0000000000000000</action>
            <action>maincpu.mq@3480 = 0000000000000000</action>
            <action>maincpu.mq@3488 = 0000000000000000</action>
            <action>maincpu.mq@3490 = 0000000000000000</action>
            <action>maincpu.mq@3498 = 0000000000000000</action>
            <action>maincpu.mq@34A0 = 0000000000000000</action>
            <action>maincpu.mq@34A8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.md@28E3 = 0E2948C3</action> <!-- ram -->
            <action>maincpu.md@29BC = 2129E6C3</action> <!-- rom -->
            <action>maincpu.mb@2A83 = 01      </action> <!-- cross-hatch -->
        </script>
        <script state="off">
            <action>maincpu.md@28E3 = 0E28E0C2</action>
            <action>maincpu.md@29BC = 2137F711</action>
            <action>maincpu.mb@2A83 = 78      </action>
        </script>
    </cheat>

</mamecheat>
warpwarpr2.xml

Code: Select all

<!-- Warp Warp (Rock-Ola set 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@10F8 = C9</action> <!-- enemy -->
            <action>maincpu.mb@14F1 = C9</action> <!-- bullet -->
            <action>maincpu.mb@199E = A3</action> <!-- bomb explosion -->
        </script>
        <script state="off">
            <action>maincpu.mb@10F8 = D0</action>
            <action>maincpu.mb@14F1 = D0</action>
            <action>maincpu.mb@199E = A4</action>
        </script>
    </cheat>

    <cheat desc="rapid fire">
        <script state="on">
            <action>maincpu.mw@112F = 3420            </action> <!-- shot -->
            <action>maincpu.mw@16E5 = 3420            </action> <!-- bomb -->
            <action>maincpu.mq@3420 = C900FE01E677177E</action>
            <!--
            3420 | 7E    : mov  a,m
            3421 | 17    : ral
            3422 | 77    : mov  m,a
            3423 | E6 01 : ani  $01
            3425 | FE 00 : cpi  $00
            3427 | C9    : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@112F = 00A3            </action>
            <action>maincpu.mw@16E5 = 00A3            </action>
            <action>maincpu.mq@3420 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x10">02       </item>
            <item value="0x20">03       </item>
            <item value="0x40">04       </item>
            <item value="0x80">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@2F0C = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@2F0C = 20</action>
        </script>
    </cheat>

    <cheat desc="shot speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x10">02       </item>
            <item value="0x20">03       </item>
            <item value="0x40">04       </item>
            <item value="0x80">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@2F12 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@2F12 = 30</action>
        </script>
    </cheat>

    <cheat desc="bomb explosion speed">
        <parameter>
            <item value="0x20">01 (slow)</item>
            <item value="0x10">02       </item>
            <item value="0x08">03       </item>
            <item value="0x04">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@1746 = param</action>
            <action>maincpu.mb@1755 = param</action>
            <action>maincpu.mb@175A = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1746 = 2D</action>
            <action>maincpu.mb@1755 = 0F</action>
            <action>maincpu.mb@175A = 1E</action>
        </script>
    </cheat>

    <cheat desc="enemy speed">
        <parameter>
            <item value="0x08">01 (slow)</item>
            <item value="0x10">02       </item>
            <item value="0x20">03       </item>
            <item value="0x40">04       </item>
            <item value="0x80">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mb@2DF2 = 3E</action>
        </script>
        <script state="change">
            <action>maincpu.mb@2DF3 = param</action>
            <action>maincpu.mb@2E16 = param</action>
            <action>maincpu.mb@2F21 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@2DF2 = 7E23</action>
            <action>maincpu.mb@2E16 = 75  </action>
            <action>maincpu.mb@2F21 = 20  </action>
        </script>
    </cheat>

    <cheat desc="sound test mode (test)">
        <!-- incorrect sound is played when you resume after sound stop by sound stop button -->
        <!-- you can't stop code 0x0E and 0x0F by sound stop button -->
        <!-- code 0x12 and 0x13 are played oddly -->
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@0350 = 0253            </action> <!-- disble HUD -->
            <action>maincpu.mw@0338 = 1159            </action> <!-- disable ball? -->
            <action>maincpu.mw@037A = 3430            </action>
            <action>maincpu.mq@3430 = 0022343A2119CFCD</action>
            <action>maincpu.mq@3438 = C0103A800121C983</action>
            <action>maincpu.mq@3440 = 4DC201E6C0023A47</action>
            <action>maincpu.mq@3448 = C0043A47FDE67834</action>
            <action>maincpu.mq@3450 = FEE6783459C201E6</action>
            <action>maincpu.mq@3458 = 6FFE2BC877BE7847</action>
            <action>maincpu.mq@3460 = 6AC29FFE353464C2</action>
            <action>maincpu.mq@3468 = 3E3474C20FFE3434</action>
            <action>maincpu.mq@3470 = 7EC23FFE347BC3F0</action>
            <action>maincpu.mq@3478 = FEFEC97786103E34</action>
            <action>maincpu.mq@3480 = 858080217E348DC2</action>
            <action>maincpu.mq@3488 = C0FDFEC977013E6F</action>
            <action>maincpu.mq@3490 = 230036808021153E</action>
            <action>maincpu.mq@3498 = 8032013E3495C23D</action>
            <action>maincpu.mq@34A0 = 000000C980903280</action>
            <!--
            3430 | CD CF 19 : call $19cf   // clear screen
            3433 | 21 3A 34 : lxi  h,$343a
            3436 | 22 00 83 : shld $8300
            3439 | C9       : ret
            343A | 21 01 80 : lxi  h,$8001 // temporary input address
            343D | 3A 10 C0 : lda  $c010   // read direction key
            3440 | 47       : mov  b,a
            3441 | 3A 02 C0 : lda  $c002   // read button
            3444 | E6 01    : ani  $01
            3446 | C2 4D 34 : jnz  $344d
            3449 | 78       : mov  a,b
            344A | E6 FD    : ani  $fd
            344C | 47       : mov  b,a
            344D | 3A 04 C0 : lda  $c004   // read start button
            3450 | E6 01    : ani  $01
            3452 | C2 59 34 : jnz  $3459
            3455 | 78       : mov  a,b
            3456 | E6 FE    : ani  $fe
            3458 | 47       : mov  b,a
            3459 | 78       : mov  a,b
            345A | BE       : cmp  m
            345B | 77       : mov  m,a
            345C | C8       : rz
            345D | 2B       : dcx  h       // sound code address ($8000)
            345E | FE 6F    : cpi  $6f
            3460 | C2 64 34 : jnz  $3464
            3463 | 35       : dcr  m       // decrease code -01
            3464 | FE 9F    : cpi  $9f
            3466 | C2 6A 34 : jnz  $346a
            3469 | 34       : inr  m       // increase code +01
            346A | FE 0F    : cpi  $0f
            346C | C2 74 34 : jnz  $3474
            346F | 3E F0    : mvi  a,$f0   // decrease code -10
            3471 | C3 7B 34 : jmp  $347b
            3474 | FE 3F    : cpi  $3f
            3476 | C2 7E 34 : jnz  $347e
            3479 | 3E 10    : mvi  a,$10   // increase code +10
            347B | 86       : add  m
            347C | 77       : mov  m,a
            347D | C9       : ret
            347E | FE FE    : cpi  $fe
            3480 | C2 8D 34 : jnz  $348d
            3483 | 7E       : mov  a,m     // play sound
            3484 | 21 80 80 : lxi  h,$8080
            3487 | 85       : add  l
            3488 | 6F       : mov  l,a
            3489 | 3E 01    : mvi  a,$01
            348B | 77       : mov  m,a
            348C | C9       : ret
            348D | FE FD    : cpi  $fd
            348F | C0       : rnz
            3490 | 3E 15    : mvi  a,$15   // stop sound
            3492 | 21 80 80 : lxi  h,$8080
            3495 | 36 00    : mvi  m,$00
            3497 | 23       : inx  h
            3498 | 3D       : dcr  a
            3499 | C2 95 34 : jnz  $3495
            349C | 3E 01    : mvi  a,$01
            349E | 32 80 80 : sta  $8080
            34A1 | 32 90 80 : sta  $8090
            34A4 | 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="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@0350 = 0254            </action>
            <action>maincpu.mw@0338 = 115A            </action>
            <action>maincpu.mw@037A = 03B7            </action>
            <action>maincpu.mq@3430 = 0000000000000000</action>
            <action>maincpu.mq@3438 = 0000000000000000</action>
            <action>maincpu.mq@3440 = 0000000000000000</action>
            <action>maincpu.mq@3448 = 0000000000000000</action>
            <action>maincpu.mq@3450 = 0000000000000000</action>
            <action>maincpu.mq@3458 = 0000000000000000</action>
            <action>maincpu.mq@3460 = 0000000000000000</action>
            <action>maincpu.mq@3468 = 0000000000000000</action>
            <action>maincpu.mq@3470 = 0000000000000000</action>
            <action>maincpu.mq@3478 = 0000000000000000</action>
            <action>maincpu.mq@3480 = 0000000000000000</action>
            <action>maincpu.mq@3488 = 0000000000000000</action>
            <action>maincpu.mq@3490 = 0000000000000000</action>
            <action>maincpu.mq@3498 = 0000000000000000</action>
            <action>maincpu.mq@34A0 = 0000000000000000</action>
            <action>maincpu.mq@34A8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.md@28E3 = 0E2948C3</action> <!-- ram -->
            <action>maincpu.md@29BC = 2129E6C3</action> <!-- rom -->
            <action>maincpu.mb@2A83 = 01      </action> <!-- cross-hatch -->
        </script>
        <script state="off">
            <action>maincpu.md@28E3 = 0E28E0C2</action>
            <action>maincpu.md@29BC = 2137F711</action>
            <action>maincpu.mb@2A83 = 78      </action>
        </script>
    </cheat>

</mamecheat>
"sound test mode" : Test code. Incorrect sound is played when you resume after sound stop by sound stop button. You can't stop code 0x0E and 0x0F by sound stop button. Code 0x12 and 0x13 are played oddly.
jman

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