[hvyunitj] Heavy Unit

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.
Post Reply
jman
Posts: 1001
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 4 times

[hvyunitj] Heavy Unit

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>master.mw@4e5d = 0818</action> <!-- enemy -->
        <action>master.mw@4ecc = 0818</action> <!-- bullet -->
        <action>master.mb@cc26 =   c3</action> <!-- tentacle ($8c26) -->
        <action>master.mb@dcea =   c3</action> <!-- bone ($9cea) -->
        <action> slave.mb@4d0a =   00</action> <!-- background -->
    </script>
    <script state="off">
        <action>master.mw@4e5d = d716</action>
        <action>master.mw@4ecc = d716</action>
        <action>master.mb@cc26 =   da</action>
        <action>master.mb@dcea =   da</action>
        <action> slave.mb@4d0a =   01</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>master.mb@3e32 = 34</action> <!-- main shot -->
        <action>master.mb@3e69 = 6b</action> <!-- sub weapon -->
    </script>
    <script state="off">
        <action>master.mb@3e32 = 46</action>
        <action>master.mb@3e69 = 7d</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x01">01 (slow)</item>
        <item value="0x03">02       </item>
        <item value="0x05">03       </item>
        <item value="0x07">04       </item>
        <item value="0x09">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>slave.md@0677 =         867f10cd</action> <!-- y position -->
        <action>slave.md@068d =         867f1bcd</action> <!-- x position -->
        <action>slave.mq@7f10 = f0003ec8a7f0833a</action>
        <action>slave.mq@7f18 = c8a7f08c3ac944ed</action>
        <action>slave.mq@7f20 = 0000c944edf0003e</action>
        <!--
        7f10 | 3a 83 f0 : ld  a,($F083) // y position
        7f13 | a7       : and a
        7f14 | c8       : ret z
        7f15 | 3e 09    : ld  a,$09
        7f17 | f0       : ret p
        7f18 | ed 44    : neg
        7f1a | c9       : ret
        7f1b | 3a 8c f0 : ld  a,($F08C) // x position
        7f1e | a7       : and a
        7f1f | c8       : ret z
        7f20 | 3e 09    : ld  a,$09
        7f22 | f0       : ret p
        7f23 | ed 44    : neg
        7f25 | c9       : ret
        -->
    </script>
    <script state="change">
        <action>slave.mb@7f16 = param</action>
        <action>slave.mb@7f21 = param</action>
    </script>
    <script state="off">
        <action>slave.md@0677 =         86f0833a</action>
        <action>slave.md@068d =         86f08c3a</action>
        <action>slave.mq@7f10 = 0000000000000000</action>
        <action>slave.mq@7f18 = 0000000000000000</action>
        <action>slave.mq@7f20 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>master.mw@0010 =             fe18</action> <!-- disable master cpu interrupt -->
        <action> slave.mb@5671 =               33</action> <!-- enable input check -->
        <action> slave.md@0219 =         7f30c300</action>
        <action> slave.mq@7f30 = 4d33cde5c5d20021</action>
        <action> slave.mq@7f38 = 2847b8e06a3ac1e1</action>
        <action> slave.mq@7f40 = 88fe35012084fef2</action>
        <action> slave.mq@7f48 = 3e042082fe340120</action>
        <action> slave.mq@7f50 = 3e052081fe0618f0</action>
        <action> slave.mq@7f58 = 032090fe78778610</action>
        <action> slave.mq@7f60 = af0320a0fe05187e</action>
        <action> slave.mq@7f68 = 00000000c71802d3</action>
        <!--
        7f30 | 21 00 d2 : ld   hl,$D200  // sound code address
        7f33 | c5       : push bc
        7f34 | e5       : push hl
        7f35 | cd 33 4d : call $4D33     // call input check
        7f38 | e1       : pop  hl
        7f39 | c1       : pop  bc
        7f3a | 3a 6a e0 : ld   a,($E06A) // read input
        7f3d | b8       : cp   b
        7f3e | 47       : ld   b,a
        7f3f | 28 f2    : jr   z,$7F33
        7f41 | fe 84    : cp   $84
        7f43 | 20 01    : jr   nz,$7F46
        7f45 | 35       : dec  (hl)      // decrease code -01
        7f46 | fe 88    : cp   $88
        7f48 | 20 01    : jr   nz,$7F4B
        7f4a | 34       : inc  (hl)      // increase code +01
        7f4b | fe 82    : cp   $82
        7f4d | 20 04    : jr   nz,$7F53
        7f4f | 3e f0    : ld   a,$F0     // decrease code -10
        7f51 | 18 06    : jr   $7F59
        7f53 | fe 81    : cp   $81
        7f55 | 20 05    : jr   nz,$7F5C
        7f57 | 3e 10    : ld   a,$10     // increase code +10
        7f59 | 86       : add  a,(hl)
        7f5a | 77       : ld   (hl),a
        7f5b | 78       : ld   a,b
        7f5c | fe 90    : cp   $90
        7f5e | 20 03    : jr   nz,$7F63
        7f60 | 7e       : ld   a,(hl)    // play sound
        7f61 | 18 05    : jr   $7F68
        7f63 | fe a0    : cp   $A0
        7f65 | 20 03    : jr   nz,$7F6A
        7f67 | af       : xor  a         // stop sound
        7f68 | d3 02    : out  ($02),a   // send sound code
        7f6a | 18 c7    : jr   $7F33
        -->
    </script>
    <script state="run">
        <output format="----- heavy unit 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="&lt;&lt; sound code %2.2X &gt;&gt;"     line="19" align="center">
            <argument>slave.pb@d200</argument>
        </output>
    </script>
    <script state="off">
        <action>master.mw@0010 =             5eed</action>
        <action> slave.mb@5671 =               85</action>
        <action> slave.md@0219 =         e10b3afb</action>
        <action> slave.mq@7f30 = 0000000000000000</action>
        <action> slave.mq@7f38 = 0000000000000000</action>
        <action> slave.mq@7f40 = 0000000000000000</action>
        <action> slave.mq@7f48 = 0000000000000000</action>
        <action> slave.mq@7f50 = 0000000000000000</action>
        <action> slave.mq@7f58 = 0000000000000000</action>
        <action> slave.mq@7f60 = 0000000000000000</action>
        <action> slave.mq@7f68 = 0000000000000000</action>
    </script>
</cheat>
jman

my wip cheat database back-up (2024/09/06 ver.)
https://u11.getuploader.com/uploader/download/1589
jman
Posts: 1001
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 4 times

[hvyunit]+ Heavy Unit

Post by jman »

hvyunit.xml

Code: Select all

<!-- Heavy Unit (World) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>master.mb@2750 = 32  </action> <!-- background -->
            <action>master.mb@27DE = 32  </action> <!-- background -->
            <action>master.mw@4E5C = 0818</action> <!-- enemy -->
            <action>master.mw@4ECB = 0818</action> <!-- bullet -->
            <action>master.mb@CBFC = C3  </action> <!-- tentacle ($8bfc) -->
            <action>master.mb@DCC0 = C3  </action> <!-- bone ($9cc0) -->
        </script>
        <script state="off">
            <action>master.mb@2750 = 3A  </action>
            <action>master.mb@27DE = 3A  </action>
            <action>master.mw@4E5C = D716</action>
            <action>master.mw@4ECB = D716</action>
            <action>master.mb@CBFC = DA  </action>
            <action>master.mb@DCC0 = DA  </action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>master.mb@3E31 = 33</action> <!-- main shot -->
            <action>master.mb@3E68 = 6A</action> <!-- sub weapon -->
        </script>
        <script state="off">
            <action>master.mb@3E31 = 45</action>
            <action>master.mb@3E68 = 7C</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x03">02       </item>
            <item value="0x05">03       </item>
            <item value="0x07">04       </item>
            <item value="0x09">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>slave.md@0677 = 867F10CD        </action> <!-- y position -->
            <action>slave.md@068D = 867F15CD        </action> <!-- x position -->
            <action>slave.mq@7F10 = F08C3A0318F0833A</action>
            <action>slave.mq@7F18 = C944EDF0003EC8A7</action>
            <!--
            7F10 | 3A 83 F0 : ld   a,($F083) // y position
            7F13 | 18 03    : jr   $7F18
            7F15 | 3A 8C F0 : ld   a,($F08C) // x position
            7F18 | A7       : and  a
            7F19 | C8       : ret  z
            7F1A | 3E xx    : ld   a,$xx
            7F1C | F0       : ret  p
            7F1D | ED 44    : neg
            7F1F | C9       : ret
            -->
        </script>
        <script state="change">
            <action>slave.mb@7F1B = param</action>
        </script>
        <script state="off">
            <action>slave.md@0677 = 86F0833A        </action>
            <action>slave.md@068D = 86F08C3A        </action>
            <action>slave.mq@7F10 = 0000000000000000</action>
            <action>slave.mq@7F18 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>master.mw@0010 = FE18            </action> <!-- disable master cpu interrupt -->
            <action> slave.mb@5654 = 16              </action> <!-- enable input check -->
            <action> slave.md@021A = B77F20C3        </action>
            <action> slave.mq@7F20 = 47B8E06A3AD20021</action>
            <action> slave.mq@7F28 = FE35012084FEF928</action>
            <action> slave.mq@7F30 = 042082FE34012088</action>
            <action> slave.mq@7F38 = 052081FE0618F03E</action>
            <action> slave.mq@7F40 = 2090FE787786103E</action>
            <action> slave.mq@7F48 = 0320A0FE05187E03</action>
            <action> slave.mq@7F50 = 000000CE1802D3AF</action>
            <!--
            7F20 | 21 00 D2 : ld   hl,$D200  // sound code address
            7F23 | 3A 6A E0 : ld   a,($E06A) // read input
            7F26 | B8       : cp   b
            7F27 | 47       : ld   b,a
            7F28 | 28 F9    : jr   z,$7F23
            7F2A | FE 84    : cp   $84
            7F2C | 20 01    : jr   nz,$7F2F
            7F2E | 35       : dec  (hl)      // decrease code -01
            7F2F | FE 88    : cp   $88
            7F31 | 20 01    : jr   nz,$7F34
            7F33 | 34       : inc  (hl)      // increase code +01
            7F34 | FE 82    : cp   $82
            7F36 | 20 04    : jr   nz,$7F3C
            7F38 | 3E F0    : ld   a,$F0     // decrease code -10
            7F3A | 18 06    : jr   $7F42
            7F3C | FE 81    : cp   $81
            7F3E | 20 05    : jr   nz,$7F45
            7F40 | 3E 10    : ld   a,$10     // increase code +10
            7F42 | 86       : add  a,(hl)
            7F43 | 77       : ld   (hl),a
            7F44 | 78       : ld   a,b
            7F45 | FE 90    : cp   $90
            7F47 | 20 03    : jr   nz,$7F4C
            7F49 | 7E       : ld   a,(hl)    // play sound
            7F4A | 18 05    : jr   $7F51
            7F4C | FE A0    : cp   $A0
            7F4E | 20 03    : jr   nz,$7F53
            7F50 | AF       : xor  a         // stop sound
            7F51 | D3 02    : out  ($02),a   // send sound code
            7F53 | 18 CE    : jr   $7F23
            -->
        </script>
        <script state="run">
            <output format="----- heavy unit 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="&lt;&lt; sound code %02X &gt;&gt;"      line="19" align="center"  >
                <argument>slave.pb@D200</argument>
            </output>
        </script>
        <script state="off">
            <action>master.mw@0010 = 5EED            </action>
            <action> slave.mb@5654 = 68              </action>
            <action> slave.md@021A = B7E10B3A        </action>
            <action> slave.mq@7F20 = 0000000000000000</action>
            <action> slave.mq@7F28 = 0000000000000000</action>
            <action> slave.mq@7F30 = 0000000000000000</action>
            <action> slave.mq@7F38 = 0000000000000000</action>
            <action> slave.mq@7F40 = 0000000000000000</action>
            <action> slave.mq@7F48 = 0000000000000000</action>
            <action> slave.mq@7F50 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
hvyunitj.xml

Code: Select all

<!-- Heavy Unit (Japan, newer) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>master.mb@2750 = 32  </action> <!-- background -->
            <action>master.mb@27DE = 32  </action> <!-- background -->
            <action>master.mw@4E5D = 0818</action> <!-- enemy -->
            <action>master.mw@4ECC = 0818</action> <!-- bullet -->
            <action>master.mb@CC26 = C3  </action> <!-- tentacle ($8c26) -->
            <action>master.mb@DCEA = C3  </action> <!-- bone ($9cea) -->
        </script>
        <script state="off">
            <action>master.mb@2750 = 3A  </action>
            <action>master.mb@27DE = 3A  </action>
            <action>master.mw@4E5D = D716</action>
            <action>master.mw@4ECC = D716</action>
            <action>master.mb@CC26 = DA  </action>
            <action>master.mb@DCEA = DA  </action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>master.mb@3E32 = 34</action> <!-- main shot -->
            <action>master.mb@3E69 = 6B</action> <!-- sub weapon -->
        </script>
        <script state="off">
            <action>master.mb@3E32 = 46</action>
            <action>master.mb@3E69 = 7D</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x03">02       </item>
            <item value="0x05">03       </item>
            <item value="0x07">04       </item>
            <item value="0x09">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>slave.md@0677 = 867F10CD        </action> <!-- y position -->
            <action>slave.md@068D = 867F15CD        </action> <!-- x position -->
            <action>slave.mq@7F10 = F08C3A0318F0833A</action>
            <action>slave.mq@7F18 = C944EDF0003EC8A7</action>
            <!--
            7F10 | 3A 83 F0 : ld   a,($F083) // y position
            7F13 | 18 03    : jr   $7F18
            7F15 | 3A 8C F0 : ld   a,($F08C) // x position
            7F18 | A7       : and  a
            7F19 | C8       : ret  z
            7F1A | 3E xx    : ld   a,$xx
            7F1C | F0       : ret  p
            7F1D | ED 44    : neg
            7F1F | C9       : ret
            -->
        </script>
        <script state="change">
            <action>slave.mb@7F1B = param</action>
        </script>
        <script state="off">
            <action>slave.md@0677 = 86F0833A        </action>
            <action>slave.md@068D = 86F08C3A        </action>
            <action>slave.mq@7F10 = 0000000000000000</action>
            <action>slave.mq@7F18 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>master.mw@0010 = FE18            </action> <!-- disable master cpu interrupt -->
            <action> slave.mb@5671 = 33              </action> <!-- enable input check -->
            <action> slave.md@021A = B77F20C3        </action>
            <action> slave.mq@7F20 = 47B8E06A3AD20021</action>
            <action> slave.mq@7F28 = FE35012084FEF928</action>
            <action> slave.mq@7F30 = 042082FE34012088</action>
            <action> slave.mq@7F38 = 052081FE0618F03E</action>
            <action> slave.mq@7F40 = 2090FE787786103E</action>
            <action> slave.mq@7F48 = 0320A0FE05187E03</action>
            <action> slave.mq@7F50 = 000000CE1802D3AF</action>
            <!--
            7F20 | 21 00 D2 : ld   hl,$D200  // sound code address
            7F23 | 3A 6A E0 : ld   a,($E06A) // read input
            7F26 | B8       : cp   b
            7F27 | 47       : ld   b,a
            7F28 | 28 F9    : jr   z,$7F23
            7F2A | FE 84    : cp   $84
            7F2C | 20 01    : jr   nz,$7F2F
            7F2E | 35       : dec  (hl)      // decrease code -01
            7F2F | FE 88    : cp   $88
            7F31 | 20 01    : jr   nz,$7F34
            7F33 | 34       : inc  (hl)      // increase code +01
            7F34 | FE 82    : cp   $82
            7F36 | 20 04    : jr   nz,$7F3C
            7F38 | 3E F0    : ld   a,$F0     // decrease code -10
            7F3A | 18 06    : jr   $7F42
            7F3C | FE 81    : cp   $81
            7F3E | 20 05    : jr   nz,$7F45
            7F40 | 3E 10    : ld   a,$10     // increase code +10
            7F42 | 86       : add  a,(hl)
            7F43 | 77       : ld   (hl),a
            7F44 | 78       : ld   a,b
            7F45 | FE 90    : cp   $90
            7F47 | 20 03    : jr   nz,$7F4C
            7F49 | 7E       : ld   a,(hl)    // play sound
            7F4A | 18 05    : jr   $7F51
            7F4C | FE A0    : cp   $A0
            7F4E | 20 03    : jr   nz,$7F53
            7F50 | AF       : xor  a         // stop sound
            7F51 | D3 02    : out  ($02),a   // send sound code
            7F53 | 18 CE    : jr   $7F23
            -->
        </script>
        <script state="run">
            <output format="----- heavy unit 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="&lt;&lt; sound code %02X &gt;&gt;"      line="19" align="center"  >
                <argument>slave.pb@D200</argument>
            </output>
        </script>
        <script state="off">
            <action>master.mw@0010 = 5EED            </action>
            <action> slave.mb@5671 = 85              </action>
            <action> slave.md@021A = B7E10B3A        </action>
            <action> slave.mq@7F20 = 0000000000000000</action>
            <action> slave.mq@7F28 = 0000000000000000</action>
            <action> slave.mq@7F30 = 0000000000000000</action>
            <action> slave.mq@7F38 = 0000000000000000</action>
            <action> slave.mq@7F40 = 0000000000000000</action>
            <action> slave.mq@7F48 = 0000000000000000</action>
            <action> slave.mq@7F50 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
hvyunitja.xml

Code: Select all

<!-- Heavy Unit (Japan, alternate ROM format) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>master.mb@2750 = 32  </action> <!-- background -->
            <action>master.mb@27DE = 32  </action> <!-- background -->
            <action>master.mw@4E65 = 0818</action> <!-- enemy -->
            <action>master.mw@4ED4 = 0818</action> <!-- bullet -->
            <action>master.mb@CC26 = C3  </action> <!-- tentacle ($8c26) -->
            <action>master.mb@DCEA = C3  </action> <!-- bone ($9cea) -->
        </script>
        <script state="off">
            <action>master.mb@2750 = 3A  </action>
            <action>master.mb@27DE = 3A  </action>
            <action>master.mw@4E65 = D716</action>
            <action>master.mw@4ED4 = D716</action>
            <action>master.mb@CC26 = DA  </action>
            <action>master.mb@DCEA = DA  </action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>master.mb@3E3A = 3C</action> <!-- main shot -->
            <action>master.mb@3E71 = 73</action> <!-- sub weapon -->
        </script>
        <script state="off">
            <action>master.mb@3E3A = 4E</action>
            <action>master.mb@3E71 = 85</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x03">02       </item>
            <item value="0x05">03       </item>
            <item value="0x07">04       </item>
            <item value="0x09">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>slave.md@0677 = 867F10CD        </action> <!-- y position -->
            <action>slave.md@068D = 867F15CD        </action> <!-- x position -->
            <action>slave.mq@7F10 = F08C3A0318F0833A</action>
            <action>slave.mq@7F18 = C944EDF0003EC8A7</action>
            <!--
            7F10 | 3A 83 F0 : ld   a,($F083) // y position
            7F13 | 18 03    : jr   $7F18
            7F15 | 3A 8C F0 : ld   a,($F08C) // x position
            7F18 | A7       : and  a
            7F19 | C8       : ret  z
            7F1A | 3E xx    : ld   a,$xx
            7F1C | F0       : ret  p
            7F1D | ED 44    : neg
            7F1F | C9       : ret
            -->
        </script>
        <script state="change">
            <action>slave.mb@7F1B = param</action>
        </script>
        <script state="off">
            <action>slave.md@0677 = 86F0833A        </action>
            <action>slave.md@068D = 86F08C3A        </action>
            <action>slave.mq@7F10 = 0000000000000000</action>
            <action>slave.mq@7F18 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>master.mw@0010 = FE18            </action> <!-- disable master cpu interrupt -->
            <action> slave.mb@5671 = 33              </action> <!-- enable input check -->
            <action> slave.md@021A = B77F20C3        </action>
            <action> slave.mq@7F20 = 47B8E06A3AD20021</action>
            <action> slave.mq@7F28 = FE35012084FEF928</action>
            <action> slave.mq@7F30 = 042082FE34012088</action>
            <action> slave.mq@7F38 = 052081FE0618F03E</action>
            <action> slave.mq@7F40 = 2090FE787786103E</action>
            <action> slave.mq@7F48 = 0320A0FE05187E03</action>
            <action> slave.mq@7F50 = 000000CE1802D3AF</action>
            <!--
            7F20 | 21 00 D2 : ld   hl,$D200  // sound code address
            7F23 | 3A 6A E0 : ld   a,($E06A) // read input
            7F26 | B8       : cp   b
            7F27 | 47       : ld   b,a
            7F28 | 28 F9    : jr   z,$7F23
            7F2A | FE 84    : cp   $84
            7F2C | 20 01    : jr   nz,$7F2F
            7F2E | 35       : dec  (hl)      // decrease code -01
            7F2F | FE 88    : cp   $88
            7F31 | 20 01    : jr   nz,$7F34
            7F33 | 34       : inc  (hl)      // increase code +01
            7F34 | FE 82    : cp   $82
            7F36 | 20 04    : jr   nz,$7F3C
            7F38 | 3E F0    : ld   a,$F0     // decrease code -10
            7F3A | 18 06    : jr   $7F42
            7F3C | FE 81    : cp   $81
            7F3E | 20 05    : jr   nz,$7F45
            7F40 | 3E 10    : ld   a,$10     // increase code +10
            7F42 | 86       : add  a,(hl)
            7F43 | 77       : ld   (hl),a
            7F44 | 78       : ld   a,b
            7F45 | FE 90    : cp   $90
            7F47 | 20 03    : jr   nz,$7F4C
            7F49 | 7E       : ld   a,(hl)    // play sound
            7F4A | 18 05    : jr   $7F51
            7F4C | FE A0    : cp   $A0
            7F4E | 20 03    : jr   nz,$7F53
            7F50 | AF       : xor  a         // stop sound
            7F51 | D3 02    : out  ($02),a   // send sound code
            7F53 | 18 CE    : jr   $7F23
            -->
        </script>
        <script state="run">
            <output format="----- heavy unit 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="&lt;&lt; sound code %02X &gt;&gt;"      line="19" align="center"  >
                <argument>slave.pb@D200</argument>
            </output>
        </script>
        <script state="off">
            <action>master.mw@0010 = 5EED            </action>
            <action> slave.mb@5671 = 85              </action>
            <action> slave.md@021A = B7E10B3A        </action>
            <action> slave.mq@7F20 = 0000000000000000</action>
            <action> slave.mq@7F28 = 0000000000000000</action>
            <action> slave.mq@7F30 = 0000000000000000</action>
            <action> slave.mq@7F38 = 0000000000000000</action>
            <action> slave.mq@7F40 = 0000000000000000</action>
            <action> slave.mq@7F48 = 0000000000000000</action>
            <action> slave.mq@7F50 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
hvyunitjo.xml

Code: Select all

<!-- Heavy Unit (Japan, older) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>master.mb@2750 = 32  </action> <!-- background -->
            <action>master.mb@27DE = 32  </action> <!-- background -->
            <action>master.mw@4E5D = 0818</action> <!-- enemy -->
            <action>master.mw@4ECC = 0818</action> <!-- bullet -->
            <action>master.mb@CC26 = C3  </action> <!-- tentacle ($8c26) -->
            <action>master.mb@DCEA = C3  </action> <!-- bone ($9cea) -->
        </script>
        <script state="off">
            <action>master.mb@2750 = 3A  </action>
            <action>master.mb@27DE = 3A  </action>
            <action>master.mw@4E5D = D716</action>
            <action>master.mw@4ECC = D716</action>
            <action>master.mb@CC26 = DA  </action>
            <action>master.mb@DCEA = DA  </action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>master.mb@3E32 = 34</action> <!-- main shot -->
            <action>master.mb@3E69 = 6B</action> <!-- sub weapon -->
        </script>
        <script state="off">
            <action>master.mb@3E32 = 46</action>
            <action>master.mb@3E69 = 7D</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x03">02       </item>
            <item value="0x05">03       </item>
            <item value="0x07">04       </item>
            <item value="0x09">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>slave.md@0677 = 867F10CD        </action> <!-- y position -->
            <action>slave.md@068D = 867F15CD        </action> <!-- x position -->
            <action>slave.mq@7F10 = F08C3A0318F0833A</action>
            <action>slave.mq@7F18 = C944EDF0003EC8A7</action>
            <!--
            7F10 | 3A 83 F0 : ld   a,($F083) // y position
            7F13 | 18 03    : jr   $7F18
            7F15 | 3A 8C F0 : ld   a,($F08C) // x position
            7F18 | A7       : and  a
            7F19 | C8       : ret  z
            7F1A | 3E xx    : ld   a,$xx
            7F1C | F0       : ret  p
            7F1D | ED 44    : neg
            7F1F | C9       : ret
            -->
        </script>
        <script state="change">
            <action>slave.mb@7F1B = param</action>
        </script>
        <script state="off">
            <action>slave.md@0677 = 86F0833A        </action>
            <action>slave.md@068D = 86F08C3A        </action>
            <action>slave.mq@7F10 = 0000000000000000</action>
            <action>slave.mq@7F18 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>master.mw@0010 = FE18            </action> <!-- disable master cpu interrupt -->
            <action> slave.mb@5671 = 33              </action> <!-- enable input check -->
            <action> slave.md@021A = B77F20C3        </action>
            <action> slave.mq@7F20 = 47B8E06A3AD20021</action>
            <action> slave.mq@7F28 = FE35012084FEF928</action>
            <action> slave.mq@7F30 = 042082FE34012088</action>
            <action> slave.mq@7F38 = 052081FE0618F03E</action>
            <action> slave.mq@7F40 = 2090FE787786103E</action>
            <action> slave.mq@7F48 = 0320A0FE05187E03</action>
            <action> slave.mq@7F50 = 000000CE1802D3AF</action>
            <!--
            7F20 | 21 00 D2 : ld   hl,$D200  // sound code address
            7F23 | 3A 6A E0 : ld   a,($E06A) // read input
            7F26 | B8       : cp   b
            7F27 | 47       : ld   b,a
            7F28 | 28 F9    : jr   z,$7F23
            7F2A | FE 84    : cp   $84
            7F2C | 20 01    : jr   nz,$7F2F
            7F2E | 35       : dec  (hl)      // decrease code -01
            7F2F | FE 88    : cp   $88
            7F31 | 20 01    : jr   nz,$7F34
            7F33 | 34       : inc  (hl)      // increase code +01
            7F34 | FE 82    : cp   $82
            7F36 | 20 04    : jr   nz,$7F3C
            7F38 | 3E F0    : ld   a,$F0     // decrease code -10
            7F3A | 18 06    : jr   $7F42
            7F3C | FE 81    : cp   $81
            7F3E | 20 05    : jr   nz,$7F45
            7F40 | 3E 10    : ld   a,$10     // increase code +10
            7F42 | 86       : add  a,(hl)
            7F43 | 77       : ld   (hl),a
            7F44 | 78       : ld   a,b
            7F45 | FE 90    : cp   $90
            7F47 | 20 03    : jr   nz,$7F4C
            7F49 | 7E       : ld   a,(hl)    // play sound
            7F4A | 18 05    : jr   $7F51
            7F4C | FE A0    : cp   $A0
            7F4E | 20 03    : jr   nz,$7F53
            7F50 | AF       : xor  a         // stop sound
            7F51 | D3 02    : out  ($02),a   // send sound code
            7F53 | 18 CE    : jr   $7F23
            -->
        </script>
        <script state="run">
            <output format="----- heavy unit 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="&lt;&lt; sound code %02X &gt;&gt;"      line="19" align="center"  >
                <argument>slave.pb@D200</argument>
            </output>
        </script>
        <script state="off">
            <action>master.mw@0010 = 5EED            </action>
            <action> slave.mb@5671 = 85              </action>
            <action> slave.md@021A = B7E10B3A        </action>
            <action> slave.mq@7F20 = 0000000000000000</action>
            <action> slave.mq@7F28 = 0000000000000000</action>
            <action> slave.mq@7F30 = 0000000000000000</action>
            <action> slave.mq@7F38 = 0000000000000000</action>
            <action> slave.mq@7F40 = 0000000000000000</action>
            <action> slave.mq@7F48 = 0000000000000000</action>
            <action> slave.mq@7F50 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
hvyunitu.xml

Code: Select all

<!-- Heavy Unit -U.S.A. Version- (US) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>master.mb@2750 = 32  </action> <!-- background -->
            <action>master.mb@27DE = 32  </action> <!-- background -->
            <action>master.mw@4E80 = 0818</action> <!-- enemy -->
            <action>master.mw@4EEF = 0818</action> <!-- bullet -->
            <action>master.mb@CBF9 = C3  </action> <!-- tentacle ($8bf9) -->
            <action>master.mb@DCBD = C3  </action> <!-- bone ($9cbd) -->
        </script>
        <script state="off">
            <action>master.mb@2750 = 3A  </action>
            <action>master.mb@27DE = 3A  </action>
            <action>master.mw@4E80 = D716</action>
            <action>master.mw@4EEF = D716</action>
            <action>master.mb@CBF9 = DA  </action>
            <action>master.mb@DCBD = DA  </action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>master.mb@3E55 = 57</action> <!-- main shot -->
            <action>master.mb@3E8C = 8E</action> <!-- sub weapon -->
        </script>
        <script state="off">
            <action>master.mb@3E55 = 69</action>
            <action>master.mb@3E8C = A0</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x03">02       </item>
            <item value="0x05">03       </item>
            <item value="0x07">04       </item>
            <item value="0x09">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>slave.md@0677 = 867F10CD        </action> <!-- y position -->
            <action>slave.md@068D = 867F15CD        </action> <!-- x position -->
            <action>slave.mq@7F10 = F08C3A0318F0833A</action>
            <action>slave.mq@7F18 = C944EDF0003EC8A7</action>
            <!--
            7F10 | 3A 83 F0 : ld   a,($F083) // y position
            7F13 | 18 03    : jr   $7F18
            7F15 | 3A 8C F0 : ld   a,($F08C) // x position
            7F18 | A7       : and  a
            7F19 | C8       : ret  z
            7F1A | 3E xx    : ld   a,$xx
            7F1C | F0       : ret  p
            7F1D | ED 44    : neg
            7F1F | C9       : ret
            -->
        </script>
        <script state="change">
            <action>slave.mb@7F1B = param</action>
        </script>
        <script state="off">
            <action>slave.md@0677 = 86F0833A        </action>
            <action>slave.md@068D = 86F08C3A        </action>
            <action>slave.mq@7F10 = 0000000000000000</action>
            <action>slave.mq@7F18 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>master.mw@0010 = FE18            </action> <!-- disable master cpu interrupt -->
            <action> slave.mb@5671 = 33              </action> <!-- enable input check -->
            <action> slave.md@021A = B77F20C3        </action>
            <action> slave.mq@7F20 = 47B8E06A3AD20021</action>
            <action> slave.mq@7F28 = FE35012084FEF928</action>
            <action> slave.mq@7F30 = 042082FE34012088</action>
            <action> slave.mq@7F38 = 052081FE0618F03E</action>
            <action> slave.mq@7F40 = 2090FE787786103E</action>
            <action> slave.mq@7F48 = 0320A0FE05187E03</action>
            <action> slave.mq@7F50 = 000000CE1802D3AF</action>
            <!--
            7F20 | 21 00 D2 : ld   hl,$D200  // sound code address
            7F23 | 3A 6A E0 : ld   a,($E06A) // read input
            7F26 | B8       : cp   b
            7F27 | 47       : ld   b,a
            7F28 | 28 F9    : jr   z,$7F23
            7F2A | FE 84    : cp   $84
            7F2C | 20 01    : jr   nz,$7F2F
            7F2E | 35       : dec  (hl)      // decrease code -01
            7F2F | FE 88    : cp   $88
            7F31 | 20 01    : jr   nz,$7F34
            7F33 | 34       : inc  (hl)      // increase code +01
            7F34 | FE 82    : cp   $82
            7F36 | 20 04    : jr   nz,$7F3C
            7F38 | 3E F0    : ld   a,$F0     // decrease code -10
            7F3A | 18 06    : jr   $7F42
            7F3C | FE 81    : cp   $81
            7F3E | 20 05    : jr   nz,$7F45
            7F40 | 3E 10    : ld   a,$10     // increase code +10
            7F42 | 86       : add  a,(hl)
            7F43 | 77       : ld   (hl),a
            7F44 | 78       : ld   a,b
            7F45 | FE 90    : cp   $90
            7F47 | 20 03    : jr   nz,$7F4C
            7F49 | 7E       : ld   a,(hl)    // play sound
            7F4A | 18 05    : jr   $7F51
            7F4C | FE A0    : cp   $A0
            7F4E | 20 03    : jr   nz,$7F53
            7F50 | AF       : xor  a         // stop sound
            7F51 | D3 02    : out  ($02),a   // send sound code
            7F53 | 18 CE    : jr   $7F23
            -->
        </script>
        <script state="run">
            <output format="----- heavy unit 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="&lt;&lt; sound code %02X &gt;&gt;"      line="19" align="center"  >
                <argument>slave.pb@D200</argument>
            </output>
        </script>
        <script state="off">
            <action>master.mw@0010 = 5EED            </action>
            <action> slave.mb@5671 = 85              </action>
            <action> slave.md@021A = B7E10B3A        </action>
            <action> slave.mq@7F20 = 0000000000000000</action>
            <action> slave.mq@7F28 = 0000000000000000</action>
            <action> slave.mq@7F30 = 0000000000000000</action>
            <action> slave.mq@7F38 = 0000000000000000</action>
            <action> slave.mq@7F40 = 0000000000000000</action>
            <action> slave.mq@7F48 = 0000000000000000</action>
            <action> slave.mq@7F50 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
  • "no hit" : Fixed "player bullet vs background" problem.
  • "player speed" : Rewritten routine. Reduced size.
  • "sound test mode" : Rewritten routine.
jman

my wip cheat database back-up (2024/09/06 ver.)
https://u11.getuploader.com/uploader/download/1589
Post Reply