Page 1 of 1

[daioh] Daioh

Posted: Sat May 14, 2022 2:05 pm
by jman

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@a6e7 = 2c</action>
    </script>
    <script state="off">
        <action>maincpu.mb@a6e7 = 02</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mw@f6f0 = 4e71</action>
    </script>
    <script state="off">
        <action>maincpu.mw@f6f0 = 6204</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x01">01 (slow)</item>
        <item value="0x02">02       </item>
        <item value="0x04">03       </item>
        <item value="0x06">04       </item>
        <item value="0x08">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@0f5a8 =         00040eb0</action>
        <action>maincpu.mq@40eb0 = 102c001061161940</action>
        <action>maincpu.mq@40eb8 = 0010102c0012610c</action>
        <action>maincpu.mq@40ec0 = 194000124eb90000</action>
        <action>maincpu.mq@40ec8 = 9ea04e7572054a00</action>
        <action>maincpu.mq@40ed0 = 67066a0244011001</action>
        <action>maincpu.mq@40ed8 = 4e75ffffffffffff</action>
        <!--
        40eb0 | 102c 0010      : move.b ($10,A4),D0
        40eb4 | 6116           : bsr    $40ecc
        40eb6 | 1940 0010      : move.b D0,($10,A4)
        40eba | 102c 0012      : move.b ($12,A4),D0
        40ebe | 610c           : bsr    $40ecc
        40ec0 | 1940 0012      : move.b D0,($12,A4)
        40ec4 | 4eb9 0000 9ea0 : jsr    $9ea0.l
        40eca | 4e75           : rts
        40ecc | 72xx           : moveq  #$xx,D1
        40ece | 4a00           : tst.b  D0
        40ed0 | 6706           : beq    $40ed8
        40ed2 | 6a02           : bpl    $40ed6
        40ed4 | 4401           : neg.b  D1
        40ed6 | 1001           : move.b D1,D0
        40ed8 | 4e75           : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@40ecd = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@0f5a8 =         00009ea0</action>
        <action>maincpu.mq@40eb0 = ffffffffffffffff</action>
        <action>maincpu.mq@40eb8 = ffffffffffffffff</action>
        <action>maincpu.mq@40ec0 = ffffffffffffffff</action>
        <action>maincpu.mq@40ec8 = ffffffffffffffff</action>
        <action>maincpu.mq@40ed0 = ffffffffffffffff</action>
        <action>maincpu.mq@40ed8 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="bullet speed - red">
    <parameter>
        <item value="0x06">01 (slow)</item>
        <item value="0x0c">02       </item>
        <item value="0x12">03       </item>
        <item value="0x18">04       </item>
        <item value="0x1e">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@fbf2 = param</action>
        <action>maincpu.mb@fd4c = param</action>
        <action>maincpu.mb@fd5e = param</action>
        <action>maincpu.mb@fdee = param</action>
        <action>maincpu.mb@fe08 = param</action>
        <action>maincpu.mb@fe30 = param</action>
        <action>maincpu.mb@fe4a = param</action>
    </script>
    <script state="off">
        <action>maincpu.mb@fbf2 = 0d</action>
        <action>maincpu.mb@fd4c = 0c</action>
        <action>maincpu.mb@fd5e = 0c</action>
        <action>maincpu.mb@fdee = 0c</action>
        <action>maincpu.mb@fe08 = 0b</action>
        <action>maincpu.mb@fe30 = 0b</action>
        <action>maincpu.mb@fe4a = 0c</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@08c3e = 4ef900040ee04e41</action>
        <action>maincpu.mq@40ee0 = 41ed100043f90002</action>
        <action>maincpu.mq@40ee8 = 921a45e9004e1401</action>
        <action>maincpu.mq@40ef0 = 122d770fb40167f6</action>
        <action>maincpu.mq@40ef8 = 0c0100fe66025310</action>
        <action>maincpu.mq@40f00 = 0c0100fd66025210</action>
        <action>maincpu.mq@40f08 = 0c0100f766040410</action>
        <action>maincpu.mq@40f10 = 00100c0100fb6604</action>
        <action>maincpu.mq@40f18 = 061000100c0100ef</action>
        <action>maincpu.mq@40f20 = 661210100c00000e</action>
        <action>maincpu.mq@40f28 = 64044e9160060400</action>
        <action>maincpu.mq@40f30 = 000e4e920c0100df</action>
        <action>maincpu.mq@40f38 = 660642004e914e92</action>
        <action>maincpu.mq@40f40 = 60acffffffffffff</action>
        <!--
        40ee0 | 41ed 1000      : lea    ($1000,A5),A0 // sound code address
        40ee4 | 43f9 0002 921a : lea    $2921a.l,A1   // subroutine for music
        40eea | 45e9 004e      : lea    ($4e,A1),A2   // subroutine for sfx
        40eee | 1401           : move.b D1,D2
        40ef0 | 122d 770f      : move.b ($770f,A5),D1 // read input
        40ef4 | b401           : cmp.b  D1,D2
        40ef6 | 67f6           : beq    $40eee
        40ef8 | 0c01 00fe      : cmpi.b #-$2,D1
        40efc | 6602           : bne    $40f00
        40efe | 5310           : subq.b #1,(A0)       // decrease code -01
        40f00 | 0c01 00fd      : cmpi.b #-$3,D1
        40f04 | 6602           : bne    $40f08
        40f06 | 5210           : addq.b #1,(A0)       // increase code +01
        40f08 | 0c01 00f7      : cmpi.b #-$9,D1
        40f0c | 6604           : bne    $40f12
        40f0e | 0410 0010      : subi.b #$10,(A0)     // decrease code -10
        40f12 | 0c01 00fb      : cmpi.b #-$5,D1
        40f16 | 6604           : bne    $40f1c
        40f18 | 0610 0010      : addi.b #$10,(A0)     // increase code +10
        40f1c | 0c01 00ef      : cmpi.b #-$11,D1
        40f20 | 6612           : bne    $40f34
        40f22 | 1010           : move.b (A0),D0       // play sound
        40f24 | 0c00 000e      : cmpi.b #$e,D0
        40f28 | 6404           : bcc    $40f2e
        40f2a | 4e91           : jsr    (A1)          // music
        40f2c | 6006           : bra    $40f34
        40f2e | 0400 000e      : subi.b #$e,D0
        40f32 | 4e92           : jsr    (A2)          // sfx
        40f34 | 0c01 00df      : cmpi.b #-$21,D1
        40f38 | 6606           : bne    $40f40
        40f3a | 4200           : clr.b  D0            // stop sound
        40f3c | 4e91           : jsr    (A1)
        40f3e | 4e92           : jsr    (A2)
        40f40 | 60ac           : bra    $40eee
        -->
    </script>
    <script state="run">
        <output format="----- daioh sound test mode -----"  line="10" align="center" />
        <output format="left : decrease code -01"           line="11" align="center" />
        <output format="right : increase code +01"          line="12" align="center" />
        <output format="up : increase code +10"             line="13" align="center" />
        <output format="down : decrease code -10"           line="14" align="center" />
        <output format="button 1 : play sound"              line="15" align="center" />
        <output format="button 2 : stop sound"              line="16" align="center" />
        <output format="----------------------------"       line="17" align="center" />
        <output format="&lt;&lt; sound code %2.2X &gt;&gt;" line="19" align="center">
            <argument>maincpu.pb@101000</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mq@08c3e = 4eb90000d31a4e41</action>
        <action>maincpu.mq@40ee0 = ffffffffffffffff</action>
        <action>maincpu.mq@40ee8 = ffffffffffffffff</action>
        <action>maincpu.mq@40ef0 = ffffffffffffffff</action>
        <action>maincpu.mq@40ef8 = ffffffffffffffff</action>
        <action>maincpu.mq@40f00 = ffffffffffffffff</action>
        <action>maincpu.mq@40f08 = ffffffffffffffff</action>
        <action>maincpu.mq@40f10 = ffffffffffffffff</action>
        <action>maincpu.mq@40f18 = ffffffffffffffff</action>
        <action>maincpu.mq@40f20 = ffffffffffffffff</action>
        <action>maincpu.mq@40f28 = ffffffffffffffff</action>
        <action>maincpu.mq@40f30 = ffffffffffffffff</action>
        <action>maincpu.mq@40f38 = ffffffffffffffff</action>
        <action>maincpu.mq@40f40 = ffffffffffffffff</action>
    </script>
</cheat>

[daioh]+ Daioh

Posted: Sat Jan 20, 2024 8:20 am
by jman
daioh.xml

Code: Select all

<!-- Daioh -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@A6E7 = 2C</action>
        </script>
        <script state="off">
            <action>maincpu.mb@A6E7 = 02</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@F6EF = 2A</action>
        </script>
        <script state="off">
            <action>maincpu.mb@F6EF = 28</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0100">01 (slow)</item>
            <item value="0x0300">02       </item>
            <item value="0x0600">03       </item>
            <item value="0x0900">04       </item>
            <item value="0x0c00">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@0F5A8 =         00040EB0</action>
            <action>maincpu.mq@40EB0 = 303C00004A6C0010</action>
            <action>maincpu.mq@40EB8 = 67086A0244403940</action>
            <action>maincpu.mq@40EC0 = 0010303C00004A6C</action>
            <action>maincpu.mq@40EC8 = 001267086A024440</action>
            <action>maincpu.mq@40ED0 = 394000124EB90000</action>
            <action>maincpu.mq@40ED8 = 9EA04E75FFFFFFFF</action>
            <!--
            40EB0 | 303C xxxx      : move.w  #$xx, D0     // x position
            40EB4 | 4A6C 0010      : tst.w   ($10,A4)
            40EB8 | 6708           : beq     $40ec2
            40EBA | 6A02           : bpl     $40ebe
            40EBC | 4440           : neg.w   D0
            40EBE | 3940 0010      : move.w  D0, ($10,A4)
            40EC2 | 303C xxxx      : move.w  #$xx, D0     // y position
            40EC6 | 4A6C 0012      : tst.w   ($12,A4)
            40ECA | 6708           : beq     $40ed4
            40ECC | 6A02           : bpl     $40ed0
            40ECE | 4440           : neg.w   D0
            40ED0 | 3940 0012      : move.w  D0, ($12,A4)
            40ED4 | 4EB9 0000 9EA0 : jsr     $9ea0.l
            40EDA | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@40EB2 = param</action>
            <action>maincpu.mw@40EC4 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@0F5A8 = 00009EA0        </action>
            <action>maincpu.mq@40EB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40EB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40EC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40EC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40ED0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40ED8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - red">
        <parameter>
            <item value="0x0600">01 (slow)</item>
            <item value="0x0c00">02       </item>
            <item value="0x1200">03       </item>
            <item value="0x1800">04       </item>
            <item value="0x1e00">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@FBF2 = param</action>
            <action>maincpu.mw@FD4C = param</action>
            <action>maincpu.mw@FD5E = param</action>
            <action>maincpu.mw@FDEE = param</action>
            <action>maincpu.mw@FE08 = param</action>
            <action>maincpu.mw@FE30 = param</action>
            <action>maincpu.mw@FE4A = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@FBF2 = 0D00</action>
            <action>maincpu.mw@FD4C = 0C80</action>
            <action>maincpu.mw@FD5E = 0C80</action>
            <action>maincpu.mw@FDEE = 0C80</action>
            <action>maincpu.mw@FE08 = 0B80</action>
            <action>maincpu.mw@FE30 = 0B80</action>
            <action>maincpu.mw@FE4A = 0C80</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@08C40 = 00040EE0        </action>
            <action>maincpu.mq@40EE0 = 41ED100043F90002</action>
            <action>maincpu.mq@40EE8 = 921A45E9004E1401</action>
            <action>maincpu.mq@40EF0 = 122D770FB40167F6</action>
            <action>maincpu.mq@40EF8 = 0C0100FE66025310</action>
            <action>maincpu.mq@40F00 = 0C0100FD66025210</action>
            <action>maincpu.mq@40F08 = 0C0100F766040410</action>
            <action>maincpu.mq@40F10 = 00100C0100FB6604</action>
            <action>maincpu.mq@40F18 = 061000100C0100EF</action>
            <action>maincpu.mq@40F20 = 661210100C00000E</action>
            <action>maincpu.mq@40F28 = 64044E9160060400</action>
            <action>maincpu.mq@40F30 = 000E4E920C0100DF</action>
            <action>maincpu.mq@40F38 = 660642004E914E92</action>
            <action>maincpu.mq@40F40 = 60ACFFFFFFFFFFFF</action>
            <!--
            40EE0 | 41ED 1000      : lea     ($1000,A5), A0 // sound code address ($101000)
            40EE4 | 43F9 0002 921A : lea     $2921a.l, A1   // music latch routine
            40EEA | 45E9 004E      : lea     ($4e,A1), A2   // sfx latch routine ($29268)
            40EEE | 1401           : move.b  D1, D2
            40EF0 | 122D 770F      : move.b  ($770f,A5), D1 // read input ($10770f)
            40EF4 | B401           : cmp.b   D1, D2
            40EF6 | 67F6           : beq     $40eee
            40EF8 | 0C01 00FE      : cmpi.b  #-$2, D1
            40EFC | 6602           : bne     $40f00
            40EFE | 5310           : subq.b  #1, (A0)       // decrease code -01
            40F00 | 0C01 00FD      : cmpi.b  #-$3, D1
            40F04 | 6602           : bne     $40f08
            40F06 | 5210           : addq.b  #1, (A0)       // increase code +01
            40F08 | 0C01 00F7      : cmpi.b  #-$9, D1
            40F0C | 6604           : bne     $40f12
            40F0E | 0410 0010      : subi.b  #$10, (A0)     // decrease code -10
            40F12 | 0C01 00FB      : cmpi.b  #-$5, D1
            40F16 | 6604           : bne     $40f1c
            40F18 | 0610 0010      : addi.b  #$10, (A0)     // increase code +10
            40F1C | 0C01 00EF      : cmpi.b  #-$11, D1
            40F20 | 6612           : bne     $40f34
            40F22 | 1010           : move.b  (A0), D0       // play sound
            40F24 | 0C00 000E      : cmpi.b  #$e, D0
            40F28 | 6404           : bcc     $40f2e
            40F2A | 4E91           : jsr     (A1)           // music
            40F2C | 6006           : bra     $40f34
            40F2E | 0400 000E      : subi.b  #$e, D0
            40F32 | 4E92           : jsr     (A2)           // sfx
            40F34 | 0C01 00DF      : cmpi.b  #-$21, D1
            40F38 | 6606           : bne     $40f40
            40F3A | 4200           : clr.b   D0             // stop sound
            40F3C | 4E91           : jsr     (A1)
            40F3E | 4E92           : jsr     (A2)
            40F40 | 60AC           : bra     $40eee
            -->
        </script>
        <script state="run">
            <output format="----- daioh 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@101000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@08C40 = 0000D31A        </action>
            <action>maincpu.mq@40EE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40EE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40EF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40EF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40F00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40F08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40F10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40F18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40F20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40F28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40F30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40F38 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40F40 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
daioha.xml

Code: Select all

<!-- Daioh (earlier) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@A6E7 = 2C</action>
        </script>
        <script state="off">
            <action>maincpu.mb@A6E7 = 02</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@F6EF = 2A</action>
        </script>
        <script state="off">
            <action>maincpu.mb@F6EF = 28</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0100">01 (slow)</item>
            <item value="0x0300">02       </item>
            <item value="0x0600">03       </item>
            <item value="0x0900">04       </item>
            <item value="0x0c00">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@0F5A8 =         00040EB0</action>
            <action>maincpu.mq@40EB0 = 303C00004A6C0010</action>
            <action>maincpu.mq@40EB8 = 67086A0244403940</action>
            <action>maincpu.mq@40EC0 = 0010303C00004A6C</action>
            <action>maincpu.mq@40EC8 = 001267086A024440</action>
            <action>maincpu.mq@40ED0 = 394000124EB90000</action>
            <action>maincpu.mq@40ED8 = 9EA04E75FFFFFFFF</action>
            <!--
            40EB0 | 303C xxxx      : move.w  #$xx, D0     // x position
            40EB4 | 4A6C 0010      : tst.w   ($10,A4)
            40EB8 | 6708           : beq     $40ec2
            40EBA | 6A02           : bpl     $40ebe
            40EBC | 4440           : neg.w   D0
            40EBE | 3940 0010      : move.w  D0, ($10,A4)
            40EC2 | 303C xxxx      : move.w  #$xx, D0     // y position
            40EC6 | 4A6C 0012      : tst.w   ($12,A4)
            40ECA | 6708           : beq     $40ed4
            40ECC | 6A02           : bpl     $40ed0
            40ECE | 4440           : neg.w   D0
            40ED0 | 3940 0012      : move.w  D0, ($12,A4)
            40ED4 | 4EB9 0000 9EA0 : jsr     $9ea0.l
            40EDA | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@40EB2 = param</action>
            <action>maincpu.mw@40EC4 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@0F5A8 = 00009EA0        </action>
            <action>maincpu.mq@40EB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40EB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40EC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40EC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40ED0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40ED8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - red">
        <parameter>
            <item value="0x0600">01 (slow)</item>
            <item value="0x0c00">02       </item>
            <item value="0x1200">03       </item>
            <item value="0x1800">04       </item>
            <item value="0x1e00">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@FBF2 = param</action>
            <action>maincpu.mw@FD4C = param</action>
            <action>maincpu.mw@FD5E = param</action>
            <action>maincpu.mw@FDEE = param</action>
            <action>maincpu.mw@FE08 = param</action>
            <action>maincpu.mw@FE30 = param</action>
            <action>maincpu.mw@FE4A = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@FBF2 = 0D00</action>
            <action>maincpu.mw@FD4C = 0C80</action>
            <action>maincpu.mw@FD5E = 0C80</action>
            <action>maincpu.mw@FDEE = 0C80</action>
            <action>maincpu.mw@FE08 = 0B80</action>
            <action>maincpu.mw@FE30 = 0B80</action>
            <action>maincpu.mw@FE4A = 0C80</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@08C40 = 00040EE0        </action>
            <action>maincpu.mq@40EE0 = 41ED100043F90002</action>
            <action>maincpu.mq@40EE8 = 921A45E9004E1401</action>
            <action>maincpu.mq@40EF0 = 122D770FB40167F6</action>
            <action>maincpu.mq@40EF8 = 0C0100FE66025310</action>
            <action>maincpu.mq@40F00 = 0C0100FD66025210</action>
            <action>maincpu.mq@40F08 = 0C0100F766040410</action>
            <action>maincpu.mq@40F10 = 00100C0100FB6604</action>
            <action>maincpu.mq@40F18 = 061000100C0100EF</action>
            <action>maincpu.mq@40F20 = 661210100C00000E</action>
            <action>maincpu.mq@40F28 = 64044E9160060400</action>
            <action>maincpu.mq@40F30 = 000E4E920C0100DF</action>
            <action>maincpu.mq@40F38 = 660642004E914E92</action>
            <action>maincpu.mq@40F40 = 60ACFFFFFFFFFFFF</action>
            <!--
            40EE0 | 41ED 1000      : lea     ($1000,A5), A0 // sound code address ($101000)
            40EE4 | 43F9 0002 921A : lea     $2921a.l, A1   // music latch routine
            40EEA | 45E9 004E      : lea     ($4e,A1), A2   // sfx latch routine ($29268)
            40EEE | 1401           : move.b  D1, D2
            40EF0 | 122D 770F      : move.b  ($770f,A5), D1 // read input ($10770f)
            40EF4 | B401           : cmp.b   D1, D2
            40EF6 | 67F6           : beq     $40eee
            40EF8 | 0C01 00FE      : cmpi.b  #-$2, D1
            40EFC | 6602           : bne     $40f00
            40EFE | 5310           : subq.b  #1, (A0)       // decrease code -01
            40F00 | 0C01 00FD      : cmpi.b  #-$3, D1
            40F04 | 6602           : bne     $40f08
            40F06 | 5210           : addq.b  #1, (A0)       // increase code +01
            40F08 | 0C01 00F7      : cmpi.b  #-$9, D1
            40F0C | 6604           : bne     $40f12
            40F0E | 0410 0010      : subi.b  #$10, (A0)     // decrease code -10
            40F12 | 0C01 00FB      : cmpi.b  #-$5, D1
            40F16 | 6604           : bne     $40f1c
            40F18 | 0610 0010      : addi.b  #$10, (A0)     // increase code +10
            40F1C | 0C01 00EF      : cmpi.b  #-$11, D1
            40F20 | 6612           : bne     $40f34
            40F22 | 1010           : move.b  (A0), D0       // play sound
            40F24 | 0C00 000E      : cmpi.b  #$e, D0
            40F28 | 6404           : bcc     $40f2e
            40F2A | 4E91           : jsr     (A1)           // music
            40F2C | 6006           : bra     $40f34
            40F2E | 0400 000E      : subi.b  #$e, D0
            40F32 | 4E92           : jsr     (A2)           // sfx
            40F34 | 0C01 00DF      : cmpi.b  #-$21, D1
            40F38 | 6606           : bne     $40f40
            40F3A | 4200           : clr.b   D0             // stop sound
            40F3C | 4E91           : jsr     (A1)
            40F3E | 4E92           : jsr     (A2)
            40F40 | 60AC           : bra     $40eee
            -->
        </script>
        <script state="run">
            <output format="----- daioh 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@101000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@08C40 = 0000D31A        </action>
            <action>maincpu.mq@40EE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40EE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40EF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40EF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40F00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40F08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40F10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40F18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40F20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40F28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40F30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40F38 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@40F40 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
daiohp.xml

Code: Select all

<!-- Daioh (prototype) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@A655 = 2C</action>
        </script>
        <script state="off">
            <action>maincpu.mb@A655 = 02</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@11593 = 2A</action>
        </script>
        <script state="off">
            <action>maincpu.mb@11593 = 28</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0100">01 (slow)</item>
            <item value="0x0300">02       </item>
            <item value="0x0600">03       </item>
            <item value="0x0900">04       </item>
            <item value="0x0c00">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@11464 =         000424D0</action>
            <action>maincpu.mq@424D0 = 303C00004A6C0010</action>
            <action>maincpu.mq@424D8 = 67086A0244403940</action>
            <action>maincpu.mq@424E0 = 0010303C00004A6C</action>
            <action>maincpu.mq@424E8 = 001267086A024440</action>
            <action>maincpu.mq@424F0 = 394000124EB90000</action>
            <action>maincpu.mq@424F8 = 9E164E75FFFFFFFF</action>
            <!--
            424D0 | 303C xxxx      : move.w  #$xx, D0     // x position
            424D4 | 4A6C 0010      : tst.w   ($10,A4)
            424D8 | 6708           : beq     $424e2
            424DA | 6A02           : bpl     $424de
            424DC | 4440           : neg.w   D0
            424DE | 3940 0010      : move.w  D0, ($10,A4)
            424E2 | 303C xxxx      : move.w  #$xx, D0     // y position
            424E6 | 4A6C 0012      : tst.w   ($12,A4)
            424EA | 6708           : beq     $424f4
            424EC | 6A02           : bpl     $424f0
            424EE | 4440           : neg.w   D0
            424F0 | 3940 0012      : move.w  D0, ($12,A4)
            424F4 | 4EB9 0000 9E16 : jsr     $9e16.l
            424FA | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@424D2 = param</action>
            <action>maincpu.mw@424E4 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@0F5A8 = 00009E16        </action>
            <action>maincpu.mq@424D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@424D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@424E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@424E8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@424F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@424F8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - red">
        <parameter>
            <item value="0x0600">01 (slow)</item>
            <item value="0x0c00">02       </item>
            <item value="0x1200">03       </item>
            <item value="0x1800">04       </item>
            <item value="0x1e00">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@11A96 = param</action>
            <action>maincpu.mw@11BF0 = param</action>
            <action>maincpu.mw@11C02 = param</action>
            <action>maincpu.mw@11C92 = param</action>
            <action>maincpu.mw@11CAC = param</action>
            <action>maincpu.mw@11CD4 = param</action>
            <action>maincpu.mw@11CEE = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@11A96 = 0D00</action>
            <action>maincpu.mw@11BF0 = 0C80</action>
            <action>maincpu.mw@11C02 = 0C80</action>
            <action>maincpu.mw@11C92 = 0C80</action>
            <action>maincpu.mw@11CAC = 0B80</action>
            <action>maincpu.mw@11CD4 = 0B80</action>
            <action>maincpu.mw@11CEE = 0C80</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@08BCA = 00042500        </action>
            <action>maincpu.mq@42500 = 41ED100043F90002</action>
            <action>maincpu.mq@42508 = B3D445E9004A1401</action>
            <action>maincpu.mq@42510 = 122D6F09B40167F6</action>
            <action>maincpu.mq@42518 = 0C0100FE66025310</action>
            <action>maincpu.mq@42520 = 0C0100FD66025210</action>
            <action>maincpu.mq@42528 = 0C0100F766040410</action>
            <action>maincpu.mq@42530 = 00100C0100FB6604</action>
            <action>maincpu.mq@42538 = 061000100C0100EF</action>
            <action>maincpu.mq@42540 = 661210100C00000E</action>
            <action>maincpu.mq@42548 = 64044E9160060400</action>
            <action>maincpu.mq@42550 = 000E4E920C0100DF</action>
            <action>maincpu.mq@42558 = 660642004E914E92</action>
            <action>maincpu.mq@42560 = 60ACFFFFFFFFFFFF</action>
            <!--
            42500 | 41ED 1000      : lea     ($1000,A5), A0 // sound code address ($201000)
            42504 | 43F9 0002 B3D4 : lea     $2b3d4.l, A1   // music latch routine
            4250A | 45E9 004A      : lea     ($4a,A1), A2   // sfx latch routine ($2b41e)
            4250E | 1401           : move.b  D1, D2
            42510 | 122D 6F09      : move.b  ($6f09,A5), D1 // read input ($206f09)
            42514 | B401           : cmp.b   D1, D2
            42516 | 67F6           : beq     $4250e
            42518 | 0C01 00FE      : cmpi.b  #-$2, D1
            4251C | 6602           : bne     $42520
            4251E | 5310           : subq.b  #1, (A0)       // decrease code -01
            42520 | 0C01 00FD      : cmpi.b  #-$3, D1
            42524 | 6602           : bne     $42528
            42526 | 5210           : addq.b  #1, (A0)       // increase code +01
            42528 | 0C01 00F7      : cmpi.b  #-$9, D1
            4252C | 6604           : bne     $42532
            4252E | 0410 0010      : subi.b  #$10, (A0)     // decrease code -10
            42532 | 0C01 00FB      : cmpi.b  #-$5, D1
            42536 | 6604           : bne     $4253c
            42538 | 0610 0010      : addi.b  #$10, (A0)     // increase code +10
            4253C | 0C01 00EF      : cmpi.b  #-$11, D1
            42540 | 6612           : bne     $42554
            42542 | 1010           : move.b  (A0), D0       // play sound
            42544 | 0C00 000E      : cmpi.b  #$e, D0
            42548 | 6404           : bcc     $4254e
            4254A | 4E91           : jsr     (A1)           // music
            4254C | 6006           : bra     $42554
            4254E | 0400 000E      : subi.b  #$e, D0
            42552 | 4E92           : jsr     (A2)           // sfx
            42554 | 0C01 00DF      : cmpi.b  #-$21, D1
            42558 | 6606           : bne     $42560
            4255A | 4200           : clr.b   D0             // stop sound
            4255C | 4E91           : jsr     (A1)
            4255E | 4E92           : jsr     (A2)
            42560 | 60AC           : bra     $4250e
            -->
        </script>
        <script state="run">
            <output format="----- daioh 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@201000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@08BCA = 0000F204        </action>
            <action>maincpu.mq@42500 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@42508 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@42510 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@42518 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@42520 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@42528 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@42530 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@42538 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@42540 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@42548 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@42550 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@42558 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@42560 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
daiohp2.xml

Code: Select all

<!-- Daioh (prototype, earlier) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@5621 = 2C</action>
        </script>
        <script state="off">
            <action>maincpu.mb@5621 = 02</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@A5F7 = 2A</action>
        </script>
        <script state="off">
            <action>maincpu.mw@A5F7 = 28</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0100">01 (slow)</item>
            <item value="0x0300">02       </item>
            <item value="0x0600">03       </item>
            <item value="0x0900">04       </item>
            <item value="0x0c00">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@0A4B0 =         0003B420</action>
            <action>maincpu.mq@3B420 = 303C00004A6C0010</action>
            <action>maincpu.mq@3B428 = 67086A0244403940</action>
            <action>maincpu.mq@3B430 = 0010303C00004A6C</action>
            <action>maincpu.mq@3B438 = 001267086A024440</action>
            <action>maincpu.mq@3B440 = 394000124EB90000</action>
            <action>maincpu.mq@3B448 = 4DDA4E75FFFFFFFF</action>
            <!--
            3B420 | 303C xxxx      : move.w  #$xx, D0     // x position
            3B424 | 4A6C 0010      : tst.w   ($10,A4)
            3B428 | 6708           : beq     $3b432
            3B42A | 6A02           : bpl     $3b42e
            3B42C | 4440           : neg.w   D0
            3B42E | 3940 0010      : move.w  D0, ($10,A4)
            3B432 | 303C xxxx      : move.w  #$xx, D0     // y position
            3B436 | 4A6C 0012      : tst.w   ($12,A4)
            3B43A | 6708           : beq     $3b444
            3B43C | 6A02           : bpl     $3b440
            3B43E | 4440           : neg.w   D0
            3B440 | 3940 0012      : move.w  D0, ($12,A4)
            3B444 | 4EB9 0000 4DDA : jsr     $4dda.l
            3B44A | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@3B422 = param</action>
            <action>maincpu.mw@3B434 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@0A4B0 = 00004DDA        </action>
            <action>maincpu.mq@3B420 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B428 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B430 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B438 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B440 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B448 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - red">
        <parameter>
            <item value="0x0600">01 (slow)</item>
            <item value="0x0c00">02       </item>
            <item value="0x1200">03       </item>
            <item value="0x1800">04       </item>
            <item value="0x1e00">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@AAFA = param</action>
            <action>maincpu.mw@AC54 = param</action>
            <action>maincpu.mw@AC66 = param</action>
            <action>maincpu.mw@ACF6 = param</action>
            <action>maincpu.mw@AD10 = param</action>
            <action>maincpu.mw@AD38 = param</action>
            <action>maincpu.mw@AD52 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@AAFA = 0D00</action>
            <action>maincpu.mw@AC54 = 0C80</action>
            <action>maincpu.mw@AC66 = 0C80</action>
            <action>maincpu.mw@ACF6 = 0C80</action>
            <action>maincpu.mw@AD10 = 0B80</action>
            <action>maincpu.mw@AD38 = 0B80</action>
            <action>maincpu.mw@AD52 = 0C80</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@03B7A = 0003B450        </action>
            <action>maincpu.mq@3B450 = 41ED100043F90002</action>
            <action>maincpu.mq@3B458 = 411845E9004A1401</action>
            <action>maincpu.mq@3B460 = 122D770FB40167F6</action>
            <action>maincpu.mq@3B468 = 0C0100FE66025310</action>
            <action>maincpu.mq@3B470 = 0C0100FD66025210</action>
            <action>maincpu.mq@3B478 = 0C0100F766040410</action>
            <action>maincpu.mq@3B480 = 00100C0100FB6604</action>
            <action>maincpu.mq@3B488 = 061000100C0100EF</action>
            <action>maincpu.mq@3B490 = 661210100C00000E</action>
            <action>maincpu.mq@3B498 = 64044E9160060400</action>
            <action>maincpu.mq@3B4A0 = 000E4E920C0100DF</action>
            <action>maincpu.mq@3B4A8 = 660642004E914E92</action>
            <action>maincpu.mq@3B4B0 = 60ACFFFFFFFFFFFF</action>
            <!--
            3B450 | 41ED 1000      : lea     ($1000,A5), A0 // sound code address ($201000)
            3B454 | 43F9 0002 4118 : lea     $24118.l, A1   // music latch routine
            3B45A | 45E9 004A      : lea     ($4a,A1), A2   // sfx latch routine ($24162)
            3B45E | 1401           : move.b  D1, D2
            3B460 | 122D 770F      : move.b  ($770f,A5), D1 // read input ($20770f)
            3B464 | B401           : cmp.b   D1, D2
            3B466 | 67F6           : beq     $3b45e
            3B468 | 0C01 00FE      : cmpi.b  #-$2, D1
            3B46C | 6602           : bne     $3b470
            3B46E | 5310           : subq.b  #1, (A0)       // decrease code -01
            3B470 | 0C01 00FD      : cmpi.b  #-$3, D1
            3B474 | 6602           : bne     $3b478
            3B476 | 5210           : addq.b  #1, (A0)       // increase code +01
            3B478 | 0C01 00F7      : cmpi.b  #-$9, D1
            3B47C | 6604           : bne     $3b482
            3B47E | 0410 0010      : subi.b  #$10, (A0)     // decrease code -10
            3B482 | 0C01 00FB      : cmpi.b  #-$5, D1
            3B486 | 6604           : bne     $3b48c
            3B488 | 0610 0010      : addi.b  #$10, (A0)     // increase code +10
            3B48C | 0C01 00EF      : cmpi.b  #-$11, D1
            3B490 | 6612           : bne     $3b4a4
            3B492 | 1010           : move.b  (A0), D0       // play sound
            3B494 | 0C00 000E      : cmpi.b  #$e, D0
            3B498 | 6404           : bcc     $3b49e
            3B49A | 4E91           : jsr     (A1)           // music
            3B49C | 6006           : bra     $3b4a4
            3B49E | 0400 000E      : subi.b  #$e, D0
            3B4A2 | 4E92           : jsr     (A2)           // sfx
            3B4A4 | 0C01 00DF      : cmpi.b  #-$21, D1
            3B4A8 | 6606           : bne     $3b4b0
            3B4AA | 4200           : clr.b   D0             // stop sound
            3B4AC | 4E91           : jsr     (A1)
            3B4AE | 4E92           : jsr     (A2)
            3B4B0 | 60AC           : bra     $3b45e
            -->
        </script>
        <script state="run">
            <output format="----- daioh 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@201000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@03B7A = 00008224        </action>
            <action>maincpu.mq@3B450 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B458 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B460 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B468 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B470 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B478 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B480 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B488 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B490 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B498 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B4A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B4A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B4B0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
daiohp3.xml

Code: Select all

<!-- Daioh (prototype, earliest) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@A535 = 2C</action>
        </script>
        <script state="off">
            <action>maincpu.mb@A535 = 02</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@1132F = 2A</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1132F = 28</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0100">01 (slow)</item>
            <item value="0x0300">02       </item>
            <item value="0x0600">03       </item>
            <item value="0x0900">04       </item>
            <item value="0x0c00">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@11200 =         0003E2D0</action>
            <action>maincpu.mq@3E2D0 = 303C00004A6C0010</action>
            <action>maincpu.mq@3E2D8 = 67086A0244403940</action>
            <action>maincpu.mq@3E2E0 = 0010303C00004A6C</action>
            <action>maincpu.mq@3E2E8 = 001267086A024440</action>
            <action>maincpu.mq@3E2F0 = 394000124EB90000</action>
            <action>maincpu.mq@3E2F8 = 9CF64E75FFFFFFFF</action>
            <!--
            3E2D0 | 303C xxxx      : move.w  #$xx, D0     // x position
            3E2D4 | 4A6C 0010      : tst.w   ($10,A4)
            3E2D8 | 6708           : beq     $3e2e2
            3E2DA | 6A02           : bpl     $3e2de
            3E2DC | 4440           : neg.w   D0
            3E2DE | 3940 0010      : move.w  D0, ($10,A4)
            3E2E2 | 303C xxxx      : move.w  #$xx, D0     // y position
            3E2E6 | 4A6C 0012      : tst.w   ($12,A4)
            3E2EA | 6708           : beq     $3e2f4
            3E2EC | 6A02           : bpl     $3e2f0
            3E2EE | 4440           : neg.w   D0
            3E2F0 | 3940 0012      : move.w  D0, ($12,A4)
            3E2F4 | 4EB9 0000 9CF6 : jsr     $9cf6.l
            3E2FA | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@3E2D2 = param</action>
            <action>maincpu.mw@3E2E4 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@11200 = 00009CF6        </action>
            <action>maincpu.mq@3E2D0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E2D8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E2E0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E2E8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E2F0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E2F8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - red">
        <parameter>
            <item value="0x0600">01 (slow)</item>
            <item value="0x0c00">02       </item>
            <item value="0x1200">03       </item>
            <item value="0x1800">04       </item>
            <item value="0x1e00">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@11840 = param</action>
            <action>maincpu.mw@1199A = param</action>
            <action>maincpu.mw@119AC = param</action>
            <action>maincpu.mw@11A3C = param</action>
            <action>maincpu.mw@11A56 = param</action>
            <action>maincpu.mw@11A7E = param</action>
            <action>maincpu.mw@11A98 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@11840 = 0D00</action>
            <action>maincpu.mw@1199A = 0C80</action>
            <action>maincpu.mw@119AC = 0C80</action>
            <action>maincpu.mw@11A3C = 0C80</action>
            <action>maincpu.mw@11A56 = 0B80</action>
            <action>maincpu.mw@11A7E = 0B80</action>
            <action>maincpu.mw@11A98 = 0C80</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@08AAA = 0003E300        </action>
            <action>maincpu.mq@3E300 = 41ED100043F90002</action>
            <action>maincpu.mq@3E308 = 7D4245E900481401</action>
            <action>maincpu.mq@3E310 = 122D6ED1B40167F6</action>
            <action>maincpu.mq@3E318 = 0C0100FE66025310</action>
            <action>maincpu.mq@3E320 = 0C0100FD66025210</action>
            <action>maincpu.mq@3E328 = 0C0100F766040410</action>
            <action>maincpu.mq@3E330 = 00100C0100FB6604</action>
            <action>maincpu.mq@3E338 = 061000100C0100EF</action>
            <action>maincpu.mq@3E340 = 661210100C00000E</action>
            <action>maincpu.mq@3E348 = 64044E9160060400</action>
            <action>maincpu.mq@3E350 = 000E4E920C0100DF</action>
            <action>maincpu.mq@3E358 = 660642004E914E92</action>
            <action>maincpu.mq@3E360 = 60ACFFFFFFFFFFFF</action>
            <!--
            3E300 | 41ED 1000      : lea     ($1000,A5), A0 // sound code address ($201000)
            3E304 | 43F9 0002 7D42 : lea     $27d42.l, A1   // music latch routine
            3E30A | 45E9 0048      : lea     ($48,A1), A2   // sfx latch routine ($27d8a)
            3E30E | 1401           : move.b  D1, D2
            3E310 | 122D 6ED1      : move.b  ($6ed1,A5), D1 // read input ($206ed1)
            3E314 | B401           : cmp.b   D1, D2
            3E316 | 67F6           : beq     $40eee
            3E318 | 0C01 00FE      : cmpi.b  #-$2, D1
            3E31C | 6602           : bne     $40f00
            3E31E | 5310           : subq.b  #1, (A0)       // decrease code -01
            3E320 | 0C01 00FD      : cmpi.b  #-$3, D1
            3E324 | 6602           : bne     $40f08
            3E326 | 5210           : addq.b  #1, (A0)       // increase code +01
            3E328 | 0C01 00F7      : cmpi.b  #-$9, D1
            3E32C | 6604           : bne     $40f12
            3E32E | 0410 0010      : subi.b  #$10, (A0)     // decrease code -10
            3E332 | 0C01 00FB      : cmpi.b  #-$5, D1
            3E336 | 6604           : bne     $40f1c
            3E338 | 0610 0010      : addi.b  #$10, (A0)     // increase code +10
            3E33C | 0C01 00EF      : cmpi.b  #-$11, D1
            3E340 | 6612           : bne     $40f34
            3E342 | 1010           : move.b  (A0), D0       // play sound
            3E344 | 0C00 000E      : cmpi.b  #$e, D0
            3E348 | 6404           : bcc     $40f2e
            3E34A | 4E91           : jsr     (A1)           // music
            3E34C | 6006           : bra     $40f34
            3E34E | 0400 000E      : subi.b  #$e, D0
            3E352 | 4E92           : jsr     (A2)           // sfx
            3E354 | 0C01 00DF      : cmpi.b  #-$21, D1
            3E358 | 6606           : bne     $40f40
            3E35A | 4200           : clr.b   D0             // stop sound
            3E35C | 4E91           : jsr     (A1)
            3E35E | 4E92           : jsr     (A2)
            3E360 | 60AC           : bra     $40eee
            -->
        </script>
        <script state="run">
            <output format="----- daioh 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@201000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@08AAA = 0000EEFE        </action>
            <action>maincpu.mq@3E300 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E308 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E310 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E318 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E320 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E328 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E330 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E338 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E340 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E348 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E350 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E358 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E360 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
daiohc.xml

Code: Select all

<!-- Daioh (93111A PCB conversion) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@5621 = 2C</action>
        </script>
        <script state="off">
            <action>maincpu.mb@5621 = 02</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@A5F7 = 2A</action>
        </script>
        <script state="off">
            <action>maincpu.mb@A5F7 = 28</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0100">01 (slow)</item>
            <item value="0x0300">02       </item>
            <item value="0x0600">03       </item>
            <item value="0x0900">04       </item>
            <item value="0x0c00">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@0A4B0 =         0003B420</action>
            <action>maincpu.mq@3B420 = 303C00004A6C0010</action>
            <action>maincpu.mq@3B428 = 67086A0244403940</action>
            <action>maincpu.mq@3B430 = 0010303C00004A6C</action>
            <action>maincpu.mq@3B438 = 001267086A024440</action>
            <action>maincpu.mq@3B440 = 394000124EB90000</action>
            <action>maincpu.mq@3B448 = 4DDA4E75FFFFFFFF</action>
            <!--
            3B420 | 303C xxxx      : move.w  #$xx, D0     // x position
            3B424 | 4A6C 0010      : tst.w   ($10,A4)
            3B428 | 6708           : beq     $3b432
            3B42A | 6A02           : bpl     $3b42e
            3B42C | 4440           : neg.w   D0
            3B42E | 3940 0010      : move.w  D0, ($10,A4)
            3B432 | 303C xxxx      : move.w  #$xx, D0     // y position
            3B436 | 4A6C 0012      : tst.w   ($12,A4)
            3B43A | 6708           : beq     $3b444
            3B43C | 6A02           : bpl     $3b440
            3B43E | 4440           : neg.w   D0
            3B440 | 3940 0012      : move.w  D0, ($12,A4)
            3B444 | 4EB9 0000 4DDA : jsr     $4dda.l
            3B44A | 4E75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@3B422 = param</action>
            <action>maincpu.mw@3B434 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@0A4B0 = 00004DDA        </action>
            <action>maincpu.mq@3B420 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B428 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B430 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B438 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B440 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B448 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - red">
        <parameter>
            <item value="0x0600">01 (slow)</item>
            <item value="0x0c00">02       </item>
            <item value="0x1200">03       </item>
            <item value="0x1800">04       </item>
            <item value="0x1e00">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mw@AAFA = param</action>
            <action>maincpu.mw@AC54 = param</action>
            <action>maincpu.mw@AC66 = param</action>
            <action>maincpu.mw@ACF6 = param</action>
            <action>maincpu.mw@AD10 = param</action>
            <action>maincpu.mw@AD38 = param</action>
            <action>maincpu.mw@AD52 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@AAFA = 0D00</action>
            <action>maincpu.mw@AC54 = 0C80</action>
            <action>maincpu.mw@AC66 = 0C80</action>
            <action>maincpu.mw@ACF6 = 0C80</action>
            <action>maincpu.mw@AD10 = 0B80</action>
            <action>maincpu.mw@AD38 = 0B80</action>
            <action>maincpu.mw@AD52 = 0C80</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@03B7A = 0003B450        </action>
            <action>maincpu.mq@3B450 = 41ED100043F90002</action>
            <action>maincpu.mq@3B458 = 411845E9004A1401</action>
            <action>maincpu.mq@3B460 = 122D770FB40167F6</action>
            <action>maincpu.mq@3B468 = 0C0100FE66025310</action>
            <action>maincpu.mq@3B470 = 0C0100FD66025210</action>
            <action>maincpu.mq@3B478 = 0C0100F766040410</action>
            <action>maincpu.mq@3B480 = 00100C0100FB6604</action>
            <action>maincpu.mq@3B488 = 061000100C0100EF</action>
            <action>maincpu.mq@3B490 = 661210100C00000E</action>
            <action>maincpu.mq@3B498 = 64044E9160060400</action>
            <action>maincpu.mq@3B4A0 = 000E4E920C0100DF</action>
            <action>maincpu.mq@3B4A8 = 660642004E914E92</action>
            <action>maincpu.mq@3B4B0 = 60ACFFFFFFFFFFFF</action>
            <!--
            3B450 | 41ED 1000      : lea     ($1000,A5), A0 // sound code address ($201000)
            3B454 | 43F9 0002 4118 : lea     $24118.l, A1   // music latch routine
            3B45A | 45E9 004A      : lea     ($4a,A1), A2   // sfx latch routine ($24162)
            3B45E | 1401           : move.b  D1, D2
            3B460 | 122D 770F      : move.b  ($770f,A5), D1 // read input ($20770f)
            3B464 | B401           : cmp.b   D1, D2
            3B466 | 67F6           : beq     $3b45e
            3B468 | 0C01 00FE      : cmpi.b  #-$2, D1
            3B46C | 6602           : bne     $3b470
            3B46E | 5310           : subq.b  #1, (A0)       // decrease code -01
            3B470 | 0C01 00FD      : cmpi.b  #-$3, D1
            3B474 | 6602           : bne     $3b478
            3B476 | 5210           : addq.b  #1, (A0)       // increase code +01
            3B478 | 0C01 00F7      : cmpi.b  #-$9, D1
            3B47C | 6604           : bne     $3b482
            3B47E | 0410 0010      : subi.b  #$10, (A0)     // decrease code -10
            3B482 | 0C01 00FB      : cmpi.b  #-$5, D1
            3B486 | 6604           : bne     $3b48c
            3B488 | 0610 0010      : addi.b  #$10, (A0)     // increase code +10
            3B48C | 0C01 00EF      : cmpi.b  #-$11, D1
            3B490 | 6612           : bne     $3b4a4
            3B492 | 1010           : move.b  (A0), D0       // play sound
            3B494 | 0C00 000E      : cmpi.b  #$e, D0
            3B498 | 6404           : bcc     $3b49e
            3B49A | 4E91           : jsr     (A1)           // music
            3B49C | 6006           : bra     $3b4a4
            3B49E | 0400 000E      : subi.b  #$e, D0
            3B4A2 | 4E92           : jsr     (A2)           // sfx
            3B4A4 | 0C01 00DF      : cmpi.b  #-$21, D1
            3B4A8 | 6606           : bne     $3b4b0
            3B4AA | 4200           : clr.b   D0             // stop sound
            3B4AC | 4E91           : jsr     (A1)
            3B4AE | 4E92           : jsr     (A2)
            3B4B0 | 60AC           : bra     $3b45e
            -->
        </script>
        <script state="run">
            <output format="----- daioh 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@201000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.md@03B7A = 00008224        </action>
            <action>maincpu.mq@3B450 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B458 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B460 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B468 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B470 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B478 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B480 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B488 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B490 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B498 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B4A0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B4A8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3B4B0 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>