This forum is for posting M.A.M.E. Work In Progress "Arcade"cheats that are not quite ready for the prime time. If the cheats are buggy or the cheat descriptions are non-standard then please post them here. Help maybe given but there are no guarantees and they will only be added to the cheat file when the cheat file maintainer is happy with them.
jman
Posts: 1316 Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times
Post
by jman » Thu Jun 02, 2022 10:49 am
Code: Select all
<cheat desc="no hit">
<script state="on">
<action>maincpu.mb@b1b9 = c3</action> <!-- enemy -->
<action>maincpu.mb@b1c0 = 9a</action> <!-- enemy -->
<action>maincpu.mb@b1dd = e0</action> <!-- enemy -->
<action>maincpu.mb@b44e = 6e</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.mb@b1b9 = c4</action>
<action>maincpu.mb@b1c0 = 9b</action>
<action>maincpu.mb@b1dd = e1</action>
<action>maincpu.mb@b44e = 6f</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@cbfc = 01</action>
</script>
<script state="off">
<action>maincpu.mb@cbfc = 18</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<action>maincpu.mb@8d71 = c0</action> <!-- up -->
<action>maincpu.mb@8d7e = 80</action> <!-- upper-right : right -->
<action>maincpu.mb@8d80 = c0</action> <!-- upper-right : up -->
<action>maincpu.mb@8d93 = 80</action> <!-- right -->
<action>maincpu.mb@8da1 = 80</action> <!-- lower-right : right -->
<action>maincpu.mb@8da3 = cb</action> <!-- lower-right : down -->
<action>maincpu.mb@8db6 = cb</action> <!-- down -->
<action>maincpu.mb@8dc3 = 8b</action> <!-- lower-left : left -->
<action>maincpu.mb@8dc5 = cb</action> <!-- lower-left : down -->
<action>maincpu.mb@8dd8 = 8b</action> <!-- left -->
<action>maincpu.mb@8de6 = 8b</action> <!-- upper-left : left -->
<action>maincpu.mb@8de8 = c0</action> <!-- upper-left : up -->
</script>
<script state="change">
<action>maincpu.mb@8d72 = param</action>
<action>maincpu.mb@8d7f = param</action>
<action>maincpu.mb@8d81 = param</action>
<action>maincpu.mb@8d94 = param</action>
<action>maincpu.mb@8da2 = param</action>
<action>maincpu.mb@8da4 = param</action>
<action>maincpu.mb@8db7 = param</action>
<action>maincpu.mb@8dc4 = param</action>
<action>maincpu.mb@8dc6 = param</action>
<action>maincpu.mb@8dd9 = param</action>
<action>maincpu.mb@8de7 = param</action>
<action>maincpu.mb@8de9 = param</action>
</script>
<script state="off">
<action>maincpu.mw@8d71 = d040</action>
<action>maincpu.mw@8d7e = 9040</action>
<action>maincpu.mw@8d80 = d040</action>
<action>maincpu.mw@8d93 = 9040</action>
<action>maincpu.mw@8da1 = 9040</action>
<action>maincpu.mw@8da3 = db40</action>
<action>maincpu.mw@8db6 = db40</action>
<action>maincpu.mw@8dc3 = 9b40</action>
<action>maincpu.mw@8dc5 = db40</action>
<action>maincpu.mw@8dd8 = 9b40</action>
<action>maincpu.mw@8de6 = 9b40</action>
<action>maincpu.mw@8de8 = d040</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x08">02 </item>
<item value="0x10">03 </item>
<item value="0x14">04 </item>
<item value="0x18">05 (fast)</item>
</parameter>
<script state="change">
<!-- player -->
<action>maincpu.mb@2ff4 = -param</action>
<action>maincpu.mb@2ffe = -param</action>
<action>maincpu.mb@3008 = -param</action>
<action>maincpu.mb@3012 = -param</action>
<action>maincpu.mb@301c = -param</action>
<action>maincpu.mb@3032 = -param</action>
<action>maincpu.mb@303c = -param</action>
<action>maincpu.mb@3046 = -param</action>
<action>maincpu.mb@3050 = -param</action>
<action>maincpu.mb@305a = -param</action>
<action>maincpu.mb@3070 = -param</action>
<action>maincpu.mb@307a = -param</action>
<action>maincpu.mb@3084 = -param</action>
<action>maincpu.mb@308e = -param</action>
<action>maincpu.mb@3098 = -param</action>
<action>maincpu.mb@30ae = -param</action>
<action>maincpu.mb@30b8 = -param</action>
<action>maincpu.mb@30c2 = -param</action>
<action>maincpu.mb@30cc = -param</action>
<action>maincpu.mb@30d6 = -param</action>
<!-- range -->
<action>maincpu.mb@cd74 = f4 - param</action>
<!-- sub unit -->
<action>maincpu.mb@cde8 = -param</action>
</script>
<script state="off">
<action>maincpu.mb@2ff4 = f8</action>
<action>maincpu.mb@2ffe = f6</action>
<action>maincpu.mb@3008 = f6</action>
<action>maincpu.mb@3012 = f6</action>
<action>maincpu.mb@301c = f6</action>
<action>maincpu.mb@3032 = f8</action>
<action>maincpu.mb@303c = f6</action>
<action>maincpu.mb@3046 = f4</action>
<action>maincpu.mb@3050 = f4</action>
<action>maincpu.mb@305a = f4</action>
<action>maincpu.mb@3070 = f8</action>
<action>maincpu.mb@307a = f6</action>
<action>maincpu.mb@3084 = f4</action>
<action>maincpu.mb@308e = f4</action>
<action>maincpu.mb@3098 = f4</action>
<action>maincpu.mb@30ae = f8</action>
<action>maincpu.mb@30b8 = f6</action>
<action>maincpu.mb@30c2 = f6</action>
<action>maincpu.mb@30cc = f6</action>
<action>maincpu.mb@30d6 = f6</action>
<action>maincpu.mb@cd74 = f4</action>
<action>maincpu.mb@cde8 = f8</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mq@805f = 97519691915127f8</action>
<action>maincpu.mq@8067 = d65081fe26015a81</action>
<action>maincpu.mq@806f = fd26015c81fb2602</action>
<action>maincpu.mq@8077 = c01081f72602cb10</action>
<action>maincpu.mq@807f = d750817f2602d78a</action>
<action>maincpu.mq@8087 = 81bf26020f8a20d0</action>
<!--
805f | 97 51 : STA $51
8061 | 96 91 : LDA $91 // read input
8063 | 91 51 : CMPA $51
8065 | 27 f8 : BEQ $805F
8067 | d6 50 : LDB $50
8069 | 81 fe : CMPA #$FE
806b | 26 01 : BNE $806E
806d | 5a : DECB // decrease code -01
806e | 81 fd : CMPA #$FD
8070 | 26 01 : BNE $8073
8072 | 5c : INCB // increase code +01
8073 | 81 fb : CMPA #$FB
8075 | 26 02 : BNE $8079
8077 | c0 10 : SUBB #$10 // decrease code -10
8079 | 81 f7 : CMPA #$F7
807b | 26 02 : BNE $807F
807d | cb 10 : ADDB #$10 // increase code +10
807f | d7 50 : STB $50
8081 | 81 7f : CMPA #$7F
8083 | 26 02 : BNE $8087
8085 | d7 8a : STB $8A // play sound
8087 | 81 bf : CMPA #$BF
8089 | 26 02 : BNE $808D
808b | 0f 8a : CLR $8A // stop sound
808d | 20 d0 : BRA $805F
-->
</script>
<script state="run">
<output format="----- halley's comet 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="up : increase code +10" line="13" align="center" />
<output format="down : decrease 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@ff50</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@805f = 9695c68085022701</action>
<action>maincpu.mq@8067 = 5fd79ebd874c8611</action>
<action>maincpu.mq@806f = bd982f10ceff0096</action>
<action>maincpu.mq@8077 = 908510102703f385</action>
<action>maincpu.mq@807f = 201027014d854010</action>
<action>maincpu.mq@8087 = 2601478580102601</action>
</script>
</cheat>
For some reason, "no hit" affects player and sub-units at the same time.
jman
Posts: 1316 Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times
Post
by jman » Sun Jun 23, 2024 12:27 am
halleysc.xml
Code: Select all
<!-- Halley's Comet (US) -->
<mamecheat version="1">
<cheat desc="no hit - player">
<script state="on">
<action>maincpu.mb@B1AB = 00</action>
</script>
<script state="off">
<action>maincpu.mb@B1AB = 04</action>
</script>
</cheat>
<cheat desc="no hit - sub unit">
<script state="on">
<action>maincpu.mb@B2EB = C0</action>
</script>
<script state="off">
<action>maincpu.mb@B2EB = C4</action>
</script>
</cheat>
<cheat desc="no hit - planet">
<script state="on">
<action>maincpu.mb@D4C1 = 20 </action>
<action>maincpu.mq@D4E1 = 81FC25084FA714A7</action>
<action>maincpu.mq@D4E9 = 101220294C4CA722</action>
<!--
D4E1 | 81 FC : CMPA #$FC
D4E3 | 25 08 : BCS $D4ED
D4E5 | 4F : CLRA
D4E6 | A7 14 : STA -$C,X
D4E8 | A7 10 : STA -$10,X
D4EA | 12 : NOP
D4EB | 20 29 : BRA $D516
-->
</script>
<script state="off">
<action>maincpu.mb@D4C1 = 26 </action>
<action>maincpu.mq@D4E1 = 81BC25088610A7A4</action>
<action>maincpu.mq@D4E9 = 6F2320314C4CA722</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@CBFC = 01</action>
</script>
<script state="off">
<action>maincpu.mb@CBFC = 18</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<action>maincpu.mb@8D71 = C0</action> <!-- up -->
<action>maincpu.mb@8D7E = 80</action> <!-- upper-right : right -->
<action>maincpu.mb@8D80 = C0</action> <!-- upper-right : up -->
<action>maincpu.mb@8D93 = 80</action> <!-- right -->
<action>maincpu.mb@8DA1 = 80</action> <!-- lower-right : right -->
<action>maincpu.mb@8DA3 = CB</action> <!-- lower-right : down -->
<action>maincpu.mb@8DB6 = CB</action> <!-- down -->
<action>maincpu.mb@8DC3 = 8B</action> <!-- lower-left : left -->
<action>maincpu.mb@8DC5 = CB</action> <!-- lower-left : down -->
<action>maincpu.mb@8DD8 = 8B</action> <!-- left -->
<action>maincpu.mb@8DE6 = 8B</action> <!-- upper-left : left -->
<action>maincpu.mb@8DE8 = C0</action> <!-- upper-left : up -->
</script>
<script state="change">
<action>maincpu.mb@8D72 = param</action>
<action>maincpu.mb@8D7F = param</action>
<action>maincpu.mb@8D81 = param</action>
<action>maincpu.mb@8D94 = param</action>
<action>maincpu.mb@8DA2 = param</action>
<action>maincpu.mb@8DA4 = param</action>
<action>maincpu.mb@8DB7 = param</action>
<action>maincpu.mb@8DC4 = param</action>
<action>maincpu.mb@8DC6 = param</action>
<action>maincpu.mb@8DD9 = param</action>
<action>maincpu.mb@8DE7 = param</action>
<action>maincpu.mb@8DE9 = param</action>
</script>
<script state="off">
<action>maincpu.mw@8D71 = D040</action>
<action>maincpu.mw@8D7E = 9040</action>
<action>maincpu.mw@8D80 = D040</action>
<action>maincpu.mw@8D93 = 9040</action>
<action>maincpu.mw@8DA1 = 9040</action>
<action>maincpu.mw@8DA3 = DB40</action>
<action>maincpu.mw@8DB6 = DB40</action>
<action>maincpu.mw@8DC3 = 9B40</action>
<action>maincpu.mw@8DC5 = DB40</action>
<action>maincpu.mw@8DD8 = 9B40</action>
<action>maincpu.mw@8DE6 = 9B40</action>
<action>maincpu.mw@8DE8 = D040</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x08">02 </item>
<item value="0x10">03 </item>
<item value="0x14">04 </item>
<item value="0x18">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@CD63 = BD81BF12 </action>
<action>maincpu.mq@81BF = AB41C600EB423912</action>
<!--
81BF | AB 41 : ADDA $1,U
81C1 | C6 xx : LDB #$xx
81C3 | EB 42 : ADDB $2,U
81C5 | 39 : RTS
-->
</script>
<script state="change">
<action>maincpu.mb@81C2 = -param </action> <!-- player -->
<action>maincpu.mb@CD74 = F4 - (param / 2)</action> <!-- range -->
<action>maincpu.mb@CDE8 = -param </action> <!-- sub unit -->
</script>
<script state="off">
<action>maincpu.md@CD63 = AB41EB42 </action>
<action>maincpu.mq@81BF = 5352414D20455252</action>
<action>maincpu.mb@CD74 = F4 </action>
<action>maincpu.mb@CDE8 = F8 </action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mq@805F = 969191412725D640</action>
<action>maincpu.mq@8067 = 81FE26015A81FD26</action>
<action>maincpu.mq@806F = 015C81FB2602C010</action>
<action>maincpu.mq@8077 = 81F72602CB10D740</action>
<action>maincpu.mq@807F = 817F270581BF2603</action>
<action>maincpu.mq@8087 = 5FD78A974120D112</action>
<!--
805F | 96 91 : LDA $91 // read input
8061 | 91 41 : CMPA $41
8063 | 27 25 : BEQ $808A
8065 | D6 40 : LDB $40
8067 | 81 FE : CMPA #$FE
8069 | 26 01 : BNE $806C
806B | 5A : DECB // decrease code -01
806C | 81 FD : CMPA #$FD
806E | 26 01 : BNE $8071
8070 | 5C : INCB // increase code +01
8071 | 81 FB : CMPA #$FB
8073 | 26 02 : BNE $8077
8075 | C0 10 : SUBB #$10 // decrease code -10
8077 | 81 F7 : CMPA #$F7
8079 | 26 02 : BNE $807D
807B | CB 10 : ADDB #$10 // increase code +10
807D | D7 40 : STB $40
807F | 81 7F : CMPA #$7F
8081 | 27 05 : BEQ $8088 // play sound
8083 | 81 BF : CMPA #$BF
8085 | 26 03 : BNE $808A
8087 | 5F : CLRB // stop sound
8088 | D7 8A : STB $8A // send sound code
808A | 97 41 : STA $41
808C | 20 D1 : BRA $805F
-->
</script>
<script state="run">
<output format="----- halley's comet 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@FF40</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@805F = 9695C68085022701</action>
<action>maincpu.mq@8067 = 5FD79EBD874C8611</action>
<action>maincpu.mq@806F = BD982F10CEFF0096</action>
<action>maincpu.mq@8077 = 908510102703F385</action>
<action>maincpu.mq@807F = 201027014D854010</action>
<action>maincpu.mq@8087 = 2601478580102601</action>
</script>
</cheat>
</mamecheat>
halleyscj.xml
Code: Select all
<!-- Halley's Comet (Japan, rev 1) -->
<mamecheat version="1">
<cheat desc="no hit - player">
<script state="on">
<action>maincpu.mb@B1AB = 00</action>
</script>
<script state="off">
<action>maincpu.mb@B1AB = 04</action>
</script>
</cheat>
<cheat desc="no hit - sub unit">
<script state="on">
<action>maincpu.mb@B2EB = C0</action>
</script>
<script state="off">
<action>maincpu.mb@B2EB = C4</action>
</script>
</cheat>
<cheat desc="no hit - planet">
<script state="on">
<action>maincpu.mb@D4C1 = 20 </action>
<action>maincpu.mq@D4E1 = 81FC25084FA714A7</action>
<action>maincpu.mq@D4E9 = 101220294C4CA722</action>
<!--
D4E1 | 81 FC : CMPA #$FC
D4E3 | 25 08 : BCS $D4ED
D4E5 | 4F : CLRA
D4E6 | A7 14 : STA -$C,X
D4E8 | A7 10 : STA -$10,X
D4EA | 12 : NOP
D4EB | 20 29 : BRA $D516
-->
</script>
<script state="off">
<action>maincpu.mb@D4C1 = 26 </action>
<action>maincpu.mq@D4E1 = 81BC25088610A7A4</action>
<action>maincpu.mq@D4E9 = 6F2320314C4CA722</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@CBFC = 01</action>
</script>
<script state="off">
<action>maincpu.mb@CBFC = 18</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<action>maincpu.mb@8D71 = C0</action> <!-- up -->
<action>maincpu.mb@8D7E = 80</action> <!-- upper-right : right -->
<action>maincpu.mb@8D80 = C0</action> <!-- upper-right : up -->
<action>maincpu.mb@8D93 = 80</action> <!-- right -->
<action>maincpu.mb@8DA1 = 80</action> <!-- lower-right : right -->
<action>maincpu.mb@8DA3 = CB</action> <!-- lower-right : down -->
<action>maincpu.mb@8DB6 = CB</action> <!-- down -->
<action>maincpu.mb@8DC3 = 8B</action> <!-- lower-left : left -->
<action>maincpu.mb@8DC5 = CB</action> <!-- lower-left : down -->
<action>maincpu.mb@8DD8 = 8B</action> <!-- left -->
<action>maincpu.mb@8DE6 = 8B</action> <!-- upper-left : left -->
<action>maincpu.mb@8DE8 = C0</action> <!-- upper-left : up -->
</script>
<script state="change">
<action>maincpu.mb@8D72 = param</action>
<action>maincpu.mb@8D7F = param</action>
<action>maincpu.mb@8D81 = param</action>
<action>maincpu.mb@8D94 = param</action>
<action>maincpu.mb@8DA2 = param</action>
<action>maincpu.mb@8DA4 = param</action>
<action>maincpu.mb@8DB7 = param</action>
<action>maincpu.mb@8DC4 = param</action>
<action>maincpu.mb@8DC6 = param</action>
<action>maincpu.mb@8DD9 = param</action>
<action>maincpu.mb@8DE7 = param</action>
<action>maincpu.mb@8DE9 = param</action>
</script>
<script state="off">
<action>maincpu.mw@8D71 = D040</action>
<action>maincpu.mw@8D7E = 9040</action>
<action>maincpu.mw@8D80 = D040</action>
<action>maincpu.mw@8D93 = 9040</action>
<action>maincpu.mw@8DA1 = 9040</action>
<action>maincpu.mw@8DA3 = DB40</action>
<action>maincpu.mw@8DB6 = DB40</action>
<action>maincpu.mw@8DC3 = 9B40</action>
<action>maincpu.mw@8DC5 = DB40</action>
<action>maincpu.mw@8DD8 = 9B40</action>
<action>maincpu.mw@8DE6 = 9B40</action>
<action>maincpu.mw@8DE8 = D040</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x08">02 </item>
<item value="0x10">03 </item>
<item value="0x14">04 </item>
<item value="0x18">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@CD63 = BD81BF12 </action>
<action>maincpu.mq@81BF = AB41C600EB423912</action>
<!--
81BF | AB 41 : ADDA $1,U
81C1 | C6 xx : LDB #$xx
81C3 | EB 42 : ADDB $2,U
81C5 | 39 : RTS
-->
</script>
<script state="change">
<action>maincpu.mb@81C2 = -param </action> <!-- player -->
<action>maincpu.mb@CD74 = F4 - (param / 2)</action> <!-- range -->
<action>maincpu.mb@CDE8 = -param </action> <!-- sub unit -->
</script>
<script state="off">
<action>maincpu.md@CD63 = AB41EB42 </action>
<action>maincpu.mq@81BF = 5352414D20455252</action>
<action>maincpu.mb@CD74 = F4 </action>
<action>maincpu.mb@CDE8 = F8 </action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mq@805F = 969191412725D640</action>
<action>maincpu.mq@8067 = 81FE26015A81FD26</action>
<action>maincpu.mq@806F = 015C81FB2602C010</action>
<action>maincpu.mq@8077 = 81F72602CB10D740</action>
<action>maincpu.mq@807F = 817F270581BF2603</action>
<action>maincpu.mq@8087 = 5FD78A974120D112</action>
<!--
805F | 96 91 : LDA $91 // read input
8061 | 91 41 : CMPA $41
8063 | 27 25 : BEQ $808A
8065 | D6 40 : LDB $40
8067 | 81 FE : CMPA #$FE
8069 | 26 01 : BNE $806C
806B | 5A : DECB // decrease code -01
806C | 81 FD : CMPA #$FD
806E | 26 01 : BNE $8071
8070 | 5C : INCB // increase code +01
8071 | 81 FB : CMPA #$FB
8073 | 26 02 : BNE $8077
8075 | C0 10 : SUBB #$10 // decrease code -10
8077 | 81 F7 : CMPA #$F7
8079 | 26 02 : BNE $807D
807B | CB 10 : ADDB #$10 // increase code +10
807D | D7 40 : STB $40
807F | 81 7F : CMPA #$7F
8081 | 27 05 : BEQ $8088 // play sound
8083 | 81 BF : CMPA #$BF
8085 | 26 03 : BNE $808A
8087 | 5F : CLRB // stop sound
8088 | D7 8A : STB $8A // send sound code
808A | 97 41 : STA $41
808C | 20 D1 : BRA $805F
-->
</script>
<script state="run">
<output format="----- halley's comet 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@FF40</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@805F = 9695C68085022701</action>
<action>maincpu.mq@8067 = 5FD79EBD874C8611</action>
<action>maincpu.mq@806F = BD982F10CEFF0096</action>
<action>maincpu.mq@8077 = 908510102703F385</action>
<action>maincpu.mq@807F = 201027014D854010</action>
<action>maincpu.mq@8087 = 2601478580102601</action>
</script>
</cheat>
</mamecheat>
hallyescja.xml
Code: Select all
<!-- Halley's Comet (Japan) -->
<mamecheat version="1">
<cheat desc="no hit - player">
<script state="on">
<action>maincpu.mb@B1AB = 00</action>
</script>
<script state="off">
<action>maincpu.mb@B1AB = 04</action>
</script>
</cheat>
<cheat desc="no hit - sub unit">
<script state="on">
<action>maincpu.mb@B2EB = C0</action>
</script>
<script state="off">
<action>maincpu.mb@B2EB = C4</action>
</script>
</cheat>
<cheat desc="no hit - planet">
<script state="on">
<action>maincpu.mb@D4C1 = 20 </action>
<action>maincpu.mq@D4E1 = 81FC25084FA714A7</action>
<action>maincpu.mq@D4E9 = 101220294C4CA722</action>
<!--
D4E1 | 81 FC : CMPA #$FC
D4E3 | 25 08 : BCS $D4ED
D4E5 | 4F : CLRA
D4E6 | A7 14 : STA -$C,X
D4E8 | A7 10 : STA -$10,X
D4EA | 12 : NOP
D4EB | 20 29 : BRA $D516
-->
</script>
<script state="off">
<action>maincpu.mb@D4C1 = 26 </action>
<action>maincpu.mq@D4E1 = 81BC25088610A7A4</action>
<action>maincpu.mq@D4E9 = 6F2320314C4CA722</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@CBFC = 01</action>
</script>
<script state="off">
<action>maincpu.mb@CBFC = 18</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<action>maincpu.mb@8D71 = C0</action> <!-- up -->
<action>maincpu.mb@8D7E = 80</action> <!-- upper-right : right -->
<action>maincpu.mb@8D80 = C0</action> <!-- upper-right : up -->
<action>maincpu.mb@8D93 = 80</action> <!-- right -->
<action>maincpu.mb@8DA1 = 80</action> <!-- lower-right : right -->
<action>maincpu.mb@8DA3 = CB</action> <!-- lower-right : down -->
<action>maincpu.mb@8DB6 = CB</action> <!-- down -->
<action>maincpu.mb@8DC3 = 8B</action> <!-- lower-left : left -->
<action>maincpu.mb@8DC5 = CB</action> <!-- lower-left : down -->
<action>maincpu.mb@8DD8 = 8B</action> <!-- left -->
<action>maincpu.mb@8DE6 = 8B</action> <!-- upper-left : left -->
<action>maincpu.mb@8DE8 = C0</action> <!-- upper-left : up -->
</script>
<script state="change">
<action>maincpu.mb@8D72 = param</action>
<action>maincpu.mb@8D7F = param</action>
<action>maincpu.mb@8D81 = param</action>
<action>maincpu.mb@8D94 = param</action>
<action>maincpu.mb@8DA2 = param</action>
<action>maincpu.mb@8DA4 = param</action>
<action>maincpu.mb@8DB7 = param</action>
<action>maincpu.mb@8DC4 = param</action>
<action>maincpu.mb@8DC6 = param</action>
<action>maincpu.mb@8DD9 = param</action>
<action>maincpu.mb@8DE7 = param</action>
<action>maincpu.mb@8DE9 = param</action>
</script>
<script state="off">
<action>maincpu.mw@8D71 = D040</action>
<action>maincpu.mw@8D7E = 9040</action>
<action>maincpu.mw@8D80 = D040</action>
<action>maincpu.mw@8D93 = 9040</action>
<action>maincpu.mw@8DA1 = 9040</action>
<action>maincpu.mw@8DA3 = DB40</action>
<action>maincpu.mw@8DB6 = DB40</action>
<action>maincpu.mw@8DC3 = 9B40</action>
<action>maincpu.mw@8DC5 = DB40</action>
<action>maincpu.mw@8DD8 = 9B40</action>
<action>maincpu.mw@8DE6 = 9B40</action>
<action>maincpu.mw@8DE8 = D040</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x08">02 </item>
<item value="0x10">03 </item>
<item value="0x14">04 </item>
<item value="0x18">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@CD63 = BD81BF12 </action>
<action>maincpu.mq@81BF = AB41C600EB423912</action>
<!--
81BF | AB 41 : ADDA $1,U
81C1 | C6 xx : LDB #$xx
81C3 | EB 42 : ADDB $2,U
81C5 | 39 : RTS
-->
</script>
<script state="change">
<action>maincpu.mb@81C2 = -param </action> <!-- player -->
<action>maincpu.mb@CD74 = F4 - (param / 2)</action> <!-- range -->
<action>maincpu.mb@CDE8 = -param </action> <!-- sub unit -->
</script>
<script state="off">
<action>maincpu.md@CD63 = AB41EB42 </action>
<action>maincpu.mq@81BF = 5352414D20455252</action>
<action>maincpu.mb@CD74 = F4 </action>
<action>maincpu.mb@CDE8 = F8 </action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mq@805F = 969191412725D640</action>
<action>maincpu.mq@8067 = 81FE26015A81FD26</action>
<action>maincpu.mq@806F = 015C81FB2602C010</action>
<action>maincpu.mq@8077 = 81F72602CB10D740</action>
<action>maincpu.mq@807F = 817F270581BF2603</action>
<action>maincpu.mq@8087 = 5FD78A974120D112</action>
<!--
805F | 96 91 : LDA $91 // read input
8061 | 91 41 : CMPA $41
8063 | 27 25 : BEQ $808A
8065 | D6 40 : LDB $40
8067 | 81 FE : CMPA #$FE
8069 | 26 01 : BNE $806C
806B | 5A : DECB // decrease code -01
806C | 81 FD : CMPA #$FD
806E | 26 01 : BNE $8071
8070 | 5C : INCB // increase code +01
8071 | 81 FB : CMPA #$FB
8073 | 26 02 : BNE $8077
8075 | C0 10 : SUBB #$10 // decrease code -10
8077 | 81 F7 : CMPA #$F7
8079 | 26 02 : BNE $807D
807B | CB 10 : ADDB #$10 // increase code +10
807D | D7 40 : STB $40
807F | 81 7F : CMPA #$7F
8081 | 27 05 : BEQ $8088 // play sound
8083 | 81 BF : CMPA #$BF
8085 | 26 03 : BNE $808A
8087 | 5F : CLRB // stop sound
8088 | D7 8A : STB $8A // send sound code
808A | 97 41 : STA $41
808C | 20 D1 : BRA $805F
-->
</script>
<script state="run">
<output format="----- halley's comet 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@FF40</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@805F = 9695C68085022701</action>
<action>maincpu.mq@8067 = 5FD79EBD874C8611</action>
<action>maincpu.mq@806F = BD982F10CEFF0096</action>
<action>maincpu.mq@8077 = 908510102703F385</action>
<action>maincpu.mq@807F = 201027014D854010</action>
<action>maincpu.mq@8087 = 2601478580102601</action>
</script>
</cheat>
</mamecheat>
halleyscjp.xml
Code: Select all
<!-- Halley's Comet (Japan, prototype) -->
<mamecheat version="1">
<cheat desc="no hit - player">
<script state="on">
<action>maincpu.mb@B0CF = 00</action>
</script>
<script state="off">
<action>maincpu.mb@B0CF = 04</action>
</script>
</cheat>
<cheat desc="no hit - sub unit">
<script state="on">
<action>maincpu.mb@B1FE = D1</action>
</script>
<script state="off">
<action>maincpu.mb@B1FE = D5</action>
</script>
</cheat>
<cheat desc="no hit - planet">
<script state="on">
<action>maincpu.mb@D4BB = 20 </action>
<action>maincpu.mq@D4DB = 81FC25084FA714A7</action>
<action>maincpu.mq@D4E3 = 101220294C4CA722</action>
<!--
D4DB | 81 FC : CMPA #$FC
D4DD | 25 08 : BCS $D4E7
D4DF | 4F : CLRA
D4E0 | A7 14 : STA -$C,X
D4E2 | A7 10 : STA -$10,X
D4E4 | 12 : NOP
D4E5 | 20 29 : BRA $D510
-->
</script>
<script state="off">
<action>maincpu.mb@D4BB = 26 </action>
<action>maincpu.mq@D4DB = 81BC25088610A7A4</action>
<action>maincpu.mq@D4E3 = 6F2320314C4CA722</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@CBF1 = 01</action>
</script>
<script state="off">
<action>maincpu.mb@CBF1 = 18</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<action>maincpu.mb@8D4D = C0</action> <!-- up -->
<action>maincpu.mb@8D5A = 80</action> <!-- upper-right : right -->
<action>maincpu.mb@8D5C = C0</action> <!-- upper-right : up -->
<action>maincpu.mb@8D6F = 80</action> <!-- right -->
<action>maincpu.mb@8D7D = 80</action> <!-- lower-right : right -->
<action>maincpu.mb@8D7F = CB</action> <!-- lower-right : down -->
<action>maincpu.mb@8D92 = CB</action> <!-- down -->
<action>maincpu.mb@8D9F = 8B</action> <!-- lower-left : left -->
<action>maincpu.mb@8DA1 = CB</action> <!-- lower-left : down -->
<action>maincpu.mb@8DB4 = 8B</action> <!-- left -->
<action>maincpu.mb@8DC2 = 8B</action> <!-- upper-left : left -->
<action>maincpu.mb@8DC4 = C0</action> <!-- upper-left : up -->
</script>
<script state="change">
<action>maincpu.mb@8D4E = param</action>
<action>maincpu.mb@8D5B = param</action>
<action>maincpu.mb@8D5D = param</action>
<action>maincpu.mb@8D70 = param</action>
<action>maincpu.mb@8D7E = param</action>
<action>maincpu.mb@8D80 = param</action>
<action>maincpu.mb@8D93 = param</action>
<action>maincpu.mb@8DA0 = param</action>
<action>maincpu.mb@8DA2 = param</action>
<action>maincpu.mb@8DB5 = param</action>
<action>maincpu.mb@8DC3 = param</action>
<action>maincpu.mb@8DC5 = param</action>
</script>
<script state="off">
<action>maincpu.mw@8D4D = D040</action>
<action>maincpu.mw@8D5A = 9040</action>
<action>maincpu.mw@8D5C = D040</action>
<action>maincpu.mw@8D6F = 9040</action>
<action>maincpu.mw@8D7D = 9040</action>
<action>maincpu.mw@8D7F = DB40</action>
<action>maincpu.mw@8D92 = DB40</action>
<action>maincpu.mw@8D9F = 9B40</action>
<action>maincpu.mw@8DA1 = DB40</action>
<action>maincpu.mw@8DB4 = 9B40</action>
<action>maincpu.mw@8DC2 = 9B40</action>
<action>maincpu.mw@8DC4 = D040</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x08">02 </item>
<item value="0x10">03 </item>
<item value="0x14">04 </item>
<item value="0x18">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@CD58 = BDEFC012 </action>
<action>maincpu.mq@EFC0 = AB41C600EB423912</action>
<!--
EFC0 | AB 41 : ADDA $1,U
EFC2 | C6 xx : LDB #$xx
EFC4 | EB 42 : ADDB $2,U
EFC5 | 39 : RTS
-->
</script>
<script state="change">
<action>maincpu.mb@EFC3 = -param </action> <!-- player -->
<action>maincpu.mb@CD69 = F4 - (param / 2)</action> <!-- range -->
<action>maincpu.mb@CDDD = -param </action> <!-- sub unit -->
</script>
<script state="off">
<action>maincpu.md@CD58 = AB41EB42 </action>
<action>maincpu.mq@EFC0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mb@CD69 = F4 </action>
<action>maincpu.mb@CDDD = F8 </action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mq@804D = 969191412725D640</action>
<action>maincpu.mq@8055 = 81FE26015A81FD26</action>
<action>maincpu.mq@805D = 015C81FB2602C010</action>
<action>maincpu.mq@8065 = 81F72602CB10D740</action>
<action>maincpu.mq@806D = 817F270581BF2603</action>
<action>maincpu.mq@8075 = 5FD78A974120D112</action>
<!--
804D | 96 91 : LDA $91 // read input
804F | 91 41 : CMPA $41
8051 | 27 25 : BEQ $8078
8053 | D6 40 : LDB $40
8055 | 81 FE : CMPA #$FE
8057 | 26 01 : BNE $805A
8059 | 5A : DECB // decrease code -01
805A | 81 FD : CMPA #$FD
805C | 26 01 : BNE $805F
805E | 5C : INCB // increase code +01
805F | 81 FB : CMPA #$FB
8061 | 26 02 : BNE $8065
8063 | C0 10 : SUBB #$10 // decrease code -10
8065 | 81 F7 : CMPA #$F7
8067 | 26 02 : BNE $806B
8069 | CB 10 : ADDB #$10 // increase code +10
806B | D7 40 : STB $40
806D | 81 7F : CMPA #$7F
806F | 27 05 : BEQ $8076 // play sound
8071 | 81 BF : CMPA #$BF
8073 | 26 03 : BNE $8078
8075 | 5F : CLRB // stop sound
8076 | D7 8A : STB $8A // send sound code
8078 | 97 41 : STA $41
807A | 20 D1 : BRA $804D
-->
</script>
<script state="run">
<output format="----- halley's comet 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@FF40</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@804D = 9695C68085022701</action>
<action>maincpu.mq@8055 = 5FD79EBD86E79695</action>
<action>maincpu.mq@805D = 850426037EA0DC86</action>
<action>maincpu.mq@8065 = 02B7FC21B7FC1BBD</action>
<action>maincpu.mq@806D = 9308BDE0B2860097</action>
<action>maincpu.mq@8075 = 8A7FF06D10CEFF00</action>
</script>
</cheat>
</mamecheat>
halleysc87.xml
Code: Select all
<!-- Halley's Comet '87 -->
<mamecheat version="1">
<cheat desc="no hit - player">
<script state="on">
<action>maincpu.mb@B1A4 = 00</action>
</script>
<script state="off">
<action>maincpu.mb@B1A4 = 04</action>
</script>
</cheat>
<cheat desc="no hit - sub unit">
<script state="on">
<action>maincpu.mb@B2E4 = C0</action>
</script>
<script state="off">
<action>maincpu.mb@B2E4 = C4</action>
</script>
</cheat>
<cheat desc="no hit - planet">
<script state="on">
<action>maincpu.mb@D4BA = 20 </action>
<action>maincpu.mq@D4DA = 81FC25084FA714A7</action>
<action>maincpu.mq@D4E2 = 101220294C4CA722</action>
<!--
D4DA | 81 FC : CMPA #$FC
D4DC | 25 08 : BCS $D4ED
D4DE | 4F : CLRA
D4DF | A7 14 : STA -$C,X
D4E1 | A7 10 : STA -$10,X
D4E3 | 12 : NOP
D4E4 | 20 29 : BRA $D50F
-->
</script>
<script state="off">
<action>maincpu.mb@D4BA = 26 </action>
<action>maincpu.mq@D4DA = 81BC25088610A7A4</action>
<action>maincpu.mq@D4E2 = 6F2320314C4CA722</action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@CBF5 = 01</action>
</script>
<script state="off">
<action>maincpu.mb@CBF5 = 18</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter min="0x01" max="0x05" step="0x01" />
<script state="on">
<action>maincpu.mb@8E2C = C0</action> <!-- up -->
<action>maincpu.mb@8E39 = 80</action> <!-- upper-right : right -->
<action>maincpu.mb@8E3B = C0</action> <!-- upper-right : up -->
<action>maincpu.mb@8E4E = 80</action> <!-- right -->
<action>maincpu.mb@8E5C = 80</action> <!-- lower-right : right -->
<action>maincpu.mb@8E5E = CB</action> <!-- lower-right : down -->
<action>maincpu.mb@8E71 = CB</action> <!-- down -->
<action>maincpu.mb@8E7E = 8B</action> <!-- lower-left : left -->
<action>maincpu.mb@8E80 = CB</action> <!-- lower-left : down -->
<action>maincpu.mb@8E93 = 8B</action> <!-- left -->
<action>maincpu.mb@8EA1 = 8B</action> <!-- upper-left : left -->
<action>maincpu.mb@8EA3 = C0</action> <!-- upper-left : up -->
</script>
<script state="change">
<action>maincpu.mb@8E2D = param</action>
<action>maincpu.mb@8E3A = param</action>
<action>maincpu.mb@8E3C = param</action>
<action>maincpu.mb@8E4F = param</action>
<action>maincpu.mb@8E5D = param</action>
<action>maincpu.mb@8E5F = param</action>
<action>maincpu.mb@8E72 = param</action>
<action>maincpu.mb@8E7F = param</action>
<action>maincpu.mb@8E81 = param</action>
<action>maincpu.mb@8E94 = param</action>
<action>maincpu.mb@8EA2 = param</action>
<action>maincpu.mb@8EA4 = param</action>
</script>
<script state="off">
<action>maincpu.mw@8E2C = D040</action>
<action>maincpu.mw@8E39 = 9040</action>
<action>maincpu.mw@8E3B = D040</action>
<action>maincpu.mw@8E4E = 9040</action>
<action>maincpu.mw@8E5C = 9040</action>
<action>maincpu.mw@8E5E = DB40</action>
<action>maincpu.mw@8E71 = DB40</action>
<action>maincpu.mw@8E7E = 9B40</action>
<action>maincpu.mw@8E80 = DB40</action>
<action>maincpu.mw@8E93 = 9B40</action>
<action>maincpu.mw@8EA1 = 9B40</action>
<action>maincpu.mw@8EA3 = D040</action>
</script>
</cheat>
<cheat desc="bullet speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x08">02 </item>
<item value="0x10">03 </item>
<item value="0x14">04 </item>
<item value="0x18">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@CD5C = BD81BC12 </action>
<action>maincpu.mq@81BC = AB41C600EB423912</action>
<!--
81BC | AB 41 : ADDA $1,U
81BE | C6 xx : LDB #$xx
81C0 | EB 42 : ADDB $2,U
81C2 | 39 : RTS
-->
</script>
<script state="change">
<action>maincpu.mb@81BF = -param </action> <!-- player -->
<action>maincpu.mb@CD6D = F4 - (param / 2)</action> <!-- range -->
<action>maincpu.mb@CDE1 = -param </action> <!-- sub unit -->
</script>
<script state="off">
<action>maincpu.md@CD5C = AB41EB42 </action>
<action>maincpu.mq@81BC = 5352414D20455252</action>
<action>maincpu.mb@CD6D = F4 </action>
<action>maincpu.mb@CDE1 = F8 </action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mq@805F = 969191412725D640</action>
<action>maincpu.mq@8067 = 81FE26015A81FD26</action>
<action>maincpu.mq@806F = 015C81FB2602C010</action>
<action>maincpu.mq@8077 = 81F72602CB10D740</action>
<action>maincpu.mq@807F = 817F270581BF2603</action>
<action>maincpu.mq@8087 = 5FD78A974120D112</action>
<!--
805F | 96 91 : LDA $91 // read input
8061 | 91 41 : CMPA $41
8063 | 27 25 : BEQ $808A
8065 | D6 40 : LDB $40
8067 | 81 FE : CMPA #$FE
8069 | 26 01 : BNE $806C
806B | 5A : DECB // decrease code -01
806C | 81 FD : CMPA #$FD
806E | 26 01 : BNE $8071
8070 | 5C : INCB // increase code +01
8071 | 81 FB : CMPA #$FB
8073 | 26 02 : BNE $8077
8075 | C0 10 : SUBB #$10 // decrease code -10
8077 | 81 F7 : CMPA #$F7
8079 | 26 02 : BNE $807D
807B | CB 10 : ADDB #$10 // increase code +10
807D | D7 40 : STB $40
807F | 81 7F : CMPA #$7F
8081 | 27 05 : BEQ $8088 // play sound
8083 | 81 BF : CMPA #$BF
8085 | 26 03 : BNE $808A
8087 | 5F : CLRB // stop sound
8088 | D7 8A : STB $8A // send sound code
808A | 97 41 : STA $41
808C | 20 D1 : BRA $805F
-->
</script>
<script state="run">
<output format="----- halley's comet 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@FF40</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@805F = 9695C68085022701</action>
<action>maincpu.mq@8067 = 5FD79EBD87468611</action>
<action>maincpu.mq@806F = BD98EA10CEFF0096</action>
<action>maincpu.mq@8077 = 908510102703F085</action>
<action>maincpu.mq@807F = 201027014A854010</action>
<action>maincpu.mq@8087 = 2601448580102601</action>
</script>
</cheat>
</mamecheat>
"no hit" : Rewritten routine after tracing program code. Added "no hit - sub unit".
"bullet speed" : Custome routine is put into space for "SRAM ERROR" strings except halleyscp. If RAM error happens, incorrect strings will be displayed.