Code: Select all
<!-- Eight Man (NGM-025 ~ NGH-025) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.rb@7BBE = 60</action> <!-- enemy -->
<action>maincpu.rb@7CEC = 60</action> <!-- attack -->
</script>
<script state="off">
<action>maincpu.rb@7BBE = 66</action>
<action>maincpu.rb@7CEC = 64</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.rq@037C4 = 4EB900011BD06700</action>
<action>maincpu.rq@11BD0 = 102E00CD32390010</action>
<action>maincpu.rq@11BD8 = FE8A02410003660A</action>
<action>maincpu.rq@11BE0 = 122E00CC02410010</action>
<action>maincpu.rq@11BE8 = 8001080000044E75</action>
<!--
11BD0 | 102E 00CD : move.b ($cd,A6), D0
11BD4 | 3239 0010 FE8A : move.w $10fe8a.l, D1 // check internal timer
11BDA | 0241 0007 : andi.w #$7, D1
11BDE | 660A : bne $11bea
11BE0 | 122E 00CC : move.b ($cc,A6), D1
11BE4 | 0241 0010 : andi.w #$10, D1
11BE8 | 8001 : or.b D1, D0
11BEA | 0800 0004 : btst #$4, D0
11BEE | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.rq@037C4 = 082E000400CD6700</action>
<action>maincpu.rq@11BD0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@11BD8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@11BE0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@11BE8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="attack">
<parameter>
<item value="0x00">punch</item>
<item value="0x01">upper</item>
<item value="0x02">kick </item>
</parameter>
<script state="on">
<action>maincpu.rq@37EE = 1D7C000000D86000</action>
</script>
<script state="change">
<action>maincpu.rb@37F1 = param</action>
</script>
<script state="off">
<action>maincpu.rq@37EE = 0C2E000300D86B00</action>
</script>
</cheat>
<cheat desc="attack speed up">
<script state="on">
<!-- stand -->
<action>maincpu.rb@49890 = 00</action> <!-- punch -->
<action>maincpu.rb@498E4 = 00</action> <!-- upper -->
<action>maincpu.rb@49974 = 00</action> <!-- kick -->
<!-- double attack -->
<action>maincpu.rb@49984 = 00</action>
<!-- crouch -->
<action>maincpu.rb@498AC = 00</action> <!-- punch, upper -->
<action>maincpu.rb@49996 = 00</action> <!-- kick -->
<!-- jump -->
<action>maincpu.rb@49B02 = 00</action> <!-- upper -->
<action>maincpu.rb@49BF0 = 00</action> <!-- punch, kick -->
</script>
<script state="off">
<action>maincpu.rb@49890 = 03</action>
<action>maincpu.rb@498E4 = 03</action>
<action>maincpu.rb@49974 = 03</action>
<action>maincpu.rb@49984 = 03</action>
<action>maincpu.rb@498AC = 03</action>
<action>maincpu.rb@49996 = 03</action>
<action>maincpu.rb@49B02 = 02</action>
<action>maincpu.rb@49BF0 = 02</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.rd@0304C = 00011BF0 </action>
<action>maincpu.rq@11BF0 = 4A2E005F6712082E</action>
<action>maincpu.rq@11BF8 = 000500CD670A422E</action>
<action>maincpu.rq@11C00 = 005F08EE00070063</action>
<action>maincpu.rq@11C08 = 4EF8348EFFFFFFFF</action>
<!--
11BF0 | 4A2E 005F : tst.b ($5f,A6)
11BF4 | 6712 : beq $11c08
11BF6 | 082E 0005 00CD : btst #$5, ($cd,A6)
11BFC | 670A : beq $11c08
11BFE | 422E 005F : clr.b ($5f,A6)
11C02 | 08EE 0007 0063 : bset #$7, ($63,A6)
11C08 | 4EF8 348E : jmp $348e.w
-->
</script>
<script state="off">
<action>maincpu.rd@0304C = 0000348E </action>
<action>maincpu.rq@11BF0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@11BF8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@11C00 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@11C08 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0xff">01 (slow)</item>
<item value="0x80">02 </item>
<item value="0x40">03 </item>
<item value="0x20">04 </item>
<item value="0x00">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.pb@100483 = param</action> <!-- initialize sub timer -->
<action>maincpu.rb@001D55 = param</action>
</script>
<script state="off">
<action>maincpu.pb@100483 = 80</action>
<action>maincpu.rb@001D55 = 80</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!-- don't play code 0x01, 0x03, and 0x10 because of no sound response -->
<!-- valid bank number seems to be 0x00 and 0x08 -->
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.rq@012F4 = 4EF900011C1067F8</action>
<action>maincpu.rq@11C10 = 43ED010045E90001</action>
<action>maincpu.rq@11C18 = 367C6EC849ED8432</action>
<action>maincpu.rq@11C20 = 1602143900300000</action>
<action>maincpu.rq@11C28 = B60267F40C0200FB</action>
<action>maincpu.rq@11C30 = 660253110C0200F7</action>
<action>maincpu.rq@11C38 = 660252110C0200FD</action>
<action>maincpu.rq@11C40 = 6604041100100C02</action>
<action>maincpu.rq@11C48 = 00FE660406110010</action>
<action>maincpu.rq@11C50 = 0C0200BB66025312</action>
<action>maincpu.rq@11C58 = 0C0200B766025212</action>
<action>maincpu.rq@11C60 = 0212000F0C0200EF</action>
<action>maincpu.rq@11C68 = 660E189267060614</action>
<action>maincpu.rq@11C70 = 00104E9318914E93</action>
<action>maincpu.rq@11C78 = 0C0200DF661218BC</action>
<action>maincpu.rq@11C80 = 00014E9318BC0003</action>
<action>maincpu.rq@11C88 = 4E9318BC00074E93</action>
<action>maincpu.rq@11C90 = 608EFFFFFFFFFFFF</action>
<!--
11C10 | 43ED 0100 : lea ($100,A5), A1 // sound code address ($108100)
11C14 | 45E9 0001 : lea ($1,A1), A2 // bank address ($108101)
11C18 | 367C 6EC8 : movea.w #$6ec8, A3 // sound latch routine address
11C1C | 49ED 8432 : lea (-$7bce,A5), A4 // sound latch address ($100432)
11C20 | 1602 : move.b D2, D3
11C22 | 1439 0030 0000 : move.b $300000.l, D2 // read input
11C28 | B602 : cmp.b D2, D3
11C2A | 67F4 : beq $11c20
11C2C | 0C02 00FB : cmpi.b #-$5, D2
11C30 | 6602 : bne $11c34
11C32 | 5311 : subq.b #1, (A1) // decrease code -01
11C34 | 0C02 00F7 : cmpi.b #-$9, D2
11C38 | 6602 : bne $11c3c
11C3A | 5211 : addq.b #1, (A1) // increase code +01
11C3C | 0C02 00FD : cmpi.b #-$3, D2
11C40 | 6604 : bne $11c46
11C42 | 0411 0010 : subi.b #$10, (A1) // decrease code -10
11C46 | 0C02 00FE : cmpi.b #-$2, D2
11C4A | 6604 : bne $11c50
11C4C | 0611 0010 : addi.b #$10, (A1) // increase code +10
11C50 | 0C02 00BB : cmpi.b #-$45, D2
11C54 | 6602 : bne $11c58
11C56 | 5312 : subq.b #1, (A2) // decrease bank -01
11C58 | 0C02 00B7 : cmpi.b #-$49, D2
11C5C | 6602 : bne $11c60
11C5E | 5212 : addq.b #1, (A2) // increase bank +01
11C60 | 0212 000F : andi.b #$f, (A2)
11C64 | 0C02 00EF : cmpi.b #-$11, D2
11C68 | 660E : bne $11c78
11C6A | 1892 : move.b (A2), (A4) // play sound
11C6C | 6706 : beq $11c74
11C6E | 0614 0010 : addi.b #$10, (A4)
11C72 | 4E93 : jsr (A3)
11C74 | 1891 : move.b (A1), (A4)
11C76 | 4E93 : jsr (A3)
11C78 | 0C02 00DF : cmpi.b #-$21, D2
11C7C | 6612 : bne $11c90
11C7E | 18BC 0001 : move.b #$1, (A4) // stop sound
11C82 | 4E93 : jsr (A3)
11C84 | 18BC 0003 : move.b #$3, (A4)
11C88 | 4E93 : jsr (A3)
11C8A | 18BC 0007 : move.b #$7, (A4)
11C8E | 4E93 : jsr (A3)
11C90 | 608E : bra $11c20
-->
</script>
<script state="run">
<output format="----- eight man 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 3 + left : decrease bank -01" line="15" align="center" />
<output format="button 3 + right : increase bank +01" line="16" align="center" />
<output format="button 1 : play sound" line="17" align="center" />
<output format="button 2 : stop sound" line="18" align="center" />
<output format="----------------------------" line="19" align="center" />
<output format="<< bank %X >>" line="21" align="center" >
<argument>maincpu.pb@108101</argument>
</output>
<output format="<< sound code %02X >>" line="23" align="center" >
<argument>maincpu.pb@108100</argument>
</output>
</script>
<script state="off">
<action>maincpu.rq@012F4 = 4A390010046E67F8</action>
<action>maincpu.rq@11C10 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@11C18 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@11C20 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@11C28 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@11C30 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@11C38 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@11C40 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@11C48 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@11C50 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@11C58 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@11C60 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@11C68 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@11C70 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@11C78 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@11C80 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@11C88 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.rq@11C90 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action condition="maincpu.rd@c11afc == 3a3c7fff">temp0 = C11AFC, maincpu.rd@temp0 = 60000168</action> <!-- euro, euro-s1, japan-s2, japan-s1 -->
<action condition="maincpu.rd@c10c20 == 3a3c7fff">temp0 = C10C20, maincpu.rd@temp0 = 60000168</action> <!-- asia-mv1c, japan-mv1b -->
<action condition="maincpu.rd@c10afc == 3a3c7fff">temp0 = C10AFC, maincpu.rd@temp0 = 60000168</action> <!-- asia-mv1b, japan-mv1c -->
<action condition="maincpu.rd@c11ad2 == 3a3c7fff">temp0 = C11AD2, maincpu.rd@temp0 = 60000168</action> <!-- us, us-e, us-v2, us-u4 -->
<action condition="maincpu.rd@c11abc == 3a3c7fff">temp0 = C11ABC, maincpu.rd@temp0 = 60000104</action> <!-- us-u3 -->
<action condition="maincpu.rd@c11c24 == 3a3c7fff">temp0 = C11C24, maincpu.rd@temp0 = 60000168</action> <!-- japan -->
<action condition="maincpu.rd@c11ae6 == 3a3c7fff">temp0 = C11AE6, maincpu.rd@temp0 = 60000104</action> <!-- japan-j3a -->
<action condition="maincpu.rd@c11bc6 == 3a3c7fff">temp0 = C11BC6, maincpu.rd@temp0 = 6000017C</action> <!-- japan-hotel -->
</script>
<script state="off">
<action>maincpu.rd@temp0 = 3A3C7FFF</action>
</script>
</cheat>
</mamecheat>