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 "skip ram/rom check" 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="<< sound code %02X >>" 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>
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 "skip ram/rom check" 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="<< sound code %02X >>" 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>
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 "skip ram/rom check" 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="<< sound code %02X >>" 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>