Code: Select all
<!-- Sky Army -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@16D2 = 3E</action>
<action>maincpu.mb@434D = 3E</action>
</script>
<script state="off">
<action>maincpu.mb@16D2 = 32</action>
<action>maincpu.mb@434D = 32</action>
</script>
</cheat>
<cheat desc="rapid fire">
<script state="on">
<action>maincpu.md@288B = CA0066CB</action> <!-- button 1 -->
<action>maincpu.md@2894 = C0006ECB</action> <!-- button 2 -->
</script>
<script state="off">
<action>maincpu.md@288B = C2D71006</action>
<action>maincpu.md@2894 = C8D72006</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<action>maincpu.mw@2524 = 87E0</action> <!-- up -->
<action>maincpu.mw@2527 = 87E5</action> <!-- down -->
<action>maincpu.mw@252A = 87EA</action> <!-- left -->
<action>maincpu.mw@252D = 87EF</action> <!-- right -->
</script>
<script state="run">
<action>maincpu.pq@87E0 = 2554210D18254221</action>
<action>maincpu.pq@87E8 = 2103182566210818</action>
<action>maincpu.pq@87F0 = D587F9110006257C</action>
<action>maincpu.pq@87F8 = 00000000C9F910E9</action>
<action>maincpu.pb@87F3 = param </action>
<!--
87E0 | 21 42 25 : ld hl,$2542 // up
87E3 | 18 0D : jr $87F2
87E5 | 21 54 25 : ld hl,$2554 // down
87E8 | 18 08 : jr $87F2
87EA | 21 66 25 : ld hl,$2566 // left
87ED | 18 03 : jr $87F2
87EF | 21 7C 25 : ld hl,$257C // right
87F2 | 06 xx : ld b,$xx
87F4 | 11 F9 87 : ld de,$87F9
87F7 | D5 : push de
87F8 | E9 : jp (hl)
87F9 | 10 F9 : djnz $87F4
87FB | C9 : ret
-->
</script>
<script state="off">
<action>maincpu.mw@2524 = 2542 </action>
<action>maincpu.mw@2527 = 2554 </action>
<action>maincpu.mw@252A = 2566 </action>
<action>maincpu.mw@252D = 257C </action>
<action>maincpu.pq@87E0 = 0000000000000000</action>
<action>maincpu.pq@87E8 = 0000000000000000</action>
<action>maincpu.pq@87F0 = 0000000000000000</action>
<action>maincpu.pq@87F8 = 0000000000000000</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x08">02 </item>
<item value="0x10">03 </item>
<item value="0x18">04 </item>
<item value="0x20">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@2936 = DD0000C6</action> <!-- down -->
<action>maincpu.md@295F = FE0000D6</action> <!-- left -->
<action>maincpu.md@2968 = FE0000C6</action> <!-- right -->
<action>maincpu.md@2962 = 26380000</action> <!-- range (left) -->
<action>maincpu.md@296B = 1D380000</action> <!-- range (right) -->
</script>
<script state="change">
<action>maincpu.mb@2937 = param</action>
<action>maincpu.mb@2960 = param</action>
<action>maincpu.mb@2969 = param</action>
</script>
<script state="off">
<action>maincpu.md@2936 = DD1786DD</action>
<action>maincpu.md@295F = FE1896DD</action>
<action>maincpu.md@2968 = FE1886DD</action>
<action>maincpu.md@2962 = 263808FE</action>
<action>maincpu.md@296B = 1D30F0FE</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mb@0EF6 = C9 </action> <!-- disable 1UP strings -->
<action>maincpu.mq@422D = 840121842132803E</action>
<action>maincpu.mq@4235 = FE2BC877BEA0013A</action>
<action>maincpu.mq@423D = 012008FE35012004</action>
<action>maincpu.mq@4245 = 18F03E042002FE34</action>
<action>maincpu.mq@424D = 86103E052001FE06</action>
<action>maincpu.mq@4255 = CD7E052010FEC977</action>
<action>maincpu.mq@425D = 32AFC020FEC94268</action>
<action>maincpu.mq@4265 = 21053009FEC98421</action>
<action>maincpu.mq@426D = 073011FE40188209</action>
<action>maincpu.mq@4275 = FE351808D6822721</action>
<action>maincpu.mq@427D = 10D6824521073019</action>
<action>maincpu.mq@4285 = 8121073021FE2A18</action>
<action>maincpu.mq@428D = 3029FE1F1818D682</action>
<action>maincpu.mq@4295 = 141820D6829F2107</action>
<action>maincpu.mq@429D = D6826321073031FE</action>
<action>maincpu.mq@42A5 = 828132013E091828</action>
<action>maincpu.mq@42AD = AF47C8A7C9829F32</action>
<action>maincpu.mq@42B5 = 0000C977FD101737</action>
<!--
422D | 3E 80 : ld a,$80 // disable auto sound stop
422F | 32 21 84 : ld ($8421),a
4232 | 21 01 86 : ld hl,$8401 // temporary input address
4235 | 3A 01 A0 : ld a,($A001) // read input
4238 | BE : cp (hl)
4239 | 77 : ld (hl),a
423A | C8 : ret z
423B | 2B : dec hl // sound code address ($8401)
423C | FE 04 : cp $04
423E | 20 01 : jr nz,$4241
4240 | 35 : dec (hl) // decrease code -01
4241 | FE 08 : cp $08
4243 | 20 01 : jr nz,$4246
4245 | 34 : inc (hl) // increase code +01
4246 | FE 02 : cp $02
4248 | 20 04 : jr nz,$424E
424A | 3E F0 : ld a,$F0 // decrease code -10
424C | 18 06 : jr $4254
424E | FE 01 : cp $01
4250 | 20 05 : jr nz,$4257
4252 | 3E 10 : ld a,$10 // increase code +10
4254 | 86 : add a,(hl)
4255 | 77 : ld (hl),a
4256 | C9 : ret
4257 | FE 10 : cp $10
4259 | 20 05 : jr nz,$4260
425B | 7E : ld a,(hl) // play sound
425C | CD 68 42 : call $4268
425F | C9 : ret
4260 | FE 20 : cp $20
4262 | C0 : ret nz
4263 | AF : xor a // stop sound
4264 | 32 21 84 : ld ($8421),a
4267 | C9 : ret
4268 | FE 09 : cp $09 // sound code/parameter conversion routine
426A | 30 05 : jr nc,$4271
426C | 21 09 82 : ld hl,$8209 // code $00 - $08
426F | 18 40 : jr $42B1
4271 | FE 11 : cp $11
4273 | 30 07 : jr nc,$427C
4275 | 21 27 82 : ld hl,$8227 // code $09 - $10
4278 | D6 08 : sub $08
427A | 18 35 : jr $42B1
427C | FE 19 : cp $19
427E | 30 07 : jr nc,$4287
4280 | 21 45 82 : ld hl,$8245 // code $11 - $18
4283 | D6 10 : sub $10
4285 | 18 2A : jr $42B1
4287 | FE 21 : cp $21
4289 | 30 07 : jr nc,$4292
428B | 21 81 82 : ld hl,$8281 // code $19 - $20
428E | D6 18 : sub $18
4290 | 18 1F : jr $42B1
4292 | FE 29 : cp $29
4294 | 30 07 : jr nc,$429D
4296 | 21 9F 82 : ld hl,$829F // code $21 - $28
4299 | D6 20 : sub $20
429B | 18 14 : jr $42B1
429D | FE 31 : cp $31
429F | 30 07 : jr nc,$42A8
42A1 | 21 63 82 : ld hl,$8263 // code $29 - $30
42A4 | D6 28 : sub $28
42A6 | 18 09 : jr $42B1
42A8 | 3E 01 : ld a,$01 // code $31 or later (main theme)
42AA | 32 81 82 : ld ($8281),a
42AD | 32 9F 82 : ld ($829F),a
42B0 | C9 : ret
42B1 | A7 : and a
42B2 | C8 : ret z
42B3 | 47 : ld b,a
42B4 | AF : xor a
42B5 | 37 : scf
42B6 | 17 : rla
42B7 | 10 FD : djnz $42B6
42B9 | 77 : ld (hl),a
42BA | 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="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@8400</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@0EF6 = C8 </action>
<action>maincpu.mq@422D = 214595CD040011DF</action>
<action>maincpu.mq@4235 = 0100368001118000</action>
<action>maincpu.mq@423D = 11808021B0ED003F</action>
<action>maincpu.mq@4245 = ED001F0100368081</action>
<action>maincpu.mq@424D = CD00011145B7CDB0</action>
<action>maincpu.mq@4255 = 4595CD0240114595</action>
<action>maincpu.mq@425D = 42114595CD000311</action>
<action>maincpu.mq@4265 = CD0100114595CD02</action>
<action>maincpu.mq@426D = 4595CD0800114595</action>
<action>maincpu.mq@4275 = 213A4595CD002611</action>
<action>maincpu.mq@427D = 0002110C2867CB84</action>
<action>maincpu.mq@4285 = 95CD0241114595CD</action>
<action>maincpu.mq@428D = 114595CD000A1145</action>
<action>maincpu.mq@4295 = 000C114595CD000B</action>
<action>maincpu.mq@429D = 95CD000F114595CD</action>
<action>maincpu.mq@42A5 = 95CD001511060645</action>
<action>maincpu.mq@42AD = 36810021FA101C45</action>
<action>maincpu.mq@42B5 = 21E7C93480E62102</action>
</script>
</cheat>
</mamecheat>