Page 1 of 1

[polluxn] Pollux

Posted: Thu Jul 08, 2021 9:42 am
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>

[polluxn] Pollux (update)

Posted: Sun Nov 27, 2022 1:23 pm
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).

[pollux]+ Pollux

Posted: Sat Feb 17, 2024 1:58 pm
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>