ikari.xml
Code: Select all
<!-- Ikari Warriors (US JAMMA) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<!-- background -->
<action>maincpu.mb@4558 = 18</action>
<action>maincpu.mb@458A = C9</action>
<!-- objects -->
<action>sub.md@02ED = C89040CD </action>
<action>sub.md@037B = C89040CD </action>
<action>sub.mq@9040 = 09019055217DC5E5</action>
<action>sub.mq@9048 = 7E0420E1C1B1ED00</action>
<action>sub.mq@9050 = 1E1C10C9AFC920E6</action>
<action>sub.mq@9058 = FFFF302C2B2A201F</action>
<!--
9040 | E5 : push hl
9041 | C5 : push bc
9042 | 7D : ld a,l
9043 | 21 55 90 : ld hl,$9055
9046 | 01 09 00 : ld bc,$0009
9049 | ED B1 : cpir
904B | C1 : pop bc
904C | E1 : pop hl
904D | 20 04 : jr nz,$9053
904F | 7E : ld a,(hl)
9050 | E6 20 : and $20
9052 | C9 : ret
9053 | AF : xor a
9054 | C9 : ret
9055 - 9063 : item table
value item
10 gas
1c tank
1e grenade
1f ammo
20 L
2a S
2b B
2c F
30 K
-->
</script>
<script state="off">
<action>maincpu.mb@4558 = 28 </action>
<action>maincpu.mb@458A = C8 </action>
<action> sub.md@02ED = C820E67E </action>
<action> sub.md@037B = C820E67E </action>
<action> sub.mq@9040 = FFFFFFFFFFFFFFFF</action>
<action> sub.mq@9048 = FFFFFFFFFFFFFFFF</action>
<action> sub.mq@9050 = FFFFFFFFFFFFFFFF</action>
<action> sub.mq@9058 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="auto fire - shot">
<script state="on">
<action>maincpu.mb@3479 = 01</action> <!-- tank -->
<action>maincpu.mb@362B = 01</action> <!-- human -->
</script>
<script state="off">
<action>maincpu.mb@3479 = 20</action>
<action>maincpu.mb@362B = 10</action>
</script>
</cheat>
<cheat desc="joystick hack">
<script state="on">
<action>maincpu.md@3048 = E6BEC0CD </action>
<action>maincpu.mq@BEC0 = FDBED62157107EFD</action>
<action>maincpu.mq@BEC8 = 04280FFE0FE6297E</action>
<action>maincpu.mq@BED0 = 0000C97AC97E6F85</action>
<action>maincpu.mq@BED8 = 0A00040206000000</action>
<action>maincpu.mq@BEE0 = FFFF000008000C0E</action>
<!--
BEC0 | FD 7E 10 : ld a,(iy+$10)
BEC3 | 57 : ld d,a
BEC4 | 21 D6 BE : ld hl,$BED6
BEC7 | FD 7E 29 : ld a,(iy+$29)
BECA | E6 0F : and $0F
BECC | FE 0F : cp $0F
BECE | 28 04 : jr z,$BE64
BED0 | 85 : add a,l
BED1 | 6F : ld l,a
BED2 | 7E : ld a,(hl)
BED3 | C9 : ret
BED4 | 7A : ld a,d
BED5 | C9 : ret
BED6 - BEE5 : input/direction conversion table
input direction
05 06 : lower-right
06 02 : upper-right
07 04 : right
09 0a : lower-left
0a 0e : upper-left
0b 0c : left
0d 08 : down
0e 00 : up
-->
</script>
<script state="off">
<action>maincpu.md@3048 = E61086FD </action>
<action>maincpu.mq@BED0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BED8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BEE0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BEE8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BEF0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mw@00A6 = BF00 </action>
<action>maincpu.mq@BF00 = C3003A0036FC8021</action>
<action>maincpu.mq@BF08 = 4F0707070703E62F</action>
<action>maincpu.mq@BF10 = B8B10FE62FC1003A</action>
<action>maincpu.mq@BF18 = 35012004FEEA2847</action>
<action>maincpu.mq@BF20 = 2002FE34012008FE</action>
<action>maincpu.mq@BF28 = 2001FE0618F03E04</action>
<action>maincpu.mq@BF30 = 10FE797786103E05</action>
<action>maincpu.mq@BF38 = 2020FE06187E0320</action>
<action>maincpu.mq@BF40 = BD18C400320E3E05</action>
<!--
BF00 | 21 80 FC : ld hl,$FC80 // sound code address
BF03 | 36 00 : ld (hl),$00 // initialize sound code
BF05 | 3A 00 C3 : ld a,($C300) // read buttons
BF08 | 2F : cpl
BF09 | E6 03 : and $03
BF0B | 07 : rlca
BF0C | 07 : rlca
BF0D | 07 : rlca
BF0E | 07 : rlca
BF0F | 4F : ld c,a
BF10 | 3A 00 C1 : ld a,($C100) // read other inputs
BF13 | 2F : cpl
BF14 | E6 0F : and $0F
BF16 | B1 : or c
BF17 | B8 : cp b
BF18 | 47 : ld b,a
BF19 | 28 EA : jr z,$BE85
BF1B | FE 04 : cp $04
BF1D | 20 01 : jr nz,$BEA0
BF1F | 35 : dec (hl) // decrease code -01
BF20 | FE 08 : cp $08
BF22 | 20 01 : jr nz,$BEA5
BF24 | 34 : inc (hl) // increase code +01
BF25 | FE 02 : cp $02
BF27 | 20 04 : jr nz,$BEAD
BF29 | 3E F0 : ld a,$F0 // decrease code -10
BF2B | 18 06 : jr $BEB3
BF2D | FE 01 : cp $01
BF2F | 20 05 : jr nz,$BEB6
BF31 | 3E 10 : ld a,$10 // increase code +10
BF33 | 86 : add a,(hl)
BF34 | 77 : ld (hl),a
BF35 | 79 : ld a,c
BF36 | FE 10 : cp $10
BF38 | 20 03 : jr nz,$BEBD
BF3A | 7E : ld a,(hl) // play sound
BF3B | 18 06 : jr $BEC3
BF3D | FE 20 : cp $20
BF3F | 20 05 : jr nz,$BEC6
BF41 | 3E 0E : ld a,$0E // stop sound
BF43 | 32 00 C4 : ld ($C400),a // send sound code
BF46 | 18 BD : jr $BE85
-->
<action>audiocpu.mb@059D = 4B</action> <!-- force to play music -->
<action>audiocpu.mb@05A2 = CF</action> <!-- force to play sfx -->
</script>
<script state="run">
<output format="----- ikari warriors 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@FC80</argument>
</output>
</script>
<script state="off">
<action> maincpu.mw@00A6 = 08C1 </action>
<action> maincpu.mq@BF00 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BF08 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BF10 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BF18 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BF20 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BF28 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BF30 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BF38 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BF40 = FFFFFFFFFFFFFFFF</action>
<action>audiocpu.mb@059D = 3F </action>>
<action>audiocpu.mb@05A2 = BB </action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.md@0DDD = 110E27C3</action> <!-- ram -->
<action>maincpu.md@1182 = 0818CE16</action> <!-- rom -->
<action> sub.md@0BEE = 110131C3</action> <!-- ram/rom -->
</script>
<script state="off">
<action>maincpu.md@0DDD = 11006401</action>
<action>maincpu.md@1182 = 867A0016</action>
<action> sub.md@0BEE = 11D80021</action>
</script>
</cheat>
</mamecheat>
ikaria.xml
Code: Select all
<!-- Ikari Warriors (US, set 1) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<!-- background -->
<action>maincpu.mb@46EC = 18</action>
<action>maincpu.mb@471E = C9</action>
<!-- objects -->
<action>sub.md@02E8 = C89040CD </action>
<action>sub.md@0376 = C89040CD </action>
<action>sub.mq@9040 = 09019055217DC5E5</action>
<action>sub.mq@9048 = 7E0420E1C1B1ED00</action>
<action>sub.mq@9050 = 1E1C10C9AFC920E6</action>
<action>sub.mq@9058 = FFFF302C2B2A201F</action>
<!--
9040 | E5 : push hl
9041 | C5 : push bc
9042 | 7D : ld a,l
9043 | 21 55 90 : ld hl,$9055
9046 | 01 09 00 : ld bc,$0009
9049 | ED B1 : cpir
904B | C1 : pop bc
904C | E1 : pop hl
904D | 20 04 : jr nz,$9053
904F | 7E : ld a,(hl)
9050 | E6 20 : and $20
9052 | C9 : ret
9053 | AF : xor a
9054 | C9 : ret
9055 - 9063 : item table
value item
10 gas
1c tank
1e grenade
1f ammo
20 L
2a S
2b B
2c F
30 K
-->
</script>
<script state="off">
<action>maincpu.mb@46EC = 28 </action>
<action>maincpu.mb@471E = C8 </action>
<action> sub.md@02E8 = C820E67E </action>
<action> sub.md@0376 = C820E67E </action>
<action> sub.mq@9040 = FFFFFFFFFFFFFFFF</action>
<action> sub.mq@9048 = FFFFFFFFFFFFFFFF</action>
<action> sub.mq@9050 = FFFFFFFFFFFFFFFF</action>
<action> sub.mq@9058 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="auto fire - shot">
<script state="on">
<action>maincpu.mb@360D = 01</action> <!-- tank -->
<action>maincpu.mb@37BF = 01</action> <!-- human -->
</script>
<script state="off">
<action>maincpu.mb@3477 = 20</action>
<action>maincpu.mb@37BF = 10</action>
</script>
</cheat>
<cheat desc="joystick hack">
<script state="on">
<action>maincpu.md@31DC = E6BF50CD </action>
<action>maincpu.mq@BF50 = FDBF662157107EFD</action>
<action>maincpu.mq@BF58 = 04280FFE0FE6297E</action>
<action>maincpu.mq@BF60 = 0000C97AC97E6F85</action>
<action>maincpu.mq@BF68 = 0A00040206000000</action>
<action>maincpu.mq@BF70 = FFFF000008000C0E</action>
<!--
BF50 | FD 7E 10 : ld a,(iy+$10)
BF53 | 57 : ld d,a
BF54 | 21 66 BF : ld hl,$BF66
BF57 | FD 7E 29 : ld a,(iy+$29)
BF5A | E6 0F : and $0F
BF5C | FE 0F : cp $0F
BF5E | 28 04 : jr z,$BF64
BF60 | 85 : add a,l
BF61 | 6F : ld l,a
BF62 | 7E : ld a,(hl)
BF63 | C9 : ret
BF64 | 7A : ld a,d
BF65 | C9 : ret
BF66 - BF73 : input/direction conversion table
input direction
05 06 : lower-right
06 02 : upper-right
07 04 : right
09 0a : lower-left
0a 0e : upper-left
0b 0c : left
0d 08 : down
0e 00 : up
-->
</script>
<script state="off">
<action>maincpu.md@31DC = E61086FD </action>
<action>maincpu.mq@BF50 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BF58 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BF60 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BF68 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BF70 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mw@009E = BF80 </action>
<action>maincpu.mq@BF80 = C3003A0036FC8021</action>
<action>maincpu.mq@BF88 = 4F0707070703E62F</action>
<action>maincpu.mq@BF90 = B8B10FE62FC1003A</action>
<action>maincpu.mq@BF98 = 35012004FEEA2847</action>
<action>maincpu.mq@BFA0 = 2002FE34012008FE</action>
<action>maincpu.mq@BFA8 = 2001FE0618F03E04</action>
<action>maincpu.mq@BFB0 = 10FE797786103E05</action>
<action>maincpu.mq@BFB8 = 2020FE06187E0320</action>
<action>maincpu.mq@BFC0 = BD18C400320E3E05</action>
<!--
BF80 | 21 80 FC : ld hl,$FC80 // sound code address
BF83 | 36 00 : ld (hl),$00 // initialize sound code
BF85 | 3A 00 C3 : ld a,($C300) // read buttons
BF88 | 2F : cpl
BF89 | E6 03 : and $03
BF8B | 07 : rlca
BF8C | 07 : rlca
BF8D | 07 : rlca
BF8E | 07 : rlca
BF8F | 4F : ld c,a
BF90 | 3A 00 C1 : ld a,($C100) // read other inputs
BF93 | 2F : cpl
BF94 | E6 0F : and $0F
BF96 | B1 : or c
BF97 | B8 : cp b
BF98 | 47 : ld b,a
BF99 | 28 EA : jr z,$BF85
BF9B | FE 04 : cp $04
BF9D | 20 01 : jr nz,$BFA0
BF9F | 35 : dec (hl) // decrease code -01
BFA0 | FE 08 : cp $08
BFA2 | 20 01 : jr nz,$BFA5
BFA4 | 34 : inc (hl) // increase code +01
BFA5 | FE 02 : cp $02
BFA7 | 20 04 : jr nz,$BFAD
BFA9 | 3E F0 : ld a,$F0 // decrease code -10
BFAB | 18 06 : jr $BFB3
BFAD | FE 01 : cp $01
BFAF | 20 05 : jr nz,$BFB6
BFB1 | 3E 10 : ld a,$10 // increase code +10
BFB3 | 86 : add a,(hl)
BFB4 | 77 : ld (hl),a
BFB5 | 79 : ld a,c
BFB6 | FE 10 : cp $10
BFB8 | 20 03 : jr nz,$BFBD
BFBA | 7E : ld a,(hl) // play sound
BFBB | 18 06 : jr $BFC3
BFBD | FE 20 : cp $20
BFBF | 20 05 : jr nz,$BFC6
BFC1 | 3E 0E : ld a,$0E // stop sound
BFC3 | 32 00 C4 : ld ($C400),a // send sound code
BFC6 | 18 BD : jr $BF85
-->
<action>audiocpu.mb@059D = 4B</action> <!-- force to play music -->
<action>audiocpu.mb@05A2 = CF</action> <!-- force to play sfx -->
</script>
<script state="run">
<output format="----- ikari warriors 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@FC80</argument>
</output>
</script>
<script state="off">
<action> maincpu.mw@009E = 08C1 </action>
<action> maincpu.mq@BE80 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BE88 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BE90 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BE98 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BEA0 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BEA8 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BEB0 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BEB8 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BEC0 = FFFFFFFFFFFFFFFF</action>
<action>audiocpu.mb@059D = 3F </action>>
<action>audiocpu.mb@05A2 = BB </action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.md@0DC8 = 110E7AC3</action> <!-- ram -->
<action>maincpu.md@0E82 = CD0E8BC3</action> <!-- rom -->
<action> sub.md@0BE9 = 11012CC3</action> <!-- ram/rom -->
</script>
<script state="off">
<action>maincpu.md@0DC8 = 11006401</action>
<action>maincpu.md@0C40 = CD1AE9CD</action>
<action> sub.md@0BE9 = 11E00021</action>
</script>
</cheat>
</mamecheat>
ikaria2.xml
Code: Select all
<!-- Ikari Warriors (US, set 2) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<!-- background -->
<action>maincpu.mb@46EC = 18</action>
<action>maincpu.mb@471E = C9</action>
<!-- objects -->
<action>sub.md@02E8 = C89040CD </action>
<action>sub.md@0376 = C89040CD </action>
<action>sub.mq@9040 = 09019055217DC5E5</action>
<action>sub.mq@9048 = 7E0420E1C1B1ED00</action>
<action>sub.mq@9050 = 1E1C10C9AFC920E6</action>
<action>sub.mq@9058 = FFFF302C2B2A201F</action>
<!--
9040 | E5 : push hl
9041 | C5 : push bc
9042 | 7D : ld a,l
9043 | 21 55 90 : ld hl,$9055
9046 | 01 09 00 : ld bc,$0009
9049 | ED B1 : cpir
904B | C1 : pop bc
904C | E1 : pop hl
904D | 20 04 : jr nz,$9053
904F | 7E : ld a,(hl)
9050 | E6 20 : and $20
9052 | C9 : ret
9053 | AF : xor a
9054 | C9 : ret
9055 - 9063 : item table
value item
10 gas
1c tank
1e grenade
1f ammo
20 L
2a S
2b B
2c F
30 K
-->
</script>
<script state="off">
<action>maincpu.mb@46EC = 28 </action>
<action>maincpu.mb@471E = C8 </action>
<action> sub.md@02E8 = C820E67E </action>
<action> sub.md@0376 = C820E67E </action>
<action> sub.mq@9040 = FFFFFFFFFFFFFFFF</action>
<action> sub.mq@9048 = FFFFFFFFFFFFFFFF</action>
<action> sub.mq@9050 = FFFFFFFFFFFFFFFF</action>
<action> sub.mq@9058 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="auto fire - shot">
<script state="on">
<action>maincpu.mb@360D = 01</action> <!-- tank -->
<action>maincpu.mb@37BF = 01</action> <!-- human -->
</script>
<script state="off">
<action>maincpu.mb@360D = 20</action>
<action>maincpu.mb@37BF = 10</action>
</script>
</cheat>
<cheat desc="joystick hack">
<script state="on">
<action>maincpu.md@31DC = E6BF50CD </action>
<action>maincpu.mq@BF50 = FDBF662157107EFD</action>
<action>maincpu.mq@BF58 = 04280FFE0FE6297E</action>
<action>maincpu.mq@BF60 = 0000C97AC97E6F85</action>
<action>maincpu.mq@BF68 = 0A00040206000000</action>
<action>maincpu.mq@BF70 = FFFF000008000C0E</action>
<!--
BF50 | FD 7E 10 : ld a,(iy+$10)
BF53 | 57 : ld d,a
BF54 | 21 66 BF : ld hl,$BF66
BF57 | FD 7E 29 : ld a,(iy+$29)
BF5A | E6 0F : and $0F
BF5C | FE 0F : cp $0F
BF5E | 28 04 : jr z,$BF64
BF60 | 85 : add a,l
BF61 | 6F : ld l,a
BF62 | 7E : ld a,(hl)
BF63 | C9 : ret
BF64 | 7A : ld a,d
BF65 | C9 : ret
BF66 - BF75 : input/direction conversion table
input direction
05 06 : lower-right
06 02 : upper-right
07 04 : right
09 0a : lower-left
0a 0e : upper-left
0b 0c : left
0d 08 : down
0e 00 : up
-->
</script>
<script state="off">
<action>maincpu.md@31DC = E61086FD </action>
<action>maincpu.mq@BF50 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BF58 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BF60 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BF68 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BF70 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mw@009E = BF80 </action>
<action>maincpu.mq@BF80 = C3003A0036FC8021</action>
<action>maincpu.mq@BF88 = 4F0707070703E62F</action>
<action>maincpu.mq@BF90 = B8B10FE62FC1003A</action>
<action>maincpu.mq@BF98 = 35012004FEEA2847</action>
<action>maincpu.mq@BFA0 = 2002FE34012008FE</action>
<action>maincpu.mq@BFA8 = 2001FE0618F03E04</action>
<action>maincpu.mq@BFB0 = 10FE797786103E05</action>
<action>maincpu.mq@BFB8 = 2020FE06187E0320</action>
<action>maincpu.mq@BFC0 = BD18C400320E3E05</action>
<!--
BF80 | 21 80 FC : ld hl,$FC80 // sound code address
BF83 | 36 00 : ld (hl),$00 // initialize sound code
BF85 | 3A 00 C3 : ld a,($C300) // read buttons
BF88 | 2F : cpl
BF89 | E6 03 : and $03
BF8B | 07 : rlca
BF8C | 07 : rlca
BF8D | 07 : rlca
BF8E | 07 : rlca
BF8F | 4F : ld c,a
BF90 | 3A 00 C1 : ld a,($C100) // read other inputs
BF93 | 2F : cpl
BF94 | E6 0F : and $0F
BF96 | B1 : or c
BF97 | B8 : cp b
BF98 | 47 : ld b,a
BF99 | 28 EA : jr z,$BF85
BF9B | FE 04 : cp $04
BF9D | 20 01 : jr nz,$BFA0
BF9F | 35 : dec (hl) // decrease code -01
BFA0 | FE 08 : cp $08
BFA2 | 20 01 : jr nz,$BFA5
BFA4 | 34 : inc (hl) // increase code +01
BFA5 | FE 02 : cp $02
BFA7 | 20 04 : jr nz,$BFAD
BFA9 | 3E F0 : ld a,$F0 // decrease code -10
BFAB | 18 06 : jr $BFB3
BFAD | FE 01 : cp $01
BFAF | 20 05 : jr nz,$BFB6
BFB1 | 3E 10 : ld a,$10 // increase code +10
BFB3 | 86 : add a,(hl)
BFB4 | 77 : ld (hl),a
BFB5 | 79 : ld a,c
BFB6 | FE 10 : cp $10
BFB8 | 20 03 : jr nz,$BFBD
BFBA | 7E : ld a,(hl) // play sound
BFBB | 18 06 : jr $BFC3
BFBD | FE 20 : cp $20
BFBF | 20 05 : jr nz,$BFC6
BFC1 | 3E 0E : ld a,$0E // stop sound
BFC3 | 32 00 C4 : ld ($C400),a // send sound code
BFC6 | 18 BD : jr $BF85
-->
<action>audiocpu.mb@059D = 4B</action> <!-- force to play music -->
<action>audiocpu.mb@05A2 = CF</action> <!-- force to play sfx -->
</script>
<script state="run">
<output format="----- ikari warriors 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@FC80</argument>
</output>
</script>
<script state="off">
<action> maincpu.mw@009E = 08C1 </action>
<action> maincpu.mq@BE80 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BE88 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BE90 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BE98 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BEA0 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BEA8 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BEB0 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BEB8 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BEC0 = FFFFFFFFFFFFFFFF</action>
<action>audiocpu.mb@059D = 3F </action>>
<action>audiocpu.mb@05A2 = BB </action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.md@0DC8 = 110E7AC3</action> <!-- ram -->
<action>maincpu.md@0E82 = CD0E8BC3</action> <!-- rom -->
<action> sub.md@0BE9 = 11012CC3</action> <!-- ram/rom -->
</script>
<script state="off">
<action>maincpu.md@0DC8 = 11006401</action>
<action>maincpu.md@0C40 = CD1AE9CD</action>
<action> sub.md@0BE9 = 11E00021</action>
</script>
</cheat>
</mamecheat>
ikarinc.xml
Code: Select all
<!-- Ikari Warriors (US No Continues) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<!-- background -->
<action>maincpu.mb@44AA = 18</action>
<action>maincpu.mb@44DC = C9</action>
<!-- objects -->
<action>sub.md@02E8 = C89040CD </action>
<action>sub.md@0376 = C89040CD </action>
<action>sub.mq@9040 = 09019055217DC5E5</action>
<action>sub.mq@9048 = 7E0420E1C1B1ED00</action>
<action>sub.mq@9050 = 1E1C10C9AFC920E6</action>
<action>sub.mq@9058 = FFFF302C2B2A201F</action>
<!--
9040 | E5 : push hl
9041 | C5 : push bc
9042 | 7D : ld a,l
9043 | 21 55 90 : ld hl,$9055
9046 | 01 09 00 : ld bc,$0009
9049 | ED B1 : cpir
904B | C1 : pop bc
904C | E1 : pop hl
904D | 20 04 : jr nz,$9053
904F | 7E : ld a,(hl)
9050 | E6 20 : and $20
9052 | C9 : ret
9053 | AF : xor a
9054 | C9 : ret
9055 - 9063 : item table
value item
10 gas
1c tank
1e grenade
1f ammo
20 L
2a S
2b B
2c F
30 K
-->
</script>
<script state="off">
<action>maincpu.mb@4556 = 28 </action>
<action>maincpu.mb@4588 = C8 </action>
<action> sub.md@02E8 = C820E67E </action>
<action> sub.md@0376 = C820E67E </action>
<action> sub.mq@9040 = FFFFFFFFFFFFFFFF</action>
<action> sub.mq@9048 = FFFFFFFFFFFFFFFF</action>
<action> sub.mq@9050 = FFFFFFFFFFFFFFFF</action>
<action> sub.mq@9058 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="auto fire - shot">
<script state="on">
<action>maincpu.mb@33CB = 01</action> <!-- tank -->
<action>maincpu.mb@357D = 01</action> <!-- human -->
</script>
<script state="off">
<action>maincpu.mb@33CB = 20</action>
<action>maincpu.mb@357D = 10</action>
</script>
</cheat>
<cheat desc="joystick hack">
<script state="on">
<action>maincpu.md@2F9A = E6BE50CD </action>
<action>maincpu.mq@BE50 = FDBE662157107EFD</action>
<action>maincpu.mq@BE58 = 04280FFE0FE6297E</action>
<action>maincpu.mq@BE60 = 0000C97AC97E6F85</action>
<action>maincpu.mq@BE68 = 0A00040206000000</action>
<action>maincpu.mq@BE70 = FFFF000008000C0E</action>
<!--
BE50 | FD 7E 10 : ld a,(iy+$10)
BE53 | 57 : ld d,a
BE54 | 21 66 BE : ld hl,$BE66
BE57 | FD 7E 29 : ld a,(iy+$29)
BE5A | E6 0F : and $0F
BE5C | FE 0F : cp $0F
BE5E | 28 04 : jr z,$BE64
BE60 | 85 : add a,l
BE61 | 6F : ld l,a
BE62 | 7E : ld a,(hl)
BE63 | C9 : ret
BE64 | 7A : ld a,d
BE65 | C9 : ret
BE66 - BE73 : input/direction conversion table
input direction
05 06 : lower-right
06 02 : upper-right
07 04 : right
09 0a : lower-left
0a 0e : upper-left
0b 0c : left
0d 08 : down
0e 00 : up
-->
</script>
<script state="off">
<action>maincpu.md@2F9A = E61086FD </action>
<action>maincpu.mq@BE50 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BE58 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BE60 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BE68 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BE70 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mw@009E = BE80 </action>
<action>maincpu.mq@BE80 = C3003A0036FC8021</action>
<action>maincpu.mq@BE88 = 4F0707070703E62F</action>
<action>maincpu.mq@BE90 = B8B10FE62FC1003A</action>
<action>maincpu.mq@BE98 = 35012004FEEA2847</action>
<action>maincpu.mq@BEA0 = 2002FE34012008FE</action>
<action>maincpu.mq@BEA8 = 2001FE0618F03E04</action>
<action>maincpu.mq@BEB0 = 10FE797786103E05</action>
<action>maincpu.mq@BEB8 = 2020FE06187E0320</action>
<action>maincpu.mq@BEC0 = BD18C400320E3E05</action>
<!--
BE80 | 21 80 FC : ld hl,$FC80 // sound code address
BE83 | 36 00 : ld (hl),$00 // initialize sound code
BE85 | 3A 00 C3 : ld a,($C300) // read buttons
BE88 | 2F : cpl
BE89 | E6 03 : and $03
BE8B | 07 : rlca
BE8C | 07 : rlca
BE8D | 07 : rlca
BE8E | 07 : rlca
BE8F | 4F : ld c,a
BE90 | 3A 00 C1 : ld a,($C100) // read other inputs
BE93 | 2F : cpl
BE94 | E6 0F : and $0F
BE96 | B1 : or c
BE97 | B8 : cp b
BE98 | 47 : ld b,a
BE99 | 28 EA : jr z,$BE85
BE9B | FE 04 : cp $04
BE9D | 20 01 : jr nz,$BEA0
BE9F | 35 : dec (hl) // decrease code -01
BEA0 | FE 08 : cp $08
BEA2 | 20 01 : jr nz,$BEA5
BEA4 | 34 : inc (hl) // increase code +01
BEA5 | FE 02 : cp $02
BEA7 | 20 04 : jr nz,$BEAD
BEA9 | 3E F0 : ld a,$F0 // decrease code -10
BEAB | 18 06 : jr $BEB3
BEAD | FE 01 : cp $01
BEAF | 20 05 : jr nz,$BEB6
BEB1 | 3E 10 : ld a,$10 // increase code +10
BEB3 | 86 : add a,(hl)
BEB4 | 77 : ld (hl),a
BEB5 | 79 : ld a,c
BEB6 | FE 10 : cp $10
BEB8 | 20 03 : jr nz,$BEBD
BEBA | 7E : ld a,(hl) // play sound
BEBB | 18 06 : jr $BEC3
BEBD | FE 20 : cp $20
BEBF | 20 05 : jr nz,$BEC6
BEC1 | 3E 0E : ld a,$0E // stop sound
BEC3 | 32 00 C4 : ld ($C400),a // send sound code
BEC6 | 18 BD : jr $BE85
-->
<action>audiocpu.mb@059D = 4B</action> <!-- force to play music -->
<action>audiocpu.mb@05A2 = CF</action> <!-- force to play sfx -->
</script>
<script state="run">
<output format="----- ikari warriors 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@FC80</argument>
</output>
</script>
<script state="off">
<action> maincpu.mw@009E = 06E7 </action>
<action> maincpu.mq@BE80 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BE88 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BE90 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BE98 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BEA0 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BEA8 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BEB0 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BEB8 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BEC0 = FFFFFFFFFFFFFFFF</action>
<action>audiocpu.mb@059D = 3F </action>>
<action>audiocpu.mb@05A2 = BB </action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.md@0B86 = 110C38C3</action> <!-- ram -->
<action>maincpu.md@0C40 = CD0C49C3</action> <!-- rom -->
<action> sub.md@0BE9 = 11012CC3</action> <!-- ram/rom -->
</script>
<script state="off">
<action>maincpu.md@0B86 = 11006401</action>
<action>maincpu.md@0C40 = CD18A9CD</action>
<action> sub.md@0BE9 = 11E00021</action>
</script>
</cheat>
</mamecheat>
ikarijp.xml
Code: Select all
<!-- Ikari (Japan No Continues) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<!-- background -->
<action>maincpu.mb@4556 = 18</action>
<action>maincpu.mb@4588 = C9</action>
<!-- objects -->
<action>sub.md@02E8 = C89040CD </action>
<action>sub.md@0376 = C89040CD </action>
<action>sub.mq@9040 = 09019055217DC5E5</action>
<action>sub.mq@9048 = 7E0420E1C1B1ED00</action>
<action>sub.mq@9050 = 1E1C10C9AFC920E6</action>
<action>sub.mq@9058 = FFFF302C2B2A201F</action>
<!--
9040 | E5 : push hl
9041 | C5 : push bc
9042 | 7D : ld a,l
9043 | 21 55 90 : ld hl,$9055
9046 | 01 09 00 : ld bc,$0009
9049 | ED B1 : cpir
904B | C1 : pop bc
904C | E1 : pop hl
904D | 20 04 : jr nz,$9053
904F | 7E : ld a,(hl)
9050 | E6 20 : and $20
9052 | C9 : ret
9053 | AF : xor a
9054 | C9 : ret
9055 - 9063 : item table
value item
10 gas
1c tank
1e grenade
1f ammo
20 L
2a S
2b B
2c F
30 K
-->
</script>
<script state="off">
<action>maincpu.mb@4556 = 28 </action>
<action>maincpu.mb@4588 = C8 </action>
<action> sub.md@02E8 = C820E67E </action>
<action> sub.md@0376 = C820E67E </action>
<action> sub.mq@9040 = FFFFFFFFFFFFFFFF</action>
<action> sub.mq@9048 = FFFFFFFFFFFFFFFF</action>
<action> sub.mq@9050 = FFFFFFFFFFFFFFFF</action>
<action> sub.mq@9058 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="auto fire - shot">
<script state="on">
<action>maincpu.mb@3477 = 01</action> <!-- tank -->
<action>maincpu.mb@3629 = 01</action> <!-- human -->
</script>
<script state="off">
<action>maincpu.mb@3477 = 20</action>
<action>maincpu.mb@3629 = 10</action>
</script>
</cheat>
<cheat desc="joystick hack">
<script state="on">
<action>maincpu.md@3046 = E6BE50CD </action>
<action>maincpu.mq@BE50 = FDBE662157107EFD</action>
<action>maincpu.mq@BE58 = 04280FFE0FE6297E</action>
<action>maincpu.mq@BE60 = 0000C97AC97E6F85</action>
<action>maincpu.mq@BE68 = 0A00040206000000</action>
<action>maincpu.mq@BE70 = FFFF000008000C0E</action>
<!--
BE50 | FD 7E 10 : ld a,(iy+$10)
BE53 | 57 : ld d,a
BE54 | 21 66 BE : ld hl,$BE66
BE57 | FD 7E 29 : ld a,(iy+$29)
BE5A | E6 0F : and $0F
BE5C | FE 0F : cp $0F
BE5E | 28 04 : jr z,$BE64
BE60 | 85 : add a,l
BE61 | 6F : ld l,a
BE62 | 7E : ld a,(hl)
BE63 | C9 : ret
BE64 | 7A : ld a,d
BE65 | C9 : ret
BE66 - BE73 : input/direction conversion table
input direction
05 06 : lower-right
06 02 : upper-right
07 04 : right
09 0a : lower-left
0a 0e : upper-left
0b 0c : left
0d 08 : down
0e 00 : up
-->
</script>
<script state="off">
<action>maincpu.md@3046 = E61086FD </action>
<action>maincpu.mq@BE50 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BE58 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BE60 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BE68 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@BE70 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mw@009E = BE80 </action>
<action>maincpu.mq@BE80 = C3003A0036FC8021</action>
<action>maincpu.mq@BE88 = 4F0707070703E62F</action>
<action>maincpu.mq@BE90 = B8B10FE62FC1003A</action>
<action>maincpu.mq@BE98 = 35012004FEEA2847</action>
<action>maincpu.mq@BEA0 = 2002FE34012008FE</action>
<action>maincpu.mq@BEA8 = 2001FE0618F03E04</action>
<action>maincpu.mq@BEB0 = 10FE797786103E05</action>
<action>maincpu.mq@BEB8 = 2020FE06187E0320</action>
<action>maincpu.mq@BEC0 = BD18C400320E3E05</action>
<!--
BE80 | 21 80 FC : ld hl,$FC80 // sound code address
BE83 | 36 00 : ld (hl),$00 // initialize sound code
BE85 | 3A 00 C3 : ld a,($C300) // read buttons
BE88 | 2F : cpl
BE89 | E6 03 : and $03
BE8B | 07 : rlca
BE8C | 07 : rlca
BE8D | 07 : rlca
BE8E | 07 : rlca
BE8F | 4F : ld c,a
BE90 | 3A 00 C1 : ld a,($C100) // read other inputs
BE93 | 2F : cpl
BE94 | E6 0F : and $0F
BE96 | B1 : or c
BE97 | B8 : cp b
BE98 | 47 : ld b,a
BE99 | 28 EA : jr z,$BE85
BE9B | FE 04 : cp $04
BE9D | 20 01 : jr nz,$BEA0
BE9F | 35 : dec (hl) // decrease code -01
BEA0 | FE 08 : cp $08
BEA2 | 20 01 : jr nz,$BEA5
BEA4 | 34 : inc (hl) // increase code +01
BEA5 | FE 02 : cp $02
BEA7 | 20 04 : jr nz,$BEAD
BEA9 | 3E F0 : ld a,$F0 // decrease code -10
BEAB | 18 06 : jr $BEB3
BEAD | FE 01 : cp $01
BEAF | 20 05 : jr nz,$BEB6
BEB1 | 3E 10 : ld a,$10 // increase code +10
BEB3 | 86 : add a,(hl)
BEB4 | 77 : ld (hl),a
BEB5 | 79 : ld a,c
BEB6 | FE 10 : cp $10
BEB8 | 20 03 : jr nz,$BEBD
BEBA | 7E : ld a,(hl) // play sound
BEBB | 18 06 : jr $BEC3
BEBD | FE 20 : cp $20
BEBF | 20 05 : jr nz,$BEC6
BEC1 | 3E 0E : ld a,$0E // stop sound
BEC3 | 32 00 C4 : ld ($C400),a // send sound code
BEC6 | 18 BD : jr $BE85
-->
<action>audiocpu.mb@059D = 4B</action> <!-- force to play music -->
<action>audiocpu.mb@05A2 = CF</action> <!-- force to play sfx -->
</script>
<script state="run">
<output format="----- ikari 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@FC80</argument>
</output>
</script>
<script state="off">
<action> maincpu.mw@009E = 06E7 </action>
<action> maincpu.mq@BE80 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BE88 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BE90 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BE98 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BEA0 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BEA8 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BEB0 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BEB8 = FFFFFFFFFFFFFFFF</action>
<action> maincpu.mq@BEC0 = FFFFFFFFFFFFFFFF</action>
<action>audiocpu.mb@059D = 3F </action>>
<action>audiocpu.mb@05A2 = BB </action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.md@0B86 = 110C38C3</action> <!-- ram -->
<action>maincpu.md@0C40 = CD0C49C3</action> <!-- rom -->
<action> sub.md@0BE9 = 11012CC3</action> <!-- ram/rom -->
</script>
<script state="off">
<action>maincpu.md@0B86 = 11006401</action>
<action>maincpu.md@0C40 = CD18A9CD</action>
<action> sub.md@0BE9 = 11E00021</action>
</script>
</cheat>
</mamecheat>