In 0.259, espialj and espialn are added. Based code is similar to espialu but no playing music like espial.
espialj.xml
Code: Select all
<!-- Espial (Japan) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@2A6D = 18</action>
</script>
<script state="off">
<action>maincpu.mb@2A6D = 30</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@28C0 = 04</action> <!-- bomb -->
<action>maincpu.mb@28D5 = 04</action> <!-- shot -->
</script>
<script state="off">
<action>maincpu.mb@28C0 = 28</action>
<action>maincpu.mb@28D5 = 18</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x02">02 </item>
<item value="0x04">03 </item>
<item value="0x06">04 </item>
<item value="0x08">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@27F5 = DD5F00CD</action> <!-- y position -->
<action>maincpu.md@27FD = DD5F07CD</action> <!-- x position -->
</script>
<script state="run">
<action>maincpu.pq@5F00 = CDC90086DD5F0ECD</action>
<action>maincpu.pq@5F08 = C8A7C90186DD5F0E</action>
<action>maincpu.pq@5F10 = 0000C944EDF0003E</action>
<!--
5F00 | CD 0E 5F : call $5F0E // y position
5F03 | DD 86 00 : add a,(ix+$00)
5F06 | C9 : ret
5F07 | CD 0E 5F : call $5F0E // x position
5F0A | DD 86 01 : add a,(ix+$01)
5F0D | C9 : ret
5F0E | A7 : and a // calculate routine
5F0F | C8 : ret z
5F10 | 3E xx : ld a,$xx
5F12 | F0 : ret p
5F13 | ED 44 : neg
5F15 | C9 : ret
-->
<action>maincpu.pb@5F11 = param</action>
</script>
<script state="off">
<action>maincpu.md@27F5 = DD0086DD </action>
<action>maincpu.md@27FD = DD0186DD </action>
<action>maincpu.pq@5F00 = 0000000000000000</action>
<action>maincpu.pq@5F08 = 0000000000000000</action>
<action>maincpu.pq@5F10 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x08">01 (slow)</item>
<item value="0x10">02 </item>
<item value="0x18">03 </item>
<item value="0x20">04 </item>
<item value="0x28">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@2A0C = param</action>
<action>maincpu.mb@2A0E = -param</action>
</script>
<script state="off">
<action>maincpu.mb@2A0C = 10</action>
<action>maincpu.mb@2A0E = F0</action>
</script>
</cheat>
<cheat desc="fast bomb">
<script state="on">
<action>maincpu.mw@2939 = 5BF4</action> <!-- y position -->
<action>maincpu.mw@2950 = 013E</action> <!-- landing timer -->
<action>maincpu.mw@29DA = 0807</action> <!-- explosion timer -->
</script>
<script state="off">
<action>maincpu.mw@2939 = 59EA</action>
<action>maincpu.mw@2950 = 223E</action>
<action>maincpu.mw@29DA = 2007</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mq@057D = 02B4CDD9580021FB</action>
<action>maincpu.mq@0585 = F42847B858263AD9</action>
<action>maincpu.mq@058D = 2001FE35012002FE</action>
<action>maincpu.mq@0595 = F03E042008FE3401</action>
<action>maincpu.mq@059D = 103E052004FE0618</action>
<action>maincpu.mq@05A5 = 7E032010FE787786</action>
<action>maincpu.mq@05AD = F23E052020FE0618</action>
<action>maincpu.mq@05B5 = 000000C718609032</action>
<!--
057D | FB : ei // enable interrupt
057E | 21 00 58 : ld hl,$5800
0581 | D9 : exx
0582 | CD B4 02 : call $02B4 // check input
0585 | D9 : exx
0586 | 3A 26 58 : ld a,($5826) // read input
0589 | B8 : cp b
058A | 47 : ld b,a
058B | 28 F4 : jr z,$0581
058D | FE 02 : cp $02
058F | 20 01 : jr nz,$0592
0591 | 35 : dec (hl) // decrease code -01
0592 | FE 01 : cp $01
0594 | 20 01 : jr nz,$0597
0596 | 34 : inc (hl) // increase code +01
0597 | FE 08 : cp $08
0599 | 20 04 : jr nz,$059F
059B | 3E F0 : ld a,$F0 // decrease code -10
059D | 18 06 : jr $05A5
059F | FE 04 : cp $04
05A1 | 20 05 : jr nz,$05A8
05A3 | 3E 10 : ld a,$10 // increase code +10
05A5 | 86 : add a,(hl)
05A6 | 77 : ld (hl),a
05A7 | 78 : ld a,b
05A8 | FE 10 : cp $10
05AA | 20 03 : jr nz,$05AF
05AC | 7E : ld a,(hl) // play sound
05AD | 18 06 : jr $05B5
05AF | FE 20 : cp $20
05B1 | 20 05 : jr nz,$05B8
05B3 | 3E F2 : ld a,$F2 // stop sound
05B5 | 32 90 60 : ld ($6090),a // send sound code
05B8 | 18 C7 : jr $0581
-->
</script>
<script state="run">
<output format="----- espial 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="<< sound code %2.2X >>" line="19" align="center" >
<argument>maincpu.pb@5800</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@057D = 042001841C11013E</action>
<action>maincpu.mq@0585 = 580032FF3E04D0CD</action>
<action>maincpu.mq@058D = 803E58192258BA21</action>
<action>maincpu.mq@0595 = 003ECF113E582332</action>
<action>maincpu.mq@059D = 003A0006FB710032</action>
<action>maincpu.mq@05A5 = 580021EB09100E70</action>
<action>maincpu.mq@05AD = 0036052012FE7E34</action>
<action>maincpu.mq@05B5 = 581922EB4E58CA11</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.mw@4D60 = 1618</action>
</script>
<script state="off">
<action>maincpu.mw@4D60 = 8679</action>
</script>
</cheat>
</mamecheat>
espialn.xml
Code: Select all
<!-- Espial (Nova Apparate license) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@2A6D = 18</action>
</script>
<script state="off">
<action>maincpu.mb@2A6D = 30</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@28C0 = 04</action> <!-- bomb -->
<action>maincpu.mb@28D5 = 04</action> <!-- shot -->
</script>
<script state="off">
<action>maincpu.mb@28C0 = 28</action>
<action>maincpu.mb@28D5 = 18</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x02">02 </item>
<item value="0x04">03 </item>
<item value="0x06">04 </item>
<item value="0x08">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@27F5 = DD5F00CD</action> <!-- y position -->
<action>maincpu.md@27FD = DD5F07CD</action> <!-- x position -->
</script>
<script state="run">
<action>maincpu.pq@5F00 = CDC90086DD5F0ECD</action>
<action>maincpu.pq@5F08 = C8A7C90186DD5F0E</action>
<action>maincpu.pq@5F10 = 0000C944EDF0003E</action>
<!--
5F00 | CD 0E 5F : call $5F0E // y position
5F03 | DD 86 00 : add a,(ix+$00)
5F06 | C9 : ret
5F07 | CD 0E 5F : call $5F0E // x position
5F0A | DD 86 01 : add a,(ix+$01)
5F0D | C9 : ret
5F0E | A7 : and a // calculate routine
5F0F | C8 : ret z
5F10 | 3E xx : ld a,$xx
5F12 | F0 : ret p
5F13 | ED 44 : neg
5F15 | C9 : ret
-->
<action>maincpu.pb@5F11 = param</action>
</script>
<script state="off">
<action>maincpu.md@27F5 = DD0086DD </action>
<action>maincpu.md@27FD = DD0186DD </action>
<action>maincpu.pq@5F00 = 0000000000000000</action>
<action>maincpu.pq@5F08 = 0000000000000000</action>
<action>maincpu.pq@5F10 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x08">01 (slow)</item>
<item value="0x10">02 </item>
<item value="0x18">03 </item>
<item value="0x20">04 </item>
<item value="0x28">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@2A0C = param</action>
<action>maincpu.mb@2A0E = -param</action>
</script>
<script state="off">
<action>maincpu.mb@2A0C = 10</action>
<action>maincpu.mb@2A0E = F0</action>
</script>
</cheat>
<cheat desc="fast bomb">
<script state="on">
<action>maincpu.mw@2939 = 5BF4</action> <!-- y position -->
<action>maincpu.mw@2950 = 013E</action> <!-- landing timer -->
<action>maincpu.mw@29DA = 0807</action> <!-- explosion timer -->
</script>
<script state="off">
<action>maincpu.mw@2939 = 59EA</action>
<action>maincpu.mw@2950 = 223E</action>
<action>maincpu.mw@29DA = 2007</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mq@057D = 02B4CDD9580021FB</action>
<action>maincpu.mq@0585 = F42847B858263AD9</action>
<action>maincpu.mq@058D = 2001FE35012002FE</action>
<action>maincpu.mq@0595 = F03E042008FE3401</action>
<action>maincpu.mq@059D = 103E052004FE0618</action>
<action>maincpu.mq@05A5 = 7E032010FE787786</action>
<action>maincpu.mq@05AD = F23E052020FE0618</action>
<action>maincpu.mq@05B5 = 000000C718609032</action>
<!--
057D | FB : ei // enable interrupt
057E | 21 00 58 : ld hl,$5800
0581 | D9 : exx
0582 | CD B4 02 : call $02B4 // check input
0585 | D9 : exx
0586 | 3A 26 58 : ld a,($5826) // read input
0589 | B8 : cp b
058A | 47 : ld b,a
058B | 28 F4 : jr z,$0581
058D | FE 02 : cp $02
058F | 20 01 : jr nz,$0592
0591 | 35 : dec (hl) // decrease code -01
0592 | FE 01 : cp $01
0594 | 20 01 : jr nz,$0597
0596 | 34 : inc (hl) // increase code +01
0597 | FE 08 : cp $08
0599 | 20 04 : jr nz,$059F
059B | 3E F0 : ld a,$F0 // decrease code -10
059D | 18 06 : jr $05A5
059F | FE 04 : cp $04
05A1 | 20 05 : jr nz,$05A8
05A3 | 3E 10 : ld a,$10 // increase code +10
05A5 | 86 : add a,(hl)
05A6 | 77 : ld (hl),a
05A7 | 78 : ld a,b
05A8 | FE 10 : cp $10
05AA | 20 03 : jr nz,$05AF
05AC | 7E : ld a,(hl) // play sound
05AD | 18 06 : jr $05B5
05AF | FE 20 : cp $20
05B1 | 20 05 : jr nz,$05B8
05B3 | 3E F2 : ld a,$F2 // stop sound
05B5 | 32 90 60 : ld ($6090),a // send sound code
05B8 | 18 C7 : jr $0581
-->
</script>
<script state="run">
<output format="----- espial 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="<< sound code %2.2X >>" line="19" align="center" >
<argument>maincpu.pb@5800</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@057D = 042001841C11013E</action>
<action>maincpu.mq@0585 = 580032FF3E04D0CD</action>
<action>maincpu.mq@058D = 803E58192258BA21</action>
<action>maincpu.mq@0595 = 003ECF113E582332</action>
<action>maincpu.mq@059D = 003A0006FB710032</action>
<action>maincpu.mq@05A5 = 580021EB09100E70</action>
<action>maincpu.mq@05AD = 0036052012FE7E34</action>
<action>maincpu.mq@05B5 = 581922EB4E58CA11</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.mw@4D60 = 1618</action>
</script>
<script state="off">
<action>maincpu.mw@4D60 = 8679</action>
</script>
</cheat>
</mamecheat>
Also clean up espial and espialu.
espial.xml
Code: Select all
<!-- Espial (Europe) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@29A2 = 18</action>
</script>
<script state="off">
<action>maincpu.mb@29A2 = 30</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@27F5 = 04</action> <!-- bomb -->
<action>maincpu.mb@280A = 04</action> <!-- shot -->
</script>
<script state="off">
<action>maincpu.mb@27F5 = 28</action>
<action>maincpu.mb@280A = 18</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x02">02 </item>
<item value="0x04">03 </item>
<item value="0x06">04 </item>
<item value="0x08">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@272A = DD5F00CD</action> <!-- y position -->
<action>maincpu.md@2732 = DD5F07CD</action> <!-- x position -->
</script>
<script state="run">
<action>maincpu.pq@5F00 = CDC90086DD5F0ECD</action>
<action>maincpu.pq@5F08 = C8A7C90186DD5F0E</action>
<action>maincpu.pq@5F10 = 0000C944EDF0003E</action>
<!--
5F00 | CD 0E 5F : call $5F0E // y position
5F03 | DD 86 00 : add a,(ix+$00)
5F06 | C9 : ret
5F07 | CD 0E 5F : call $5F0E // x position
5F0A | DD 86 01 : add a,(ix+$01)
5F0D | C9 : ret
5F0E | A7 : and a // calculate routine
5F0F | C8 : ret z
5F10 | 3E xx : ld a,$xx
5F12 | F0 : ret p
5F13 | ED 44 : neg
5F15 | C9 : ret
-->
<action>maincpu.pb@5F11 = param</action>
</script>
<script state="off">
<action>maincpu.md@272A = DD0086DD </action>
<action>maincpu.md@2732 = DD0186DD </action>
<action>maincpu.pq@5F00 = 0000000000000000</action>
<action>maincpu.pq@5F08 = 0000000000000000</action>
<action>maincpu.pq@5F10 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x08">01 (slow)</item>
<item value="0x10">02 </item>
<item value="0x18">03 </item>
<item value="0x20">04 </item>
<item value="0x28">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@2941 = param</action>
<action>maincpu.mb@2943 = -param</action>
</script>
<script state="off">
<action>maincpu.mb@2941 = 10</action>
<action>maincpu.mb@2943 = F0</action>
</script>
</cheat>
<cheat desc="fast bomb">
<script state="on">
<action>maincpu.mw@286E = 5BF4</action> <!-- y position -->
<action>maincpu.mw@2885 = 013E</action> <!-- landing timer -->
<action>maincpu.mw@290F = 0807</action> <!-- explosion timer -->
</script>
<script state="off">
<action>maincpu.mw@286E = 59EA</action>
<action>maincpu.mw@2885 = 223E</action>
<action>maincpu.mw@290F = 2007</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mq@04AF = 02B4CDD9580021FB</action>
<action>maincpu.mq@04B7 = F42847B858263AD9</action>
<action>maincpu.mq@04BF = 2001FE35012002FE</action>
<action>maincpu.mq@04C7 = F03E042008FE3401</action>
<action>maincpu.mq@04CF = 103E052004FE0618</action>
<action>maincpu.mq@04D7 = 7E032010FE787786</action>
<action>maincpu.mq@04DF = F23E052020FE0618</action>
<action>maincpu.mq@04E7 = 000000C718609032</action>
<!--
04AF | FB : ei // enable interrupt
04B0 | 21 00 58 : ld hl,$5800
04B3 | D9 : exx
04B4 | CD B4 02 : call $02B4 // check input
04B7 | D9 : exx
04B8 | 3A 26 58 : ld a,($5826) // read input
04BB | B8 : cp b
04BC | 47 : ld b,a
04BD | 28 F4 : jr z,$04B3
04BF | FE 02 : cp $02
04C1 | 20 01 : jr nz,$04C4
04C3 | 35 : dec (hl) // decrease code -01
04C4 | FE 01 : cp $01
04C6 | 20 01 : jr nz,$04C9
04C8 | 34 : inc (hl) // increase code +01
04C9 | FE 08 : cp $08
04CB | 20 04 : jr nz,$04D1
04CD | 3E F0 : ld a,$F0 // decrease code -10
04CF | 18 06 : jr $04D7
04D1 | FE 04 : cp $04
04D3 | 20 05 : jr nz,$04DA
04D5 | 3E 10 : ld a,$10 // increase code +10
04D7 | 86 : add a,(hl)
04D8 | 77 : ld (hl),a
04D9 | 78 : ld a,b
04DA | FE 10 : cp $10
04DC | 20 03 : jr nz,$04E1
04DE | 7E : ld a,(hl) // play sound
04DF | 18 06 : jr $04E7
04E1 | FE 20 : cp $20
04E3 | 20 05 : jr nz,$04EA
04E5 | 3E F2 : ld a,$F2 // stop sound
04E7 | 32 90 60 : ld ($6090),a // send sound code
04EA | 18 C7 : jr $04B3
-->
</script>
<script state="run">
<output format="----- espial 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="<< sound code %2.2X >>" line="19" align="center" >
<argument>maincpu.pb@5800</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@04AF = 042001841C11013E</action>
<action>maincpu.mq@04B7 = 580032FF3E0402CD</action>
<action>maincpu.mq@04BF = 803E58192258BA21</action>
<action>maincpu.mq@04C7 = 003ECF113E582332</action>
<action>maincpu.mq@04CF = 003A0006FB710032</action>
<action>maincpu.mq@04D7 = 580021EB09100E70</action>
<action>maincpu.mq@04DF = 0036052012FE7E34</action>
<action>maincpu.mq@04E7 = 581922EB4E58CA11</action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.mw@4C8C = 1618</action>
</script>
<script state="off">
<action>maincpu.mw@4C8C = 8679</action>
</script>
</cheat>
</mamecheat>
espialu.xml
Code: Select all
<!-- Espial (US?) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@2A6D = 18</action>
</script>
<script state="off">
<action>maincpu.mb@2A6D = 30</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@28C0 = 04</action> <!-- bomb -->
<action>maincpu.mb@28D5 = 04</action> <!-- shot -->
</script>
<script state="off">
<action>maincpu.mb@28C0 = 28</action>
<action>maincpu.mb@28D5 = 18</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x02">02 </item>
<item value="0x04">03 </item>
<item value="0x06">04 </item>
<item value="0x08">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@27F5 = DD5F00CD</action> <!-- y position -->
<action>maincpu.md@27FD = DD5F07CD</action> <!-- x position -->
</script>
<script state="run">
<action>maincpu.pq@5F00 = CDC90086DD5F0ECD</action>
<action>maincpu.pq@5F08 = C8A7C90186DD5F0E</action>
<action>maincpu.pq@5F10 = 0000C944EDF0003E</action>
<!--
5F00 | CD 0E 5F : call $5F0E // y position
5F03 | DD 86 00 : add a,(ix+$00)
5F06 | C9 : ret
5F07 | CD 0E 5F : call $5F0E // x position
5F0A | DD 86 01 : add a,(ix+$01)
5F0D | C9 : ret
5F0E | A7 : and a // calculate routine
5F0F | C8 : ret z
5F10 | 3E xx : ld a,$xx
5F12 | F0 : ret p
5F13 | ED 44 : neg
5F15 | C9 : ret
-->
<action>maincpu.pb@5F11 = param</action>
</script>
<script state="off">
<action>maincpu.md@27F5 = DD0086DD </action>
<action>maincpu.md@27FD = DD0186DD </action>
<action>maincpu.pq@5F00 = 0000000000000000</action>
<action>maincpu.pq@5F08 = 0000000000000000</action>
<action>maincpu.pq@5F10 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x08">01 (slow)</item>
<item value="0x10">02 </item>
<item value="0x18">03 </item>
<item value="0x20">04 </item>
<item value="0x28">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@2A0C = param</action>
<action>maincpu.mb@2A0E = -param</action>
</script>
<script state="off">
<action>maincpu.mb@2A0C = 10</action>
<action>maincpu.mb@2A0E = F0</action>
</script>
</cheat>
<cheat desc="fast bomb">
<script state="on">
<action>maincpu.mw@2939 = 5BF4</action> <!-- y position -->
<action>maincpu.mw@2950 = 013E</action> <!-- landing timer -->
<action>maincpu.mw@29DA = 0807</action> <!-- explosion timer -->
</script>
<script state="off">
<action>maincpu.mw@2939 = 59EA</action>
<action>maincpu.mw@2950 = 223E</action>
<action>maincpu.mw@29DA = 2007</action>
</script>
</cheat>
<cheat desc="no broken sound (test)">
<script state="on">
<action>audiocpu.mb@1F14 = 18</action>
</script>
<script state="off">
<action>audiocpu.mb@1F14 = 28</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set "skip rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mq@057D = 02B4CDD9580021FB</action>
<action>maincpu.mq@0585 = F42847B858263AD9</action>
<action>maincpu.mq@058D = 2001FE35012002FE</action>
<action>maincpu.mq@0595 = F03E042008FE3401</action>
<action>maincpu.mq@059D = 103E052004FE0618</action>
<action>maincpu.mq@05A5 = 7E032010FE787786</action>
<action>maincpu.mq@05AD = F23E052020FE0618</action>
<action>maincpu.mq@05B5 = 000000C718609032</action>
<!--
057D | FB : ei // enable interrupt
057E | 21 00 58 : ld hl,$5800
0581 | D9 : exx
0582 | CD B4 02 : call $02B4 // check input
0585 | D9 : exx
0586 | 3A 26 58 : ld a,($5826) // read input
0589 | B8 : cp b
058A | 47 : ld b,a
058B | 28 F4 : jr z,$0581
058D | FE 02 : cp $02
058F | 20 01 : jr nz,$0592
0591 | 35 : dec (hl) // decrease code -01
0592 | FE 01 : cp $01
0594 | 20 01 : jr nz,$0597
0596 | 34 : inc (hl) // increase code +01
0597 | FE 08 : cp $08
0599 | 20 04 : jr nz,$059F
059B | 3E F0 : ld a,$F0 // decrease code -10
059D | 18 06 : jr $05A5
059F | FE 04 : cp $04
05A1 | 20 05 : jr nz,$05A8
05A3 | 3E 10 : ld a,$10 // increase code +10
05A5 | 86 : add a,(hl)
05A6 | 77 : ld (hl),a
05A7 | 78 : ld a,b
05A8 | FE 10 : cp $10
05AA | 20 03 : jr nz,$05AF
05AC | 7E : ld a,(hl) // play sound
05AD | 18 06 : jr $05B5
05AF | FE 20 : cp $20
05B1 | 20 05 : jr nz,$05B8
05B3 | 3E F2 : ld a,$F2 // stop sound
05B5 | 32 90 60 : ld ($6090),a // send sound code
05B8 | 18 C7 : jr $0581
-->
<action>audiocpu.mb@184A = 00</action> <!-- disable playing music and sfx at the same time -->
</script>
<script state="run">
<output format="----- espial 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="<< sound code %2.2X >>" line="19" align="center" >
<argument>maincpu.pb@5800</argument>
</output>
</script>
<script state="off">
<action> maincpu.mq@057D = 042001841C11013E</action>
<action> maincpu.mq@0585 = 580032FF3E04D0CD</action>
<action> maincpu.mq@058D = 803E58192258BA21</action>
<action> maincpu.mq@0595 = 003ECF113E582332</action>
<action> maincpu.mq@059D = 003A0006FB710032</action>
<action> maincpu.mq@05A5 = 580021EB09100E70</action>
<action> maincpu.mq@05AD = 0036052012FE7E34</action>
<action> maincpu.mq@05B5 = 581922EB4E58CA11</action>
<action>audiocpu.mb@184A = 03 </action>
</script>
</cheat>
<cheat desc="skip rom check">
<script state="on">
<action>maincpu.mw@4D60 = 1618</action>
</script>
<script state="off">
<action>maincpu.mw@4D60 = 8679</action>
</script>
</cheat>
</mamecheat>
I add "no broken sound (test)" code for espialu because sometimes sound is broken when you use "auto fire" + "fast bomb".