[polluxn] Pollux

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: 843
Joined: Tue Dec 01, 2020 1:24 pm

[polluxn] Pollux

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <!-- enemy -->
        <action>maincpu.mb@5051 =               d7</action>
        <action>maincpu.mq@0010 = 2040fe50e6097efd</action>
        <action>maincpu.mq@0018 = ffffffc9afc97902</action>
        <!--
        5051 | d7       : rst $10
        0010 | fd 7e 09 : ld  a,(iy+$09)
        0013 | e6 50    : and $50
        0015 | fe 40    : cp  $40
        0017 | 20 02    : jr  nz,$001b
        0019 | 79       : ld  a,c
        001A | c9       : ret
        001B | af       : xor a
        001C | c9       : ret
        -->
        <!-- bullet -->
        <action>maincpu.mb@50b0 = c3</action>
    </script>
    <script state="off">
        <action>maincpu.mb@5051 =               79</action>
        <action>maincpu.mq@0010 = 2040fe50e6097efd</action>
        <action>maincpu.mq@0018 = ffffffc9afc97902</action>
        <action>maincpu.mb@50b0 =               c3</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@3e5a = 5c</action>
        <action>maincpu.mb@3e69 = 6b</action>
    </script>
    <script state="off">
        <action>maincpu.mb@3e5a = c7</action>
        <action>maincpu.mb@3e69 = c7</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter min="0x01" max="0x08" step="0x01" />
    <script state="on">
        <action>maincpu.md@3ee5 = dd00001e</action> <!-- right -->
        <action>maincpu.md@3ef8 = dd00001e</action> <!-- left -->
        <action>maincpu.md@3f11 = dd000016</action> <!-- down -->
        <action>maincpu.md@3f2e = dd000016</action> <!-- up -->
        <action>maincpu.md@3f49 = dd00001e</action> <!-- lower-right : right -->
        <action>maincpu.md@3f56 = dd000016</action> <!-- lower-right : down -->
        <action>maincpu.md@3f71 = dd00001e</action> <!-- lower-left : left -->
        <action>maincpu.md@3f7e = dd000016</action> <!-- lower-left : down -->
        <action>maincpu.md@3f99 = dd00001e</action> <!-- upper-right : right -->
        <action>maincpu.md@3fa6 = dd000016</action> <!-- upper-right : up -->
        <action>maincpu.md@3fc1 = dd00001e</action> <!-- upper-left : left -->
        <action>maincpu.md@3fce = dd000016</action> <!-- upper-left : up -->
    </script>
    <script state="change">
        <action>maincpu.mb@3ee6 =  param</action>
        <action>maincpu.mb@3ef9 = -param</action>
        <action>maincpu.mb@3f12 = -param</action>
        <action>maincpu.mb@3f2f =  param</action>
        <action>maincpu.mb@3f4a =  param</action>
        <action>maincpu.mb@3f57 = -param</action>
        <action>maincpu.mb@3f72 = -param</action>
        <action>maincpu.mb@3f7f = -param</action>
        <action>maincpu.mb@3f9a =  param</action>
        <action>maincpu.mb@3fa7 =  param</action>
        <action>maincpu.mb@3fc2 = -param</action>
        <action>maincpu.mb@3fcf =  param</action>
    </script>
    <script state="off">
        <action>maincpu.md@3ee5 = dd005efd</action>
        <action>maincpu.md@3ef8 = dd015efd</action>
        <action>maincpu.md@3f11 = dd0156fd</action>
        <action>maincpu.md@3f2e = dd0056fd</action>
        <action>maincpu.md@3f49 = dd005efd</action>
        <action>maincpu.md@3f56 = dd0156fd</action>
        <action>maincpu.md@3f71 = dd015efd</action>
        <action>maincpu.md@3f7e = dd0156fd</action>
        <action>maincpu.md@3f99 = dd005efd</action>
        <action>maincpu.md@3fa6 = dd0056fd</action>
        <action>maincpu.md@3fc1 = dd015efd</action>
        <action>maincpu.md@3fce = dd0056fd</action>
    </script>
</cheat>

<cheat desc="bullet speed - normal shot">
    <parameter>
        <item value="0x09">01 (slow)</item>
        <item value="0x12">02       </item>
        <item value="0x1b">03       </item>
        <item value="0x24">04       </item>
        <item value="0x2d">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@4614 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mb@4614 = 12</action>
    </script>
</cheat>

<cheat desc="bullet speed - multiway">
    <parameter>
        <item value="0x0a">01 (slow)</item>
        <item value="0x14">02       </item>
        <item value="0x1e">03       </item>
        <item value="0x28">04       </item>
        <item value="0x32">05 (fast)</item>
    </parameter>
    <script state="change">
        <!-- shot power level 1 -->
        <action>maincpu.mb@4321 = param</action>
        <!-- shot power level 2 -->
        <action>maincpu.mb@4325 = param</action>
        <action>maincpu.mb@4329 = param</action>
        <!-- shot power level 3 -->
        <action>maincpu.mb@432d = param</action>
        <action>maincpu.mb@4331 = param</action>
        <action>maincpu.mb@4335 = param</action>
        <!-- shot power level 4 -->
        <action>maincpu.mb@4339 = param</action>
        <action>maincpu.mb@433d = param</action>
        <action>maincpu.mb@4341 = param</action>
        <action>maincpu.mb@4345 = param</action>
        <!-- shot power level 5 -->
        <action>maincpu.mb@4349 = param</action>
        <action>maincpu.mb@434d = param</action>
        <action>maincpu.mb@4351 = param</action>
        <action>maincpu.mb@4355 = param</action>
        <action>maincpu.mb@4359 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mb@4321 = 14</action>
        <action>maincpu.mb@4325 = 14</action>
        <action>maincpu.mb@4329 = 14</action>
        <action>maincpu.mb@432d = 10</action>
        <action>maincpu.mb@4331 = 14</action>
        <action>maincpu.mb@4335 = 10</action>
        <action>maincpu.mb@4339 = 0f</action>
        <action>maincpu.mb@433d = 11</action>
        <action>maincpu.mb@4341 = 11</action>
        <action>maincpu.mb@4345 = 0f</action>
        <action>maincpu.mb@4349 = 0e</action>
        <action>maincpu.mb@434d = 10</action>
        <action>maincpu.mb@4351 = 14</action>
        <action>maincpu.mb@4355 = 10</action>
        <action>maincpu.mb@4359 = 0e</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@0c5b = 203ac10022200021</action>
        <action>maincpu.mq@0c63 = 2002fef6286fbdc0</action>
        <action>maincpu.mq@0c6b = fe24012001fe2501</action>
        <action>maincpu.mq@0c73 = 20fe06187c032010</action>
        <action>maincpu.mq@0c7b = 181a2acd003e0520</action>
        <action>maincpu.mq@0c83 = c3fbc59032ff3eda</action>
        <!--
        0c5b | 21 00 20 : ld   hl,$2000   // initialize sound and input values
        0c5e | 22 00 c1 : ld   ($c100),hl
        0c61 | 3a 20 c0 : ld   a,($c020)  // read input
        0c64 | bd       : cp   l
        0c65 | 6f       : ld   l,a
        0c66 | 28 f6    : jr   z,$c5e
        0c68 | fe 02    : cp   $02
        0c6a | 20 01    : jr   nz,$c6d
        0c6c | 25       : dec  h          // decrease code
        0c6d | fe 01    : cp   $01
        0c6f | 20 01    : jr   nz,$c72
        0c71 | 24       : inc  h          // increase code
        0c72 | fe 10    : cp   $10
        0c74 | 20 03    : jr   nz,$c79
        0c76 | 7c       : ld   a,h        // play sound
        0c77 | 18 06    : jr   $c7f
        0c79 | fe 20    : cp   $20
        0c7b | 20 05    : jr   nz,$c82
        0c7d | 3e 00    : ld   a,$00      // stop sound
        0c7f | cd 2a 1a : call $1a2a      // send sound code
        0c82 | 18 da    : jr   $c5e
        -->
    </script>
    <script state="run">
        <output format="----- pollux sound test mode -----"  line="10" align="center" />
        <output format="left : decrease code"                line="11" align="center" />
        <output format="right : increase code"               line="12" align="center" />
        <output format="button 1 : play sound"               line="13" align="center" />
        <output format="button 2 : stop sound"               line="14" align="center" />
        <output format="----------------------------"        line="15" align="center" />
        <output format="&lt;&lt; sound code %2.2X &gt;&gt;"  line="17" align="center">
            <argument>maincpu.pb@c101</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mq@0c5b = 9acdcf40311da8c3</action>
        <action>maincpu.mq@0c63 = 003af00032033e21</action>
        <action>maincpu.mq@0c6b = 023ead00ca47cbf0</action>
        <action>maincpu.mq@0c73 = f9cd18a4cdf00032</action>
        <action>maincpu.mq@0c7b = 2632013e2307cd22</action>
        <action>maincpu.mq@0c83 = c3fbc59032ff3ec1</action>
    </script>
</cheat>
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[polluxn] Pollux (update)

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <!-- enemy -->
        <action>maincpu.mb@5051 =               d7</action>
        <action>maincpu.mq@0010 = 7940fe50e6097efd</action>
        <action>maincpu.mq@0018 = ffffffffffc9afc8</action>
        <!--
        5051 | d7       : rst $10
        ================================
        0010 | fd 7e 09 : ld  a,(iy+$09)
        0013 | e6 50    : and $50
        0015 | fe 40    : cp  $40
        0017 | 79       : ld  a,c
        0018 | c8       : ret z
        0019 | af       : xor a
        001a | c9       : ret
        -->
        <action>maincpu.mb@50b0 = c3</action> <!-- bullet -->
    </script>
    <script state="off">
        <action>maincpu.mb@5051 =               79</action>
        <action>maincpu.mq@0010 = ffffffffffffffff</action>
        <action>maincpu.mq@0018 = ffffffffffffffff</action>
        <action>maincpu.mb@50b0 =               ca</action>
    </script>
</cheat>
"no hit" : rewrite routine.

Code: Select all

<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>maincpu.md@3ee5 = dd00001e</action> <!-- right -->
        <action>maincpu.md@3ef8 = dd00001e</action> <!-- left -->
        <action>maincpu.md@3f11 = dd000016</action> <!-- down -->
        <action>maincpu.md@3f2e = dd000016</action> <!-- up -->
        <action>maincpu.md@3f49 = dd00001e</action> <!-- lower-right : right -->
        <action>maincpu.md@3f56 = dd000016</action> <!-- lower-right : down -->
        <action>maincpu.md@3f71 = dd00001e</action> <!-- lower-left : left -->
        <action>maincpu.md@3f7e = dd000016</action> <!-- lower-left : down -->
        <action>maincpu.md@3f99 = dd00001e</action> <!-- upper-right : right -->
        <action>maincpu.md@3fa6 = dd000016</action> <!-- upper-right : up -->
        <action>maincpu.md@3fc1 = dd00001e</action> <!-- upper-left : left -->
        <action>maincpu.md@3fce = dd000016</action> <!-- upper-left : up -->
    </script>
    <script state="change">
        <action>maincpu.mb@3ee6 =  param</action>
        <action>maincpu.mb@3ef9 = -param</action>
        <action>maincpu.mb@3f12 = -param</action>
        <action>maincpu.mb@3f2f =  param</action>
        <action>maincpu.mb@3f4a =  param</action>
        <action>maincpu.mb@3f57 = -param</action>
        <action>maincpu.mb@3f72 = -param</action>
        <action>maincpu.mb@3f7f = -param</action>
        <action>maincpu.mb@3f9a =  param</action>
        <action>maincpu.mb@3fa7 =  param</action>
        <action>maincpu.mb@3fc2 = -param</action>
        <action>maincpu.mb@3fcf =  param</action>
    </script>
    <script state="off">
        <action>maincpu.md@3ee5 = dd005efd</action>
        <action>maincpu.md@3ef8 = dd015efd</action>
        <action>maincpu.md@3f11 = dd0156fd</action>
        <action>maincpu.md@3f2e = dd0056fd</action>
        <action>maincpu.md@3f49 = dd005efd</action>
        <action>maincpu.md@3f56 = dd0156fd</action>
        <action>maincpu.md@3f71 = dd015efd</action>
        <action>maincpu.md@3f7e = dd0156fd</action>
        <action>maincpu.md@3f99 = dd005efd</action>
        <action>maincpu.md@3fa6 = dd0056fd</action>
        <action>maincpu.md@3fc1 = dd015efd</action>
        <action>maincpu.md@3fce = dd0056fd</action>
    </script>
</cheat>
"player speed" : change parameter from values to items.

Code: Select all

<cheat desc="short hit mark">
    <script state="on">
        <action>maincpu.mb@46f3 = c3</action>
    </script>
    <script state="off">
        <action>maincpu.mb@46f3 = ca</action>
    </script>
</cheat>
"short hit mark" : add new.

Code: Select all

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mq@0c5b = 47b8f0023ac20021</action>
        <action>maincpu.mq@0c63 = fe350120fdfef928</action>
        <action>maincpu.mq@0c6b = 0420fbfe340120fe</action>
        <action>maincpu.mq@0c73 = 0520f7fe0618f03e</action>
        <action>maincpu.mq@0c7b = 20effe787786103e</action>
        <action>maincpu.mq@0c83 = 0420dffe05187e03</action>
        <action>maincpu.mq@0c8b = 0bb8cd18f01032af</action>
        <!--
        0c5b | 21 00 c2 : ld  hl,$C200  // sound code address
        0c5e | 3a 02 f0 : ld  a,($F002) // read input
        0c61 | b8       : cp  b
        0c62 | 47       : ld  b,a
        0c63 | 28 f9    : jr  z,$0C5E
        0c65 | fe fd    : cp  $FD
        0c67 | 20 01    : jr  nz,$0C6A
        0c69 | 35       : dec (hl)      // decrease code -01
        0c6a | fe fe    : cp  $FE
        0c6c | 20 01    : jr  nz,$0C6F
        0c6e | 34       : inc (hl)      // increase code +01
        0c6f | fe fb    : cp  $FB
        0c71 | 20 04    : jr  nz,$0C77
        0c73 | 3e f0    : ld  a,$F0     // decrease code -10
        0c75 | 18 06    : jr  $0C7D
        0c77 | fe f7    : cp  $F7
        0c79 | 20 05    : jr  nz,$0C80
        0c7b | 3e 10    : ld  a,$10     // increase code +10
        0c7d | 86       : add a,(hl)
        0c7e | 77       : ld  (hl),a
        0c7f | 78       : ld  a,b
        0c80 | fe ef    : cp  $EF
        0c82 | 20 03    : jr  nz,$0C87
        0c84 | 7e       : ld  a,(hl)    // play sound
        0c85 | 18 05    : jr  $0C8C
        0c87 | fe df    : cp  $DF
        0c89 | 20 04    : jr  nz,$0C8F
        0c8b | af       : xor a         // stop sound
        0c8c | 32 10 f0 : ld  ($F010),a // send sound code
        0c8f | 18 cd    : jr  $0C5E
        -->
    </script>
    <script state="run">
        <output format="----- pollux 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 %2.2X &gt;&gt;" line="19" align="center"  >
            <argument>maincpu.pb@c200</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mq@0c5b = 9acdcf40311da8c3</action>
        <action>maincpu.mq@0c63 = 003af00032033e21</action>
        <action>maincpu.mq@0c6b = 023ead00ca47cbf0</action>
        <action>maincpu.mq@0c73 = f9cd18a4cdf00032</action>
        <action>maincpu.mq@0c7b = 2632013e2307cd22</action>
        <action>maincpu.mq@0c83 = c3fbc59032ff3ec1</action>
        <action>maincpu.mq@0c8b = 0bb8138813881da8</action>
    </script>
</cheat>
"sound test mode" : rewrite routine. add up/down key (code ±10).
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[pollux]+ Pollux

Post by jman »

pollux.xml

Code: Select all

<!-- Pollux (set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- enemy -->
            <action>maincpu.mb@5044 = D7              </action>
            <action>maincpu.mq@0010 = 7940FE50E6097EFD</action>
            <action>maincpu.mq@0018 = FFFFFFFFFFC9AFC8</action>
            <!--
            0010 | FD 7E 09 : ld   a,(iy+$09)
            0013 | E6 50    : and  $50
            0015 | FE 40    : cp   $40
            0017 | 79       : ld   a,c
            0018 | C8       : ret  z
            0019 | AF       : xor  a
            001A | C9       : ret
            -->
            <action>maincpu.mb@50A3 = C3</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@5044 = 79              </action>
            <action>maincpu.mq@0010 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0018 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@50A3 = CA              </action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@3E4D = 4F</action>
            <action>maincpu.mb@3E5C = 5E</action>
        </script>
        <script state="off">
            <action>maincpu.mb@3E4D = BA</action>
            <action>maincpu.mb@3E5C = BA</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>maincpu.md@3ED8 = DD00001E</action> <!-- right -->
            <action>maincpu.md@3EEB = DD00001E</action> <!-- left -->
            <action>maincpu.md@3F04 = DD000016</action> <!-- down -->
            <action>maincpu.md@3F21 = DD000016</action> <!-- up -->
            <action>maincpu.md@3F3C = DD00001E</action> <!-- lower-right : right -->
            <action>maincpu.md@3F49 = DD000016</action> <!-- lower-right : down -->
            <action>maincpu.md@3F64 = DD00001E</action> <!-- lower-left : left -->
            <action>maincpu.md@3F71 = DD000016</action> <!-- lower-left : down -->
            <action>maincpu.md@3F8C = DD00001E</action> <!-- upper-right : right -->
            <action>maincpu.md@3F99 = DD000016</action> <!-- upper-right : up -->
            <action>maincpu.md@3FB4 = DD00001E</action> <!-- upper-left : left -->
            <action>maincpu.md@3FC1 = DD000016</action> <!-- upper-left : up -->
        </script>
        <script state="change">
            <action>maincpu.mb@3ED9 =  param</action>
            <action>maincpu.mb@3EEC = -param</action>
            <action>maincpu.mb@3F05 = -param</action>
            <action>maincpu.mb@3F22 =  param</action>
            <action>maincpu.mb@3F3D =  param</action>
            <action>maincpu.mb@3F4A = -param</action>
            <action>maincpu.mb@3F65 = -param</action>
            <action>maincpu.mb@3F72 = -param</action>
            <action>maincpu.mb@3F8D =  param</action>
            <action>maincpu.mb@3F9A =  param</action>
            <action>maincpu.mb@3FB5 = -param</action>
            <action>maincpu.mb@3FC2 =  param</action>
        </script>
        <script state="off">
            <action>maincpu.md@3ED8 = DD005EFD</action>
            <action>maincpu.md@3EEB = DD015EFD</action>
            <action>maincpu.md@3F04 = DD0156FD</action>
            <action>maincpu.md@3F21 = DD0056FD</action>
            <action>maincpu.md@3F3C = DD005EFD</action>
            <action>maincpu.md@3F49 = DD0156FD</action>
            <action>maincpu.md@3F64 = DD015EFD</action>
            <action>maincpu.md@3F71 = DD0156FD</action>
            <action>maincpu.md@3F8C = DD005EFD</action>
            <action>maincpu.md@3F99 = DD0056FD</action>
            <action>maincpu.md@3FB4 = DD015EFD</action>
            <action>maincpu.md@3FC1 = DD0056FD</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - normal shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x10">02       </item>
            <item value="0x18">03       </item>
            <item value="0x20">04       </item>
            <item value="0x28">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@4607 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@4607 = 12</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - multiway">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x10">02       </item>
            <item value="0x18">03       </item>
            <item value="0x20">04       </item>
            <item value="0x28">05 (fast)</item>
        </parameter>
        <script state="change">
            <!-- shot level 1 -->
            <action>maincpu.mb@4314 = param</action>
            <!-- shot level 2 -->
            <action>maincpu.mb@4318 = param</action>
            <action>maincpu.mb@431C = param</action>
            <!-- shot level 3 -->
            <action>maincpu.mb@4320 = param</action>
            <action>maincpu.mb@4324 = param</action>
            <action>maincpu.mb@4328 = param</action>
            <!-- shot level 4 -->
            <action>maincpu.mb@432C = param</action>
            <action>maincpu.mb@4330 = param</action>
            <action>maincpu.mb@4334 = param</action>
            <action>maincpu.mb@4338 = param</action>
            <!-- shot level 5 -->
            <action>maincpu.mb@433C = param</action>
            <action>maincpu.mb@4340 = param</action>
            <action>maincpu.mb@4344 = param</action>
            <action>maincpu.mb@4348 = param</action>
            <action>maincpu.mb@434C = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@4314 = 14</action>
            <action>maincpu.mb@4318 = 14</action>
            <action>maincpu.mb@431C = 14</action>
            <action>maincpu.mb@4320 = 10</action>
            <action>maincpu.mb@4324 = 14</action>
            <action>maincpu.mb@4328 = 10</action>
            <action>maincpu.mb@432C = 0F</action>
            <action>maincpu.mb@4330 = 11</action>
            <action>maincpu.mb@4334 = 11</action>
            <action>maincpu.mb@4338 = 0F</action>
            <action>maincpu.mb@433C = 0E</action>
            <action>maincpu.mb@4340 = 10</action>
            <action>maincpu.mb@4344 = 14</action>
            <action>maincpu.mb@4348 = 10</action>
            <action>maincpu.mb@434C = 0E</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <action>maincpu.mb@46E6 = C3</action>
        </script>
        <script state="off">
            <action>maincpu.mb@46E6 = CA</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@1BA1 = 03              </action> <!-- fix bank -->
            <action>maincpu.mq@0C48 = B500C3F00032033E</action>
            <action>maincpu.mq@F500 = 47B8F0023AC00021</action>
            <action>maincpu.mq@F508 = FE350120FDFEF928</action>
            <action>maincpu.mq@F510 = 0420FBFE340120FE</action>
            <action>maincpu.mq@F518 = 0520F7FE0618F03E</action>
            <action>maincpu.mq@F520 = 20EFFE787786103E</action>
            <action>maincpu.mq@F528 = 0420DFFE05187E03</action>
            <action>maincpu.mq@F530 = FFFFCD18F01032AF</action>
            <!--
            0C48 | 3E 03    : ld   a,$03     // set bank
            0C4A | 32 00 F0 : ld   ($F000),a
            0C4D | C3 00 B5 : jp   $B500
            ================================
            B500 | 21 00 C0 : ld   hl,$C000  // sound code address
            B503 | 3A 02 F0 : ld   a,($F002) // read input
            B506 | B8       : cp   b
            B507 | 47       : ld   b,a
            B508 | 28 F9    : jr   z,$B503
            B50A | FE FD    : cp   $FD
            B50C | 20 01    : jr   nz,$B50F
            B50E | 35       : dec  (hl)      // decrease code -01
            B50F | FE FE    : cp   $FE
            B511 | 20 01    : jr   nz,$B514
            B513 | 34       : inc  (hl)      // increase code +01
            B514 | FE FB    : cp   $FB
            B516 | 20 04    : jr   nz,$B51C
            B518 | 3E F0    : ld   a,$F0     // decrease code -10
            B51A | 18 06    : jr   $B522
            B51C | FE F7    : cp   $F7
            B51E | 20 05    : jr   nz,$B525
            B520 | 3E 10    : ld   a,$10     // increase code +10
            B522 | 86       : add  a,(hl)
            B523 | 77       : ld   (hl),a
            B524 | 78       : ld   a,b
            B525 | FE EF    : cp   $EF
            B527 | 20 03    : jr   nz,$B52C
            B529 | 7E       : ld   a,(hl)    // play sound
            B52A | 18 05    : jr   $B531
            B52C | FE DF    : cp   $DF
            B52E | 20 04    : jr   nz,$B534
            B530 | AF       : xor  a         // stop sound
            B531 | 32 10 F0 : ld   ($F010),a // send sound code
            B534 | 18 CD    : jr   $B503
            -->
        </script>
        <script state="run">
            <output format="----- pollux 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>maincpu.pb@C000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@1BA1 = 02              </action>
            <action>maincpu.mq@0C48 = 7FCDCF40311D8DC3</action>
            <action>maincpu.mq@F500 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F508 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F510 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F518 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F520 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F528 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F530 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
polluxa.xml

Code: Select all

<!-- Pollux (set 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- enemy -->
            <action>maincpu.mb@500A = D7              </action>
            <action>maincpu.mq@0010 = 7940FE50E6097EFD</action>
            <action>maincpu.mq@0018 = FFFFFFFFFFC9AFC8</action>
            <!--
            0010 | FD 7E 09 : ld   a,(iy+$09)
            0013 | E6 50    : and  $50
            0015 | FE 40    : cp   $40
            0017 | 79       : ld   a,c
            0018 | C8       : ret  z
            0019 | AF       : xor  a
            001A | C9       : ret
            -->
            <action>maincpu.mb@5069 = C3</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@500A = 79              </action>
            <action>maincpu.mq@0010 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0018 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@5069 = CA              </action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@3E3F = 41</action>
            <action>maincpu.mb@3E4E = 50</action>
        </script>
        <script state="off">
            <action>maincpu.mb@3E3F = AC</action>
            <action>maincpu.mb@3E4E = AC</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>maincpu.md@3ECA = DD00001E</action> <!-- right -->
            <action>maincpu.md@3EDD = DD00001E</action> <!-- left -->
            <action>maincpu.md@3EF6 = DD000016</action> <!-- down -->
            <action>maincpu.md@3F13 = DD000016</action> <!-- up -->
            <action>maincpu.md@3F2E = DD00001E</action> <!-- lower-right : right -->
            <action>maincpu.md@3F3B = DD000016</action> <!-- lower-right : down -->
            <action>maincpu.md@3F56 = DD00001E</action> <!-- lower-left : left -->
            <action>maincpu.md@3F63 = DD000016</action> <!-- lower-left : down -->
            <action>maincpu.md@3F7E = DD00001E</action> <!-- upper-right : right -->
            <action>maincpu.md@3F8B = DD000016</action> <!-- upper-right : up -->
            <action>maincpu.md@3FA6 = DD00001E</action> <!-- upper-left : left -->
            <action>maincpu.md@3FB3 = DD000016</action> <!-- upper-left : up -->
        </script>
        <script state="change">
            <action>maincpu.mb@3ECB =  param</action>
            <action>maincpu.mb@3EDE = -param</action>
            <action>maincpu.mb@3EF7 = -param</action>
            <action>maincpu.mb@3F14 =  param</action>
            <action>maincpu.mb@3F2F =  param</action>
            <action>maincpu.mb@3F3C = -param</action>
            <action>maincpu.mb@3F57 = -param</action>
            <action>maincpu.mb@3F64 = -param</action>
            <action>maincpu.mb@3F7F =  param</action>
            <action>maincpu.mb@3F8C =  param</action>
            <action>maincpu.mb@3FA7 = -param</action>
            <action>maincpu.mb@3FB4 =  param</action>
        </script>
        <script state="off">
            <action>maincpu.md@3ECA = DD005EFD</action>
            <action>maincpu.md@3EDD = DD015EFD</action>
            <action>maincpu.md@3EF6 = DD0156FD</action>
            <action>maincpu.md@3F13 = DD0056FD</action>
            <action>maincpu.md@3F2E = DD005EFD</action>
            <action>maincpu.md@3F3B = DD0156FD</action>
            <action>maincpu.md@3F56 = DD015EFD</action>
            <action>maincpu.md@3F63 = DD0156FD</action>
            <action>maincpu.md@3F7E = DD005EFD</action>
            <action>maincpu.md@3F8B = DD0056FD</action>
            <action>maincpu.md@3FA6 = DD015EFD</action>
            <action>maincpu.md@3FB3 = DD0056FD</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - normal shot">
        <parameter>
            <item value="0x09">01 (slow)</item>
            <item value="0x12">02       </item>
            <item value="0x1b">03       </item>
            <item value="0x24">04       </item>
            <item value="0x2d">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@45F9 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@45F9 = 12</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - multiway">
        <parameter>
            <item value="0x0a">01 (slow)</item>
            <item value="0x14">02       </item>
            <item value="0x1e">03       </item>
            <item value="0x28">04       </item>
            <item value="0x32">05 (fast)</item>
        </parameter>
        <script state="change">
            <!-- shot level 1 -->
            <action>maincpu.mb@4306 = param</action>
            <!-- shot level 2 -->
            <action>maincpu.mb@430A = param</action>
            <action>maincpu.mb@430E = param</action>
            <!-- shot level 3 -->
            <action>maincpu.mb@4312 = param</action>
            <action>maincpu.mb@4316 = param</action>
            <action>maincpu.mb@431A = param</action>
            <!-- shot level 4 -->
            <action>maincpu.mb@431E = param</action>
            <action>maincpu.mb@4322 = param</action>
            <action>maincpu.mb@4326 = param</action>
            <action>maincpu.mb@432A = param</action>
            <!-- shot level 5 -->
            <action>maincpu.mb@432E = param</action>
            <action>maincpu.mb@4332 = param</action>
            <action>maincpu.mb@4336 = param</action>
            <action>maincpu.mb@433A = param</action>
            <action>maincpu.mb@433E = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@4306 = 14</action>
            <action>maincpu.mb@430A = 14</action>
            <action>maincpu.mb@430E = 14</action>
            <action>maincpu.mb@4312 = 10</action>
            <action>maincpu.mb@4316 = 14</action>
            <action>maincpu.mb@431A = 10</action>
            <action>maincpu.mb@431E = 0F</action>
            <action>maincpu.mb@4322 = 11</action>
            <action>maincpu.mb@4326 = 11</action>
            <action>maincpu.mb@432A = 0F</action>
            <action>maincpu.mb@432E = 0E</action>
            <action>maincpu.mb@4332 = 10</action>
            <action>maincpu.mb@4336 = 14</action>
            <action>maincpu.mb@433A = 10</action>
            <action>maincpu.mb@433E = 0E</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <action>maincpu.mb@46D8 = C3</action>
        </script>
        <script state="off">
            <action>maincpu.mb@46D8 = CA</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@1BA1 = 03              </action> <!-- fix bank -->
            <action>maincpu.mq@0C48 = B500C3F00032033E</action>
            <action>maincpu.mq@F500 = 47B8F0023AC00021</action>
            <action>maincpu.mq@F508 = FE350120FDFEF928</action>
            <action>maincpu.mq@F510 = 0420FBFE340120FE</action>
            <action>maincpu.mq@F518 = 0520F7FE0618F03E</action>
            <action>maincpu.mq@F520 = 20EFFE787786103E</action>
            <action>maincpu.mq@F528 = 0420DFFE05187E03</action>
            <action>maincpu.mq@F530 = FFFFCD18F01032AF</action>
            <!--
            0C48 | 3E 03    : ld   a,$03     // set bank
            0C4A | 32 00 F0 : ld   ($F000),a
            0C4D | C3 00 B5 : jp   $B500
            ================================
            B500 | 21 00 C0 : ld   hl,$C000  // sound code address
            B503 | 3A 02 F0 : ld   a,($F002) // read input
            B506 | B8       : cp   b
            B507 | 47       : ld   b,a
            B508 | 28 F9    : jr   z,$B503
            B50A | FE FD    : cp   $FD
            B50C | 20 01    : jr   nz,$B50F
            B50E | 35       : dec  (hl)      // decrease code -01
            B50F | FE FE    : cp   $FE
            B511 | 20 01    : jr   nz,$B514
            B513 | 34       : inc  (hl)      // increase code +01
            B514 | FE FB    : cp   $FB
            B516 | 20 04    : jr   nz,$B51C
            B518 | 3E F0    : ld   a,$F0     // decrease code -10
            B51A | 18 06    : jr   $B522
            B51C | FE F7    : cp   $F7
            B51E | 20 05    : jr   nz,$B525
            B520 | 3E 10    : ld   a,$10     // increase code +10
            B522 | 86       : add  a,(hl)
            B523 | 77       : ld   (hl),a
            B524 | 78       : ld   a,b
            B525 | FE EF    : cp   $EF
            B527 | 20 03    : jr   nz,$B52C
            B529 | 7E       : ld   a,(hl)    // play sound
            B52A | 18 05    : jr   $B531
            B52C | FE DF    : cp   $DF
            B52E | 20 04    : jr   nz,$B534
            B530 | AF       : xor  a         // stop sound
            B531 | 32 10 F0 : ld   ($F010),a // send sound code
            B534 | 18 CD    : jr   $B503
            -->
        </script>
        <script state="run">
            <output format="----- pollux 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>maincpu.pb@C000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@1BA1 = 02              </action>
            <action>maincpu.mq@0C48 = 7FCDCF40311D8DC3</action>
            <action>maincpu.mq@F500 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F508 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F510 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F518 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F520 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F528 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F530 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
polluxa2.xml

Code: Select all

<!-- Pollux (set 3) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- enemy -->
            <action>maincpu.mb@5044 = D7              </action>
            <action>maincpu.mq@0010 = 7940FE50E6097EFD</action>
            <action>maincpu.mq@0018 = FFFFFFFFFFC9AFC8</action>
            <!--
            0010 | FD 7E 09 : ld   a,(iy+$09)
            0013 | E6 50    : and  $50
            0015 | FE 40    : cp   $40
            0017 | 79       : ld   a,c
            0018 | C8       : ret  z
            0019 | AF       : xor  a
            001A | C9       : ret
            -->
            <action>maincpu.mb@50A3 = C3</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@5044 = 79              </action>
            <action>maincpu.mq@0010 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0018 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@50A3 = CA              </action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@3E4D = 4F</action>
            <action>maincpu.mb@3E5C = 5E</action>
        </script>
        <script state="off">
            <action>maincpu.mb@3E4D = BA</action>
            <action>maincpu.mb@3E5C = BA</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>maincpu.md@3ED8 = DD00001E</action> <!-- right -->
            <action>maincpu.md@3EEB = DD00001E</action> <!-- left -->
            <action>maincpu.md@3F04 = DD000016</action> <!-- down -->
            <action>maincpu.md@3F21 = DD000016</action> <!-- up -->
            <action>maincpu.md@3F3C = DD00001E</action> <!-- lower-right : right -->
            <action>maincpu.md@3F49 = DD000016</action> <!-- lower-right : down -->
            <action>maincpu.md@3F64 = DD00001E</action> <!-- lower-left : left -->
            <action>maincpu.md@3F71 = DD000016</action> <!-- lower-left : down -->
            <action>maincpu.md@3F8C = DD00001E</action> <!-- upper-right : right -->
            <action>maincpu.md@3F99 = DD000016</action> <!-- upper-right : up -->
            <action>maincpu.md@3FB4 = DD00001E</action> <!-- upper-left : left -->
            <action>maincpu.md@3FC1 = DD000016</action> <!-- upper-left : up -->
        </script>
        <script state="change">
            <action>maincpu.mb@3ED9 =  param</action>
            <action>maincpu.mb@3EEC = -param</action>
            <action>maincpu.mb@3F05 = -param</action>
            <action>maincpu.mb@3F22 =  param</action>
            <action>maincpu.mb@3F3D =  param</action>
            <action>maincpu.mb@3F4A = -param</action>
            <action>maincpu.mb@3F65 = -param</action>
            <action>maincpu.mb@3F72 = -param</action>
            <action>maincpu.mb@3F8D =  param</action>
            <action>maincpu.mb@3F9A =  param</action>
            <action>maincpu.mb@3FB5 = -param</action>
            <action>maincpu.mb@3FC2 =  param</action>
        </script>
        <script state="off">
            <action>maincpu.md@3ED8 = DD005EFD</action>
            <action>maincpu.md@3EEB = DD015EFD</action>
            <action>maincpu.md@3F04 = DD0156FD</action>
            <action>maincpu.md@3F21 = DD0056FD</action>
            <action>maincpu.md@3F3C = DD005EFD</action>
            <action>maincpu.md@3F49 = DD0156FD</action>
            <action>maincpu.md@3F64 = DD015EFD</action>
            <action>maincpu.md@3F71 = DD0156FD</action>
            <action>maincpu.md@3F8C = DD005EFD</action>
            <action>maincpu.md@3F99 = DD0056FD</action>
            <action>maincpu.md@3FB4 = DD015EFD</action>
            <action>maincpu.md@3FC1 = DD0056FD</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - normal shot">
        <parameter>
            <item value="0x09">01 (slow)</item>
            <item value="0x12">02       </item>
            <item value="0x1b">03       </item>
            <item value="0x24">04       </item>
            <item value="0x2d">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@4607 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@4607 = 12</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - multiway">
        <parameter>
            <item value="0x0a">01 (slow)</item>
            <item value="0x14">02       </item>
            <item value="0x1e">03       </item>
            <item value="0x28">04       </item>
            <item value="0x32">05 (fast)</item>
        </parameter>
        <script state="change">
            <!-- shot level 1 -->
            <action>maincpu.mb@4314 = param</action>
            <!-- shot level 2 -->
            <action>maincpu.mb@4318 = param</action>
            <action>maincpu.mb@431C = param</action>
            <!-- shot level 3 -->
            <action>maincpu.mb@4320 = param</action>
            <action>maincpu.mb@4324 = param</action>
            <action>maincpu.mb@4328 = param</action>
            <!-- shot level 4 -->
            <action>maincpu.mb@432C = param</action>
            <action>maincpu.mb@4330 = param</action>
            <action>maincpu.mb@4334 = param</action>
            <action>maincpu.mb@4338 = param</action>
            <!-- shot level 5 -->
            <action>maincpu.mb@433C = param</action>
            <action>maincpu.mb@4340 = param</action>
            <action>maincpu.mb@4344 = param</action>
            <action>maincpu.mb@4348 = param</action>
            <action>maincpu.mb@434C = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@4314 = 14</action>
            <action>maincpu.mb@4318 = 14</action>
            <action>maincpu.mb@431C = 14</action>
            <action>maincpu.mb@4320 = 10</action>
            <action>maincpu.mb@4324 = 14</action>
            <action>maincpu.mb@4328 = 10</action>
            <action>maincpu.mb@432C = 0F</action>
            <action>maincpu.mb@4330 = 11</action>
            <action>maincpu.mb@4334 = 11</action>
            <action>maincpu.mb@4338 = 0F</action>
            <action>maincpu.mb@433C = 0E</action>
            <action>maincpu.mb@4340 = 10</action>
            <action>maincpu.mb@4344 = 14</action>
            <action>maincpu.mb@4348 = 10</action>
            <action>maincpu.mb@434C = 0E</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <action>maincpu.mb@46E6 = C3</action>
        </script>
        <script state="off">
            <action>maincpu.mb@46E6 = CA</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@1BA1 = 03              </action> <!-- fix bank -->
            <action>maincpu.mq@0C48 = B500C3F00032033E</action>
            <action>maincpu.mq@F500 = 47B8F0023AC00021</action>
            <action>maincpu.mq@F508 = FE350120FDFEF928</action>
            <action>maincpu.mq@F510 = 0420FBFE340120FE</action>
            <action>maincpu.mq@F518 = 0520F7FE0618F03E</action>
            <action>maincpu.mq@F520 = 20EFFE787786103E</action>
            <action>maincpu.mq@F528 = 0420DFFE05187E03</action>
            <action>maincpu.mq@F530 = FFFFCD18F01032AF</action>
            <!--
            0C48 | 3E 03    : ld   a,$03     // set bank
            0C4A | 32 00 F0 : ld   ($F000),a
            0C4D | C3 00 B5 : jp   $B500
            ================================
            B500 | 21 00 C0 : ld   hl,$C000  // sound code address
            B503 | 3A 02 F0 : ld   a,($F002) // read input
            B506 | B8       : cp   b
            B507 | 47       : ld   b,a
            B508 | 28 F9    : jr   z,$B503
            B50A | FE FD    : cp   $FD
            B50C | 20 01    : jr   nz,$B50F
            B50E | 35       : dec  (hl)      // decrease code -01
            B50F | FE FE    : cp   $FE
            B511 | 20 01    : jr   nz,$B514
            B513 | 34       : inc  (hl)      // increase code +01
            B514 | FE FB    : cp   $FB
            B516 | 20 04    : jr   nz,$B51C
            B518 | 3E F0    : ld   a,$F0     // decrease code -10
            B51A | 18 06    : jr   $B522
            B51C | FE F7    : cp   $F7
            B51E | 20 05    : jr   nz,$B525
            B520 | 3E 10    : ld   a,$10     // increase code +10
            B522 | 86       : add  a,(hl)
            B523 | 77       : ld   (hl),a
            B524 | 78       : ld   a,b
            B525 | FE EF    : cp   $EF
            B527 | 20 03    : jr   nz,$B52C
            B529 | 7E       : ld   a,(hl)    // play sound
            B52A | 18 05    : jr   $B531
            B52C | FE DF    : cp   $DF
            B52E | 20 04    : jr   nz,$B534
            B530 | AF       : xor  a         // stop sound
            B531 | 32 10 F0 : ld   ($F010),a // send sound code
            B534 | 18 CD    : jr   $B503
            -->
        </script>
        <script state="run">
            <output format="----- pollux 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>maincpu.pb@C000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@1BA1 = 02              </action>
            <action>maincpu.mq@0C48 = 7FCDCF40311D8DC3</action>
            <action>maincpu.mq@F500 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F508 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F510 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F518 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F520 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F528 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F530 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
polluxn.xml

Code: Select all

<!-- Pollux (Japan, NTC license, distributed by Atlus) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- enemy -->
            <action>maincpu.mb@5051 = D7              </action>
            <action>maincpu.mq@0010 = 7940FE50E6097EFD</action>
            <action>maincpu.mq@0018 = FFFFFFFFFFC9AFC8</action>
            <!--
            0010 | FD 7E 09 : ld   a,(iy+$09)
            0013 | E6 50    : and  $50
            0015 | FE 40    : cp   $40
            0017 | 79       : ld   a,c
            0018 | C8       : ret  z
            0019 | AF       : xor  a
            001A | C9       : ret
            -->
            <action>maincpu.mb@50B0 = C3</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@5051 = 79              </action>
            <action>maincpu.mq@0010 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@0018 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@50B0 = CA              </action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@3E5A = 5C</action>
            <action>maincpu.mb@3E69 = 6B</action>
        </script>
        <script state="off">
            <action>maincpu.mb@3E5A = C7</action>
            <action>maincpu.mb@3E69 = C7</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>maincpu.md@3EE5 = DD00001E</action> <!-- right -->
            <action>maincpu.md@3EF8 = DD00001E</action> <!-- left -->
            <action>maincpu.md@3F11 = DD000016</action> <!-- down -->
            <action>maincpu.md@3F2E = DD000016</action> <!-- up -->
            <action>maincpu.md@3F49 = DD00001E</action> <!-- lower-right : right -->
            <action>maincpu.md@3F56 = DD000016</action> <!-- lower-right : down -->
            <action>maincpu.md@3F71 = DD00001E</action> <!-- lower-left : left -->
            <action>maincpu.md@3F7E = DD000016</action> <!-- lower-left : down -->
            <action>maincpu.md@3F99 = DD00001E</action> <!-- upper-right : right -->
            <action>maincpu.md@3FA6 = DD000016</action> <!-- upper-right : up -->
            <action>maincpu.md@3FC1 = DD00001E</action> <!-- upper-left : left -->
            <action>maincpu.md@3FCE = DD000016</action> <!-- upper-left : up -->
        </script>
        <script state="change">
            <action>maincpu.mb@3EE6 =  param</action>
            <action>maincpu.mb@3EF9 = -param</action>
            <action>maincpu.mb@3F12 = -param</action>
            <action>maincpu.mb@3F2F =  param</action>
            <action>maincpu.mb@3F4A =  param</action>
            <action>maincpu.mb@3F57 = -param</action>
            <action>maincpu.mb@3F72 = -param</action>
            <action>maincpu.mb@3F7F = -param</action>
            <action>maincpu.mb@3F9A =  param</action>
            <action>maincpu.mb@3FA7 =  param</action>
            <action>maincpu.mb@3FC2 = -param</action>
            <action>maincpu.mb@3FCF =  param</action>
        </script>
        <script state="off">
            <action>maincpu.md@3EE5 = DD005EFD</action>
            <action>maincpu.md@3EF8 = DD015EFD</action>
            <action>maincpu.md@3F11 = DD0156FD</action>
            <action>maincpu.md@3F2E = DD0056FD</action>
            <action>maincpu.md@3F49 = DD005EFD</action>
            <action>maincpu.md@3F56 = DD0156FD</action>
            <action>maincpu.md@3F71 = DD015EFD</action>
            <action>maincpu.md@3F7E = DD0156FD</action>
            <action>maincpu.md@3F99 = DD005EFD</action>
            <action>maincpu.md@3FA6 = DD0056FD</action>
            <action>maincpu.md@3FC1 = DD015EFD</action>
            <action>maincpu.md@3FCE = DD0056FD</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - normal shot">
        <parameter>
            <item value="0x09">01 (slow)</item>
            <item value="0x12">02       </item>
            <item value="0x1b">03       </item>
            <item value="0x24">04       </item>
            <item value="0x2d">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@4614 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@4614 = 12</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - multiway">
        <parameter>
            <item value="0x0a">01 (slow)</item>
            <item value="0x14">02       </item>
            <item value="0x1e">03       </item>
            <item value="0x28">04       </item>
            <item value="0x32">05 (fast)</item>
        </parameter>
        <script state="change">
            <!-- shot level 1 -->
            <action>maincpu.mb@4321 = param</action>
            <!-- shot level 2 -->
            <action>maincpu.mb@4325 = param</action>
            <action>maincpu.mb@4329 = param</action>
            <!-- shot level 3 -->
            <action>maincpu.mb@432D = param</action>
            <action>maincpu.mb@4331 = param</action>
            <action>maincpu.mb@4335 = param</action>
            <!-- shot level 4 -->
            <action>maincpu.mb@4339 = param</action>
            <action>maincpu.mb@433D = param</action>
            <action>maincpu.mb@4341 = param</action>
            <action>maincpu.mb@4345 = param</action>
            <!-- shot level 5 -->
            <action>maincpu.mb@4349 = param</action>
            <action>maincpu.mb@434D = param</action>
            <action>maincpu.mb@4351 = param</action>
            <action>maincpu.mb@4355 = param</action>
            <action>maincpu.mb@4359 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@4321 = 14</action>
            <action>maincpu.mb@4325 = 14</action>
            <action>maincpu.mb@4329 = 14</action>
            <action>maincpu.mb@432D = 10</action>
            <action>maincpu.mb@4331 = 14</action>
            <action>maincpu.mb@4335 = 10</action>
            <action>maincpu.mb@4339 = 0F</action>
            <action>maincpu.mb@433D = 11</action>
            <action>maincpu.mb@4341 = 11</action>
            <action>maincpu.mb@4345 = 0F</action>
            <action>maincpu.mb@4349 = 0E</action>
            <action>maincpu.mb@434D = 10</action>
            <action>maincpu.mb@4351 = 14</action>
            <action>maincpu.mb@4355 = 10</action>
            <action>maincpu.mb@4359 = 0E</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <action>maincpu.mb@46F3 = C3</action>
        </script>
        <script state="off">
            <action>maincpu.mb@46F3 = CA</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mb@1BBC = 03              </action> <!-- fix bank -->
            <action>maincpu.mq@0C5B = B500C3F00032033E</action>
            <action>maincpu.mq@F500 = 47B8F0023AC00021</action>
            <action>maincpu.mq@F508 = FE350120FDFEF928</action>
            <action>maincpu.mq@F510 = 0420FBFE340120FE</action>
            <action>maincpu.mq@F518 = 0520F7FE0618F03E</action>
            <action>maincpu.mq@F520 = 20EFFE787786103E</action>
            <action>maincpu.mq@F528 = 0420DFFE05187E03</action>
            <action>maincpu.mq@F530 = FFFFCD18F01032AF</action>
            <!--
            0C5B | 3E 03    : ld   a,$03     // set bank
            0C5D | 32 00 F0 : ld   ($F000),a
            0C60 | C3 00 B5 : jp   $B500
            ================================
            B500 | 21 00 C0 : ld   hl,$C000  // sound code address
            B503 | 3A 02 F0 : ld   a,($F002) // read input
            B506 | B8       : cp   b
            B507 | 47       : ld   b,a
            B508 | 28 F9    : jr   z,$B503
            B50A | FE FD    : cp   $FD
            B50C | 20 01    : jr   nz,$B50F
            B50E | 35       : dec  (hl)      // decrease code -01
            B50F | FE FE    : cp   $FE
            B511 | 20 01    : jr   nz,$B514
            B513 | 34       : inc  (hl)      // increase code +01
            B514 | FE FB    : cp   $FB
            B516 | 20 04    : jr   nz,$B51C
            B518 | 3E F0    : ld   a,$F0     // decrease code -10
            B51A | 18 06    : jr   $B522
            B51C | FE F7    : cp   $F7
            B51E | 20 05    : jr   nz,$B525
            B520 | 3E 10    : ld   a,$10     // increase code +10
            B522 | 86       : add  a,(hl)
            B523 | 77       : ld   (hl),a
            B524 | 78       : ld   a,b
            B525 | FE EF    : cp   $EF
            B527 | 20 03    : jr   nz,$B52C
            B529 | 7E       : ld   a,(hl)    // play sound
            B52A | 18 05    : jr   $B531
            B52C | FE DF    : cp   $DF
            B52E | 20 04    : jr   nz,$B534
            B530 | AF       : xor  a         // stop sound
            B531 | 32 10 F0 : ld   ($F010),a // send sound code
            B534 | 18 CD    : jr   $B503
            -->
        </script>
        <script state="run">
            <output format="----- pollux 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>maincpu.pb@C000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@1BBC = 02              </action>
            <action>maincpu.mq@0C5B = 9ACDCF40311DA8C3</action>
            <action>maincpu.mq@F500 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F508 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F510 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F518 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F520 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F528 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@F530 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
Post Reply