legion.xml
Code: Select all
<!-- Legion - Spinner-87 (World ver 2.03) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<!-- objects -->
<action>maincpu.md@D740 = 303C0000</action>
<action>maincpu.md@D75C = 303C0000</action>
<action>maincpu.md@D7C8 = 303C0000</action>
<action>maincpu.md@D7E8 = 303C0000</action>
<action>maincpu.md@D808 = 303C0000</action>
<action>maincpu.md@D8B0 = 303C0000</action>
<action>maincpu.md@D8CC = 303C0000</action>
<action>maincpu.md@D938 = 303C0000</action>
<action>maincpu.md@D952 = 303C0000</action>
<!-- background -->
<action>maincpu.md@12F12 = 70004E75</action>
</script>
<script state="off">
<action>maincpu.md@0D740 = 610008DA</action>
<action>maincpu.md@0D75C = 610008BE</action>
<action>maincpu.md@0D7C8 = 61000852</action>
<action>maincpu.md@0D7E8 = 61000832</action>
<action>maincpu.md@0D808 = 61000812</action>
<action>maincpu.md@0D8B0 = 6100076A</action>
<action>maincpu.md@0D8CC = 6100074E</action>
<action>maincpu.md@0D938 = 610006E2</action>
<action>maincpu.md@0D952 = 610006C8</action>
<action>maincpu.md@12F12 = 0C410190</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@699D = 01</action>
</script>
<script state="off">
<action>maincpu.mb@699D = 03</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0001">01 (slow)</item>
<item value="0x0002">02 </item>
<item value="0x0004">03 </item>
<item value="0x0006">04 </item>
<item value="0x0008">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mw@F6FE = 303C</action> <!-- up -->
<action>maincpu.mw@F762 = 303C</action> <!-- down -->
<action>maincpu.mw@F7A4 = 303C</action> <!-- left -->
<action>maincpu.mw@F7F0 = 303C</action> <!-- right -->
</script>
<script state="change">
<action>maincpu.mw@F700 = param</action>
<action>maincpu.mw@F764 = param</action>
<action>maincpu.mw@F7A6 = param</action>
<action>maincpu.mw@F7F2 = param</action>
</script>
<script state="off">
<action>maincpu.md@F6FE = 102E001D</action>
<action>maincpu.md@F762 = 102E001D</action>
<action>maincpu.md@F7A4 = 102E001C</action>
<action>maincpu.md@F7F0 = 102E001C</action>
</script>
</cheat>
<cheat desc="bullet speed - main shot">
<parameter>
<item value="0x0001">01 (slow)</item>
<item value="0x0008">02 </item>
<item value="0x000c">03 </item>
<item value="0x0010">04 </item>
<item value="0x0014">05 (fast)</item>
</parameter>
<script state="on">
<!-- normal shot -->
<action>maincpu.mw@06922 = 303C </action>
<action>maincpu.mq@06926 = 4EB900016D903D7B</action>
<action>maincpu.mq@16D90 = D16E000630390006</action>
<action>maincpu.mq@16D98 = 2CB44E75FFFFFFFF</action>
<!--
06922 | 303C xxxx : move.w #$xx, D0
06926 | 4EB9 0001 6D90 : jsr $16d90.l
=============================================
16D90 | D16E 0006 : add.w D0, ($6,A6)
16D94 | 3039 0006 2CB4 : move.w $62cb4.l, D0
16D9A | 4E75 : rts
-->
<!-- laser -->
<action>maincpu.mw@0695E = 303C </action>
<action>maincpu.mq@06962 = 4EB900016DA0641A</action>
<action>maincpu.mq@16DA0 = D16E00060C6E0003</action>
<action>maincpu.mq@16DA8 = 000E4E75FFFFFFFF</action>
<!--
0695E | 303C xxxx : move.w #$xx, D0
06962 | 4EB9 0001 6DA0 : jsr $16da0.l
=============================================
16AB0 | D16E 0006 : add.w D0, ($6,A6)
16AB4 | 0C6E 0003 000E : cmpi.w #$3, ($e,A6)
16ABA | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.mw@6924 = param</action>
<action>maincpu.mw@6960 = param</action>
</script>
<script state="off">
<action>maincpu.md@06922 = 506E0006 </action>
<action>maincpu.mq@06926 = 303900062CB43D7B</action>
<action>maincpu.mq@16D90 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16D98 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.md@0695E = 506E0006 </action>
<action>maincpu.mq@06962 = 0C6E0003000E641A</action>
<action>maincpu.mq@16DA0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16DA8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set "skip ram/rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.md@002C0 = 00016DB0 </action>
<action>maincpu.mq@16DB0 = 41F90006100043F9</action>
<action>maincpu.mq@16DB8 = 0007C00B12001039</action>
<action>maincpu.mq@16DC0 = 00078001B20067F4</action>
<action>maincpu.mq@16DC8 = 0C0000FB66025310</action>
<action>maincpu.mq@16DD0 = 0C0000F766025210</action>
<action>maincpu.mq@16DD8 = 0C0000FD66040410</action>
<action>maincpu.mq@16DE0 = 00100C0000FE6604</action>
<action>maincpu.mq@16DE8 = 061000100C0000EF</action>
<action>maincpu.mq@16DF0 = 660212900C0000DF</action>
<action>maincpu.mq@16DF8 = 660412BC003F60BC</action>
<!--
16DB0 | 41F9 0006 1000 : lea $61000.l, A0 // sound code address
16DB6 | 43F9 0007 C00B : lea $7c00b.l, A1 // sound latch address
16DBC | 1200 : move.b D0, D1
16DBE | 1039 0007 8001 : move.b $78001.l, D0 // read input
16DC4 | B200 : cmp.b D0, D1
16DC6 | 67F4 : beq $16acc
16DC8 | 0C00 00FB : cmpi.b #-$5, D0
16DCC | 6602 : bne $16ae0
16DCE | 5310 : subq.b #1, (A0) // decrease code -01
16DD0 | 0C00 00F7 : cmpi.b #-$9, D0
16DD4 | 6602 : bne $16ae8
16DD6 | 5210 : addq.b #1, (A0) // increase code +01
16DD8 | 0C00 00FD : cmpi.b #-$3, D0
16DDC | 6604 : bne $16af2
16DDE | 0410 0010 : subi.b #$10, (A0) // decrease code -10
16DE2 | 0C00 00FE : cmpi.b #-$2, D0
16DE6 | 6604 : bne $16afc
16DE8 | 0610 0010 : addi.b #$10, (A0) // increase code +10
16DEC | 0C00 00EF : cmpi.b #-$11, D0
16DF0 | 6602 : bne $16b04
16DF2 | 1290 : move.b (A0), (A1) // play sound
16DF4 | 0C00 00DF : cmpi.b #-$21, D0
16DF8 | 6604 : bne $16b0e
16DFA | 12BC 003F : move.b #$3f, (A1) // stop sound
16DFE | 60BC : bra $16acc
-->
</script>
<script state="run">
<output format="----- legion 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 %2.2X >>" line="19" align="center" >
<argument>maincpu.pb@61000</argument>
</output>
</script>
<script state="off">
<action>maincpu.md@002C0 = 00015934 </action>
<action>maincpu.mq@16DB0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16DB8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16DC0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16DC8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16DD0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16DD8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16DE0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16DE8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16DF8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16DF0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@01B6 = 0002</action>
</script>
<script state="off">
<action>maincpu.mw@01B6 = 0186</action>
</script>
</cheat>
</mamecheat>
legionj.xml
Code: Select all
<!-- Chouji Meikyuu Legion (Japan ver 1.05, set 1) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<!-- objects -->
<action>maincpu.md@D582 = 303C0000</action>
<action>maincpu.md@D59E = 303C0000</action>
<action>maincpu.md@D60A = 303C0000</action>
<action>maincpu.md@D62A = 303C0000</action>
<action>maincpu.md@D64A = 303C0000</action>
<action>maincpu.md@D6F2 = 303C0000</action>
<action>maincpu.md@D70E = 303C0000</action>
<action>maincpu.md@D77A = 303C0000</action>
<action>maincpu.md@D794 = 303C0000</action>
<!-- background -->
<action>maincpu.md@12C80 = 70004E75</action>
</script>
<script state="off">
<action>maincpu.md@0D582 = 610008D0</action>
<action>maincpu.md@0D59E = 610008B4</action>
<action>maincpu.md@0D60A = 61000848</action>
<action>maincpu.md@0D62A = 61000828</action>
<action>maincpu.md@0D64A = 61000808</action>
<action>maincpu.md@0D6F2 = 61000760</action>
<action>maincpu.md@0D70E = 61000744</action>
<action>maincpu.md@0D77A = 610006D8</action>
<action>maincpu.md@0D794 = 610006BE</action>
<action>maincpu.md@12C80 = 0C410190</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@6907 = 01</action>
</script>
<script state="off">
<action>maincpu.mb@6907 = 03</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0001">01 (slow)</item>
<item value="0x0002">02 </item>
<item value="0x0004">03 </item>
<item value="0x0006">04 </item>
<item value="0x0008">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mw@F536 = 303C</action> <!-- up -->
<action>maincpu.mw@F59A = 303C</action> <!-- down -->
<action>maincpu.mw@F5DC = 303C</action> <!-- left -->
<action>maincpu.mw@F628 = 303C</action> <!-- right -->
</script>
<script state="change">
<action>maincpu.mw@F538 = param</action>
<action>maincpu.mw@F59C = param</action>
<action>maincpu.mw@F5DE = param</action>
<action>maincpu.mw@F62A = param</action>
</script>
<script state="off">
<action>maincpu.md@F536 = 102E001D</action>
<action>maincpu.md@F59A = 102E001D</action>
<action>maincpu.md@F5DC = 102E001C</action>
<action>maincpu.md@F628 = 102E001C</action>
</script>
</cheat>
<cheat desc="bullet speed - main shot">
<parameter>
<item value="0x0001">01 (slow)</item>
<item value="0x0008">02 </item>
<item value="0x000c">03 </item>
<item value="0x0010">04 </item>
<item value="0x0014">05 (fast)</item>
</parameter>
<script state="on">
<!-- normal shot -->
<action>maincpu.mw@0688E = 303C </action>
<action>maincpu.mq@06892 = 4EB900016AA03D7B</action>
<action>maincpu.mq@16AA0 = D16E000630390006</action>
<action>maincpu.mq@16AA8 = 2CB44E75FFFFFFFF</action>
<!--
0688E | 303C xxxx : move.w #$xx, D0
06892 | 4EB9 0001 6AA0 : jsr $16aa0.l
=============================================
16AA0 | D16E 0006 : add.w D0, ($6,A6)
16AA4 | 3039 0006 2CB4 : move.w $62cb4.l, D0
16AAA | 4E75 : rts
-->
<!-- laser -->
<action>maincpu.mw@068CA = 303C </action>
<action>maincpu.mq@068CE = 4EB900016AB0641A</action>
<action>maincpu.mq@16AB0 = D16E00060C6E0003</action>
<action>maincpu.mq@16AB8 = 000E4E75FFFFFFFF</action>
<!--
068CA | 303C xxxx : move.w #$xx, D0
068CE | 4EB9 0001 6AB0 : jsr $16ab0.l
=============================================
16AB0 | D16E 0006 : add.w D0, ($6,A6)
16AB4 | 0C6E 0003 000E : cmpi.w #$3, ($e,A6)
16ABA | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.mw@06890 = param</action>
<action>maincpu.mw@068CC = param</action>
</script>
<script state="off">
<action>maincpu.md@0688E = 506E0006 </action>
<action>maincpu.mq@06892 = 303900062CB43D7B</action>
<action>maincpu.mq@16AA0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AA8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.md@068CA = 506E0006 </action>
<action>maincpu.mq@068CE = 0C6E0003000E641A</action>
<action>maincpu.mq@16AB0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AB8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set "skip ram/rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.md@002B8 = 00016AC0 </action>
<action>maincpu.mq@16AC0 = 41F90006100043F9</action>
<action>maincpu.mq@16AC8 = 0007C00B12001039</action>
<action>maincpu.mq@16AD0 = 00078001B20067F4</action>
<action>maincpu.mq@16AD8 = 0C0000FB66025310</action>
<action>maincpu.mq@16AE0 = 0C0000F766025210</action>
<action>maincpu.mq@16AE8 = 0C0000FD66040410</action>
<action>maincpu.mq@16AF0 = 00100C0000FE6604</action>
<action>maincpu.mq@16AF8 = 061000100C0000EF</action>
<action>maincpu.mq@16B00 = 660212900C0000DF</action>
<action>maincpu.mq@16B08 = 660412BC003F60BC</action>
<!--
16AC0 | 41F9 0006 1000 : lea $61000.l, A0 // sound code address
16AC6 | 43F9 0007 C00B : lea $7c00b.l, A1 // sound latch address
16ACC | 1200 : move.b D0, D1
16ACE | 1039 0007 8001 : move.b $78001.l, D0 // read input
16AD4 | B200 : cmp.b D0, D1
16AD6 | 67F4 : beq $16acc
16AD8 | 0C00 00FB : cmpi.b #-$5, D0
16ADC | 6602 : bne $16ae0
16ADE | 5310 : subq.b #1, (A0) // decrease code -01
16AE0 | 0C00 00F7 : cmpi.b #-$9, D0
16AE4 | 6602 : bne $16ae8
16AE6 | 5210 : addq.b #1, (A0) // increase code +01
16AE8 | 0C00 00FD : cmpi.b #-$3, D0
16AEC | 6604 : bne $16af2
16AEE | 0410 0010 : subi.b #$10, (A0) // decrease code -10
16AF2 | 0C00 00FE : cmpi.b #-$2, D0
16AF6 | 6604 : bne $16afc
16AF8 | 0610 0010 : addi.b #$10, (A0) // increase code +10
16AFC | 0C00 00EF : cmpi.b #-$11, D0
16B00 | 6602 : bne $16b04
16B02 | 1290 : move.b (A0), (A1) // play sound
16B04 | 0C00 00DF : cmpi.b #-$21, D0
16B08 | 6604 : bne $16b0e
16B0A | 12BC 003F : move.b #$3f, (A1) // stop sound
16B0E | 60BC : bra $16acc
-->
</script>
<script state="run">
<output format="----- legion 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 %2.2X >>" line="19" align="center" >
<argument>maincpu.pb@61000</argument>
</output>
</script>
<script state="off">
<action>maincpu.md@002B8 = 0001569A </action>
<action>maincpu.mq@16AC0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AC8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AD0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AD8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AE0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AE8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AF0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AF8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16B08 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16B00 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@01B6 = 0002</action>
</script>
<script state="off">
<action>maincpu.mw@01B6 = 017E</action>
</script>
</cheat>
</mamecheat>
legionj2.xml
Code: Select all
<!-- Chouji Meikyuu Legion (Japan ver 1.05, set 2) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<!-- objects -->
<action>maincpu.md@D582 = 303C0000</action>
<action>maincpu.md@D59E = 303C0000</action>
<action>maincpu.md@D60A = 303C0000</action>
<action>maincpu.md@D62A = 303C0000</action>
<action>maincpu.md@D64A = 303C0000</action>
<action>maincpu.md@D6F2 = 303C0000</action>
<action>maincpu.md@D70E = 303C0000</action>
<action>maincpu.md@D77A = 303C0000</action>
<action>maincpu.md@D794 = 303C0000</action>
<!-- background -->
<action>maincpu.md@12C80 = 70004E75</action>
</script>
<script state="off">
<action>maincpu.md@0D582 = 610008D0</action>
<action>maincpu.md@0D59E = 610008B4</action>
<action>maincpu.md@0D60A = 61000848</action>
<action>maincpu.md@0D62A = 61000828</action>
<action>maincpu.md@0D64A = 61000808</action>
<action>maincpu.md@0D6F2 = 61000760</action>
<action>maincpu.md@0D70E = 61000744</action>
<action>maincpu.md@0D77A = 610006D8</action>
<action>maincpu.md@0D794 = 610006BE</action>
<action>maincpu.md@12C80 = 0C410190</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@6907 = 01</action>
</script>
<script state="off">
<action>maincpu.mb@6907 = 03</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0001">01 (slow)</item>
<item value="0x0002">02 </item>
<item value="0x0004">03 </item>
<item value="0x0006">04 </item>
<item value="0x0008">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mw@F536 = 303C</action> <!-- up -->
<action>maincpu.mw@F59A = 303C</action> <!-- down -->
<action>maincpu.mw@F5DC = 303C</action> <!-- left -->
<action>maincpu.mw@F628 = 303C</action> <!-- right -->
</script>
<script state="change">
<action>maincpu.mw@F538 = param</action>
<action>maincpu.mw@F59C = param</action>
<action>maincpu.mw@F5DE = param</action>
<action>maincpu.mw@F62A = param</action>
</script>
<script state="off">
<action>maincpu.md@F536 = 102E001D</action>
<action>maincpu.md@F59A = 102E001D</action>
<action>maincpu.md@F5DC = 102E001C</action>
<action>maincpu.md@F628 = 102E001C</action>
</script>
</cheat>
<cheat desc="bullet speed - main shot">
<parameter>
<item value="0x0001">01 (slow)</item>
<item value="0x0008">02 </item>
<item value="0x000c">03 </item>
<item value="0x0010">04 </item>
<item value="0x0014">05 (fast)</item>
</parameter>
<script state="on">
<!-- normal shot -->
<action>maincpu.mw@0688E = 303C </action>
<action>maincpu.mq@06892 = 4EB900016AA03D7B</action>
<action>maincpu.mq@16AA0 = D16E000630390006</action>
<action>maincpu.mq@16AA8 = 2CB44E75FFFFFFFF</action>
<!--
0688E | 303C xxxx : move.w #$xx, D0
06892 | 4EB9 0001 6AA0 : jsr $16aa0.l
=============================================
16AA0 | D16E 0006 : add.w D0, ($6,A6)
16AA4 | 3039 0006 2CB4 : move.w $62cb4.l, D0
16AAA | 4E75 : rts
-->
<!-- laser -->
<action>maincpu.mw@068CA = 303C </action>
<action>maincpu.mq@068CE = 4EB900016AB0641A</action>
<action>maincpu.mq@16AB0 = D16E00060C6E0003</action>
<action>maincpu.mq@16AB8 = 000E4E75FFFFFFFF</action>
<!--
068CA | 303C xxxx : move.w #$xx, D0
068CE | 4EB9 0001 6AB0 : jsr $16ab0.l
=============================================
16AB0 | D16E 0006 : add.w D0, ($6,A6)
16AB4 | 0C6E 0003 000E : cmpi.w #$3, ($e,A6)
16ABA | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.mw@06890 = param</action>
<action>maincpu.mw@068CC = param</action>
</script>
<script state="off">
<action>maincpu.md@0688E = 506E0006 </action>
<action>maincpu.mq@06892 = 303900062CB43D7B</action>
<action>maincpu.mq@16AA0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AA8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.md@068CA = 506E0006 </action>
<action>maincpu.mq@068CE = 0C6E0003000E641A</action>
<action>maincpu.mq@16AB0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AB8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set "skip ram/rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.md@002B8 = 00016AC0 </action>
<action>maincpu.mq@16AC0 = 41F90006100043F9</action>
<action>maincpu.mq@16AC8 = 0007C00B12001039</action>
<action>maincpu.mq@16AD0 = 00078001B20067F4</action>
<action>maincpu.mq@16AD8 = 0C0000FB66025310</action>
<action>maincpu.mq@16AE0 = 0C0000F766025210</action>
<action>maincpu.mq@16AE8 = 0C0000FD66040410</action>
<action>maincpu.mq@16AF0 = 00100C0000FE6604</action>
<action>maincpu.mq@16AF8 = 061000100C0000EF</action>
<action>maincpu.mq@16B00 = 660212900C0000DF</action>
<action>maincpu.mq@16B08 = 660412BC003F60BC</action>
<!--
16AC0 | 41F9 0006 1000 : lea $61000.l, A0 // sound code address
16AC6 | 43F9 0007 C00B : lea $7c00b.l, A1 // sound latch address
16ACC | 1200 : move.b D0, D1
16ACE | 1039 0007 8001 : move.b $78001.l, D0 // read input
16AD4 | B200 : cmp.b D0, D1
16AD6 | 67F4 : beq $16acc
16AD8 | 0C00 00FB : cmpi.b #-$5, D0
16ADC | 6602 : bne $16ae0
16ADE | 5310 : subq.b #1, (A0) // decrease code -01
16AE0 | 0C00 00F7 : cmpi.b #-$9, D0
16AE4 | 6602 : bne $16ae8
16AE6 | 5210 : addq.b #1, (A0) // increase code +01
16AE8 | 0C00 00FD : cmpi.b #-$3, D0
16AEC | 6604 : bne $16af2
16AEE | 0410 0010 : subi.b #$10, (A0) // decrease code -10
16AF2 | 0C00 00FE : cmpi.b #-$2, D0
16AF6 | 6604 : bne $16afc
16AF8 | 0610 0010 : addi.b #$10, (A0) // increase code +10
16AFC | 0C00 00EF : cmpi.b #-$11, D0
16B00 | 6602 : bne $16b04
16B02 | 1290 : move.b (A0), (A1) // play sound
16B04 | 0C00 00DF : cmpi.b #-$21, D0
16B08 | 6604 : bne $16b0e
16B0A | 12BC 003F : move.b #$3f, (A1) // stop sound
16B0E | 60BC : bra $16acc
-->
</script>
<script state="run">
<output format="----- legion 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 %2.2X >>" line="19" align="center" >
<argument>maincpu.pb@61000</argument>
</output>
</script>
<script state="off">
<action>maincpu.md@002B8 = 0001569A </action>
<action>maincpu.mq@16AC0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AC8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AD0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AD8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AE0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AE8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AF0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AF8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16B08 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16B00 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@01B6 = 0002</action>
</script>
<script state="off">
<action>maincpu.mw@01B6 = 017E</action>
</script>
</cheat>
</mamecheat>
legionjb.xml
Code: Select all
<!-- Chouji Meikyuu Legion (Japan ver 1.05, bootleg set 1) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<!-- objects -->
<action>maincpu.md@D582 = 303C0000</action>
<action>maincpu.md@D59E = 303C0000</action>
<action>maincpu.md@D60A = 303C0000</action>
<action>maincpu.md@D62A = 303C0000</action>
<action>maincpu.md@D64A = 303C0000</action>
<action>maincpu.md@D6F2 = 303C0000</action>
<action>maincpu.md@D70E = 303C0000</action>
<action>maincpu.md@D77A = 303C0000</action>
<action>maincpu.md@D794 = 303C0000</action>
<!-- background -->
<action>maincpu.md@12C80 = 70004E75</action>
</script>
<script state="off">
<action>maincpu.md@0D582 = 610008D0</action>
<action>maincpu.md@0D59E = 610008B4</action>
<action>maincpu.md@0D60A = 61000848</action>
<action>maincpu.md@0D62A = 61000828</action>
<action>maincpu.md@0D64A = 61000808</action>
<action>maincpu.md@0D6F2 = 61000760</action>
<action>maincpu.md@0D70E = 61000744</action>
<action>maincpu.md@0D77A = 610006D8</action>
<action>maincpu.md@0D794 = 610006BE</action>
<action>maincpu.md@12C80 = 0C410190</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@6907 = 01</action>
</script>
<script state="off">
<action>maincpu.mb@6907 = 03</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0001">01 (slow)</item>
<item value="0x0002">02 </item>
<item value="0x0004">03 </item>
<item value="0x0006">04 </item>
<item value="0x0008">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mw@F536 = 303C</action> <!-- up -->
<action>maincpu.mw@F59A = 303C</action> <!-- down -->
<action>maincpu.mw@F5DC = 303C</action> <!-- left -->
<action>maincpu.mw@F628 = 303C</action> <!-- right -->
</script>
<script state="change">
<action>maincpu.mw@F538 = param</action>
<action>maincpu.mw@F59C = param</action>
<action>maincpu.mw@F5DE = param</action>
<action>maincpu.mw@F62A = param</action>
</script>
<script state="off">
<action>maincpu.md@F536 = 102E001D</action>
<action>maincpu.md@F59A = 102E001D</action>
<action>maincpu.md@F5DC = 102E001C</action>
<action>maincpu.md@F628 = 102E001C</action>
</script>
</cheat>
<cheat desc="bullet speed - main shot">
<parameter>
<item value="0x0001">01 (slow)</item>
<item value="0x0008">02 </item>
<item value="0x000c">03 </item>
<item value="0x0010">04 </item>
<item value="0x0014">05 (fast)</item>
</parameter>
<script state="on">
<!-- normal shot -->
<action>maincpu.mw@0688E = 303C </action>
<action>maincpu.mq@06892 = 4EB900016AA03D7B</action>
<action>maincpu.mq@16AA0 = D16E000630390006</action>
<action>maincpu.mq@16AA8 = 2CB44E75FFFFFFFF</action>
<!--
0688E | 303C xxxx : move.w #$xx, D0
06892 | 4EB9 0001 6AA0 : jsr $16aa0.l
=============================================
16AA0 | D16E 0006 : add.w D0, ($6,A6)
16AA4 | 3039 0006 2CB4 : move.w $62cb4.l, D0
16AAA | 4E75 : rts
-->
<!-- laser -->
<action>maincpu.mw@068CA = 303C </action>
<action>maincpu.mq@068CE = 4EB900016AB0641A</action>
<action>maincpu.mq@16AB0 = D16E00060C6E0003</action>
<action>maincpu.mq@16AB8 = 000E4E75FFFFFFFF</action>
<!--
068CA | 303C xxxx : move.w #$xx, D0
068CE | 4EB9 0001 6AB0 : jsr $16ab0.l
=============================================
16AB0 | D16E 0006 : add.w D0, ($6,A6)
16AB4 | 0C6E 0003 000E : cmpi.w #$3, ($e,A6)
16ABA | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.mw@06890 = param</action>
<action>maincpu.mw@068CC = param</action>
</script>
<script state="off">
<action>maincpu.md@0688E = 506E0006 </action>
<action>maincpu.mq@06892 = 303900062CB43D7B</action>
<action>maincpu.mq@16AA0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AA8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.md@068CA = 506E0006 </action>
<action>maincpu.mq@068CE = 0C6E0003000E641A</action>
<action>maincpu.mq@16AB0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AB8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set "skip ram/rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.md@002B8 = 00016AC0 </action>
<action>maincpu.mq@16AC0 = 41F90006100043F9</action>
<action>maincpu.mq@16AC8 = 0007C00B12001039</action>
<action>maincpu.mq@16AD0 = 00078001B20067F4</action>
<action>maincpu.mq@16AD8 = 0C0000FB66025310</action>
<action>maincpu.mq@16AE0 = 0C0000F766025210</action>
<action>maincpu.mq@16AE8 = 0C0000FD66040410</action>
<action>maincpu.mq@16AF0 = 00100C0000FE6604</action>
<action>maincpu.mq@16AF8 = 061000100C0000EF</action>
<action>maincpu.mq@16B00 = 660212900C0000DF</action>
<action>maincpu.mq@16B08 = 660412BC003F60BC</action>
<!--
16AC0 | 41F9 0006 1000 : lea $61000.l, A0 // sound code address
16AC6 | 43F9 0007 C00B : lea $7c00b.l, A1 // sound latch address
16ACC | 1200 : move.b D0, D1
16ACE | 1039 0007 8001 : move.b $78001.l, D0 // read input
16AD4 | B200 : cmp.b D0, D1
16AD6 | 67F4 : beq $16acc
16AD8 | 0C00 00FB : cmpi.b #-$5, D0
16ADC | 6602 : bne $16ae0
16ADE | 5310 : subq.b #1, (A0) // decrease code -01
16AE0 | 0C00 00F7 : cmpi.b #-$9, D0
16AE4 | 6602 : bne $16ae8
16AE6 | 5210 : addq.b #1, (A0) // increase code +01
16AE8 | 0C00 00FD : cmpi.b #-$3, D0
16AEC | 6604 : bne $16af2
16AEE | 0410 0010 : subi.b #$10, (A0) // decrease code -10
16AF2 | 0C00 00FE : cmpi.b #-$2, D0
16AF6 | 6604 : bne $16afc
16AF8 | 0610 0010 : addi.b #$10, (A0) // increase code +10
16AFC | 0C00 00EF : cmpi.b #-$11, D0
16B00 | 6602 : bne $16b04
16B02 | 1290 : move.b (A0), (A1) // play sound
16B04 | 0C00 00DF : cmpi.b #-$21, D0
16B08 | 6604 : bne $16b0e
16B0A | 12BC 003F : move.b #$3f, (A1) // stop sound
16B0E | 60BC : bra $16acc
-->
</script>
<script state="run">
<output format="----- legion 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 %2.2X >>" line="19" align="center" >
<argument>maincpu.pb@61000</argument>
</output>
</script>
<script state="off">
<action>maincpu.md@002B8 = 0001569A </action>
<action>maincpu.mq@16AC0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AC8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AD0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AD8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AE0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AE8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AF0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AF8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16B08 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16B00 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@01B6 = 0002</action>
</script>
<script state="off">
<action>maincpu.mw@01B6 = 017E</action>
</script>
</cheat>
</mamecheat>
legionjb2.xml
Code: Select all
<!-- Chouji Meikyuu Legion (Japan ver 1.05, bootleg set 2) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<!-- objects -->
<action>maincpu.md@D582 = 303C0000</action>
<action>maincpu.md@D59E = 303C0000</action>
<action>maincpu.md@D60A = 303C0000</action>
<action>maincpu.md@D62A = 303C0000</action>
<action>maincpu.md@D64A = 303C0000</action>
<action>maincpu.md@D6F2 = 303C0000</action>
<action>maincpu.md@D70E = 303C0000</action>
<action>maincpu.md@D77A = 303C0000</action>
<action>maincpu.md@D794 = 303C0000</action>
<!-- background -->
<action>maincpu.md@12C80 = 70004E75</action>
</script>
<script state="off">
<action>maincpu.md@0D582 = 610008D0</action>
<action>maincpu.md@0D59E = 610008B4</action>
<action>maincpu.md@0D60A = 61000848</action>
<action>maincpu.md@0D62A = 61000828</action>
<action>maincpu.md@0D64A = 61000808</action>
<action>maincpu.md@0D6F2 = 61000760</action>
<action>maincpu.md@0D70E = 61000744</action>
<action>maincpu.md@0D77A = 610006D8</action>
<action>maincpu.md@0D794 = 610006BE</action>
<action>maincpu.md@12C80 = 0C410190</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@6907 = 01</action>
</script>
<script state="off">
<action>maincpu.mb@6907 = 03</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x0001">01 (slow)</item>
<item value="0x0002">02 </item>
<item value="0x0004">03 </item>
<item value="0x0006">04 </item>
<item value="0x0008">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mw@F536 = 303C</action> <!-- up -->
<action>maincpu.mw@F59A = 303C</action> <!-- down -->
<action>maincpu.mw@F5DC = 303C</action> <!-- left -->
<action>maincpu.mw@F628 = 303C</action> <!-- right -->
</script>
<script state="change">
<action>maincpu.mw@F538 = param</action>
<action>maincpu.mw@F59C = param</action>
<action>maincpu.mw@F5DE = param</action>
<action>maincpu.mw@F62A = param</action>
</script>
<script state="off">
<action>maincpu.md@F536 = 102E001D</action>
<action>maincpu.md@F59A = 102E001D</action>
<action>maincpu.md@F5DC = 102E001C</action>
<action>maincpu.md@F628 = 102E001C</action>
</script>
</cheat>
<cheat desc="bullet speed - main shot">
<parameter>
<item value="0x0001">01 (slow)</item>
<item value="0x0008">02 </item>
<item value="0x000c">03 </item>
<item value="0x0010">04 </item>
<item value="0x0014">05 (fast)</item>
</parameter>
<script state="on">
<!-- normal shot -->
<action>maincpu.mw@0688E = 303C </action>
<action>maincpu.mq@06892 = 4EB900016AA03D7B</action>
<action>maincpu.mq@16AA0 = D16E000630390006</action>
<action>maincpu.mq@16AA8 = 2CB44E75FFFFFFFF</action>
<!--
0688E | 303C xxxx : move.w #$xx, D0
06892 | 4EB9 0001 6AA0 : jsr $16aa0.l
=============================================
16AA0 | D16E 0006 : add.w D0, ($6,A6)
16AA4 | 3039 0006 2CB4 : move.w $62cb4.l, D0
16AAA | 4E75 : rts
-->
<!-- laser -->
<action>maincpu.mw@068CA = 303C </action>
<action>maincpu.mq@068CE = 4EB900016AB0641A</action>
<action>maincpu.mq@16AB0 = D16E00060C6E0003</action>
<action>maincpu.mq@16AB8 = 000E4E75FFFFFFFF</action>
<!--
068CA | 303C xxxx : move.w #$xx, D0
068CE | 4EB9 0001 6AB0 : jsr $16ab0.l
=============================================
16AB0 | D16E 0006 : add.w D0, ($6,A6)
16AB4 | 0C6E 0003 000E : cmpi.w #$3, ($e,A6)
16ABA | 4E75 : rts
-->
</script>
<script state="change">
<action>maincpu.mw@06890 = param</action>
<action>maincpu.mw@068CC = param</action>
</script>
<script state="off">
<action>maincpu.md@0688E = 506E0006 </action>
<action>maincpu.mq@06892 = 303900062CB43D7B</action>
<action>maincpu.mq@16AA0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AA8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.md@068CA = 506E0006 </action>
<action>maincpu.mq@068CE = 0C6E0003000E641A</action>
<action>maincpu.mq@16AB0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AB8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>set "skip ram/rom check" then reset the game (F3)</comment>
<script state="on">
<action>maincpu.md@002B8 = 00016AC0 </action>
<action>maincpu.mq@16AC0 = 41F90006100043F9</action>
<action>maincpu.mq@16AC8 = 0007C00B12001039</action>
<action>maincpu.mq@16AD0 = 00078001B20067F4</action>
<action>maincpu.mq@16AD8 = 0C0000FB66025310</action>
<action>maincpu.mq@16AE0 = 0C0000F766025210</action>
<action>maincpu.mq@16AE8 = 0C0000FD66040410</action>
<action>maincpu.mq@16AF0 = 00100C0000FE6604</action>
<action>maincpu.mq@16AF8 = 061000100C0000EF</action>
<action>maincpu.mq@16B00 = 660212900C0000DF</action>
<action>maincpu.mq@16B08 = 660412BC003F60BC</action>
<!--
16AC0 | 41F9 0006 1000 : lea $61000.l, A0 // sound code address
16AC6 | 43F9 0007 C00B : lea $7c00b.l, A1 // sound latch address
16ACC | 1200 : move.b D0, D1
16ACE | 1039 0007 8001 : move.b $78001.l, D0 // read input
16AD4 | B200 : cmp.b D0, D1
16AD6 | 67F4 : beq $16acc
16AD8 | 0C00 00FB : cmpi.b #-$5, D0
16ADC | 6602 : bne $16ae0
16ADE | 5310 : subq.b #1, (A0) // decrease code -01
16AE0 | 0C00 00F7 : cmpi.b #-$9, D0
16AE4 | 6602 : bne $16ae8
16AE6 | 5210 : addq.b #1, (A0) // increase code +01
16AE8 | 0C00 00FD : cmpi.b #-$3, D0
16AEC | 6604 : bne $16af2
16AEE | 0410 0010 : subi.b #$10, (A0) // decrease code -10
16AF2 | 0C00 00FE : cmpi.b #-$2, D0
16AF6 | 6604 : bne $16afc
16AF8 | 0610 0010 : addi.b #$10, (A0) // increase code +10
16AFC | 0C00 00EF : cmpi.b #-$11, D0
16B00 | 6602 : bne $16b04
16B02 | 1290 : move.b (A0), (A1) // play sound
16B04 | 0C00 00DF : cmpi.b #-$21, D0
16B08 | 6604 : bne $16b0e
16B0A | 12BC 003F : move.b #$3f, (A1) // stop sound
16B0E | 60BC : bra $16acc
-->
</script>
<script state="run">
<output format="----- legion 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 %2.2X >>" line="19" align="center" >
<argument>maincpu.pb@61000</argument>
</output>
</script>
<script state="off">
<action>maincpu.md@002B8 = 0001569A </action>
<action>maincpu.mq@16AC0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AC8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AD0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AD8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AE0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AE8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AF0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16AF8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16B08 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@16B00 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="skip ram/rom check">
<script state="on">
<action>maincpu.mw@01B6 = 0002</action>
</script>
<script state="off">
<action>maincpu.mw@01B6 = 017E</action>
</script>
</cheat>
</mamecheat>