mtlchampu1.xml
Code: Select all
<!-- Martial Champion (ver UAD) -->
<mamecheat version="1">
<cheat desc="no hit">
<parameter>
<item value="0x01">1P </item>
<item value="0x02">2P </item>
<item value="0x03">both players</item>
</parameter>
<script state="on">
<action>maincpu.mq@16A36 = 4EB9000701F86700</action> <!-- throw (air)-->
<action>maincpu.mq@16D00 = 4EB9000701F86700</action> <!-- throw -->
<action>maincpu.mq@174FE = 4EB9000702066400</action> <!-- tenga renken (jin) -->
<action>maincpu.mq@701F0 = 082D000000FF4E75</action>
<action>maincpu.mq@701F8 = 61F6670270000240</action>
<action>maincpu.mq@70200 = 00204A004E7561E8</action>
<action>maincpu.mq@70208 = 023C00FE66060C68</action>
<action>maincpu.mq@70210 = 005800A04E75FFFF</action>
<!--
701F0 | 082D 0000 00FF : btst #$0, ($ff,A5) // flag check routine
701F6 | 4E75 : rts
701F8 | 61F6 : bsr $701f0 // throw
701FA | 6702 : beq $701fe
701FC | 7000 : moveq #$0, D0
701FE | 0240 0020 : andi.w #$20, D0
70202 | 4A00 : tst.b D0
70204 | 4E75 : rts
70206 | 61E8 : bsr $701f0 // tenga renken (jin)
70208 | 023C 00FE : andi #$fe, CCR
7020C | 6606 : bne $70214
7020E | 0C68 0058 00A0 : cmpi.w #$58, ($a0,A0)
70214 | 4E75 : rts
-->
</script>
<script state="run">
<action condition="(param band 01) == 00">maincpu.pb@1051FF &= FE</action>
<action condition="(param band 02) == 00">maincpu.pb@1055FF &= FE</action>
<action condition="(param band 01) != 00">maincpu.pb@1051FF |= 01 </action>
<action condition="(param band 02) != 00">maincpu.pb@1055FF |= 01 </action>
</script>
<script state="change">
<!-- 1P off -->
<action condition="(param band 01) == 00">maincpu.mb@12506 = 62</action> <!-- attack -->
<action condition="(param band 01) == 00">maincpu.mb@12628 = 62</action> <!-- weapon -->
<action condition="(param band 01) == 00">maincpu.mb@12B6C = 62</action> <!-- guard -->
<action condition="(param band 01) == 00">maincpu.mb@131AC = 64</action> <!-- firearms -->
<!-- 2P off -->
<action condition="(param band 02) == 00">maincpu.mb@1202C = 62</action> <!-- attack -->
<action condition="(param band 02) == 00">maincpu.mb@12850 = 62</action> <!-- weapon -->
<action condition="(param band 02) == 00">maincpu.mb@12D9E = 62</action> <!-- guard -->
<action condition="(param band 02) == 00">maincpu.mb@130AE = 64</action> <!-- firearms -->
<!-- 1P on -->
<action condition="(param band 01) != 00">maincpu.mb@12506 = 60</action>
<action condition="(param band 01) != 00">maincpu.mb@12628 = 60</action>
<action condition="(param band 01) != 00">maincpu.mb@12B6C = 60</action>
<action condition="(param band 01) != 00">maincpu.mb@131AC = 60</action>
<!-- 2P on -->
<action condition="(param band 02) != 00">maincpu.mb@1202C = 60</action>
<action condition="(param band 02) != 00">maincpu.mb@12850 = 60</action>
<action condition="(param band 02) != 00">maincpu.mb@12D9E = 60</action>
<action condition="(param band 02) != 00">maincpu.mb@130AE = 60</action>
</script>
<script state="off">
<action>maincpu.mq@16A36 = 024000204A006700</action>
<action>maincpu.mq@16D00 = 024000204A006700</action>
<action>maincpu.mq@174FE = 0C68005800A06400</action>
<action>maincpu.mq@701F0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@701F8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70200 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70208 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70210 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mb@12506 = 62 </action>
<action>maincpu.mb@12628 = 62 </action>
<action>maincpu.mb@12B6C = 62 </action>
<action>maincpu.mb@131AC = 64 </action>
<action>maincpu.mb@1202C = 62 </action>
<action>maincpu.mb@12850 = 62 </action>
<action>maincpu.mb@12D9E = 62 </action>
<action>maincpu.mb@130AE = 64 </action>
</script>
</cheat>
<cheat desc="rapid fire">
<parameter>
<item value="0x01">1P </item>
<item value="0x02">2P </item>
<item value="0x03">both players</item>
</parameter>
<script state="on">
<action>maincpu.mq@16580 = 4EB9000702204E71</action>
<action>maincpu.mq@70220 = 1028003508280001</action>
<action>maincpu.mq@70228 = 00FF67041028001E</action>
<action>maincpu.mq@70230 = 024000704E75FFFF</action>
<!--
70220 | 1028 0035 : move.b ($35,A0), D0
70224 | 0828 0001 00FF : btst #$1, ($ff,A0)
7022A | 6704 : beq $70230
7022C | 1028 001E : move.b ($1e,A0), D0
70230 | 0240 0070 : andi.w #$70, D0
70234 | 4E75 : rts
-->
</script>
<script state="run">
<action condition="(param band 01) == 00">maincpu.pb@1051FF &= FD</action>
<action condition="(param band 02) == 00">maincpu.pb@1055FF &= FD</action>
<action condition="(param band 01) != 00">maincpu.pb@1051FF |= 02 </action>
<action condition="(param band 02) != 00">maincpu.pb@1055FF |= 02 </action>
</script>
<script state="off">
<action>maincpu.mq@16580 = 1028003502400070</action>
<action>maincpu.mq@70220 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70228 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70230 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="action speed up (test)">
<comment>some bugs (fail to shoot firearms, character freezes after throw etc)</comment>
<parameter>
<item value="0x01">1P </item>
<item value="0x02">2P </item>
<item value="0x03">both players</item>
</parameter>
<script state="on">
<action>maincpu.mq@08796 = 4EB9000702404E71</action>
<action>maincpu.mq@70240 = 52020828000200FF</action>
<action>maincpu.mq@70248 = 670C12360006B202</action>
<action>maincpu.mq@70250 = 630453011401B436</action>
<action>maincpu.mq@70258 = 00064E75FFFFFFFF</action>
<!--
70240 | 5202 : addq.b #1, D2
70242 | 0828 0002 00FF : btst #$2, ($ff,A0)
70248 | 670C : beq $70256
7024A | 1236 0006 : move.b ($6,A6,D0.w), D1
7024E | B202 : cmp.b D2, D1
70250 | 6304 : bls $70256
70252 | 5301 : subq.b #1, D1
70254 | 1401 : move.b D1, D2
70256 | B436 0006 : cmp.b ($6,A6,D0.w), D2
7025A | 4E75 : rts
-->
</script>
<script state="run">
<action condition="(param band 01) == 00">maincpu.pb@1051FF &= FB</action>
<action condition="(param band 02) == 00">maincpu.pb@1055FF &= FB</action>
<action condition="(param band 01) != 00">maincpu.pb@1051FF |= 04 </action>
<action condition="(param band 02) != 00">maincpu.pb@1055FF |= 04 </action>
</script>
<script state="off">
<action>maincpu.mq@08784 = 06020001B4360006</action>
<action>maincpu.mq@71890 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71898 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@718A0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@718A8 = 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="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.pb@105833 = param</action> <!-- initialize sub-timer -->
<action>maincpu.mb@01418F = param</action>
</script>
<script state="off">
<action>maincpu.pb@105833 = 27</action>
<action>maincpu.mb@01418F = 27</action>
</script>
</cheat>
<cheat desc="unlock secret character">
<!-- selectable salamander in character selection screen -->
<script state="on">
<action>maincpu.mb@C4E3 = B</action>
<action>maincpu.mb@C4F3 = 0A</action>
</script>
<script state="off">
<action>maincpu.mb@C4E3 = 0A</action>
<action>maincpu.mb@C4F3 = 09</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!--
character voices
bank : 0x00, code : 0xa1-0xb4 - jin
bank : 0x10, code : 0xa1-0xb4 - goldor
bank : 0x20, code : 0xa1-0xb4 - racheal
bank : 0x30, code : 0xa1-0xb4 - zen
bank : 0x40, code : 0xa1-0xb4 - hoi
bank : 0x50, code : 0xa1-0xb4 - chaos
bank : 0x60, code : 0xa1-0xb4 - mahambah
bank : 0x70, code : 0xa1-0xb4 - avu
bank : 0x80, code : 0xa1-0xb4 - titi
bank : 0x90, code : 0xa1-0xb4 - bobby
bank : 0xa0, code : 0xa1-0xb4 - salamander
-->
<comment>set "skip ram/rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mw@034D8 = 4E71 </action> <!-- enable sound code check -->
<action>maincpu.md@010F4 = 00070260 </action>
<action>maincpu.mq@70260 = 41F90010000043E8</action>
<action>maincpu.mq@70268 = 0001120010390041</action>
<action>maincpu.mq@70270 = 4001B20067F40C00</action>
<action>maincpu.mq@70278 = 00FE660253100C00</action>
<action>maincpu.mq@70280 = 00FD660252100C00</action>
<action>maincpu.mq@70288 = 00F7660404100010</action>
<action>maincpu.mq@70290 = 0C0000FB66040610</action>
<action>maincpu.mq@70298 = 00100C0000BE6604</action>
<action>maincpu.mq@702A0 = 041100100C0000BD</action>
<action>maincpu.mq@702A8 = 6604061100100C00</action>
<action>maincpu.mq@702B0 = 00EF66061C111E10</action>
<action>maincpu.mq@702B8 = 600C0C0000DF660A</action>
<action>maincpu.mq@702C0 = 42061E3C00FF4EB8</action>
<action>maincpu.mq@702C8 = 347E609EFFFFFFFF</action>
<!--
70260 | 41F9 0010 0000 : lea $100000.l, A0 // sound code address
70266 | 43E8 0001 : lea ($1,A0), A1 // bank number address ($100001)
7026A | 1200 : move.b D0, D1
7026C | 1039 0041 4001 : move.b $414001.l, D0 // read input
70272 | B200 : cmp.b D0, D1
70274 | 67F4 : beq $7026a
70276 | 0C00 00FE : cmpi.b #-$2, D0
7027A | 6602 : bne $7027e
7027C | 5310 : subq.b #1, (A0) // decrease code -01
7027E | 0C00 00FD : cmpi.b #-$3, D0
70282 | 6602 : bne $70286
70284 | 5210 : addq.b #1, (A0) // increase code +01
70286 | 0C00 00F7 : cmpi.b #-$9, D0
7028A | 6604 : bne $70290
7028C | 0410 0010 : subi.b #$10, (A0) // decrease code -10
70290 | 0C00 00FB : cmpi.b #-$5, D0
70294 | 6604 : bne $7029a
70296 | 0610 0010 : addi.b #$10, (A0) // increase code +10
7029A | 0C00 00BE : cmpi.b #-$42, D0
7029E | 6604 : bne $702a4
702A0 | 0411 0010 : subi.b #$10, (A1) // decrease bank -10
702A4 | 0C00 00BD : cmpi.b #-$43, D0
702A8 | 6604 : bne $702ae
702AA | 0611 0010 : addi.b #$10, (A1) // increase bank +10
702AE | 0C00 00EF : cmpi.b #-$11, D0
702B2 | 6606 : bne $702ba
702B4 | 1C11 : move.b (A1), D6 // play sound
702B6 | 1E10 : move.b (A0), D7
702B8 | 600C : bra $702c6
702BA | 0C00 00DF : cmpi.b #-$21, D0
702BE | 660A : bne $702ca
702C0 | 4206 : clr.b D6 // stop sound
702C2 | 1E3C 00FF : move.b #$ff, D7
702C6 | 4EB8 347E : jsr $347e.w // send sound code
702CA | 609E : bra $7026a
-->
</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 3 + left : decrease bank -10" line="15" align="center" />
<output format="button 3 + right : increase bank +10" 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 %02X >>" line="21" align="center" >
<argument>maincpu.pb@100001</argument>
</output>
<output format="<< sound code %02X >>" line="23" align="center" >
<argument>maincpu.pb@100000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@034D8 = 4E75 </action>
<action>maincpu.md@010F4 = 00001F50 </action>
<action>maincpu.mq@70260 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70268 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70270 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70278 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70280 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70288 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70290 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70298 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@702A0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@702A8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@702B0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@702B8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@702C0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@702C8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mq@35B8 = 4EF90000107A103C</action>
</script>
<script state="off">
<action>maincpu.mq@35B8 = 4DF9000035C6103C</action>
</script>
</cheat>
</mamecheat>
mtlchampj.xml
Code: Select all
<!-- Martial Champion (ver JAA) -->
<mamecheat version="1">
<cheat desc="no hit">
<parameter>
<item value="0x01">1P </item>
<item value="0x02">2P </item>
<item value="0x03">both players</item>
</parameter>
<script state="on">
<action>maincpu.mq@169FA = 4EB9000718486700</action> <!-- throw (air)-->
<action>maincpu.mq@16CC4 = 4EB9000718486700</action> <!-- throw -->
<action>maincpu.mq@174C2 = 4EB9000718566400</action> <!-- tenga renken (jin) -->
<action>maincpu.mq@71840 = 082D000000FF4E75</action>
<action>maincpu.mq@71848 = 61F6670270000240</action>
<action>maincpu.mq@71850 = 00204A004E7561E8</action>
<action>maincpu.mq@71858 = 023C00FE66060C68</action>
<action>maincpu.mq@71860 = 005800A04E75FFFF</action>
<!--
71840 | 082D 0000 00FF : btst #$0, ($ff,A5) // flag check routine
71846 | 4E75 : rts
71848 | 61F6 : bsr $71840 // throw
7184A | 6702 : beq $7184e
7184C | 7000 : moveq #$0, D0
7184E | 0240 0020 : andi.w #$20, D0
71852 | 4A00 : tst.b D0
71854 | 4E75 : rts
71856 | 61E8 : bsr $71840 // tenga renken (jin)
71858 | 023C 00FE : andi #$fe, CCR
7185C | 6606 : bne $71864
7185E | 0C68 0058 00A0 : cmpi.w #$58, ($a0,A0)
71864 | 4E75 : rts
-->
</script>
<script state="run">
<action condition="(param band 01) == 00">maincpu.pb@1051FF &= FE</action>
<action condition="(param band 02) == 00">maincpu.pb@1055FF &= FE</action>
<action condition="(param band 01) != 00">maincpu.pb@1051FF |= 01 </action>
<action condition="(param band 02) != 00">maincpu.pb@1055FF |= 01 </action>
</script>
<script state="change">
<!-- 1P off -->
<action condition="(param band 01) == 00">maincpu.mb@124CA = 62</action> <!-- attack -->
<action condition="(param band 01) == 00">maincpu.mb@125EC = 62</action> <!-- weapon -->
<action condition="(param band 01) == 00">maincpu.mb@12B30 = 62</action> <!-- guard -->
<action condition="(param band 01) == 00">maincpu.mb@13170 = 64</action> <!-- firearms -->
<!-- 2P off -->
<action condition="(param band 02) == 00">maincpu.mb@11FF0 = 62</action> <!-- attack -->
<action condition="(param band 02) == 00">maincpu.mb@12814 = 62</action> <!-- weapon -->
<action condition="(param band 02) == 00">maincpu.mb@12D62 = 62</action> <!-- guard -->
<action condition="(param band 02) == 00">maincpu.mb@13072 = 64</action> <!-- firearms -->
<!-- 1P on -->
<action condition="(param band 01) != 00">maincpu.mb@124CA = 60</action>
<action condition="(param band 01) != 00">maincpu.mb@125EC = 60</action>
<action condition="(param band 01) != 00">maincpu.mb@12B30 = 60</action>
<action condition="(param band 01) != 00">maincpu.mb@13170 = 60</action>
<!-- 2P on -->
<action condition="(param band 02) != 00">maincpu.mb@11FF0 = 60</action>
<action condition="(param band 02) != 00">maincpu.mb@12814 = 60</action>
<action condition="(param band 02) != 00">maincpu.mb@12D62 = 60</action>
<action condition="(param band 02) != 00">maincpu.mb@13072 = 60</action>
</script>
<script state="off">
<action>maincpu.mq@169FA = 024000204A006700</action>
<action>maincpu.mq@16CC4 = 024000204A006700</action>
<action>maincpu.mq@174C2 = 0C68005800A06400</action>
<action>maincpu.mq@71840 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71848 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71850 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71858 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71860 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mb@124CA = 62 </action>
<action>maincpu.mb@125EC = 62 </action>
<action>maincpu.mb@12B30 = 62 </action>
<action>maincpu.mb@13170 = 64 </action>
<action>maincpu.mb@11FF0 = 62 </action>
<action>maincpu.mb@12814 = 62 </action>
<action>maincpu.mb@12D62 = 62 </action>
<action>maincpu.mb@13072 = 64 </action>
</script>
</cheat>
<cheat desc="rapid fire">
<parameter>
<item value="0x01">1P </item>
<item value="0x02">2P </item>
<item value="0x03">both players</item>
</parameter>
<script state="on">
<action>maincpu.mq@16544 = 4EB9000718704E71</action>
<action>maincpu.mq@71870 = 1028003508280001</action>
<action>maincpu.mq@71878 = 00FF67041028001E</action>
<action>maincpu.mq@71880 = 024000704E75FFFF</action>
<!--
71870 | 1028 0035 : move.b ($35,A0), D0
71874 | 0828 0001 00FF : btst #$1, ($ff,A0)
7187A | 6704 : beq $71880
7187C | 1028 001E : move.b ($1e,A0), D0
71880 | 0240 0070 : andi.w #$70, D0
71884 | 4E75 : rts
-->
</script>
<script state="run">
<action condition="(param band 01) == 00">maincpu.pb@1051FF &= FD</action>
<action condition="(param band 02) == 00">maincpu.pb@1055FF &= FD</action>
<action condition="(param band 01) != 00">maincpu.pb@1051FF |= 02 </action>
<action condition="(param band 02) != 00">maincpu.pb@1055FF |= 02 </action>
</script>
<script state="off">
<action>maincpu.mq@16544 = 1028003502400070</action>
<action>maincpu.mq@71870 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71878 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71880 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="action speed up (test)">
<comment>some bugs (fail to shoot firearms, character freezes after throw etc)</comment>
<parameter>
<item value="0x01">1P </item>
<item value="0x02">2P </item>
<item value="0x03">both players</item>
</parameter>
<script state="on">
<action>maincpu.mq@08784 = 4EB9000718904E71</action>
<action>maincpu.mq@71890 = 52020828000200FF</action>
<action>maincpu.mq@71898 = 670C12360006B202</action>
<action>maincpu.mq@718A0 = 630453011401B436</action>
<action>maincpu.mq@718A8 = 00064E75FFFFFFFF</action>
<!--
71890 | 5202 : addq.b #1, D2
71892 | 0828 0002 00FF : btst #$2, ($ff,A0)
71898 | 670C : beq $718a6
7189A | 1236 0006 : move.b ($6,A6,D0.w), D1
7189E | B202 : cmp.b D2, D1
718A0 | 6304 : bls $718a6
718A2 | 5301 : subq.b #1, D1
718A4 | 1401 : move.b D1, D2
718A6 | B436 0006 : cmp.b ($6,A6,D0.w), D2
718AA | 4E75 : rts
-->
</script>
<script state="run">
<action condition="(param band 01) == 00">maincpu.pb@1051FF &= FB</action>
<action condition="(param band 02) == 00">maincpu.pb@1055FF &= FB</action>
<action condition="(param band 01) != 00">maincpu.pb@1051FF |= 04 </action>
<action condition="(param band 02) != 00">maincpu.pb@1055FF |= 04 </action>
</script>
<script state="off">
<action>maincpu.mq@08784 = 06020001B4360006</action>
<action>maincpu.mq@71890 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71898 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@718A0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@718A8 = 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="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.pb@105833 = param</action> <!-- initialize sub-timer -->
<action>maincpu.mb@014153 = param</action>
</script>
<script state="off">
<action>maincpu.pb@105833 = 27</action>
<action>maincpu.mb@014153 = 27</action>
</script>
</cheat>
<cheat desc="unlock secret character">
<!-- selectable salamander in character selection screen -->
<script state="on">
<action>maincpu.mb@C4C7 = B</action>
<action>maincpu.mb@C4D7 = 0A</action>
</script>
<script state="off">
<action>maincpu.mb@C4C7 = 0A</action>
<action>maincpu.mb@C4D7 = 09</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!--
character voices
bank : 0x00, code : 0xa1-0xb4 - jin
bank : 0x10, code : 0xa1-0xb4 - goldor
bank : 0x20, code : 0xa1-0xb4 - racheal
bank : 0x30, code : 0xa1-0xb4 - zen
bank : 0x40, code : 0xa1-0xb4 - hoi
bank : 0x50, code : 0xa1-0xb4 - chaos
bank : 0x60, code : 0xa1-0xb4 - mahambah
bank : 0x70, code : 0xa1-0xb4 - avu
bank : 0x80, code : 0xa1-0xb4 - titi
bank : 0x90, code : 0xa1-0xb4 - bobby
bank : 0xa0, code : 0xa1-0xb4 - salamander
-->
<comment>set "skip ram/rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mw@034D8 = 4E71 </action> <!-- enable sound code check -->
<action>maincpu.md@010F4 = 000718B0 </action>
<action>maincpu.mq@718B0 = 41F90010000043E8</action>
<action>maincpu.mq@718B8 = 0001120010390041</action>
<action>maincpu.mq@718C0 = 4001B20067F40C00</action>
<action>maincpu.mq@718C8 = 00FE660253100C00</action>
<action>maincpu.mq@718D0 = 00FD660252100C00</action>
<action>maincpu.mq@718D8 = 00F7660404100010</action>
<action>maincpu.mq@718E0 = 0C0000FB66040610</action>
<action>maincpu.mq@718E8 = 00100C0000BE6604</action>
<action>maincpu.mq@718F0 = 041100100C0000BD</action>
<action>maincpu.mq@718F8 = 6604061100100C00</action>
<action>maincpu.mq@71900 = 00EF66061C111E10</action>
<action>maincpu.mq@71908 = 600C0C0000DF660A</action>
<action>maincpu.mq@71910 = 42061E3C00FF4EB8</action>
<action>maincpu.mq@71918 = 347E609EFFFFFFFF</action>
<!--
718B0 | 41F9 0010 0000 : lea $100000.l, A0 // sound code address
718B6 | 43E8 0001 : lea ($1,A0), A1 // bank number address ($100001)
718BA | 1200 : move.b D0, D1
718BC | 1039 0041 4001 : move.b $414001.l, D0 // read input
718C2 | B200 : cmp.b D0, D1
718C4 | 67F4 : beq $718ba
718C6 | 0C00 00FE : cmpi.b #-$2, D0
718CA | 6602 : bne $718ce
718CC | 5310 : subq.b #1, (A0) // decrease code -01
718CE | 0C00 00FD : cmpi.b #-$3, D0
718D2 | 6602 : bne $718d6
718D4 | 5210 : addq.b #1, (A0) // increase code +01
718D6 | 0C00 00F7 : cmpi.b #-$9, D0
718DA | 6604 : bne $718e0
718DC | 0410 0010 : subi.b #$10, (A0) // decrease code -10
718E0 | 0C00 00FB : cmpi.b #-$5, D0
718E4 | 6604 : bne $718ea
718E6 | 0610 0010 : addi.b #$10, (A0) // increase code +10
718EA | 0C00 00BE : cmpi.b #-$42, D0
718EE | 6604 : bne $718f4
718F0 | 0411 0010 : subi.b #$10, (A1) // decrease bank -10
718F4 | 0C00 00BD : cmpi.b #-$43, D0
718F8 | 6604 : bne $718fe
718FA | 0611 0010 : addi.b #$10, (A1) // increase bank +10
718FE | 0C00 00EF : cmpi.b #-$11, D0
71902 | 6606 : bne $7190a
71904 | 1C11 : move.b (A1), D6 // play sound
71906 | 1E10 : move.b (A0), D7
71908 | 600C : bra $71916
7190A | 0C00 00DF : cmpi.b #-$21, D0
7190E | 660A : bne $7191a
71910 | 4206 : clr.b D6 // stop sound
71912 | 1E3C 00FF : move.b #$ff, D7
71916 | 4EB8 347E : jsr $347e.w // send sound code
7191A | 609E : bra $718ba
-->
</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 3 + left : decrease bank -10" line="15" align="center" />
<output format="button 3 + right : increase bank +10" 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 %02X >>" line="21" align="center" >
<argument>maincpu.pb@100001</argument>
</output>
<output format="<< sound code %02X >>" line="23" align="center" >
<argument>maincpu.pb@100000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@034D8 = 4E75 </action>
<action>maincpu.md@010F4 = 00001F50 </action>
<action>maincpu.mq@718B0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@718B8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@718C0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@718C8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@718D0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@718D8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@718E0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@718E8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@718F0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@718F8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71900 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71908 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71910 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@71918 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mq@35B8 = 4EF90000107A103C</action>
</script>
<script state="off">
<action>maincpu.mq@35B8 = 4DF9000035C6103C</action>
</script>
</cheat>
<!--
<cheat desc="easy moves (test)">
<!== unverified ==>
<script state="on">
<action>maincpu.mw@1A16C = A368</action> <!== jin ==>
<action>maincpu.mw@1A3C6 = A5CE</action> <!== jin ==>
<action>maincpu.mw@1A894 = A94E</action> <!== goldor ==>
<action>maincpu.mw@1A9D0 = 0001</action> <!== goldor ==>
<action>maincpu.mw@1A670 = A742</action> <!== racheal ==>
<action>maincpu.mw@1A7C6 = 0001</action> <!== racheal ==>
<action>maincpu.mw@1B3BA = B46E</action> <!== zen ==>
<action>maincpu.mw@1AA94 = AB4E</action> <!== hoi ==>
<action>maincpu.mw@1ABA0 = AD9E</action> <!== hoi ==>
<action>maincpu.mw@1AE32 = 0001</action> <!== chaos ==>
<action>maincpu.mw@1AEEE = B0E6</action> <!== chaos ==>
<action>maincpu.mw@1BFBA = BFF8</action> <!== mahambah ==>
<action>maincpu.mw@1B4CA = B584</action> <!== avu ==>
<action>maincpu.mw@1B5D6 = B7DE</action> <!== avu ==>
<action>maincpu.mw@1BCB6 = BCF4</action> <!== titi ==>
<action>maincpu.mw@1BD70 = BF78</action> <!== titi ==>
<action>maincpu.mw@1B824 = BA2C</action> <!== bobby ==>
<action>maincpu.mw@1BA6C = BC74</action> <!== bobby ==>
</script>
<script state="off">
<action>maincpu.mw@1A16C = A22C</action>
<action>maincpu.mw@1A3C6 = A42E</action>
<action>maincpu.mw@1A894 = A8A2</action>
<action>maincpu.mw@1A9D0 = 0005</action>
<action>maincpu.mw@1A670 = A67E</action>
<action>maincpu.mw@1A7C6 = 0006</action>
<action>maincpu.mw@1B3BA = B3C8</action>
<action>maincpu.mw@1AA94 = AAA2</action>
<action>maincpu.mw@1ABA0 = AC60</action>
<action>maincpu.mw@1AE32 = 0005</action>
<action>maincpu.mw@1AEEE = AF56</action>
<action>maincpu.mw@1BFBA = BFC0</action>
<action>maincpu.mw@1B4CA = B4D8</action>
<action>maincpu.mw@1B5D6 = B63E</action>
<action>maincpu.mw@1BCB6 = BCBC</action>
<action>maincpu.mw@1BD70 = BDD8</action>
<action>maincpu.mw@1B824 = B88C</action>
<action>maincpu.mw@1BA6C = BAD4</action>
</script>
</cheat>
-->
</mamecheat>
mtlchampa.xml
Code: Select all
<!-- Martial Champion (ver AAA) -->
<mamecheat version="1">
<cheat desc="no hit">
<parameter>
<item value="0x01">1P </item>
<item value="0x02">2P </item>
<item value="0x03">both players</item>
</parameter>
<script state="on">
<action>maincpu.mq@16A4E = 4EB9000702086700</action> <!-- throw (air)-->
<action>maincpu.mq@16D18 = 4EB9000702086700</action> <!-- throw -->
<action>maincpu.mq@17516 = 4EB9000702166400</action> <!-- tenga renken (jin) -->
<action>maincpu.mq@70200 = 082D000000FF4E75</action>
<action>maincpu.mq@70208 = 61F6670270000240</action>
<action>maincpu.mq@70210 = 00204A004E7561E8</action>
<action>maincpu.mq@70218 = 023C00FE66060C68</action>
<action>maincpu.mq@70220 = 005800A04E75FFFF</action>
<!--
70200 | 082D 0000 00FF : btst #$0, ($ff,A5) // flag check routine
70206 | 4E75 : rts
70208 | 61F6 : bsr $70200 // throw
7020A | 6702 : beq $7020e
7020C | 7000 : moveq #$0, D0
7020E | 0240 0020 : andi.w #$20, D0
70212 | 4A00 : tst.b D0
70214 | 4E75 : rts
70216 | 61E8 : bsr $70200 // tenga renken (jin)
70218 | 023C 00FE : andi #$fe, CCR
7021C | 6606 : bne $70224
7021E | 0C68 0058 00A0 : cmpi.w #$58, ($a0,A0)
70224 | 4E75 : rts
-->
</script>
<script state="run">
<action condition="(param band 01) == 00">maincpu.pb@1051FF &= FE</action>
<action condition="(param band 02) == 00">maincpu.pb@1055FF &= FE</action>
<action condition="(param band 01) != 00">maincpu.pb@1051FF |= 01 </action>
<action condition="(param band 02) != 00">maincpu.pb@1055FF |= 01 </action>
</script>
<script state="change">
<!-- 1P off -->
<action condition="(param band 01) == 00">maincpu.mb@1251E = 62</action> <!-- attack -->
<action condition="(param band 01) == 00">maincpu.mb@12640 = 62</action> <!-- weapon -->
<action condition="(param band 01) == 00">maincpu.mb@12B84 = 62</action> <!-- guard -->
<action condition="(param band 01) == 00">maincpu.mb@131C4 = 64</action> <!-- firearms -->
<!-- 2P off -->
<action condition="(param band 02) == 00">maincpu.mb@12044 = 62</action> <!-- attack -->
<action condition="(param band 02) == 00">maincpu.mb@12868 = 62</action> <!-- weapon -->
<action condition="(param band 02) == 00">maincpu.mb@12DB6 = 62</action> <!-- guard -->
<action condition="(param band 02) == 00">maincpu.mb@130C6 = 64</action> <!-- firearms -->
<!-- 1P on -->
<action condition="(param band 01) != 00">maincpu.mb@1251E = 60</action>
<action condition="(param band 01) != 00">maincpu.mb@12640 = 60</action>
<action condition="(param band 01) != 00">maincpu.mb@12B84 = 60</action>
<action condition="(param band 01) != 00">maincpu.mb@131C4 = 60</action>
<!-- 2P on -->
<action condition="(param band 02) != 00">maincpu.mb@12044 = 60</action>
<action condition="(param band 02) != 00">maincpu.mb@12868 = 60</action>
<action condition="(param band 02) != 00">maincpu.mb@12DB6 = 60</action>
<action condition="(param band 02) != 00">maincpu.mb@130C6 = 60</action>
</script>
<script state="off">
<action>maincpu.mq@16A4E = 024000204A006700</action>
<action>maincpu.mq@16D18 = 024000204A006700</action>
<action>maincpu.mq@17516 = 0C68005800A06400</action>
<action>maincpu.mq@70200 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70208 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70210 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70218 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70220 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mb@1251E = 62 </action>
<action>maincpu.mb@12640 = 62 </action>
<action>maincpu.mb@12B84 = 62 </action>
<action>maincpu.mb@131C4 = 64 </action>
<action>maincpu.mb@12044 = 62 </action>
<action>maincpu.mb@12868 = 62 </action>
<action>maincpu.mb@12DB6 = 62 </action>
<action>maincpu.mb@130C6 = 64 </action>
</script>
</cheat>
<cheat desc="rapid fire">
<parameter>
<item value="0x01">1P </item>
<item value="0x02">2P </item>
<item value="0x03">both players</item>
</parameter>
<script state="on">
<action>maincpu.mq@16598 = 4EB9000702304E71</action>
<action>maincpu.mq@70230 = 1028003508280001</action>
<action>maincpu.mq@70238 = 00FF67041028001E</action>
<action>maincpu.mq@70240 = 024000704E75FFFF</action>
<!--
70230 | 1028 0035 : move.b ($35,A0), D0
70234 | 0828 0001 00FF : btst #$1, ($ff,A0)
7023A | 6704 : beq $70240
7023C | 1028 001E : move.b ($1e,A0), D0
70240 | 0240 0070 : andi.w #$70, D0
70244 | 4E75 : rts
-->
</script>
<script state="run">
<action condition="(param band 01) == 00">maincpu.pb@1051FF &= FD</action>
<action condition="(param band 02) == 00">maincpu.pb@1055FF &= FD</action>
<action condition="(param band 01) != 00">maincpu.pb@1051FF |= 02 </action>
<action condition="(param band 02) != 00">maincpu.pb@1055FF |= 02 </action>
</script>
<script state="off">
<action>maincpu.mq@16598 = 1028003502400070</action>
<action>maincpu.mq@70230 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70238 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70240 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="action speed up (test)">
<comment>some bugs (fail to shoot firearms, character freezes after throw etc)</comment>
<parameter>
<item value="0x01">1P </item>
<item value="0x02">2P </item>
<item value="0x03">both players</item>
</parameter>
<script state="on">
<action>maincpu.mq@087A8 = 4EB9000702504E71</action>
<action>maincpu.mq@70250 = 52020828000200FF</action>
<action>maincpu.mq@70258 = 670C12360006B202</action>
<action>maincpu.mq@70260 = 630453011401B436</action>
<action>maincpu.mq@70268 = 00064E75FFFFFFFF</action>
<!--
70250 | 5202 : addq.b #1, D2
70252 | 0828 0002 00FF : btst #$2, ($ff,A0)
70258 | 670C : beq $70266
7025A | 1236 0006 : move.b ($6,A6,D0.w), D1
7025E | B202 : cmp.b D2, D1
70260 | 6304 : bls $70266
70262 | 5301 : subq.b #1, D1
70264 | 1401 : move.b D1, D2
70266 | B436 0006 : cmp.b ($6,A6,D0.w), D2
7026A | 4E75 : rts
-->
</script>
<script state="run">
<action condition="(param band 01) == 00">maincpu.pb@1051FF &= FB</action>
<action condition="(param band 02) == 00">maincpu.pb@1055FF &= FB</action>
<action condition="(param band 01) != 00">maincpu.pb@1051FF |= 04 </action>
<action condition="(param band 02) != 00">maincpu.pb@1055FF |= 04 </action>
</script>
<script state="off">
<action>maincpu.mq@087A8 = 06020001B4360006</action>
<action>maincpu.mq@70250 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70258 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70260 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70268 = 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="0x01">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.pb@105833 = param</action> <!-- initialize sub-timer -->
<action>maincpu.mb@0141A7 = param</action>
</script>
<script state="off">
<action>maincpu.pb@105833 = 27</action>
<action>maincpu.mb@0141A7 = 27</action>
</script>
</cheat>
<cheat desc="unlock secret character">
<!-- selectable salamander in character selection screen -->
<script state="on">
<action>maincpu.mb@C4FB = B</action>
<action>maincpu.mb@C50B = 0A</action>
</script>
<script state="off">
<action>maincpu.mb@C4FB = 0A</action>
<action>maincpu.mb@C50B = 09</action>
</script>
</cheat>
<cheat desc="sound test mode">
<!--
character voices
bank : 0x00, code : 0xa1-0xb4 - jin
bank : 0x10, code : 0xa1-0xb4 - goldor
bank : 0x20, code : 0xa1-0xb4 - racheal
bank : 0x30, code : 0xa1-0xb4 - zen
bank : 0x40, code : 0xa1-0xb4 - hoi
bank : 0x50, code : 0xa1-0xb4 - chaos
bank : 0x60, code : 0xa1-0xb4 - mahambah
bank : 0x70, code : 0xa1-0xb4 - avu
bank : 0x80, code : 0xa1-0xb4 - titi
bank : 0x90, code : 0xa1-0xb4 - bobby
bank : 0xa0, code : 0xa1-0xb4 - salamander
-->
<comment>set "skip ram/rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.mw@034D8 = 4E71 </action> <!-- enable sound code check -->
<action>maincpu.md@010F4 = 00070270 </action>
<action>maincpu.mq@70270 = 41F90010000043E8</action>
<action>maincpu.mq@70278 = 0001120010390041</action>
<action>maincpu.mq@70280 = 4001B20067F40C00</action>
<action>maincpu.mq@70288 = 00FE660253100C00</action>
<action>maincpu.mq@70290 = 00FD660252100C00</action>
<action>maincpu.mq@70298 = 00F7660404100010</action>
<action>maincpu.mq@702A0 = 0C0000FB66040610</action>
<action>maincpu.mq@702A8 = 00100C0000BE6604</action>
<action>maincpu.mq@702B0 = 041100100C0000BD</action>
<action>maincpu.mq@702B8 = 6604061100100C00</action>
<action>maincpu.mq@702C0 = 00EF66061C111E10</action>
<action>maincpu.mq@702C8 = 600C0C0000DF660A</action>
<action>maincpu.mq@702D0 = 42061E3C00FF4EB8</action>
<action>maincpu.mq@702D8 = 347E609EFFFFFFFF</action>
<!--
70270 | 41F9 0010 0000 : lea $100000.l, A0 // sound code address
70276 | 43E8 0001 : lea ($1,A0), A1 // bank number address ($100001)
7027A | 1200 : move.b D0, D1
7027C | 1039 0041 4001 : move.b $414001.l, D0 // read input
70282 | B200 : cmp.b D0, D1
70284 | 67F4 : beq $718ba
70286 | 0C00 00FE : cmpi.b #-$2, D0
7028A | 6602 : bne $718ce
7028C | 5310 : subq.b #1, (A0) // decrease code -01
7028E | 0C00 00FD : cmpi.b #-$3, D0
70292 | 6602 : bne $718d6
70294 | 5210 : addq.b #1, (A0) // increase code +01
70296 | 0C00 00F7 : cmpi.b #-$9, D0
7029A | 6604 : bne $718e0
7029C | 0410 0010 : subi.b #$10, (A0) // decrease code -10
702A0 | 0C00 00FB : cmpi.b #-$5, D0
702A4 | 6604 : bne $718ea
702A6 | 0610 0010 : addi.b #$10, (A0) // increase code +10
702AA | 0C00 00BE : cmpi.b #-$42, D0
702AE | 6604 : bne $718f4
702B0 | 0411 0010 : subi.b #$10, (A1) // decrease bank -10
702B4 | 0C00 00BD : cmpi.b #-$43, D0
702B8 | 6604 : bne $718fe
702BA | 0611 0010 : addi.b #$10, (A1) // increase bank +10
702BE | 0C00 00EF : cmpi.b #-$11, D0
702C2 | 6606 : bne $7190a
702C4 | 1C11 : move.b (A1), D6 // play sound
702C6 | 1E10 : move.b (A0), D7
702C8 | 600C : bra $71916
702CA | 0C00 00DF : cmpi.b #-$21, D0
702CE | 660A : bne $7191a
702D0 | 4206 : clr.b D6 // stop sound
702D2 | 1E3C 00FF : move.b #$ff, D7
702D6 | 4EB8 347E : jsr $347e.w // send sound code
702DA | 609E : bra $718ba
-->
</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 3 + left : decrease bank -10" line="15" align="center" />
<output format="button 3 + right : increase bank +10" 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 %02X >>" line="21" align="center" >
<argument>maincpu.pb@100001</argument>
</output>
<output format="<< sound code %02X >>" line="23" align="center" >
<argument>maincpu.pb@100000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mw@034D8 = 4E75 </action>
<action>maincpu.md@010F4 = 00001F50 </action>
<action>maincpu.mq@70270 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70278 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70280 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70288 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70290 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@70298 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@702A0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@702A8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@702B0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@702B8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@702C0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@702C8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@702D0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@702D8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mq@35B8 = 4EF90000107A103C</action>
</script>
<script state="off">
<action>maincpu.mq@35B8 = 4DF9000035C6103C</action>
</script>
</cheat>
</mamecheat>
- "no hit", "rapid fire" and "action speed up" : Simplified code. Converted address check to flag check.
- "easy moves" : Commented out. Because this code requires major rewriting.
- "sound test mode : Added note.