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="rapid 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="auto damage">
<script state="on">
<action>maincpu.mw@0563 = 5F20</action>
</script>
<script state="run">
<action>maincpu.pq@5F20 = 11522003E658203A</action>
<action>maincpu.pq@5F28 = CB5A0C210A060008</action>
<action>maincpu.pq@5F30 = CB162076CB1A287E</action>
<action>maincpu.pq@5F38 = 0036235E232323F6</action>
<action>maincpu.pq@5F40 = 033EE7EBAF203623</action>
<action>maincpu.pq@5F48 = DF10192C182959CD</action>
<action>maincpu.pq@5F50 = 5A5C211406000A11</action>
<action>maincpu.pq@5F58 = CB172020FE60E67E</action>
<action>maincpu.pq@5F60 = 2100064F0FE67EF6</action>
<action>maincpu.pq@5F68 = 3EE7EBAF5E092A9A</action>
<action>maincpu.pq@5F70 = 101903182959CD05</action>
<action>maincpu.pq@5F78 = 00000000267FC3DF</action>
<!--
5F20 | 3A 20 58 : ld a,($5820) // check internal timer
5F23 | E6 03 : and $03
5F25 | 20 52 : jr nz,$5F79
5F27 | 11 08 00 : ld de,$0008 // enemy on air
5F2A | 06 0A : ld b,$0A
5F2C | 21 0C 5A : ld hl,$5A0C
5F2F | CB 7E : bit 7,(hl)
5F31 | 28 1A : jr z,$5F4D
5F33 | CB 76 : bit 6,(hl)
5F35 | 20 16 : jr nz,$5F4D
5F37 | CB F6 : set 6,(hl)
5F39 | 23 : inc hl
5F3A | 23 : inc hl
5F3B | 23 : inc hl
5F3C | 5E : ld e,(hl)
5F3D | 23 : inc hl
5F3E | 36 00 : ld (hl),$00
5F40 | 23 : inc hl
5F41 | 36 20 : ld (hl),$20
5F43 | AF : xor a
5F44 | EB : ex de,hl
5F45 | E7 : rst $20
5F46 | 3E 03 : ld a,$03
5F48 | CD 59 29 : call $2959
5F4B | 18 2C : jr $5F79
5F4D | 19 : add hl,de
5F4E | 10 DF : djnz $5F2F
5F50 | 11 0A 00 : ld de,$000A // enemy on ground
5F53 | 06 14 : ld b,$14
5F55 | 21 5C 5A : ld hl,$5A5C
5F58 | 7E : ld a,(hl)
5F59 | E6 60 : and $60
5F5B | FE 20 : cp $20
5F5D | 20 17 : jr nz,$5F76
5F5F | CB F6 : set 6,(hl)
5F61 | 7E : ld a,(hl)
5F62 | E6 0F : and $0F
5F64 | 4F : ld c,a
5F65 | 06 00 : ld b,$00
5F67 | 21 9A 2A : ld hl,$2A9A
5F6A | 09 : add hl,bc
5F6B | 5E : ld e,(hl)
5F6C | AF : xor a
5F6D | EB : ex de,hl
5F6E | E7 : rst $20
5F6F | 3E 05 : ld a,$05
5F71 | CD 59 29 : call $2959
5F74 | 18 03 : jr $5F79
5F76 | 19 : add hl,de
5F77 | 10 DF : djnz $5F58
5F79 | C3 7F 26 : jp $267F
-->
</script>
<script state="off">
<action>maincpu.mw@0563 = 267F </action>
<action>maincpu.pq@5F20 = 0000000000000000</action>
<action>maincpu.pq@5F28 = 0000000000000000</action>
<action>maincpu.pq@5F30 = 0000000000000000</action>
<action>maincpu.pq@5F38 = 0000000000000000</action>
<action>maincpu.pq@5F40 = 0000000000000000</action>
<action>maincpu.pq@5F48 = 0000000000000000</action>
<action>maincpu.pq@5F50 = 0000000000000000</action>
<action>maincpu.pq@5F58 = 0000000000000000</action>
<action>maincpu.pq@5F60 = 0000000000000000</action>
<action>maincpu.pq@5F68 = 0000000000000000</action>
<action>maincpu.pq@5F70 = 0000000000000000</action>
<action>maincpu.pq@5F78 = 0000000000000000</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="----- 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 %02X >>" 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>
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="rapid 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="auto damage">
<script state="on">
<action>maincpu.mw@0631 = 5F20</action>
</script>
<script state="run">
<action>maincpu.pq@5F20 = 11522003E658203A</action>
<action>maincpu.pq@5F28 = CB5A0C210A060008</action>
<action>maincpu.pq@5F30 = CB162076CB1A287E</action>
<action>maincpu.pq@5F38 = 0036235E232323F6</action>
<action>maincpu.pq@5F40 = 033EE7EBAF203623</action>
<action>maincpu.pq@5F48 = DF10192C182A24CD</action>
<action>maincpu.pq@5F50 = 5A5C211406000A11</action>
<action>maincpu.pq@5F58 = CB172020FE60E67E</action>
<action>maincpu.pq@5F60 = 2100064F0FE67EF6</action>
<action>maincpu.pq@5F68 = 3EE7EBAF5E092B65</action>
<action>maincpu.pq@5F70 = 101903182A24CD05</action>
<action>maincpu.pq@5F78 = 00000000274AC3DF</action>
<!--
5F20 | 3A 20 58 : ld a,($5820) // check internal timer
5F23 | E6 03 : and $03
5F25 | 20 52 : jr nz,$5F79
5F27 | 11 08 00 : ld de,$0008 // enemy on air
5F2A | 06 0A : ld b,$0A
5F2C | 21 0C 5A : ld hl,$5A0C
5F2F | CB 7E : bit 7,(hl)
5F31 | 28 1A : jr z,$5F4D
5F33 | CB 76 : bit 6,(hl)
5F35 | 20 16 : jr nz,$5F4D
5F37 | CB F6 : set 6,(hl)
5F39 | 23 : inc hl
5F3A | 23 : inc hl
5F3B | 23 : inc hl
5F3C | 5E : ld e,(hl)
5F3D | 23 : inc hl
5F3E | 36 00 : ld (hl),$00
5F40 | 23 : inc hl
5F41 | 36 20 : ld (hl),$20
5F43 | AF : xor a
5F44 | EB : ex de,hl
5F45 | E7 : rst $20
5F46 | 3E 03 : ld a,$03
5F48 | CD 24 2A : call $2A24
5F4B | 18 2C : jr $5F79
5F4D | 19 : add hl,de
5F4E | 10 DF : djnz $5F2F
5F50 | 11 0A 00 : ld de,$000A // enemy on ground
5F53 | 06 14 : ld b,$14
5F55 | 21 5C 5A : ld hl,$5A5C
5F58 | 7E : ld a,(hl)
5F59 | E6 60 : and $60
5F5B | FE 20 : cp $20
5F5D | 20 17 : jr nz,$5F76
5F5F | CB F6 : set 6,(hl)
5F61 | 7E : ld a,(hl)
5F62 | E6 0F : and $0F
5F64 | 4F : ld c,a
5F65 | 06 00 : ld b,$00
5F67 | 21 65 2B : ld hl,$2B65
5F6A | 09 : add hl,bc
5F6B | 5E : ld e,(hl)
5F6C | AF : xor a
5F6D | EB : ex de,hl
5F6E | E7 : rst $20
5F6F | 3E 05 : ld a,$05
5F71 | CD 24 2A : call $2A24
5F74 | 18 03 : jr $5F79
5F76 | 19 : add hl,de
5F77 | 10 DF : djnz $5F58
5F79 | C3 4A 27 : jp $274A
-->
</script>
<script state="off">
<action>maincpu.mw@0631 = 274A </action>
<action>maincpu.pq@5F20 = 0000000000000000</action>
<action>maincpu.pq@5F28 = 0000000000000000</action>
<action>maincpu.pq@5F30 = 0000000000000000</action>
<action>maincpu.pq@5F38 = 0000000000000000</action>
<action>maincpu.pq@5F40 = 0000000000000000</action>
<action>maincpu.pq@5F48 = 0000000000000000</action>
<action>maincpu.pq@5F50 = 0000000000000000</action>
<action>maincpu.pq@5F58 = 0000000000000000</action>
<action>maincpu.pq@5F60 = 0000000000000000</action>
<action>maincpu.pq@5F68 = 0000000000000000</action>
<action>maincpu.pq@5F70 = 0000000000000000</action>
<action>maincpu.pq@5F78 = 0000000000000000</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="----- 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 %02X >>" 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="rapid 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="auto damage">
<script state="on">
<action>maincpu.mw@0631 = 5F20</action>
</script>
<script state="run">
<action>maincpu.pq@5F20 = 11522003E658203A</action>
<action>maincpu.pq@5F28 = CB5A0C210A060008</action>
<action>maincpu.pq@5F30 = CB162076CB1A287E</action>
<action>maincpu.pq@5F38 = 0036235E232323F6</action>
<action>maincpu.pq@5F40 = 033EE7EBAF203623</action>
<action>maincpu.pq@5F48 = DF10192C182A24CD</action>
<action>maincpu.pq@5F50 = 5A5C211406000A11</action>
<action>maincpu.pq@5F58 = CB172020FE60E67E</action>
<action>maincpu.pq@5F60 = 2100064F0FE67EF6</action>
<action>maincpu.pq@5F68 = 3EE7EBAF5E092B65</action>
<action>maincpu.pq@5F70 = 101903182A24CD05</action>
<action>maincpu.pq@5F78 = 00000000274AC3DF</action>
<!--
5F20 | 3A 20 58 : ld a,($5820) // check internal timer
5F23 | E6 03 : and $03
5F25 | 20 52 : jr nz,$5F79
5F27 | 11 08 00 : ld de,$0008 // enemy on air
5F2A | 06 0A : ld b,$0A
5F2C | 21 0C 5A : ld hl,$5A0C
5F2F | CB 7E : bit 7,(hl)
5F31 | 28 1A : jr z,$5F4D
5F33 | CB 76 : bit 6,(hl)
5F35 | 20 16 : jr nz,$5F4D
5F37 | CB F6 : set 6,(hl)
5F39 | 23 : inc hl
5F3A | 23 : inc hl
5F3B | 23 : inc hl
5F3C | 5E : ld e,(hl)
5F3D | 23 : inc hl
5F3E | 36 00 : ld (hl),$00
5F40 | 23 : inc hl
5F41 | 36 20 : ld (hl),$20
5F43 | AF : xor a
5F44 | EB : ex de,hl
5F45 | E7 : rst $20
5F46 | 3E 03 : ld a,$03
5F48 | CD 24 2A : call $2A24
5F4B | 18 2C : jr $5F79
5F4D | 19 : add hl,de
5F4E | 10 DF : djnz $5F2F
5F50 | 11 0A 00 : ld de,$000A // enemy on ground
5F53 | 06 14 : ld b,$14
5F55 | 21 5C 5A : ld hl,$5A5C
5F58 | 7E : ld a,(hl)
5F59 | E6 60 : and $60
5F5B | FE 20 : cp $20
5F5D | 20 17 : jr nz,$5F76
5F5F | CB F6 : set 6,(hl)
5F61 | 7E : ld a,(hl)
5F62 | E6 0F : and $0F
5F64 | 4F : ld c,a
5F65 | 06 00 : ld b,$00
5F67 | 21 65 2B : ld hl,$2B65
5F6A | 09 : add hl,bc
5F6B | 5E : ld e,(hl)
5F6C | AF : xor a
5F6D | EB : ex de,hl
5F6E | E7 : rst $20
5F6F | 3E 05 : ld a,$05
5F71 | CD 24 2A : call $2A24
5F74 | 18 03 : jr $5F79
5F76 | 19 : add hl,de
5F77 | 10 DF : djnz $5F58
5F79 | C3 4A 27 : jp $274A
-->
</script>
<script state="off">
<action>maincpu.mw@0631 = 274A </action>
<action>maincpu.pq@5F20 = 0000000000000000</action>
<action>maincpu.pq@5F28 = 0000000000000000</action>
<action>maincpu.pq@5F30 = 0000000000000000</action>
<action>maincpu.pq@5F38 = 0000000000000000</action>
<action>maincpu.pq@5F40 = 0000000000000000</action>
<action>maincpu.pq@5F48 = 0000000000000000</action>
<action>maincpu.pq@5F50 = 0000000000000000</action>
<action>maincpu.pq@5F58 = 0000000000000000</action>
<action>maincpu.pq@5F60 = 0000000000000000</action>
<action>maincpu.pq@5F68 = 0000000000000000</action>
<action>maincpu.pq@5F70 = 0000000000000000</action>
<action>maincpu.pq@5F78 = 0000000000000000</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="----- 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 %02X >>" 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>
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="rapid 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="auto damage">
<script state="on">
<action>maincpu.mw@0631 = 5F20</action>
</script>
<script state="run">
<action>maincpu.pq@5F20 = 11522003E658203A</action>
<action>maincpu.pq@5F28 = CB5A0C210A060008</action>
<action>maincpu.pq@5F30 = CB162076CB1A287E</action>
<action>maincpu.pq@5F38 = 0036235E232323F6</action>
<action>maincpu.pq@5F40 = 033EE7EBAF203623</action>
<action>maincpu.pq@5F48 = DF10192C182A24CD</action>
<action>maincpu.pq@5F50 = 5A5C211406000A11</action>
<action>maincpu.pq@5F58 = CB172020FE60E67E</action>
<action>maincpu.pq@5F60 = 2100064F0FE67EF6</action>
<action>maincpu.pq@5F68 = 3EE7EBAF5E092B65</action>
<action>maincpu.pq@5F70 = 101903182A24CD05</action>
<action>maincpu.pq@5F78 = 00000000274AC3DF</action>
<!--
5F20 | 3A 20 58 : ld a,($5820) // check internal timer
5F23 | E6 03 : and $03
5F25 | 20 52 : jr nz,$5F79
5F27 | 11 08 00 : ld de,$0008 // enemy on air
5F2A | 06 0A : ld b,$0A
5F2C | 21 0C 5A : ld hl,$5A0C
5F2F | CB 7E : bit 7,(hl)
5F31 | 28 1A : jr z,$5F4D
5F33 | CB 76 : bit 6,(hl)
5F35 | 20 16 : jr nz,$5F4D
5F37 | CB F6 : set 6,(hl)
5F39 | 23 : inc hl
5F3A | 23 : inc hl
5F3B | 23 : inc hl
5F3C | 5E : ld e,(hl)
5F3D | 23 : inc hl
5F3E | 36 00 : ld (hl),$00
5F40 | 23 : inc hl
5F41 | 36 20 : ld (hl),$20
5F43 | AF : xor a
5F44 | EB : ex de,hl
5F45 | E7 : rst $20
5F46 | 3E 03 : ld a,$03
5F48 | CD 24 2A : call $2A24
5F4B | 18 2C : jr $5F79
5F4D | 19 : add hl,de
5F4E | 10 DF : djnz $5F2F
5F50 | 11 0A 00 : ld de,$000A // enemy on ground
5F53 | 06 14 : ld b,$14
5F55 | 21 5C 5A : ld hl,$5A5C
5F58 | 7E : ld a,(hl)
5F59 | E6 60 : and $60
5F5B | FE 20 : cp $20
5F5D | 20 17 : jr nz,$5F76
5F5F | CB F6 : set 6,(hl)
5F61 | 7E : ld a,(hl)
5F62 | E6 0F : and $0F
5F64 | 4F : ld c,a
5F65 | 06 00 : ld b,$00
5F67 | 21 65 2B : ld hl,$2B65
5F6A | 09 : add hl,bc
5F6B | 5E : ld e,(hl)
5F6C | AF : xor a
5F6D | EB : ex de,hl
5F6E | E7 : rst $20
5F6F | 3E 05 : ld a,$05
5F71 | CD 24 2A : call $2A24
5F74 | 18 03 : jr $5F79
5F76 | 19 : add hl,de
5F77 | 10 DF : djnz $5F58
5F79 | C3 4A 27 : jp $274A
-->
</script>
<script state="off">
<action>maincpu.mw@0631 = 274A </action>
<action>maincpu.pq@5F20 = 0000000000000000</action>
<action>maincpu.pq@5F28 = 0000000000000000</action>
<action>maincpu.pq@5F30 = 0000000000000000</action>
<action>maincpu.pq@5F38 = 0000000000000000</action>
<action>maincpu.pq@5F40 = 0000000000000000</action>
<action>maincpu.pq@5F48 = 0000000000000000</action>
<action>maincpu.pq@5F50 = 0000000000000000</action>
<action>maincpu.pq@5F58 = 0000000000000000</action>
<action>maincpu.pq@5F60 = 0000000000000000</action>
<action>maincpu.pq@5F68 = 0000000000000000</action>
<action>maincpu.pq@5F70 = 0000000000000000</action>
<action>maincpu.pq@5F78 = 0000000000000000</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="----- 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 %02X >>" 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>
"auto damage" : Added new. You can damage/kill an enemy without bullet hit.