[warpwarp]+ Warp & Warp
Posted: Wed Apr 23, 2025 2:32 pm
warpwarp.xml
warpwarpr.xml
warpwarpr2.xml
"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.
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>