karnov.xml
Code: Select all
<!-- Karnov (US, rev 6) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@030EA = 60</action> <!-- bomb -->
<action>maincpu.mb@09260 = 60</action> <!-- enemy -->
<action>maincpu.mb@0EEE2 = 60</action> <!-- enemy -->
<action>maincpu.mb@11226 = 60</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.mb@030EA = 67</action>
<action>maincpu.mb@09260 = 64</action>
<action>maincpu.mb@0EEE2 = 64</action>
<action>maincpu.mb@11226 = 67</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@1E35 = 80</action>
</script>
<script state="off">
<action>maincpu.mb@1E35 = 82</action>
</script>
</cheat>
<cheat desc="bullet speed - main shot">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x03">02 </item>
<item value="0x06">03 </item>
<item value="0x09">04 </item>
<item value="0x0c">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@29CF = param</action> <!-- shot level 1 : right -->
<action>maincpu.mb@29D1 = -param</action> <!-- shot level 1 : left -->
<action>maincpu.mb@29D3 = param</action> <!-- shot level 2 : right -->
<action>maincpu.mb@29D5 = -param</action> <!-- shot level 2 : left -->
<action>maincpu.mb@29DB = param</action> <!-- shot level 3 : right -->
<action>maincpu.mb@29DD = -param</action> <!-- shot level 3 : left -->
</script>
<script state="off">
<action>maincpu.mb@29CF = 03</action>
<action>maincpu.mb@29D1 = FD</action>
<action>maincpu.mb@29D3 = 04</action>
<action>maincpu.mb@29D5 = FC</action>
<action>maincpu.mb@29DB = 04</action>
<action>maincpu.mb@29DD = FC</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.mq@012F4 = 4EB90004D8102070</action>
<action>maincpu.mq@4D810 = 024000030C000001</action>
<action>maincpu.mq@4D818 = 660C083900050006</action>
<action>maincpu.mq@4D820 = 0C8267024240E548</action>
<action>maincpu.mq@4D828 = 4E75FFFFFFFFFFFF</action>
<!--
4D810 | 0240 0003 : andi.w #$3, D0
4D814 | 0C00 0001 : cmpi.b #$1, D0
4D818 | 660C : bne $4d826
4D81A | 0839 0005 0006 0C82 : btst #$5, $60c82.l
4D822 | 6702 : beq $4d826
4D824 | 4240 : clr.w D0
4D826 | E548 : lsl.w #2, D0
4D828 | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.mq@012F4 = 02400003E5482070</action>
<action>maincpu.mq@4D810 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D818 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D820 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D828 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="hidden item finder">
<script state="on">
<!-- invisible point -->
<action>maincpu.mq@03AA8 = 4EB90004D8306700</action>
<action>maincpu.mq@4D830 = 4247322800029279</action>
<action>maincpu.mq@4D838 = 0006020264024441</action>
<action>maincpu.mq@4D840 = 0C41001064043E3C</action>
<action>maincpu.mq@4D848 = FFFF4A474E75FFFF</action>
<!--
4D830 | 4247 : clr.w D7
4D832 | 3228 0002 : move.w ($2,A0), D1
4D836 | 9279 0006 0202 : sub.w $60202.l, D1
4D83C | 6402 : bcc $4d840
4D83E | 4441 : neg.w D1
4D840 | 0C41 0010 : cmpi.w #$10, D1
4D844 | 6404 : bcc $4d84a
4D846 | 3E3C FFFF : move.w #$ffff, D7
4D84A | 4A47 : tst.w D7
4D84C | 4E75 : rts
-->
<!-- mask -->
<action>maincpu.mw@3B38 = 4E71</action>
</script>
<script state="off">
<action>maincpu.mq@03AA8 = 610002AA4A476700</action>
<action>maincpu.mq@4D830 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D838 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D840 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D848 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mw@03B38 = 6718 </action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x0100">01 (slow)</item>
<item value="0x0080">02 </item>
<item value="0x0040">03 </item>
<item value="0x0020">04 </item>
<item value="0x0001">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mw@117D0 = 0C40</action>
</script>
<script state="change">
<action>maincpu.mw@117D2 = param</action>
</script>
<script state="off">
<action>maincpu.md@117D0 = B0701000</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.md@0060A = 0004D850 </action>
<action>maincpu.mq@4D850 = 4EB8098441F90006</action>
<action>maincpu.mq@4D858 = 100043F9000C0003</action>
<action>maincpu.mq@4D860 = 12001029FFFEB200</action>
<action>maincpu.mq@4D868 = 67F60C0000FB6602</action>
<action>maincpu.mq@4D870 = 53100C0000F76602</action>
<action>maincpu.mq@4D878 = 52100C0000FD6604</action>
<action>maincpu.mq@4D880 = 041000100C0000FE</action>
<action>maincpu.mq@4D888 = 6604061000100C00</action>
<action>maincpu.mq@4D890 = 00EF660212900C00</action>
<action>maincpu.mq@4D898 = 00DF660412BC001C</action>
<action>maincpu.mq@4D8A0 = 60BEFFFFFFFFFFFF</action>
<!--
4D850 | 4EB8 0984 : jsr $984.w // clear objects
4D854 | 41F9 0006 1000 : lea $61000.l, A0 // sound code address
4D85A | 43F9 000C 0003 : lea $c0003.l, A1 // sound latch address
4D860 | 1200 : move.b D0, D1
4D862 | 1029 FFFE : move.b (-$2,A1), D0 // read input ($c0001)
4D866 | B200 : cmp.b D0, D1
4D868 | 67F6 : beq $4d860
4D86A | 0C00 00FB : cmpi.b #-$5, D0
4D86E | 6602 : bne $4d872
4D870 | 5310 : subq.b #1, (A0) // decrease code -01
4D872 | 0C00 00F7 : cmpi.b #-$9, D0
4D876 | 6602 : bne $4d87a
4D878 | 5210 : addq.b #1, (A0) // increase code +01
4D87A | 0C00 00FD : cmpi.b #-$3, D0
4D87E | 6604 : bne $4d884
4D880 | 0410 0010 : subi.b #$10, (A0) // decrease code -10
4D884 | 0C00 00FE : cmpi.b #-$2, D0
4D888 | 6604 : bne $4d88e
4D88A | 0610 0010 : addi.b #$10, (A0) // increase code +10
4D88E | 0C00 00EF : cmpi.b #-$11, D0
4D892 | 6602 : bne $4d896
4D894 | 1290 : move.b (A0), (A1) // play sound
4D896 | 0C00 00DF : cmpi.b #-$21, D0
4D89A | 6604 : bne $4d8a0
4D89C | 12BC 001C : move.b #$1c, (A1) // stop sound
4D8A0 | 60BE : bra $4d860
-->
</script>
<script state="run">
<output format="----- karnov 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@61000</argument>
</output>
</script>
<script state="off">
<action>maincpu.md@0060A = 0001159E </action>
<action>maincpu.mq@4D850 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D858 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D860 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D868 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D870 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D878 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D880 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D888 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D890 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D898 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D8A0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
</mamecheat>
karnova.xml
Code: Select all
<!-- Karnov (US, rev 5) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@030EA = 60</action> <!-- bomb -->
<action>maincpu.mb@09260 = 60</action> <!-- enemy -->
<action>maincpu.mb@0EEE2 = 60</action> <!-- enemy -->
<action>maincpu.mb@11226 = 60</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.mb@030EA = 67</action>
<action>maincpu.mb@09260 = 64</action>
<action>maincpu.mb@0EEE2 = 64</action>
<action>maincpu.mb@11226 = 67</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@1E35 = 80</action>
</script>
<script state="off">
<action>maincpu.mb@1E35 = 82</action>
</script>
</cheat>
<cheat desc="bullet speed - main shot">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x03">02 </item>
<item value="0x06">03 </item>
<item value="0x09">04 </item>
<item value="0x0c">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@29CF = param</action> <!-- shot level 1 : right -->
<action>maincpu.mb@29D1 = -param</action> <!-- shot level 1 : left -->
<action>maincpu.mb@29D3 = param</action> <!-- shot level 2 : right -->
<action>maincpu.mb@29D5 = -param</action> <!-- shot level 2 : left -->
<action>maincpu.mb@29DB = param</action> <!-- shot level 3 : right -->
<action>maincpu.mb@29DD = -param</action> <!-- shot level 3 : left -->
</script>
<script state="off">
<action>maincpu.mb@29CF = 03</action>
<action>maincpu.mb@29D1 = FD</action>
<action>maincpu.mb@29D3 = 04</action>
<action>maincpu.mb@29D5 = FC</action>
<action>maincpu.mb@29DB = 04</action>
<action>maincpu.mb@29DD = FC</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.mq@012F4 = 4EB90004D8102070</action>
<action>maincpu.mq@4D810 = 024000030C000001</action>
<action>maincpu.mq@4D818 = 660C083900050006</action>
<action>maincpu.mq@4D820 = 0C8267024240E548</action>
<action>maincpu.mq@4D828 = 4E75FFFFFFFFFFFF</action>
<!--
4D810 | 0240 0003 : andi.w #$3, D0
4D814 | 0C00 0001 : cmpi.b #$1, D0
4D818 | 660C : bne $4d826
4D81A | 0839 0005 0006 0C82 : btst #$5, $60c82.l
4D822 | 6702 : beq $4d826
4D824 | 4240 : clr.w D0
4D826 | E548 : lsl.w #2, D0
4D828 | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.mq@012F4 = 02400003E5482070</action>
<action>maincpu.mq@4D810 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D818 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D820 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D828 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="hidden item finder">
<script state="on">
<!-- invisible point -->
<action>maincpu.mq@03AA8 = 4EB90004D8306700</action>
<action>maincpu.mq@4D830 = 4247322800029279</action>
<action>maincpu.mq@4D838 = 0006020264024441</action>
<action>maincpu.mq@4D840 = 0C41001064043E3C</action>
<action>maincpu.mq@4D848 = FFFF4A474E75FFFF</action>
<!--
4D830 | 4247 : clr.w D7
4D832 | 3228 0002 : move.w ($2,A0), D1
4D836 | 9279 0006 0202 : sub.w $60202.l, D1
4D83C | 6402 : bcc $4d840
4D83E | 4441 : neg.w D1
4D840 | 0C41 0010 : cmpi.w #$10, D1
4D844 | 6404 : bcc $4d84a
4D846 | 3E3C FFFF : move.w #$ffff, D7
4D84A | 4A47 : tst.w D7
4D84C | 4E75 : rts
-->
<!-- mask -->
<action>maincpu.mw@3B38 = 4E71</action>
</script>
<script state="off">
<action>maincpu.mq@03AA8 = 610002AA4A476700</action>
<action>maincpu.mq@4D830 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D838 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D840 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D848 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mw@03B38 = 6718 </action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x0100">01 (slow)</item>
<item value="0x0080">02 </item>
<item value="0x0040">03 </item>
<item value="0x0020">04 </item>
<item value="0x0001">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mw@117D0 = 0C40</action>
</script>
<script state="change">
<action>maincpu.mw@117D2 = param</action>
</script>
<script state="off">
<action>maincpu.md@117D0 = B0701000</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.md@0060A = 0004D850 </action>
<action>maincpu.mq@4D850 = 4EB8098441F90006</action>
<action>maincpu.mq@4D858 = 100043F9000C0003</action>
<action>maincpu.mq@4D860 = 12001029FFFEB200</action>
<action>maincpu.mq@4D868 = 67F60C0000FB6602</action>
<action>maincpu.mq@4D870 = 53100C0000F76602</action>
<action>maincpu.mq@4D878 = 52100C0000FD6604</action>
<action>maincpu.mq@4D880 = 041000100C0000FE</action>
<action>maincpu.mq@4D888 = 6604061000100C00</action>
<action>maincpu.mq@4D890 = 00EF660212900C00</action>
<action>maincpu.mq@4D898 = 00DF660412BC001C</action>
<action>maincpu.mq@4D8A0 = 60BEFFFFFFFFFFFF</action>
<!--
4D850 | 4EB8 0984 : jsr $984.w // clear objects
4D854 | 41F9 0006 1000 : lea $61000.l, A0 // sound code address
4D85A | 43F9 000C 0003 : lea $c0003.l, A1 // sound latch address
4D860 | 1200 : move.b D0, D1
4D862 | 1029 FFFE : move.b (-$2,A1), D0 // read input ($c0001)
4D866 | B200 : cmp.b D0, D1
4D868 | 67F6 : beq $4d860
4D86A | 0C00 00FB : cmpi.b #-$5, D0
4D86E | 6602 : bne $4d872
4D870 | 5310 : subq.b #1, (A0) // decrease code -01
4D872 | 0C00 00F7 : cmpi.b #-$9, D0
4D876 | 6602 : bne $4d87a
4D878 | 5210 : addq.b #1, (A0) // increase code +01
4D87A | 0C00 00FD : cmpi.b #-$3, D0
4D87E | 6604 : bne $4d884
4D880 | 0410 0010 : subi.b #$10, (A0) // decrease code -10
4D884 | 0C00 00FE : cmpi.b #-$2, D0
4D888 | 6604 : bne $4d88e
4D88A | 0610 0010 : addi.b #$10, (A0) // increase code +10
4D88E | 0C00 00EF : cmpi.b #-$11, D0
4D892 | 6602 : bne $4d896
4D894 | 1290 : move.b (A0), (A1) // play sound
4D896 | 0C00 00DF : cmpi.b #-$21, D0
4D89A | 6604 : bne $4d8a0
4D89C | 12BC 001C : move.b #$1c, (A1) // stop sound
4D8A0 | 60BE : bra $4d860
-->
</script>
<script state="run">
<output format="----- karnov 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@61000</argument>
</output>
</script>
<script state="off">
<action>maincpu.md@0060A = 0001159E </action>
<action>maincpu.mq@4D850 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D858 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D860 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D868 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D870 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D878 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D880 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D888 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D890 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D898 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D8A0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
</mamecheat>
karnovj.xml
Code: Select all
<!-- Karnov (Japan) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@030E0 = 60</action> <!-- bomb -->
<action>maincpu.mb@091F8 = 60</action> <!-- enemy -->
<action>maincpu.mb@0E890 = 60</action> <!-- enemy -->
<action>maincpu.mb@109BC = 60</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.mb@030E0 = 67</action>
<action>maincpu.mb@091F8 = 64</action>
<action>maincpu.mb@0E890 = 64</action>
<action>maincpu.mb@109BC = 67</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@1E1B = 80</action>
</script>
<script state="off">
<action>maincpu.mb@1E1B = 82</action>
</script>
</cheat>
<cheat desc="bullet speed - main shot">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x03">02 </item>
<item value="0x06">03 </item>
<item value="0x09">04 </item>
<item value="0x0c">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@29C5 = param</action> <!-- shot level 1 : right -->
<action>maincpu.mb@29C7 = -param</action> <!-- shot level 1 : left -->
<action>maincpu.mb@29C9 = param</action> <!-- shot level 2 : right -->
<action>maincpu.mb@29CB = -param</action> <!-- shot level 2 : left -->
<action>maincpu.mb@29D1 = param</action> <!-- shot level 3 : right -->
<action>maincpu.mb@29D3 = -param</action> <!-- shot level 3 : left -->
</script>
<script state="off">
<action>maincpu.mb@29C5 = 03</action>
<action>maincpu.mb@29C7 = FD</action>
<action>maincpu.mb@29C9 = 04</action>
<action>maincpu.mb@29CB = FC</action>
<action>maincpu.mb@29D1 = 04</action>
<action>maincpu.mb@29D3 = FC</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.mq@012DA = 4EB90004D5F02070</action>
<action>maincpu.mq@4D5F0 = 024000030C000001</action>
<action>maincpu.mq@4D5F8 = 660C083900050006</action>
<action>maincpu.mq@4D600 = 0C8267024240E548</action>
<action>maincpu.mq@4D608 = 4E75FFFFFFFFFFFF</action>
<!--
4D5F0 | 0240 0003 : andi.w #$3, D0
4D5F4 | 0C00 0001 : cmpi.b #$1, D0
4D5F8 | 660C : bne $4d606
4D5FA | 0839 0005 0006 0C82 : btst #$5, $60c82.l
4D602 | 6702 : beq $4d606
4D604 | 4240 : clr.w D0
4D606 | E548 : lsl.w #2, D0
4D608 | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.mq@012DA = 02400003E5482070</action>
<action>maincpu.mq@4D5F0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D5F8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D600 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D608 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="hidden item finder">
<script state="on">
<!-- invisible point -->
<action>maincpu.mq@03A9E = 4EB90004D6106700</action>
<action>maincpu.mq@4D610 = 4247322800029279</action>
<action>maincpu.mq@4D618 = 0006020264024441</action>
<action>maincpu.mq@4D620 = 0C41001064043E3C</action>
<action>maincpu.mq@4D628 = FFFF4A474E75FFFF</action>
<!--
4D610 | 4247 : clr.w D7
4D612 | 3228 0002 : move.w ($2,A0), D1
4D616 | 9279 0006 0202 : sub.w $60202.l, D1
4D61C | 6402 : bcc $4d620
4D61E | 4441 : neg.w D1
4D620 | 0C41 0010 : cmpi.w #$10, D1
4D624 | 6404 : bcc $4d62a
4D626 | 3E3C FFFF : move.w #$ffff, D7
4D62A | 4A47 : tst.w D7
4D62C | 4E75 : rts
-->
<!-- mask -->
<action>maincpu.mw@3B2E = 4E71</action>
</script>
<script state="off">
<action>maincpu.mq@03A9E = 610002AA4A476700</action>
<action>maincpu.mq@4D610 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D618 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D620 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D628 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mw@03B2E = 6718 </action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x0100">01 (slow)</item>
<item value="0x0080">02 </item>
<item value="0x0040">03 </item>
<item value="0x0020">04 </item>
<item value="0x0001">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mw@10F32 = 0C40</action>
</script>
<script state="change">
<action>maincpu.mw@10F34 = param</action>
</script>
<script state="off">
<action>maincpu.md@10F32 = B0701000</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.md@0060A = 0004D630 </action>
<action>maincpu.mq@4D630 = 4EB8097E41F90006</action>
<action>maincpu.mq@4D638 = 100043F9000C0003</action>
<action>maincpu.mq@4D640 = 12001029FFFEB200</action>
<action>maincpu.mq@4D648 = 67F60C0000FB6602</action>
<action>maincpu.mq@4D650 = 53100C0000F76602</action>
<action>maincpu.mq@4D658 = 52100C0000FD6604</action>
<action>maincpu.mq@4D660 = 041000100C0000FE</action>
<action>maincpu.mq@4D668 = 6604061000100C00</action>
<action>maincpu.mq@4D670 = 00EF660212900C00</action>
<action>maincpu.mq@4D678 = 00DF660412BC001C</action>
<action>maincpu.mq@4D680 = 60BEFFFFFFFFFFFF</action>
<!--
4D630 | 4EB8 097E : jsr $97e.w // clear objects
4D634 | 41F9 0006 1000 : lea $61000.l, A0 // sound code address
4D63A | 43F9 000C 0003 : lea $c0003.l, A1 // sound latch address
4D640 | 1200 : move.b D0, D1
4D642 | 1029 FFFE : move.b (-$2,A1), D0 // read input ($c0001)
4D646 | B200 : cmp.b D0, D1
4D648 | 67F6 : beq $4d640
4D64A | 0C00 00FB : cmpi.b #-$5, D0
4D64E | 6602 : bne $4d652
4D650 | 5310 : subq.b #1, (A0) // decrease code -01
4D652 | 0C00 00F7 : cmpi.b #-$9, D0
4D656 | 6602 : bne $4d65a
4D658 | 5210 : addq.b #1, (A0) // increase code +01
4D65A | 0C00 00FD : cmpi.b #-$3, D0
4D65E | 6604 : bne $4d664
4D660 | 0410 0010 : subi.b #$10, (A0) // decrease code -10
4D664 | 0C00 00FE : cmpi.b #-$2, D0
4D668 | 6604 : bne $4d66e
4D66A | 0610 0010 : addi.b #$10, (A0) // increase code +10
4D66E | 0C00 00EF : cmpi.b #-$11, D0
4D672 | 6602 : bne $4d676
4D674 | 1290 : move.b (A0), (A1) // play sound
4D676 | 0C00 00DF : cmpi.b #-$21, D0
4D67A | 6604 : bne $4d680
4D67C | 12BC 001C : move.b #$1c, (A1) // stop sound
4D680 | 60BE : bra $4d640
-->
</script>
<script state="run">
<output format="----- karnov 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@61000</argument>
</output>
</script>
<script state="off">
<action>maincpu.md@0060A = 00010D22 </action>
<action>maincpu.mq@4D630 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D638 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D640 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D648 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D650 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D658 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D660 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D668 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D670 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D678 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@4D680 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
</mamecheat>
karnovjbl.xml
Code: Select all
<!-- Karnov (Japan, bootleg with NEC D8748HD) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@030E0 = 60</action> <!-- bomb -->
<action>maincpu.mb@091F8 = 60</action> <!-- enemy -->
<action>maincpu.mb@0E890 = 60</action> <!-- enemy -->
<action>maincpu.mb@109BC = 60</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.mb@030E0 = 67</action>
<action>maincpu.mb@091F8 = 64</action>
<action>maincpu.mb@0E890 = 64</action>
<action>maincpu.mb@109BC = 67</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@1E1B = 80</action>
</script>
<script state="off">
<action>maincpu.mb@1E1B = 82</action>
</script>
</cheat>
<cheat desc="bullet speed - main shot">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x03">02 </item>
<item value="0x06">03 </item>
<item value="0x09">04 </item>
<item value="0x0c">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@29C5 = param</action> <!-- shot level 1 : right -->
<action>maincpu.mb@29C7 = -param</action> <!-- shot level 1 : left -->
<action>maincpu.mb@29C9 = param</action> <!-- shot level 2 : right -->
<action>maincpu.mb@29CB = -param</action> <!-- shot level 2 : left -->
<action>maincpu.mb@29D1 = param</action> <!-- shot level 3 : right -->
<action>maincpu.mb@29D3 = -param</action> <!-- shot level 3 : left -->
</script>
<script state="off">
<action>maincpu.mb@29C5 = 03</action>
<action>maincpu.mb@29C7 = FD</action>
<action>maincpu.mb@29C9 = 04</action>
<action>maincpu.mb@29CB = FC</action>
<action>maincpu.mb@29D1 = 04</action>
<action>maincpu.mb@29D3 = FC</action>
</script>
</cheat>
<cheat desc="multiple jump">
<script state="on">
<action>maincpu.mq@012DA = 4EB900047B302070</action>
<action>maincpu.mq@47B30 = 024000030C000001</action>
<action>maincpu.mq@47B38 = 660C083900050006</action>
<action>maincpu.mq@47B40 = 0C8267024240E548</action>
<action>maincpu.mq@47B48 = 4E75FFFFFFFFFFFF</action>
<!--
47B30 | 0240 0003 : andi.w #$3, D0
47B34 | 0C00 0001 : cmpi.b #$1, D0
47B38 | 660C : bne $47b46
47B3A | 0839 0005 0006 0C82 : btst #$5, $60c82.l
47B42 | 6702 : beq $47b46
47B44 | 4240 : clr.w D0
47B46 | E548 : lsl.w #2, D0
47B48 | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.mq@012DA = 02400003E5482070</action>
<action>maincpu.mq@47B30 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@47B38 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@47B40 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@47B48 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="hidden item finder">
<script state="on">
<!-- invisible point -->
<action>maincpu.mq@03A9E = 4EB900047B506700</action>
<action>maincpu.mq@47B50 = 4247322800029279</action>
<action>maincpu.mq@47B58 = 0006020264024441</action>
<action>maincpu.mq@47B60 = 0C41001064043E3C</action>
<action>maincpu.mq@47B68 = FFFF4A474E75FFFF</action>
<!--
47B50 | 4247 : clr.w D7
47B52 | 3228 0002 : move.w ($2,A0), D1
47B56 | 9279 0006 0202 : sub.w $60202.l, D1
47B5C | 6402 : bcc $47b60
47B5E | 4441 : neg.w D1
47B60 | 0C41 0010 : cmpi.w #$10, D1
47B64 | 6404 : bcc $47b6a
47B66 | 3E3C FFFF : move.w #$ffff, D7
47B6A | 4A47 : tst.w D7
47B6C | 4E75 : rts
-->
<!-- mask -->
<action>maincpu.mw@3B2E = 4E71</action>
</script>
<script state="off">
<action>maincpu.mq@03A9E = 610002AA4A476700</action>
<action>maincpu.mq@47B50 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@47B58 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@47B60 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@47B68 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mw@03B2E = 6718 </action>
</script>
</cheat>
<cheat desc="timer speed">
<parameter>
<item value="0x0100">01 (slow)</item>
<item value="0x0080">02 </item>
<item value="0x0040">03 </item>
<item value="0x0020">04 </item>
<item value="0x0001">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.mw@10F32 = 0C40</action>
</script>
<script state="change">
<action>maincpu.mw@10F34 = param</action>
</script>
<script state="off">
<action>maincpu.md@10F32 = B0701000</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.md@0060A = 00047B70 </action>
<action>maincpu.mq@47B70 = 4EB8097E41F90006</action>
<action>maincpu.mq@47B78 = 100043F9000C0003</action>
<action>maincpu.mq@47B80 = 12001029FFFEB200</action>
<action>maincpu.mq@47B88 = 67F60C0000FB6602</action>
<action>maincpu.mq@47B90 = 53100C0000F76602</action>
<action>maincpu.mq@47B98 = 52100C0000FD6604</action>
<action>maincpu.mq@47BA0 = 041000100C0000FE</action>
<action>maincpu.mq@47BA8 = 6604061000100C00</action>
<action>maincpu.mq@47BB0 = 00EF660212900C00</action>
<action>maincpu.mq@47BB8 = 00DF660412BC001C</action>
<action>maincpu.mq@47BC0 = 60BEFFFFFFFFFFFF</action>
<!--
47B70 | 4EB8 097E : jsr $97e.w // clear objects
47B74 | 41F9 0006 1000 : lea $61000.l, A0 // sound code address
47B7A | 43F9 000C 0003 : lea $c0003.l, A1 // sound latch address
47B80 | 1200 : move.b D0, D1
47B82 | 1029 FFFE : move.b (-$2,A1), D0 // read input ($c0001)
47B86 | B200 : cmp.b D0, D1
47B88 | 67F6 : beq $47b80
47B8A | 0C00 00FB : cmpi.b #-$5, D0
47B8E | 6602 : bne $47b92
47B90 | 5310 : subq.b #1, (A0) // decrease code -01
47B92 | 0C00 00F7 : cmpi.b #-$9, D0
47B96 | 6602 : bne $47b9a
47B98 | 5210 : addq.b #1, (A0) // increase code +01
47B9A | 0C00 00FD : cmpi.b #-$3, D0
47B9E | 6604 : bne $47ba4
47BA0 | 0410 0010 : subi.b #$10, (A0) // decrease code -10
47BA4 | 0C00 00FE : cmpi.b #-$2, D0
47BA8 | 6604 : bne $47bae
47BAA | 0610 0010 : addi.b #$10, (A0) // increase code +10
47BAE | 0C00 00EF : cmpi.b #-$11, D0
47BB2 | 6602 : bne $47bb6
47BB4 | 1290 : move.b (A0), (A1) // play sound
47BB6 | 0C00 00DF : cmpi.b #-$21, D0
47BBA | 6604 : bne $47bc0
47BBC | 12BC 001C : move.b #$1c, (A1) // stop sound
47BC0 | 60BE : bra $47b80
-->
</script>
<script state="run">
<output format="----- karnov 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@61000</argument>
</output>
</script>
<script state="off">
<action>maincpu.md@0060A = 00010D22 </action>
<action>maincpu.mq@47B70 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@47B78 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@47B80 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@47B88 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@47B90 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@47B98 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@47BA0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@47BA8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@47BB0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@47BB8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@47BC0 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
</mamecheat>
karnovjbl freezes after the game starts. So I can't verify the cheat codes except "sound test mode".