Page 1 of 1

[flowerj] Flower

Posted: Sat Mar 26, 2022 12:44 pm
by jman

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>mastercpu.mw@0c59 =             7c60</action> <!-- enemy -->
        <action>mastercpu.mw@0c5f =             7c68</action> <!-- boss -->
        <action>mastercpu.mw@0c9a =             7c60</action> <!-- item -->
        <action>mastercpu.mq@7c60 = c90caacdc87c70cd</action>
        <action>mastercpu.mq@7c68 = c90cddcdc87c70cd</action>
        <action>mastercpu.mq@7c70 = 7e2323c08bfe7ddd</action>
        <action>mastercpu.mq@7c78 = c937af0328a72b2b</action>
        <action>mastercpu.mq@7c80 = ffffffffffc901fe</action>
        <!--
        7c60 | cd 70 7c : call $7C70   // enemy, item
        7c63 | c8       : ret  z
        7c64 | cd aa 0c : call $0CAA
        7c67 | c9       : ret
        7c68 | cd 70 7c : call $7C70   // boss
        7c6b | c8       : ret  z
        7c6c | cd dd 0c : call $0CDD
        7c6f | c9       : ret
        7c70 | dd 7d    : ld   a,ixl   // main check routine
        7c72 | fe 8b    : cp   $8B
        7c74 | c0       : ret  nz
        7c75 | 23       : inc  hl
        7c76 | 23       : inc  hl
        7c77 | 7e       : ld   a,(hl)
        7c78 | 2b       : dec  hl
        7c79 | 2b       : dec  hl
        7c7a | a7       : and  a
        7c7b | 28 03    : jr   z,$7C80
        7c7d | af       : xor  a
        7c7e | 37       : scf
        7c7f | c9       : ret
        7c80 | fe 01    : cp   $01
        7c82 | c9       : ret
        -->
    </script>
    <script state="off">
        <action>mastercpu.mw@0c59 =             0caa</action>
        <action>mastercpu.mw@0c5f =             0cdd</action>
        <action>mastercpu.mw@0c9a =             0caa</action>
        <action>mastercpu.mq@7c60 = ffffffffffffffff</action>
        <action>mastercpu.mq@7c68 = ffffffffffffffff</action>
        <action>mastercpu.mq@7c70 = ffffffffffffffff</action>
        <action>mastercpu.mq@7c78 = ffffffffffffffff</action>
        <action>mastercpu.mq@7c80 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="auto fire - main shot">
    <script state="on">
        <action>slavecpu.mb@04a7 = 22</action> <!-- shot -->
        <action>slavecpu.mb@04e0 = 22</action> <!-- laser -->
    </script>
    <script state="off">
        <action>slavecpu.mb@04a7 = 21</action>
        <action>slavecpu.mb@04e0 = 21</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter min="0x01" max="0x05" step="0x01" />
    <script state="on">
        <action>slavecpu.md@043b =         262cb0cd</action> // y position
        <action>slavecpu.md@0449 =         262cb7cd</action> // x position
        <action>slavecpu.mq@2cb0 = cdc9086edd2cbecd</action>
        <action>slavecpu.mq@2cb8 = a77bc90c6edd2cbe</action>
        <action>slavecpu.mq@2cc0 = 2cccf2083e0016c8</action>
        <action>slavecpu.mq@2cc8 = ffffc95f44edff16</action>
        <!--
        2cb0 | cd be 2c : call $2CBE      // y position
        2cb3 | dd 6e 08 : ld   l,(ix+$08)
        2cb6 | c9       : ret
        2cb7 | cd be 2c : call $2CBE      // x position
        2cba | dd 6e 0c : ld   l,(ix+$0c)
        2cbd | c9       : ret
        2cbe | 7b       : ld   a,e
        2cbf | a7       : and  a
        2cc0 | c8       : ret  z
        2cc1 | 16 00    : ld   d,$00
        2cc3 | 3e xx    : ld   a,$xx
        2cc5 | f2 cc 2c : jp   p,$2CCC
        2cc8 | 16 ff    : ld   d,$FF
        2cca | ed 44    : neg
        2ccc | 5f       : ld   e,a
        2ccd | c9       : ret
        -->
    </script>
    <script state="change">
        <action>slavecpu.mb@2cc4 = param</action>
    </script>
    <script state="off">
        <action>slavecpu.md@043b =         26086edd</action>
        <action>slavecpu.md@0449 =         260c6edd</action>
        <action>slavecpu.mq@2cb0 = ffffffffffffffff</action>
        <action>slavecpu.mq@2cb8 = ffffffffffffffff</action>
        <action>slavecpu.mq@2cc0 = ffffffffffffffff</action>
        <action>slavecpu.mq@2cc8 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="bullet speed - main shot">
    <parameter>
        <item value="0x01">01 (slow)</item>
        <item value="0x04">02       </item>
        <item value="0x08">03       </item>
        <item value="0x0c">04       </item>
        <item value="0x10">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>slavecpu.mb@063f = param</action> <!-- player : normal shot -->
        <action>slavecpu.mb@0702 = param</action> <!-- player : laser 1 -->
        <action>slavecpu.mb@070a = param</action> <!-- player : laser 2 -->
        <action>slavecpu.mb@0791 = param</action> <!-- support : normal shot -->
        <action>slavecpu.mb@083d = param</action> <!-- support : laser 1 -->
        <action>slavecpu.mb@0845 = param</action> <!-- support : laser 2 -->
    </script>
    <script state="off">
        <action>slavecpu.mb@063f = 04</action>
        <action>slavecpu.mb@0702 = 06</action>
        <action>slavecpu.mb@070a = 06</action>
        <action>slavecpu.mb@0791 = 04</action>
        <action>slavecpu.mb@083d = 06</action>
        <action>slavecpu.mb@0845 = 06</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action> slavecpu.mb@00b5 =               3a</action> <!-- disable sound from slavecpu -->
        <action>mastercpu.mw@009b =             7c90</action>
        <action>mastercpu.mq@7c90 = 47b8a1003ac10021</action>
        <action>mastercpu.mq@7c98 = fe350120fbfef928</action>
        <action>mastercpu.mq@7ca0 = 0320effe340120f7</action>
        <action>mastercpu.mq@7ca8 = 3e0520dffe06187e</action>
        <action>mastercpu.mq@7cb0 = ffffdd18a40032ff</action>
        <!--
        7c90 | 21 00 c1 : ld  hl,$C100  // sound code address
        7c93 | 3a 00 a1 : ld  a,($A100) // read input
        7c96 | b8       : cp  b
        7c97 | 47       : ld  b,a
        7c98 | 28 f9    : jr  z,$7C93
        7c9a | fe fb    : cp  $FB
        7c9c | 20 01    : jr  nz,$7C9F
        7c9e | 35       : dec (hl)      // decrease code
        7c9f | fe f7    : cp  $F7
        7ca1 | 20 01    : jr  nz,$7CA4
        7ca3 | 34       : inc (hl)      // increase code
        7ca4 | fe ef    : cp  $EF
        7ca6 | 20 03    : jr  nz,$7CAB
        7ca8 | 7e       : ld  a,(hl)    // play sound
        7ca9 | 18 06    : jr  $7CB1
        7cab | fe df    : cp  $DF
        7cad | 20 05    : jr  nz,$7CB4
        7caf | 3e ff    : ld  a,$FF     // stop sound
        7cb1 | 32 00 a4 : ld  ($A400),a // send sound code
        7cb4 | 18 dd    : jr  $7C93
        -->
    </script>
    <script state="run">
        <output format="----- flower 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>mastercpu.pb@c100</argument>
        </output>
    </script>
    <script state="off">
        <action> slavecpu.mb@00b5 =               32</action>
        <action>mastercpu.mw@009b =             7c00</action>
        <action>mastercpu.mq@7c90 = ffffffffffffffff</action>
        <action>mastercpu.mq@7c98 = ffffffffffffffff</action>
        <action>mastercpu.mq@7ca0 = ffffffffffffffff</action>
        <action>mastercpu.mq@7ca8 = ffffffffffffffff</action>
        <action>mastercpu.mq@7cb0 = ffffffffffffffff</action>
    </script>
</cheat>
I often bother with random stuck game. But I don't know this problem is due to emulation or cheat.

[flower]+ Flower

Posted: Fri Nov 03, 2023 2:47 pm
by jman
flower.xml

Code: Select all

<!-- Flower (US) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>mastercpu.mw@0C59 = 7C60            </action> <!-- enemy -->
            <action>mastercpu.mw@0C5F = 7C67            </action> <!-- boss -->
            <action>mastercpu.mw@0C9A = 7C60            </action> <!-- item -->
            <action>mastercpu.mq@7C60 = CDC90CAAC47C6ECD</action>
            <action>mastercpu.mq@7C68 = 7DDDC90CDDC47C6E</action>
            <action>mastercpu.mq@7C70 = 2B2B7E2323C08BFE</action>
            <action>mastercpu.mq@7C78 = 01FEC937AF0328A7</action>
            <action>mastercpu.mq@7C80 = FFFFFFFFFFFFFFC9</action>
            <!--
            7C60 | CD 6E 7C : call $7C6E    // enemy, item
            7C63 | C4 AA 0C : call nz,$0CAA
            7C66 | C9       : ret
            7C67 | CD 6E 7C : call $7C6E    // boss
            7C6A | C4 DD 0C : call nz,$0CDD
            7C6D | C9       : ret
            7C6E | DD 7D    : ld   a,ixl    // main routine
            7C70 | FE 8B    : cp   $8B
            7C72 | C0       : ret  nz
            7C73 | 23       : inc  hl
            7C74 | 23       : inc  hl
            7C75 | 7E       : ld   a,(hl)
            7C76 | 2B       : dec  hl
            7C77 | 2B       : dec  hl
            7C78 | A7       : and  a
            7C79 | 28 03    : jr   z,$7C7E
            7C7B | AF       : xor  a
            7C7C | 37       : scf
            7C7D | C9       : ret
            7C7E | FE 01    : cp   $01
            7C80 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>mastercpu.mw@0C59 = 0CAA            </action>
            <action>mastercpu.mw@0C5F = 0CDD            </action>
            <action>mastercpu.mw@0C9A = 0CAA            </action>
            <action>mastercpu.mq@7C60 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7C68 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7C70 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7C78 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7C80 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="auto fire - main shot">
        <script state="on">
            <action>slavecpu.mb@04A7 = 22</action> <!-- shot -->
            <action>slavecpu.mb@04E0 = 22</action> <!-- laser -->
        </script>
        <script state="off">
            <action>slavecpu.mb@04A7 = 21</action>
            <action>slavecpu.mb@04E0 = 21</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>slavecpu.md@043B = 262CB0CD        </action> <!-- y position -->
            <action>slavecpu.md@0449 = 262CB7CD        </action> <!-- x position -->
            <action>slavecpu.mq@2CB0 = CDC9086EDD2CBECD</action>
            <action>slavecpu.mq@2CB8 = A77BC90C6EDD2CBE</action>
            <action>slavecpu.mq@2CC0 = 2CCCF2083E0016C8</action>
            <action>slavecpu.mq@2CC8 = FFFFC95F44EDFF16</action>
            <!--
            2CB0 | CD BE 2C : call $2CBE      // y position
            2CB3 | DD 6E 08 : ld   l,(ix+$08)
            2CB6 | C9       : ret
            2CB7 | CD BE 2C : call $2CBE      // x position
            2CBA | DD 6E 0C : ld   l,(ix+$0c)
            2CBD | C9       : ret
            2CBE | 7B       : ld   a,e        // main routine
            2CBF | A7       : and  a
            2CC0 | C8       : ret  z
            2CC1 | 16 00    : ld   d,$00
            2CC3 | 3E xx    : ld   a,$xx
            2CC5 | F2 CC 2C : jp   p,$2CCC
            2CC8 | 16 FF    : ld   d,$FF
            2CCA | ED 44    : neg
            2CCC | 5F       : ld   e,a
            2CCD | C9       : ret
            -->
        </script>
        <script state="change">
            <action>slavecpu.mb@2CC4 = param</action>
        </script>
        <script state="off">
            <action>slavecpu.md@043B = 26086EDD        </action>
            <action>slavecpu.md@0449 = 260C6EDD        </action>
            <action>slavecpu.mq@2CB0 = FFFFFFFFFFFFFFFF</action>
            <action>slavecpu.mq@2CB8 = FFFFFFFFFFFFFFFF</action>
            <action>slavecpu.mq@2CC0 = FFFFFFFFFFFFFFFF</action>
            <action>slavecpu.mq@2CC8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x04">02       </item>
            <item value="0x08">03       </item>
            <item value="0x0c">04       </item>
            <item value="0x10">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>slavecpu.mb@063F = param</action> <!-- player : normal shot -->
            <action>slavecpu.mb@0702 = param</action> <!-- player : laser 1 -->
            <action>slavecpu.mb@070A = param</action> <!-- player : laser 2 -->
            <action>slavecpu.mb@0791 = param</action> <!-- support : normal shot -->
            <action>slavecpu.mb@083D = param</action> <!-- support : laser 1 -->
            <action>slavecpu.mb@0845 = param</action> <!-- support : laser 2 -->
        </script>
        <script state="off">
            <action>slavecpu.mb@063F = 04</action>
            <action>slavecpu.mb@0702 = 06</action>
            <action>slavecpu.mb@070A = 06</action>
            <action>slavecpu.mb@0791 = 04</action>
            <action>slavecpu.mb@083D = 06</action>
            <action>slavecpu.mb@0845 = 06</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>mastercpu.mw@009B = 7C90            </action>
            <action>mastercpu.mq@7C90 = 47B8A1003AC00021</action>
            <action>mastercpu.mq@7C98 = FE350120FBFEF928</action>
            <action>mastercpu.mq@7CA0 = 0420FDFE340120F7</action>
            <action>mastercpu.mq@7CA8 = 0520FEFE0618F03E</action>
            <action>mastercpu.mq@7CB0 = 20EFFE787786103E</action>
            <action>mastercpu.mq@7CB8 = 0520DFFE06187E03</action>
            <action>mastercpu.mq@7CC0 = FFCC18A40032FF3E</action>
            <!--
            7C90 | 21 00 C0 : ld   hl,$C000  // sound code address
            7C93 | 3A 00 A1 : ld   a,($A100) // read input
            7C96 | B8       : cp   b
            7C97 | 47       : ld   b,a
            7C98 | 28 F9    : jr   z,$7C93
            7C9A | FE FB    : cp   $FB
            7C9C | 20 01    : jr   nz,$7C9F
            7C9E | 35       : dec  (hl)      // decrease code -01
            7C9F | FE F7    : cp   $F7
            7CA1 | 20 01    : jr   nz,$7CA4
            7CA3 | 34       : inc  (hl)      // increase code +01
            7CA4 | FE FD    : cp   $FD
            7CA6 | 20 04    : jr   nz,$7CAC
            7CA8 | 3E F0    : ld   a,$F0     // decrease code -10
            7CAA | 18 06    : jr   $7CB2
            7CAC | FE FE    : cp   $FE
            7CAE | 20 05    : jr   nz,$7CB5
            7CB0 | 3E 10    : ld   a,$10     // increase code +10
            7CB2 | 86       : add  a,(hl)
            7CB3 | 77       : ld   (hl),a
            7CB4 | 78       : ld   a,b
            7CB5 | FE EF    : cp   $EF
            7CB7 | 20 03    : jr   nz,$7CBC
            7CB9 | 7E       : ld   a,(hl)    // play sound
            7CBA | 18 06    : jr   $7CC2
            7CBC | FE DF    : cp   $DF
            7CBE | 20 05    : jr   nz,$7CC5
            7CC0 | 3E FF    : ld   a,$FF     // stop sound
            7CC2 | 32 00 A4 : ld   ($A400),a // send sound code
            7CC5 | 18 CC    : jr   $7C93
            -->
            <action>slavecpu.mb@00B5 = 3A</action> <!-- disable sound from slavecpu -->
        </script>
        <script state="run">
            <output format="----- flower 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>mastercpu.pb@C000</argument>
            </output>
        </script>
        <script state="off">
            <action>mastercpu.mw@009B = 7C00            </action>
            <action>mastercpu.mq@7C90 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7C98 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7CA0 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7CA8 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7CB0 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7CB8 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7CC0 = FFFFFFFFFFFFFFFF</action>
            <action> slavecpu.mb@00B5 = 32              </action>
        </script>
    </cheat>

</mamecheat>
flowerj.xml

Code: Select all

<!-- Flower (Japan) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>mastercpu.mw@0C59 = 7C60            </action> <!-- enemy -->
            <action>mastercpu.mw@0C5F = 7C67            </action> <!-- boss -->
            <action>mastercpu.mw@0C9A = 7C60            </action> <!-- item -->
            <action>mastercpu.mq@7C60 = CDC90CAAC47C6ECD</action>
            <action>mastercpu.mq@7C68 = 7DDDC90CDDC47C6E</action>
            <action>mastercpu.mq@7C70 = 2B2B7E2323C08BFE</action>
            <action>mastercpu.mq@7C78 = 01FEC937AF0328A7</action>
            <action>mastercpu.mq@7C80 = FFFFFFFFFFFFFFC9</action>
            <!--
            7C60 | CD 6E 7C : call $7C6E    // enemy, item
            7C63 | C4 AA 0C : call nz,$0CAA
            7C66 | C9       : ret
            7C67 | CD 6E 7C : call $7C6E    // boss
            7C6A | C4 DD 0C : call nz,$0CDD
            7C6D | C9       : ret
            7C6E | DD 7D    : ld   a,ixl    // main routine
            7C70 | FE 8B    : cp   $8B
            7C72 | C0       : ret  nz
            7C73 | 23       : inc  hl
            7C74 | 23       : inc  hl
            7C75 | 7E       : ld   a,(hl)
            7C76 | 2B       : dec  hl
            7C77 | 2B       : dec  hl
            7C78 | A7       : and  a
            7C79 | 28 03    : jr   z,$7C7E
            7C7B | AF       : xor  a
            7C7C | 37       : scf
            7C7D | C9       : ret
            7C7E | FE 01    : cp   $01
            7C80 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>mastercpu.mw@0C59 = 0CAA            </action>
            <action>mastercpu.mw@0C5F = 0CDD            </action>
            <action>mastercpu.mw@0C9A = 0CAA            </action>
            <action>mastercpu.mq@7C60 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7C68 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7C70 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7C78 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7C80 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="auto fire - main shot">
        <script state="on">
            <action>slavecpu.mb@04A7 = 22</action> <!-- shot -->
            <action>slavecpu.mb@04E0 = 22</action> <!-- laser -->
        </script>
        <script state="off">
            <action>slavecpu.mb@04A7 = 21</action>
            <action>slavecpu.mb@04E0 = 21</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>slavecpu.md@043B = 262CB0CD        </action> <!-- y position -->
            <action>slavecpu.md@0449 = 262CB7CD        </action> <!-- x position -->
            <action>slavecpu.mq@2CB0 = CDC9086EDD2CBECD</action>
            <action>slavecpu.mq@2CB8 = A77BC90C6EDD2CBE</action>
            <action>slavecpu.mq@2CC0 = 2CCCF2083E0016C8</action>
            <action>slavecpu.mq@2CC8 = FFFFC95F44EDFF16</action>
            <!--
            2CB0 | CD BE 2C : call $2CBE      // y position
            2CB3 | DD 6E 08 : ld   l,(ix+$08)
            2CB6 | C9       : ret
            2CB7 | CD BE 2C : call $2CBE      // x position
            2CBA | DD 6E 0C : ld   l,(ix+$0c)
            2CBD | C9       : ret
            2CBE | 7B       : ld   a,e        // main routine
            2CBF | A7       : and  a
            2CC0 | C8       : ret  z
            2CC1 | 16 00    : ld   d,$00
            2CC3 | 3E xx    : ld   a,$xx
            2CC5 | F2 CC 2C : jp   p,$2CCC
            2CC8 | 16 FF    : ld   d,$FF
            2CCA | ED 44    : neg
            2CCC | 5F       : ld   e,a
            2CCD | C9       : ret
            -->
        </script>
        <script state="change">
            <action>slavecpu.mb@2CC4 = param</action>
        </script>
        <script state="off">
            <action>slavecpu.md@043B = 26086EDD        </action>
            <action>slavecpu.md@0449 = 260C6EDD        </action>
            <action>slavecpu.mq@2CB0 = FFFFFFFFFFFFFFFF</action>
            <action>slavecpu.mq@2CB8 = FFFFFFFFFFFFFFFF</action>
            <action>slavecpu.mq@2CC0 = FFFFFFFFFFFFFFFF</action>
            <action>slavecpu.mq@2CC8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x04">02       </item>
            <item value="0x08">03       </item>
            <item value="0x0c">04       </item>
            <item value="0x10">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>slavecpu.mb@063F = param</action> <!-- player : normal shot -->
            <action>slavecpu.mb@0702 = param</action> <!-- player : laser -->
            <action>slavecpu.mb@070A = param</action> <!-- player : laser -->
            <action>slavecpu.mb@0791 = param</action> <!-- support : normal shot -->
            <action>slavecpu.mb@083D = param</action> <!-- support : laser -->
            <action>slavecpu.mb@0845 = param</action> <!-- support : laser -->
        </script>
        <script state="off">
            <action>slavecpu.mb@063F = 04</action>
            <action>slavecpu.mb@0702 = 06</action>
            <action>slavecpu.mb@070A = 06</action>
            <action>slavecpu.mb@0791 = 04</action>
            <action>slavecpu.mb@083D = 06</action>
            <action>slavecpu.mb@0845 = 06</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>mastercpu.mw@009B = 7C90            </action>
            <action>mastercpu.mq@7C90 = 47B8A1003AC00021</action>
            <action>mastercpu.mq@7C98 = FE350120FBFEF928</action>
            <action>mastercpu.mq@7CA0 = 0420FDFE340120F7</action>
            <action>mastercpu.mq@7CA8 = 0520FEFE0618F03E</action>
            <action>mastercpu.mq@7CB0 = 20EFFE787786103E</action>
            <action>mastercpu.mq@7CB8 = 0520DFFE06187E03</action>
            <action>mastercpu.mq@7CC0 = FFCC18A40032FF3E</action>
            <!--
            7C90 | 21 00 C0 : ld   hl,$C000  // sound code address
            7C93 | 3A 00 A1 : ld   a,($A100) // read input
            7C96 | B8       : cp   b
            7C97 | 47       : ld   b,a
            7C98 | 28 F9    : jr   z,$7C93
            7C9A | FE FB    : cp   $FB
            7C9C | 20 01    : jr   nz,$7C9F
            7C9E | 35       : dec  (hl)      // decrease code -01
            7C9F | FE F7    : cp   $F7
            7CA1 | 20 01    : jr   nz,$7CA4
            7CA3 | 34       : inc  (hl)      // increase code +01
            7CA4 | FE FD    : cp   $FD
            7CA6 | 20 04    : jr   nz,$7CAC
            7CA8 | 3E F0    : ld   a,$F0     // decrease code -10
            7CAA | 18 06    : jr   $7CB2
            7CAC | FE FE    : cp   $FE
            7CAE | 20 05    : jr   nz,$7CB5
            7CB0 | 3E 10    : ld   a,$10     // increase code +10
            7CB2 | 86       : add  a,(hl)
            7CB3 | 77       : ld   (hl),a
            7CB4 | 78       : ld   a,b
            7CB5 | FE EF    : cp   $EF
            7CB7 | 20 03    : jr   nz,$7CBC
            7CB9 | 7E       : ld   a,(hl)    // play sound
            7CBA | 18 06    : jr   $7CC2
            7CBC | FE DF    : cp   $DF
            7CBE | 20 05    : jr   nz,$7CC5
            7CC0 | 3E FF    : ld   a,$FF     // stop sound
            7CC2 | 32 00 A4 : ld   ($A400),a // send sound code
            7CC5 | 18 CC    : jr   $7C93
            -->
            <action>slavecpu.mb@00B5 = 3A</action> <!-- disable sound from slavecpu -->
        </script>
        <script state="run">
            <output format="----- flower 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>mastercpu.pb@C000</argument>
            </output>
        </script>
        <script state="off">
            <action>mastercpu.mw@009B = 7C00            </action>
            <action>mastercpu.mq@7C90 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7C98 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7CA0 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7CA8 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7CB0 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7CB8 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7CC0 = FFFFFFFFFFFFFFFF</action>
            <action> slavecpu.mb@00B5 = 32              </action>
        </script>
    </cheat>

</mamecheat>

[flower]+ Flower

Posted: Thu May 29, 2025 9:32 am
by jman
flower.xml

Code: Select all

<!-- Flower (US) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>mastercpu.mw@0C59 = 7C60            </action> <!-- enemy -->
            <action>mastercpu.mw@0C5F = 7C67            </action> <!-- boss -->
            <action>mastercpu.mw@0C9A = 7C60            </action> <!-- item -->
            <action>mastercpu.mq@7C60 = CDC90CAAC47C6ECD</action>
            <action>mastercpu.mq@7C68 = 7DDDC90CDDC47C6E</action>
            <action>mastercpu.mq@7C70 = 2B2B7E2323C08BFE</action>
            <action>mastercpu.mq@7C78 = 01FEC937AF0328A7</action>
            <action>mastercpu.mq@7C80 = FFFFFFFFFFFFFFC9</action>
            <!--
            7C60 | CD 6E 7C : call $7C6E    // enemy, item
            7C63 | C4 AA 0C : call nz,$0CAA
            7C66 | C9       : ret
            7C67 | CD 6E 7C : call $7C6E    // boss
            7C6A | C4 DD 0C : call nz,$0CDD
            7C6D | C9       : ret
            7C6E | DD 7D    : ld   a,ixl    // main routine
            7C70 | FE 8B    : cp   $8B
            7C72 | C0       : ret  nz
            7C73 | 23       : inc  hl
            7C74 | 23       : inc  hl
            7C75 | 7E       : ld   a,(hl)
            7C76 | 2B       : dec  hl
            7C77 | 2B       : dec  hl
            7C78 | A7       : and  a
            7C79 | 28 03    : jr   z,$7C7E
            7C7B | AF       : xor  a
            7C7C | 37       : scf
            7C7D | C9       : ret
            7C7E | FE 01    : cp   $01
            7C80 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>mastercpu.mw@0C59 = 0CAA            </action>
            <action>mastercpu.mw@0C5F = 0CDD            </action>
            <action>mastercpu.mw@0C9A = 0CAA            </action>
            <action>mastercpu.mq@7C60 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7C68 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7C70 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7C78 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7C80 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="rapid fire - main shot">
        <script state="on">
            <action>slavecpu.mb@04A7 = 22</action> <!-- shot -->
            <action>slavecpu.mb@04E0 = 22</action> <!-- laser -->
        </script>
        <script state="off">
            <action>slavecpu.mb@04A7 = 21</action>
            <action>slavecpu.mb@04E0 = 21</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>slavecpu.md@043B = 262CB0CD        </action> <!-- y position -->
            <action>slavecpu.md@0449 = 262CB7CD        </action> <!-- x position -->
            <action>slavecpu.mq@2CB0 = CDC9086EDD2CBECD</action>
            <action>slavecpu.mq@2CB8 = A77BC90C6EDD2CBE</action>
            <action>slavecpu.mq@2CC0 = 2CCCF2083E0016C8</action>
            <action>slavecpu.mq@2CC8 = FFFFC95F44EDFF16</action>
            <!--
            2CB0 | CD BE 2C : call $2CBE      // y position
            2CB3 | DD 6E 08 : ld   l,(ix+$08)
            2CB6 | C9       : ret
            2CB7 | CD BE 2C : call $2CBE      // x position
            2CBA | DD 6E 0C : ld   l,(ix+$0c)
            2CBD | C9       : ret
            2CBE | 7B       : ld   a,e        // main routine
            2CBF | A7       : and  a
            2CC0 | C8       : ret  z
            2CC1 | 16 00    : ld   d,$00
            2CC3 | 3E xx    : ld   a,$xx
            2CC5 | F2 CC 2C : jp   p,$2CCC
            2CC8 | 16 FF    : ld   d,$FF
            2CCA | ED 44    : neg
            2CCC | 5F       : ld   e,a
            2CCD | C9       : ret
            -->
        </script>
        <script state="change">
            <action>slavecpu.mb@2CC4 = param</action>
        </script>
        <script state="off">
            <action>slavecpu.md@043B = 26086EDD        </action>
            <action>slavecpu.md@0449 = 260C6EDD        </action>
            <action>slavecpu.mq@2CB0 = FFFFFFFFFFFFFFFF</action>
            <action>slavecpu.mq@2CB8 = FFFFFFFFFFFFFFFF</action>
            <action>slavecpu.mq@2CC0 = FFFFFFFFFFFFFFFF</action>
            <action>slavecpu.mq@2CC8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x04">02       </item>
            <item value="0x08">03       </item>
            <item value="0x0c">04       </item>
            <item value="0x10">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>slavecpu.mb@063F = param</action> <!-- player : normal shot -->
            <action>slavecpu.mb@0702 = param</action> <!-- player : laser 1 -->
            <action>slavecpu.mb@070A = param</action> <!-- player : laser 2 -->
            <action>slavecpu.mb@0791 = param</action> <!-- support : normal shot -->
            <action>slavecpu.mb@083D = param</action> <!-- support : laser 1 -->
            <action>slavecpu.mb@0845 = param</action> <!-- support : laser 2 -->
        </script>
        <script state="off">
            <action>slavecpu.mb@063F = 04</action>
            <action>slavecpu.mb@0702 = 06</action>
            <action>slavecpu.mb@070A = 06</action>
            <action>slavecpu.mb@0791 = 04</action>
            <action>slavecpu.mb@083D = 06</action>
            <action>slavecpu.mb@0845 = 06</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>mastercpu.mw@009B = 7C90            </action>
            <action>mastercpu.mq@7C90 = 47B8A1003AC00021</action>
            <action>mastercpu.mq@7C98 = FE350120FBFEF928</action>
            <action>mastercpu.mq@7CA0 = 0420FDFE340120F7</action>
            <action>mastercpu.mq@7CA8 = 0520FEFE0618F03E</action>
            <action>mastercpu.mq@7CB0 = 20EFFE787786103E</action>
            <action>mastercpu.mq@7CB8 = 0520DFFE06187E03</action>
            <action>mastercpu.mq@7CC0 = FFCC18A40032FF3E</action>
            <!--
            7C90 | 21 00 C0 : ld   hl,$C000  // sound code address
            7C93 | 3A 00 A1 : ld   a,($A100) // read input
            7C96 | B8       : cp   b
            7C97 | 47       : ld   b,a
            7C98 | 28 F9    : jr   z,$7C93
            7C9A | FE FB    : cp   $FB
            7C9C | 20 01    : jr   nz,$7C9F
            7C9E | 35       : dec  (hl)      // decrease code -01
            7C9F | FE F7    : cp   $F7
            7CA1 | 20 01    : jr   nz,$7CA4
            7CA3 | 34       : inc  (hl)      // increase code +01
            7CA4 | FE FD    : cp   $FD
            7CA6 | 20 04    : jr   nz,$7CAC
            7CA8 | 3E F0    : ld   a,$F0     // decrease code -10
            7CAA | 18 06    : jr   $7CB2
            7CAC | FE FE    : cp   $FE
            7CAE | 20 05    : jr   nz,$7CB5
            7CB0 | 3E 10    : ld   a,$10     // increase code +10
            7CB2 | 86       : add  a,(hl)
            7CB3 | 77       : ld   (hl),a
            7CB4 | 78       : ld   a,b
            7CB5 | FE EF    : cp   $EF
            7CB7 | 20 03    : jr   nz,$7CBC
            7CB9 | 7E       : ld   a,(hl)    // play sound
            7CBA | 18 06    : jr   $7CC2
            7CBC | FE DF    : cp   $DF
            7CBE | 20 05    : jr   nz,$7CC5
            7CC0 | 3E FF    : ld   a,$FF     // stop sound
            7CC2 | 32 00 A4 : ld   ($A400),a // send sound code
            7CC5 | 18 CC    : jr   $7C93
            -->
            <action>slavecpu.mb@00B5 = 3A</action> <!-- disable sound from slavecpu -->
        </script>
        <script state="run">
            <output format="----- 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>mastercpu.pb@C000</argument>
            </output>
        </script>
        <script state="off">
            <action>mastercpu.mw@009B = 7C00            </action>
            <action>mastercpu.mq@7C90 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7C98 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7CA0 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7CA8 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7CB0 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7CB8 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7CC0 = FFFFFFFFFFFFFFFF</action>
            <action> slavecpu.mb@00B5 = 32              </action>
        </script>
    </cheat>

</mamecheat>
flowerj.xml. New flower set will be added in 0.278.

Code: Select all

<!-- Flower (Japan) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>mastercpu.mw@0C59 = 7C60            </action> <!-- enemy -->
            <action>mastercpu.mw@0C5F = 7C67            </action> <!-- boss -->
            <action>mastercpu.mw@0C9A = 7C60            </action> <!-- item -->
            <action>mastercpu.mq@7C60 = CDC90CAAC47C6ECD</action>
            <action>mastercpu.mq@7C68 = 7DDDC90CDDC47C6E</action>
            <action>mastercpu.mq@7C70 = 2B2B7E2323C08BFE</action>
            <action>mastercpu.mq@7C78 = 01FEC937AF0328A7</action>
            <action>mastercpu.mq@7C80 = FFFFFFFFFFFFFFC9</action>
            <!--
            7C60 | CD 6E 7C : call $7C6E    // enemy, item
            7C63 | C4 AA 0C : call nz,$0CAA
            7C66 | C9       : ret
            7C67 | CD 6E 7C : call $7C6E    // boss
            7C6A | C4 DD 0C : call nz,$0CDD
            7C6D | C9       : ret
            7C6E | DD 7D    : ld   a,ixl    // main routine
            7C70 | FE 8B    : cp   $8B
            7C72 | C0       : ret  nz
            7C73 | 23       : inc  hl
            7C74 | 23       : inc  hl
            7C75 | 7E       : ld   a,(hl)
            7C76 | 2B       : dec  hl
            7C77 | 2B       : dec  hl
            7C78 | A7       : and  a
            7C79 | 28 03    : jr   z,$7C7E
            7C7B | AF       : xor  a
            7C7C | 37       : scf
            7C7D | C9       : ret
            7C7E | FE 01    : cp   $01
            7C80 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>mastercpu.mw@0C59 = 0CAA            </action>
            <action>mastercpu.mw@0C5F = 0CDD            </action>
            <action>mastercpu.mw@0C9A = 0CAA            </action>
            <action>mastercpu.mq@7C60 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7C68 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7C70 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7C78 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7C80 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="rapid fire - main shot">
        <script state="on">
            <action>slavecpu.mb@04A7 = 22</action> <!-- shot -->
            <action>slavecpu.mb@04E0 = 22</action> <!-- laser -->
        </script>
        <script state="off">
            <action>slavecpu.mb@04A7 = 21</action>
            <action>slavecpu.mb@04E0 = 21</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>slavecpu.md@043B = 262CB0CD        </action> <!-- y position -->
            <action>slavecpu.md@0449 = 262CB7CD        </action> <!-- x position -->
            <action>slavecpu.mq@2CB0 = CDC9086EDD2CBECD</action>
            <action>slavecpu.mq@2CB8 = A77BC90C6EDD2CBE</action>
            <action>slavecpu.mq@2CC0 = 2CCCF2083E0016C8</action>
            <action>slavecpu.mq@2CC8 = FFFFC95F44EDFF16</action>
            <!--
            2CB0 | CD BE 2C : call $2CBE      // y position
            2CB3 | DD 6E 08 : ld   l,(ix+$08)
            2CB6 | C9       : ret
            2CB7 | CD BE 2C : call $2CBE      // x position
            2CBA | DD 6E 0C : ld   l,(ix+$0c)
            2CBD | C9       : ret
            2CBE | 7B       : ld   a,e        // main routine
            2CBF | A7       : and  a
            2CC0 | C8       : ret  z
            2CC1 | 16 00    : ld   d,$00
            2CC3 | 3E xx    : ld   a,$xx
            2CC5 | F2 CC 2C : jp   p,$2CCC
            2CC8 | 16 FF    : ld   d,$FF
            2CCA | ED 44    : neg
            2CCC | 5F       : ld   e,a
            2CCD | C9       : ret
            -->
        </script>
        <script state="change">
            <action>slavecpu.mb@2CC4 = param</action>
        </script>
        <script state="off">
            <action>slavecpu.md@043B = 26086EDD        </action>
            <action>slavecpu.md@0449 = 260C6EDD        </action>
            <action>slavecpu.mq@2CB0 = FFFFFFFFFFFFFFFF</action>
            <action>slavecpu.mq@2CB8 = FFFFFFFFFFFFFFFF</action>
            <action>slavecpu.mq@2CC0 = FFFFFFFFFFFFFFFF</action>
            <action>slavecpu.mq@2CC8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x04">02       </item>
            <item value="0x08">03       </item>
            <item value="0x0c">04       </item>
            <item value="0x10">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>slavecpu.mb@063F = param</action> <!-- player : normal shot -->
            <action>slavecpu.mb@0702 = param</action> <!-- player : laser -->
            <action>slavecpu.mb@070A = param</action> <!-- player : laser -->
            <action>slavecpu.mb@0791 = param</action> <!-- support : normal shot -->
            <action>slavecpu.mb@083D = param</action> <!-- support : laser -->
            <action>slavecpu.mb@0845 = param</action> <!-- support : laser -->
        </script>
        <script state="off">
            <action>slavecpu.mb@063F = 04</action>
            <action>slavecpu.mb@0702 = 06</action>
            <action>slavecpu.mb@070A = 06</action>
            <action>slavecpu.mb@0791 = 04</action>
            <action>slavecpu.mb@083D = 06</action>
            <action>slavecpu.mb@0845 = 06</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>mastercpu.mw@009B = 7C90            </action>
            <action>mastercpu.mq@7C90 = 47B8A1003AC00021</action>
            <action>mastercpu.mq@7C98 = FE350120FBFEF928</action>
            <action>mastercpu.mq@7CA0 = 0420FDFE340120F7</action>
            <action>mastercpu.mq@7CA8 = 0520FEFE0618F03E</action>
            <action>mastercpu.mq@7CB0 = 20EFFE787786103E</action>
            <action>mastercpu.mq@7CB8 = 0520DFFE06187E03</action>
            <action>mastercpu.mq@7CC0 = FFCC18A40032FF3E</action>
            <!--
            7C90 | 21 00 C0 : ld   hl,$C000  // sound code address
            7C93 | 3A 00 A1 : ld   a,($A100) // read input
            7C96 | B8       : cp   b
            7C97 | 47       : ld   b,a
            7C98 | 28 F9    : jr   z,$7C93
            7C9A | FE FB    : cp   $FB
            7C9C | 20 01    : jr   nz,$7C9F
            7C9E | 35       : dec  (hl)      // decrease code -01
            7C9F | FE F7    : cp   $F7
            7CA1 | 20 01    : jr   nz,$7CA4
            7CA3 | 34       : inc  (hl)      // increase code +01
            7CA4 | FE FD    : cp   $FD
            7CA6 | 20 04    : jr   nz,$7CAC
            7CA8 | 3E F0    : ld   a,$F0     // decrease code -10
            7CAA | 18 06    : jr   $7CB2
            7CAC | FE FE    : cp   $FE
            7CAE | 20 05    : jr   nz,$7CB5
            7CB0 | 3E 10    : ld   a,$10     // increase code +10
            7CB2 | 86       : add  a,(hl)
            7CB3 | 77       : ld   (hl),a
            7CB4 | 78       : ld   a,b
            7CB5 | FE EF    : cp   $EF
            7CB7 | 20 03    : jr   nz,$7CBC
            7CB9 | 7E       : ld   a,(hl)    // play sound
            7CBA | 18 06    : jr   $7CC2
            7CBC | FE DF    : cp   $DF
            7CBE | 20 05    : jr   nz,$7CC5
            7CC0 | 3E FF    : ld   a,$FF     // stop sound
            7CC2 | 32 00 A4 : ld   ($A400),a // send sound code
            7CC5 | 18 CC    : jr   $7C93
            -->
            <action>slavecpu.mb@00B5 = 3A</action> <!-- disable sound from slavecpu -->
        </script>
        <script state="run">
            <output format="----- 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>mastercpu.pb@C000</argument>
            </output>
        </script>
        <script state="off">
            <action>mastercpu.mw@009B = 7C00            </action>
            <action>mastercpu.mq@7C90 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7C98 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7CA0 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7CA8 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7CB0 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7CB8 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7CC0 = FFFFFFFFFFFFFFFF</action>
            <action> slavecpu.mb@00B5 = 32              </action>
        </script>
    </cheat>

</mamecheat>
flowerjb.xml. Old flower set will be renamed to flowerjb in 0.278.

Code: Select all

<!-- Flower (Japan, bootleg?) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>mastercpu.mw@0C59 = 7C60            </action> <!-- enemy -->
            <action>mastercpu.mw@0C5F = 7C67            </action> <!-- boss -->
            <action>mastercpu.mw@0C9A = 7C60            </action> <!-- item -->
            <action>mastercpu.mq@7C60 = CDC90CAAC47C6ECD</action>
            <action>mastercpu.mq@7C68 = 7DDDC90CDDC47C6E</action>
            <action>mastercpu.mq@7C70 = 2B2B7E2323C08BFE</action>
            <action>mastercpu.mq@7C78 = 01FEC937AF0328A7</action>
            <action>mastercpu.mq@7C80 = FFFFFFFFFFFFFFC9</action>
            <!--
            7C60 | CD 6E 7C : call $7C6E    // enemy, item
            7C63 | C4 AA 0C : call nz,$0CAA
            7C66 | C9       : ret
            7C67 | CD 6E 7C : call $7C6E    // boss
            7C6A | C4 DD 0C : call nz,$0CDD
            7C6D | C9       : ret
            7C6E | DD 7D    : ld   a,ixl    // main routine
            7C70 | FE 8B    : cp   $8B
            7C72 | C0       : ret  nz
            7C73 | 23       : inc  hl
            7C74 | 23       : inc  hl
            7C75 | 7E       : ld   a,(hl)
            7C76 | 2B       : dec  hl
            7C77 | 2B       : dec  hl
            7C78 | A7       : and  a
            7C79 | 28 03    : jr   z,$7C7E
            7C7B | AF       : xor  a
            7C7C | 37       : scf
            7C7D | C9       : ret
            7C7E | FE 01    : cp   $01
            7C80 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>mastercpu.mw@0C59 = 0CAA            </action>
            <action>mastercpu.mw@0C5F = 0CDD            </action>
            <action>mastercpu.mw@0C9A = 0CAA            </action>
            <action>mastercpu.mq@7C60 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7C68 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7C70 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7C78 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7C80 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="rapid fire - main shot">
        <script state="on">
            <action>slavecpu.mb@04A7 = 22</action> <!-- shot -->
            <action>slavecpu.mb@04E0 = 22</action> <!-- laser -->
        </script>
        <script state="off">
            <action>slavecpu.mb@04A7 = 21</action>
            <action>slavecpu.mb@04E0 = 21</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>slavecpu.md@043B = 262CB0CD        </action> <!-- y position -->
            <action>slavecpu.md@0449 = 262CB7CD        </action> <!-- x position -->
            <action>slavecpu.mq@2CB0 = CDC9086EDD2CBECD</action>
            <action>slavecpu.mq@2CB8 = A77BC90C6EDD2CBE</action>
            <action>slavecpu.mq@2CC0 = 2CCCF2083E0016C8</action>
            <action>slavecpu.mq@2CC8 = FFFFC95F44EDFF16</action>
            <!--
            2CB0 | CD BE 2C : call $2CBE      // y position
            2CB3 | DD 6E 08 : ld   l,(ix+$08)
            2CB6 | C9       : ret
            2CB7 | CD BE 2C : call $2CBE      // x position
            2CBA | DD 6E 0C : ld   l,(ix+$0c)
            2CBD | C9       : ret
            2CBE | 7B       : ld   a,e        // main routine
            2CBF | A7       : and  a
            2CC0 | C8       : ret  z
            2CC1 | 16 00    : ld   d,$00
            2CC3 | 3E xx    : ld   a,$xx
            2CC5 | F2 CC 2C : jp   p,$2CCC
            2CC8 | 16 FF    : ld   d,$FF
            2CCA | ED 44    : neg
            2CCC | 5F       : ld   e,a
            2CCD | C9       : ret
            -->
        </script>
        <script state="change">
            <action>slavecpu.mb@2CC4 = param</action>
        </script>
        <script state="off">
            <action>slavecpu.md@043B = 26086EDD        </action>
            <action>slavecpu.md@0449 = 260C6EDD        </action>
            <action>slavecpu.mq@2CB0 = FFFFFFFFFFFFFFFF</action>
            <action>slavecpu.mq@2CB8 = FFFFFFFFFFFFFFFF</action>
            <action>slavecpu.mq@2CC0 = FFFFFFFFFFFFFFFF</action>
            <action>slavecpu.mq@2CC8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x04">02       </item>
            <item value="0x08">03       </item>
            <item value="0x0c">04       </item>
            <item value="0x10">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>slavecpu.mb@063F = param</action> <!-- player : normal shot -->
            <action>slavecpu.mb@0702 = param</action> <!-- player : laser 1 -->
            <action>slavecpu.mb@070A = param</action> <!-- player : laser 2 -->
            <action>slavecpu.mb@0791 = param</action> <!-- support : normal shot -->
            <action>slavecpu.mb@083D = param</action> <!-- support : laser 1 -->
            <action>slavecpu.mb@0845 = param</action> <!-- support : laser 2 -->
        </script>
        <script state="off">
            <action>slavecpu.mb@063F = 04</action>
            <action>slavecpu.mb@0702 = 06</action>
            <action>slavecpu.mb@070A = 06</action>
            <action>slavecpu.mb@0791 = 04</action>
            <action>slavecpu.mb@083D = 06</action>
            <action>slavecpu.mb@0845 = 06</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>mastercpu.mw@009B = 7C90            </action>
            <action>mastercpu.mq@7C90 = 47B8A1003AC00021</action>
            <action>mastercpu.mq@7C98 = FE350120FBFEF928</action>
            <action>mastercpu.mq@7CA0 = 0420FDFE340120F7</action>
            <action>mastercpu.mq@7CA8 = 0520FEFE0618F03E</action>
            <action>mastercpu.mq@7CB0 = 20EFFE787786103E</action>
            <action>mastercpu.mq@7CB8 = 0520DFFE06187E03</action>
            <action>mastercpu.mq@7CC0 = FFCC18A40032FF3E</action>
            <!--
            7C90 | 21 00 C0 : ld   hl,$C000  // sound code address
            7C93 | 3A 00 A1 : ld   a,($A100) // read input
            7C96 | B8       : cp   b
            7C97 | 47       : ld   b,a
            7C98 | 28 F9    : jr   z,$7C93
            7C9A | FE FB    : cp   $FB
            7C9C | 20 01    : jr   nz,$7C9F
            7C9E | 35       : dec  (hl)      // decrease code -01
            7C9F | FE F7    : cp   $F7
            7CA1 | 20 01    : jr   nz,$7CA4
            7CA3 | 34       : inc  (hl)      // increase code +01
            7CA4 | FE FD    : cp   $FD
            7CA6 | 20 04    : jr   nz,$7CAC
            7CA8 | 3E F0    : ld   a,$F0     // decrease code -10
            7CAA | 18 06    : jr   $7CB2
            7CAC | FE FE    : cp   $FE
            7CAE | 20 05    : jr   nz,$7CB5
            7CB0 | 3E 10    : ld   a,$10     // increase code +10
            7CB2 | 86       : add  a,(hl)
            7CB3 | 77       : ld   (hl),a
            7CB4 | 78       : ld   a,b
            7CB5 | FE EF    : cp   $EF
            7CB7 | 20 03    : jr   nz,$7CBC
            7CB9 | 7E       : ld   a,(hl)    // play sound
            7CBA | 18 06    : jr   $7CC2
            7CBC | FE DF    : cp   $DF
            7CBE | 20 05    : jr   nz,$7CC5
            7CC0 | 3E FF    : ld   a,$FF     // stop sound
            7CC2 | 32 00 A4 : ld   ($A400),a // send sound code
            7CC5 | 18 CC    : jr   $7C93
            -->
            <action>slavecpu.mb@00B5 = 3A</action> <!-- disable sound from slavecpu -->
        </script>
        <script state="run">
            <output format="----- 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>mastercpu.pb@C000</argument>
            </output>
        </script>
        <script state="off">
            <action>mastercpu.mw@009B = 7C00            </action>
            <action>mastercpu.mq@7C90 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7C98 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7CA0 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7CA8 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7CB0 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7CB8 = FFFFFFFFFFFFFFFF</action>
            <action>mastercpu.mq@7CC0 = FFFFFFFFFFFFFFFF</action>
            <action> slavecpu.mb@00B5 = 32              </action>
        </script>
    </cheat>

</mamecheat>