Page 1 of 1

[fhawkj] Fighting Hawk

Posted: Thu Dec 10, 2020 10:07 am
by jman

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>slave.mb@0631 = c3</action> <!-- bullet -->
        <action>slave.mb@070f = c3</action> <!-- enemy -->
        <action>slave.mb@080d = c3</action> <!-- final boss -->
    </script>
    <script state="off">
        <action>slave.mb@0631 = da</action>
        <action>slave.mb@070f = da</action>
        <action>slave.mb@080d = da</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>tc0090lvc.mb@52a4 = 00</action>
    </script>
    <script state="off">
        <action>tc0090lvc.mb@52a4 = 1f</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter min="0x01" max="0x05" step="0x01" />
    <script state="change">
        <action>tc0090lvc.mb@5213 = param</action> <!-- up -->
        <action>tc0090lvc.mb@5226 = param</action> <!-- down -->
        <action>tc0090lvc.mb@5232 = param</action> <!-- left -->
        <action>tc0090lvc.mb@523a = param</action> <!-- right -->
    </script>
    <script state="off">
        <action>tc0090lvc.mb@5213 = 02</action>
        <action>tc0090lvc.mb@5226 = 02</action>
        <action>tc0090lvc.mb@5232 = 02</action>
        <action>tc0090lvc.mb@523a = 02</action>
    </script>
</cheat>

<cheat desc="bullet speed">
    <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>tc0090lvc.mb@56c1 = param</action> <!-- shot level 1-4 -->
        <action>tc0090lvc.mb@555d = param</action> <!-- shot level 5 -->
        <action>tc0090lvc.mb@55dd = param</action> <!-- shot level 6 -->
    </script>
    <script state="off">
        <action>tc0090lvc.mb@56c1 = 0c</action>
        <action>tc0090lvc.mb@555d = 0c</action>
        <action>tc0090lvc.mb@55dd = 0c</action>
    </script>
</cheat>

[fhawkj] update

Posted: Sat Nov 13, 2021 10:43 am
by jman
Recent fhawk and clones don't have "tc0090lvc" region tag so that I replace it with "maincpu" for posted codes.

Code: Select all

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@52a4 = 00</action>
    </script>
    <script state="off">
        <action>maincpu.mb@52a4 = 1f</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter min="0x01" max="0x05" step="0x01" />
    <script state="change">
        <action>maincpu.mb@5213 = param</action> <!-- up -->
        <action>maincpu.mb@5226 = param</action> <!-- down -->
        <action>maincpu.mb@5232 = param</action> <!-- left -->
        <action>maincpu.mb@523a = param</action> <!-- right -->
    </script>
    <script state="off">
        <action>maincpu.mb@5213 = 02</action>
        <action>maincpu.mb@5226 = 02</action>
        <action>maincpu.mb@5232 = 02</action>
        <action>maincpu.mb@523a = 02</action>
    </script>
</cheat>

<cheat desc="bullet speed">
    <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@56c1 = param</action> <!-- shot level 1-4 -->
        <action>maincpu.mb@555d = param</action> <!-- shot level 5 -->
        <action>maincpu.mb@55dd = param</action> <!-- shot level 6 -->
    </script>
    <script state="off">
        <action>maincpu.mb@56c1 = 0c</action>
        <action>maincpu.mb@555d = 0c</action>
        <action>maincpu.mb@55dd = 0c</action>
    </script>
</cheat>
Added "sound test mode".

Code: Select all

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mb@005c =               c9</action> <!-- disable sequence on main cpu -->
        <action>  slave.mw@0055 =             1000</action>
        <action>  slave.mq@1000 = 023ad00032e10021</action>
        <action>  slave.mq@1008 = 20fbfef62847b8d0</action>
        <action>  slave.mq@1010 = fe340120f7fe3501</action>
        <action>  slave.mq@1018 = dffe05187e0320ef</action>
        <action>  slave.mq@1020 = db180fa5cdaf0420</action>
        <!--
        1000 | 21 00 e1 : ld   hl,$E100  // sound code address
        1003 | 32 00 d0 : ld   ($D000),a // watchdog
        1006 | 3a 02 d0 : ld   a,($D002) // read input
        1009 | b8       : cp   b
        100a | 47       : ld   b,a
        100b | 28 f6    : jr   z,$1003
        100d | fe fb    : cp   $FB
        100f | 20 01    : jr   nz,$1012
        1011 | 35       : dec  (hl)      // decrease code
        1012 | fe f7    : cp   $F7
        1014 | 20 01    : jr   nz,$1017
        1016 | 34       : inc  (hl)      // increase code
        1017 | fe ef    : cp   $EF
        1019 | 20 03    : jr   nz,$101E
        101b | 7e       : ld   a,(hl)    // play sound
        101c | 18 05    : jr   $1023
        101e | fe df    : cp   $DF
        1020 | 20 04    : jr   nz,$1026
        1022 | af       : xor  a         // stop sound
        1023 | cd a5 0f : call $0FA5
        1026 | 18 db    : jr   $1003
        -->
    </script>
    <script state="run">
        <output format="----- fighting hawk 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>slave.pb@e100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mb@005c =               21</action>
        <action>  slave.mw@0055 =             0122</action>
        <action>  slave.mq@1000 = ffffffffffffffff</action>
        <action>  slave.mq@1008 = ffffffffffffffff</action>
        <action>  slave.mq@1010 = ffffffffffffffff</action>
        <action>  slave.mq@1018 = ffffffffffffffff</action>
        <action>  slave.mq@1020 = ffffffffffffffff</action>
    </script>
</cheat>

[fhawkj] Fighting Hawk (update)

Posted: Sat Nov 19, 2022 8:54 am
by jman

Code: Select all

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mb@005c =               c9</action> <!-- disable sequence on main cpu -->
        <action>  slave.mw@0055 =             1000</action>
        <action>  slave.mq@1000 = 023ad00032e10021</action>
        <action>  slave.mq@1008 = 20fbfef62847b8d0</action>
        <action>  slave.mq@1010 = fe340120f7fe3501</action>
        <action>  slave.mq@1018 = fe0618f03e0420fd</action>
        <action>  slave.mq@1020 = 787786103e0520fe</action>
        <action>  slave.mq@1028 = fe05187e0320effe</action>
        <action>  slave.mq@1030 = 180fa5cdaf0420df</action>
        <action>  slave.mq@1038 = ffffffffffffffca</action>
        <!--
        1000 | 21 00 e1 : ld   hl,$E100  // sound code address
        1003 | 32 00 d0 : ld   ($D000),a // watchdog
        1006 | 3a 02 d0 : ld   a,($D002) // read input
        1009 | b8       : cp   b
        100a | 47       : ld   b,a
        100b | 28 f6    : jr   z,$1003
        100d | fe fb    : cp   $FB
        100f | 20 01    : jr   nz,$1012
        1011 | 35       : dec  (hl)      // decrease code -01
        1012 | fe f7    : cp   $F7
        1014 | 20 01    : jr   nz,$1017
        1016 | 34       : inc  (hl)      // increase code +01
        1017 | fe fd    : cp   $FD
        1019 | 20 04    : jr   nz,$101F
        101b | 3e f0    : ld   a,$F0     // decrease code -10
        101d | 18 06    : jr   $1025
        101f | fe fe    : cp   $FE
        1021 | 20 05    : jr   nz,$1028
        1023 | 3e 10    : ld   a,$10     // increase code +10
        1025 | 86       : add  a,(hl)
        1026 | 77       : ld   (hl),a
        1027 | 78       : ld   a,b
        1028 | fe ef    : cp   $EF
        102a | 20 03    : jr   nz,$102F
        102c | 7e       : ld   a,(hl)    // play sound
        102d | 18 05    : jr   $1034
        102f | fe df    : cp   $DF
        1031 | 20 04    : jr   nz,$1037
        1033 | af       : xor  a         // stop sound
        1034 | cd a5 0f : call $0FA5     // send sound code
        1037 | 18 ca    : jr   $1003
        -->
    </script>
    <script state="run">
        <output format="----- fighting hawk 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>slave.pb@e100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mb@005c =               21</action>
        <action>  slave.mw@0055 =             0122</action>
        <action>  slave.mq@1000 = ffffffffffffffff</action>
        <action>  slave.mq@1008 = ffffffffffffffff</action>
        <action>  slave.mq@1010 = ffffffffffffffff</action>
        <action>  slave.mq@1018 = ffffffffffffffff</action>
        <action>  slave.mq@1020 = ffffffffffffffff</action>
        <action>  slave.mq@1028 = ffffffffffffffff</action>
        <action>  slave.mq@1030 = ffffffffffffffff</action>
        <action>  slave.mq@1038 = ffffffffffffffff</action>
    </script>
</cheat>
"sound test mode" : rewrite routine. add up/down key (code ±10).

[fhawk]+ Fighting Hawk

Posted: Mon Feb 19, 2024 1:16 am
by jman
fhawk.xml

Code: Select all

<!-- Fighting Hawk (World) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>slave.mb@0631 = C3</action> <!-- bullet -->
            <action>slave.mb@070F = C3</action> <!-- enemy -->
            <action>slave.mb@080D = C3</action> <!-- final boss -->
        </script>
        <script state="off">
            <action>slave.mb@0631 = DA</action>
            <action>slave.mb@070F = DA</action>
            <action>slave.mb@080D = DA</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@52A4 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@52A4 = 1F</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="change">
            <action>maincpu.mb@5213 = param</action> <!-- up -->
            <action>maincpu.mb@5226 = param</action> <!-- down -->
            <action>maincpu.mb@5232 = param</action> <!-- left -->
            <action>maincpu.mb@523A = param</action> <!-- right -->
        </script>
        <script state="off">
            <action>maincpu.mb@5213 = 02</action>
            <action>maincpu.mb@5226 = 02</action>
            <action>maincpu.mb@5232 = 02</action>
            <action>maincpu.mb@523A = 02</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <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@56C1 = param</action> <!-- shot level 1-4 -->
            <action>maincpu.mb@555D = param</action> <!-- shot level 5 -->
            <action>maincpu.mb@55DD = param</action> <!-- shot level 6 -->
        </script>
        <script state="off">
            <action>maincpu.mb@56C1 = 0C</action>
            <action>maincpu.mb@555D = 0C</action>
            <action>maincpu.mb@55DD = 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.mb@005C = C9              </action> <!-- disable sequence on main cpu -->
            <action>  slave.mw@0055 = 1000            </action>
            <action>  slave.mq@1000 = 023AD00032E10021</action>
            <action>  slave.mq@1008 = 20FBFEF62847B8D0</action>
            <action>  slave.mq@1010 = FE340120F7FE3501</action>
            <action>  slave.mq@1018 = FE0618F03E0420FD</action>
            <action>  slave.mq@1020 = 787786103E0520FE</action>
            <action>  slave.mq@1028 = FE05187E0320EFFE</action>
            <action>  slave.mq@1030 = 180FA5CDAF0420DF</action>
            <action>  slave.mq@1038 = FFFFFFFFFFFFFFCA</action>
            <!--
            1000 | 21 00 E1 : ld   hl,$E100  // sound code address
            1003 | 32 00 D0 : ld   ($D000),a // watchdog
            1006 | 3A 02 D0 : ld   a,($D002) // read input
            1009 | B8       : cp   b
            100A | 47       : ld   b,a
            100B | 28 F6    : jr   z,$1003
            100D | FE FB    : cp   $FB
            100F | 20 01    : jr   nz,$1012
            1011 | 35       : dec  (hl)      // decrease code -01
            1012 | FE F7    : cp   $F7
            1014 | 20 01    : jr   nz,$1017
            1016 | 34       : inc  (hl)      // increase code +01
            1017 | FE FD    : cp   $FD
            1019 | 20 04    : jr   nz,$101F
            101B | 3E F0    : ld   a,$F0     // decrease code -10
            101D | 18 06    : jr   $1025
            101F | FE FE    : cp   $FE
            1021 | 20 05    : jr   nz,$1028
            1023 | 3E 10    : ld   a,$10     // increase code +10
            1025 | 86       : add  a,(hl)
            1026 | 77       : ld   (hl),a
            1027 | 78       : ld   a,b
            1028 | FE EF    : cp   $EF
            102A | 20 03    : jr   nz,$102F
            102C | 7E       : ld   a,(hl)    // play sound
            102D | 18 05    : jr   $1034
            102F | FE DF    : cp   $DF
            1031 | 20 04    : jr   nz,$1037
            1033 | AF       : xor  a         // stop sound
            1034 | CD A5 0F : call $0FA5     // send sound code
            1037 | 18 CA    : jr   $1003
            -->
        </script>
        <script state="run">
            <output format="----- fighting hawk sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"                  line="11" align="center" />
            <output format="right : increase code +01"                 line="12" align="center" />
            <output format="down : decrease code -10"                  line="13" align="center" />
            <output format="up : increase code +10"                    line="14" align="center" />
            <output format="button 1 : play sound"                     line="15" align="center" />
            <output format="button 2 : stop sound"                     line="16" align="center" />
            <output format="----------------------------"              line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"         line="19" align="center"  >
                <argument>slave.pb@E100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@005C = 21              </action>
            <action>  slave.mw@0055 = 0122            </action>
            <action>  slave.mq@1000 = FFFFFFFFFFFFFFFF</action>
            <action>  slave.mq@1008 = FFFFFFFFFFFFFFFF</action>
            <action>  slave.mq@1010 = FFFFFFFFFFFFFFFF</action>
            <action>  slave.mq@1018 = FFFFFFFFFFFFFFFF</action>
            <action>  slave.mq@1020 = FFFFFFFFFFFFFFFF</action>
            <action>  slave.mq@1028 = FFFFFFFFFFFFFFFF</action>
            <action>  slave.mq@1030 = FFFFFFFFFFFFFFFF</action>
            <action>  slave.mq@1038 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
fhawkj.xml

Code: Select all

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

    <cheat desc="no hit">
        <script state="on">
            <action>slave.mb@0631 = C3</action> <!-- bullet -->
            <action>slave.mb@070F = C3</action> <!-- enemy -->
            <action>slave.mb@080D = C3</action> <!-- final boss -->
        </script>
        <script state="off">
            <action>slave.mb@0631 = DA</action>
            <action>slave.mb@070F = DA</action>
            <action>slave.mb@080D = DA</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@52A4 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@52A4 = 1F</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="change">
            <action>maincpu.mb@5213 = param</action> <!-- up -->
            <action>maincpu.mb@5226 = param</action> <!-- down -->
            <action>maincpu.mb@5232 = param</action> <!-- left -->
            <action>maincpu.mb@523A = param</action> <!-- right -->
        </script>
        <script state="off">
            <action>maincpu.mb@5213 = 02</action>
            <action>maincpu.mb@5226 = 02</action>
            <action>maincpu.mb@5232 = 02</action>
            <action>maincpu.mb@523A = 02</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <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@56C1 = param</action> <!-- shot level 1-4 -->
            <action>maincpu.mb@555D = param</action> <!-- shot level 5 -->
            <action>maincpu.mb@55DD = param</action> <!-- shot level 6 -->
        </script>
        <script state="off">
            <action>maincpu.mb@56C1 = 0C</action>
            <action>maincpu.mb@555D = 0C</action>
            <action>maincpu.mb@55DD = 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.mb@005C = C9              </action> <!-- disable sequence on main cpu -->
            <action>  slave.mw@0055 = 1000            </action>
            <action>  slave.mq@1000 = 023AD00032E10021</action>
            <action>  slave.mq@1008 = 20FBFEF62847B8D0</action>
            <action>  slave.mq@1010 = FE340120F7FE3501</action>
            <action>  slave.mq@1018 = FE0618F03E0420FD</action>
            <action>  slave.mq@1020 = 787786103E0520FE</action>
            <action>  slave.mq@1028 = FE05187E0320EFFE</action>
            <action>  slave.mq@1030 = 180FA5CDAF0420DF</action>
            <action>  slave.mq@1038 = FFFFFFFFFFFFFFCA</action>
            <!--
            1000 | 21 00 E1 : ld   hl,$E100  // sound code address
            1003 | 32 00 D0 : ld   ($D000),a // watchdog
            1006 | 3A 02 D0 : ld   a,($D002) // read input
            1009 | B8       : cp   b
            100A | 47       : ld   b,a
            100B | 28 F6    : jr   z,$1003
            100D | FE FB    : cp   $FB
            100F | 20 01    : jr   nz,$1012
            1011 | 35       : dec  (hl)      // decrease code -01
            1012 | FE F7    : cp   $F7
            1014 | 20 01    : jr   nz,$1017
            1016 | 34       : inc  (hl)      // increase code +01
            1017 | FE FD    : cp   $FD
            1019 | 20 04    : jr   nz,$101F
            101B | 3E F0    : ld   a,$F0     // decrease code -10
            101D | 18 06    : jr   $1025
            101F | FE FE    : cp   $FE
            1021 | 20 05    : jr   nz,$1028
            1023 | 3E 10    : ld   a,$10     // increase code +10
            1025 | 86       : add  a,(hl)
            1026 | 77       : ld   (hl),a
            1027 | 78       : ld   a,b
            1028 | FE EF    : cp   $EF
            102A | 20 03    : jr   nz,$102F
            102C | 7E       : ld   a,(hl)    // play sound
            102D | 18 05    : jr   $1034
            102F | FE DF    : cp   $DF
            1031 | 20 04    : jr   nz,$1037
            1033 | AF       : xor  a         // stop sound
            1034 | CD A5 0F : call $0FA5     // send sound code
            1037 | 18 CA    : jr   $1003
            -->
        </script>
        <script state="run">
            <output format="----- fighting hawk sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"                  line="11" align="center" />
            <output format="right : increase code +01"                 line="12" align="center" />
            <output format="down : decrease code -10"                  line="13" align="center" />
            <output format="up : increase code +10"                    line="14" align="center" />
            <output format="button 1 : play sound"                     line="15" align="center" />
            <output format="button 2 : stop sound"                     line="16" align="center" />
            <output format="----------------------------"              line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"         line="19" align="center"  >
                <argument>slave.pb@E100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mb@005C = 21              </action>
            <action>  slave.mw@0055 = 0122            </action>
            <action>  slave.mq@1000 = FFFFFFFFFFFFFFFF</action>
            <action>  slave.mq@1008 = FFFFFFFFFFFFFFFF</action>
            <action>  slave.mq@1010 = FFFFFFFFFFFFFFFF</action>
            <action>  slave.mq@1018 = FFFFFFFFFFFFFFFF</action>
            <action>  slave.mq@1020 = FFFFFFFFFFFFFFFF</action>
            <action>  slave.mq@1028 = FFFFFFFFFFFFFFFF</action>
            <action>  slave.mq@1030 = FFFFFFFFFFFFFFFF</action>
            <action>  slave.mq@1038 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>