[breywood] Shackled/Breywood

This forum is for posting M.A.M.E. Work In Progress "Arcade"cheats that are not quite ready for the prime time. If the cheats are buggy or the cheat descriptions are non-standard then please post them here. Help maybe given but there are no guarantees and they will only be added to the cheat file when the cheat file maintainer is happy with them.
Post Reply
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[breywood] Shackled/Breywood

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@911c = 20</action> <!-- enemy -->
        <action>maincpu.mb@924f = 20</action> <!-- bullet -->
    </script>
    <script state="off">
        <action>maincpu.mb@911c = 27</action>
        <action>maincpu.mb@924f = 26</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>sub.mb@4ff7 = ab</action> <!-- player -->
        <action>sub.mb@5377 = ab</action> <!-- partner 1 -->
        <action>sub.mb@55a8 = ab</action> <!-- partner 2 -->
    </script>
    <script state="off">
        <action>sub.mb@4ff7 = ac</action>
        <action>sub.mb@5377 = ac</action>
        <action>sub.mb@55a8 = ac</action>
    </script>
</cheat>

<cheat desc="walk through wall">
    <script state="on">
        <action>sub.mw@50d4 = 0000</action> <!-- down -->
        <action>sub.mw@5123 = 0000</action> <!-- up -->
        <action>sub.mw@5179 = 0000</action> <!-- right -->
        <action>sub.mw@51c8 = 0000</action> <!-- left -->
    </script>
    <script state="off">
        <action>sub.mw@50d4 = ff7c</action>
        <action>sub.mw@5123 = ff2d</action>
        <action>sub.mw@5179 = ffeb</action>
        <action>sub.mw@51c8 = fe9c</action>
    </script>
</cheat>

<cheat desc="start floor">
    <parameter min="0x01" max="0x62" step="0x01" />
    <!--
     code      floor
    01 - 70   01 - 70
      71         01   : secret floor (go to 24 or secret 80)
    72 - 80   72 - 80
      81        101   : go to 13
      82        101   : go to 98
      83        101   : go to 30
      84        101   : go to 45
      85        102   : go to 61
      86        102   : go to 63
      87        102   : go to 72
      88        104   : go to 63
      89        104   : go to 67
      90        104   : go to 40 or 103
      91        100   : go to 24
      92        100   : go to secret floor 01
      93        100   : go to 98
      94        100   : go to 100 (another)
      95        103   : go to 32
      96        103   : go to secret 80
      97         80   : secret floor (go to 69 or escape from jail)
      98         98   : go to 30
    -->
    <script state="change">
        <action>sub.mb@4471 = param</action>
    </script>
    <script state="off">
        <action>sub.mb@4471 = 01</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>sub.mw@40f8 =             fd60</action>
        <action>sub.mq@fd60 = d711f61800d11127</action>
        <action>sub.mq@fd68 = f7c1fb26020a10c1</action>
        <action>sub.mq@fd70 = f726020c10c1ef26</action>
        <action>sub.mq@fd78 = 0496102006c1df26</action>
        <action>sub.mq@fd80 = 058601b7180c20d8</action>
        <!--
        fd60 | d7 11    : STB  $11
        fd62 | f6 18 00 : LDB  $1800 // read input
        fd65 | d1 11    : CMPB $11
        fd67 | 27 f7    : BEQ  $FD60
        fd69 | c1 fb    : CMPB #$FB
        fd6b | 26 02    : BNE  $FD6F
        fd6d | 0a 10    : DEC  $10   // decrease code
        fd6f | c1 f7    : CMPB #$F7
        fd71 | 26 02    : BNE  $FD75
        fd73 | 0c 10    : INC  $10   // increase code
        fd75 | c1 ef    : CMPB #$EF
        fd77 | 26 04    : BNE  $FD7D
        fd79 | 96 10    : LDA  $10   // play sound
        fd7b | 20 06    : BRA  $FD83
        fd7d | c1 df    : CMPB #$DF
        fd7f | 26 05    : BNE  $FD86
        fd81 | 86 01    : LDA  #$01  // stop sound
        fd83 | b7 18 0c : STA  $180C // send sound code
        fd86 | 20 d8    : BRA  $FD60
        -->
    </script>
    <script state="run">
        <output format="----- breywood sound test mode -----" line="10" align="center" />
        <output format="left : decrease code"                 line="11" align="center" />
        <output format="right : increase code"                line="12" align="center" />
        <output format="button 1 : play sound"                line="13" align="center" />
        <output format="button 2 : stop sound"                line="14" align="center" />
        <output format="----------------------------"         line="15" align="center" />
        <output format="&lt;&lt; sound code %2.2X &gt;&gt;"   line="17" align="center">
            <argument>maincpu.pb@0010</argument>
        </output>
    </script>
    <script state="off">
        <action>sub.mw@40f8 =             bd84</action>
        <action>sub.mq@fd60 = 0000000000000000</action>
        <action>sub.mq@fd68 = 0000000000000000</action>
        <action>sub.mq@fd70 = 0000000000000000</action>
        <action>sub.mq@fd78 = 0000000000000000</action>
        <action>sub.mq@fd80 = 0000000000000000</action>
    </script>
</cheat>
If you want to see the ending, try to escape from secret floor 80.
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[breywood] Shackled/Breywood (update)

Post 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>sub.mw@40f8 =             fd60</action>
        <action>sub.mq@fd60 = 9711b61800911127</action>
        <action>sub.mq@fd68 = f7d61081fb26015a</action>
        <action>sub.mq@fd70 = 81f726015c81fd26</action>
        <action>sub.mq@fd78 = 02c01081fe2602cb</action>
        <action>sub.mq@fd80 = 10d71081ef270681</action>
        <action>sub.mq@fd88 = df2605c601f7180c</action>
        <action>sub.mq@fd90 = 20ce000000000000</action>
        <!--
        fd60 | 97 11    : STA  $11
        fd62 | b6 18 00 : LDA  $1800 // read input
        fd65 | 91 11    : CMPA $11
        fd67 | 27 f7    : BEQ  $FD60
        fd69 | d6 10    : LDB  $10
        fd6b | 81 fb    : CMPA #$FB
        fd6d | 26 01    : BNE  $FD70
        fd6f | 5a       : DECB       // decrease code -01
        fd70 | 81 f7    : CMPA #$F7
        fd72 | 26 01    : BNE  $FD75
        fd74 | 5c       : INCB       // increase code +10
        fd75 | 81 fd    : CMPA #$FD
        fd77 | 26 02    : BNE  $FD7B
        fd79 | c0 10    : SUBB #$10  // decrease code -10
        fd7b | 81 fe    : CMPA #$FE
        fd7d | 26 02    : BNE  $FD81
        fd7f | cb 10    : ADDB #$10  // increase code +10
        fd81 | d7 10    : STB  $10
        fd83 | 81 ef    : CMPA #$EF
        fd85 | 27 06    : BEQ  $FD8D
        fd87 | 81 df    : CMPA #$DF
        fd89 | 26 05    : BNE  $FD90
        fd8b | c6 01    : LDB  #$01  // stop sound
        fd8d | f7 18 0c : STB  $180C // send sound code
        fd90 | 20 ce    : BRA  $FD60
        -->
    </script>
    <script state="run">
        <output format="----- breywood sound test mode -----" line="10" align="center" />
        <output format="left : decrease code -01"             line="11" align="center" />
        <output format="right : increase code +01"            line="12" align="center" />
        <output format="down : decrease code -10"             line="13" align="center" />
        <output format="up : increase code +10"               line="14" align="center" />
        <output format="button 1 : play sound"                line="15" align="center" />
        <output format="button 2 : stop sound"                line="16" align="center" />
        <output format="----------------------------"         line="17" align="center" />
        <output format="&lt;&lt; sound code %2.2X &gt;&gt;"   line="19" align="center"  >
            <argument>maincpu.pb@0010</argument>
        </output>
    </script>
    <script state="off">
        <action>sub.mw@40f8 =             bd84</action>
        <action>sub.mq@fd60 = 0000000000000000</action>
        <action>sub.mq@fd68 = 0000000000000000</action>
        <action>sub.mq@fd70 = 0000000000000000</action>
        <action>sub.mq@fd78 = 0000000000000000</action>
        <action>sub.mq@fd80 = 0000000000000000</action>
        <action>sub.mq@fd88 = 0000000000000000</action>
        <action>sub.mq@fd90 = 0000000000000000</action>
    </script>
</cheat>
"sound test mode" : rewrite routine. add up/down key (code ±10).
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[shackled]+ Shackled/Breywood

Post by jman »

shackled.xml

Code: Select all

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

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@9557 = 20</action> <!-- enemy -->
            <action>maincpu.mb@968A = 20</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@9557 = 27</action>
            <action>maincpu.mb@968A = 26</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>sub.mb@500C = AB</action> <!-- player -->
            <action>sub.mb@53A4 = AB</action> <!-- partner 1 -->
            <action>sub.mb@55D5 = AB</action> <!-- partner 2 -->
        </script>
        <script state="off">
            <action>sub.mb@500C = AC</action>
            <action>sub.mb@53A4 = AC</action>
            <action>sub.mb@55D5 = AC</action>
        </script>
    </cheat>

    <cheat desc="walk through wall">
        <script state="on">
            <action>sub.mw@50E9 = 0000</action> <!-- down -->
            <action>sub.mw@5138 = 0000</action> <!-- up -->
            <action>sub.mw@518E = 0000</action> <!-- right -->
            <action>sub.mw@51DD = 0000</action> <!-- left -->
        </script>
        <script state="off">
            <action>sub.mw@50E9 = FF7C</action>
            <action>sub.mw@5138 = FF2D</action>
            <action>sub.mw@518E = FFEB</action>
            <action>sub.mw@51DD = FE9C</action>
        </script>
    </cheat>

    <cheat desc="start floor">
        <!--
         code     floor
        01 - 70  01 - 70
          71        01   : secret floor (go to 24 or secret 80)
        72 - 80  72 - 80
          81       101   : go to 13
          82       101   : go to 98
          83       101   : go to 30
          84       101   : go to 45
          85       102   : go to 61
          86       102   : go to 63
          87       102   : go to 72
          88       104   : go to 63
          89       104   : go to 67
          90       104   : go to 40 or 103
          91       100   : go to 24
          92       100   : go to secret floor 01
          93       100   : go to 98
          94       100   : go to 100 (another)
          95       103   : go to 32
          96       103   : go to secret 80
          97        80   : secret floor (go to 69 or exit)
          98        98   : go to 30
        -->
        <parameter min="0x01" max="0x62" step="0x01" />
        <script state="change">
            <action>sub.mb@4417 = param</action>
        </script>
        <script state="off">
            <action>sub.mb@4417 = 01</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>sub.mw@40FA = DBD0            </action>
            <action>sub.mq@DBD0 = 9781B61800918127</action>
            <action>sub.mq@DBD8 = F7D68081FB26015A</action>
            <action>sub.mq@DBE0 = 81F726015C81FD26</action>
            <action>sub.mq@DBE8 = 02C01081FE2602CB</action>
            <action>sub.mq@DBF0 = 10D78081EF270681</action>
            <action>sub.mq@DBF8 = DF2605C601F7180C</action>
            <action>sub.mq@DC00 = 20CE000000000000</action>
            <!--
            DBD0 | 97 81    : STA    $81
            DBD2 | B6 18 00 : LDA    $1800 // read input
            DBD5 | 91 81    : CMPA   $81
            DBD7 | 27 F7    : BEQ    $FD60
            DBD9 | D6 80    : LDB    $80
            DBDB | 81 FB    : CMPA   #$FB
            DBDD | 26 01    : BNE    $FD70
            DBDF | 5A       : DECB         // decrease code -01
            DBE0 | 81 F7    : CMPA   #$F7
            DBE2 | 26 01    : BNE    $FD75
            DBE4 | 5C       : INCB         // increase code +01
            DBE5 | 81 FD    : CMPA   #$FD
            DBE7 | 26 02    : BNE    $FD7B
            DBE9 | C0 10    : SUBB   #$10  // decrease code -10
            DBEB | 81 FE    : CMPA   #$FE
            DBED | 26 02    : BNE    $FD81
            DBEF | CB 10    : ADDB   #$10  // increase code +10
            DBF1 | D7 80    : STB    $80
            DBF3 | 81 EF    : CMPA   #$EF
            DBF5 | 27 06    : BEQ    $FD8D // play sound
            DBF7 | 81 DF    : CMPA   #$DF
            DBF9 | 26 05    : BNE    $FD90
            DBFB | C6 01    : LDB    #$01  // stop sound
            DBFD | F7 18 0C : STB    $180C // send sound code
            DC00 | 20 CE    : BRA    $FD60
            -->
        </script>
        <script state="run">
            <output format="----- shackled 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@0080</argument>
            </output>
        </script>
        <script state="off">
            <action>sub.mw@40FA = BCAF            </action>
            <action>sub.mq@DBD0 = 0000000000000000</action>
            <action>sub.mq@DBD8 = 0000000000000000</action>
            <action>sub.mq@DBE0 = 0000000000000000</action>
            <action>sub.mq@DBE8 = 0000000000000000</action>
            <action>sub.mq@DBF0 = 0000000000000000</action>
            <action>sub.mq@DBF8 = 0000000000000000</action>
            <action>sub.mq@DC00 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
breywood.xml

Code: Select all

<!-- Breywood (Japan revision 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@911C = 20</action> <!-- enemy -->
            <action>maincpu.mb@924F = 20</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.mb@911C = 27</action>
            <action>maincpu.mb@924F = 26</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>sub.mb@4FF7 = AB</action> <!-- player -->
            <action>sub.mb@5377 = AB</action> <!-- partner 1 -->
            <action>sub.mb@55A8 = AB</action> <!-- partner 2 -->
        </script>
        <script state="off">
            <action>sub.mb@4FF7 = AC</action>
            <action>sub.mb@5377 = AC</action>
            <action>sub.mb@55A8 = AC</action>
        </script>
    </cheat>

    <cheat desc="walk through wall">
        <script state="on">
            <action>sub.mw@50D4 = 0000</action> <!-- down -->
            <action>sub.mw@5123 = 0000</action> <!-- up -->
            <action>sub.mw@5179 = 0000</action> <!-- right -->
            <action>sub.mw@51C8 = 0000</action> <!-- left -->
        </script>
        <script state="off">
            <action>sub.mw@50D4 = FF7C</action>
            <action>sub.mw@5123 = FF2D</action>
            <action>sub.mw@5179 = FFEB</action>
            <action>sub.mw@51C8 = FE9C</action>
        </script>
    </cheat>

    <cheat desc="start floor">
        <!--
         code     floor
        01 - 70  01 - 70
          71        01   : secret floor (go to 24 or secret 80)
        72 - 80  72 - 80
          81       101   : go to 13
          82       101   : go to 98
          83       101   : go to 30
          84       101   : go to 45
          85       102   : go to 61
          86       102   : go to 63
          87       102   : go to 72
          88       104   : go to 63
          89       104   : go to 67
          90       104   : go to 40 or 103
          91       100   : go to 24
          92       100   : go to secret floor 01
          93       100   : go to 98
          94       100   : go to 100 (another)
          95       103   : go to 32
          96       103   : go to secret 80
          97        80   : secret floor (go to 69 or exit)
          98        98   : go to 30
        -->
        <parameter min="0x01" max="0x62" step="0x01" />
        <script state="change">
            <action>sub.mb@4471 = param</action>
        </script>
        <script state="off">
            <action>sub.mb@4471 = 01</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>sub.mw@40F8 = FD60            </action>
            <action>sub.mq@FD60 = 9781B61800918127</action>
            <action>sub.mq@FD68 = F7D68081FB26015A</action>
            <action>sub.mq@FD70 = 81F726015C81FD26</action>
            <action>sub.mq@FD78 = 02C01081FE2602CB</action>
            <action>sub.mq@FD80 = 10D78081EF270681</action>
            <action>sub.mq@FD88 = DF2605C601F7180C</action>
            <action>sub.mq@FD90 = 20CE000000000000</action>
            <!--
            FD60 | 97 81    : STA    $81
            FD62 | B6 18 00 : LDA    $1800 // read input
            FD65 | 91 81    : CMPA   $81
            FD67 | 27 F7    : BEQ    $FD60
            FD69 | D6 80    : LDB    $80
            FD6B | 81 FB    : CMPA   #$FB
            FD6D | 26 01    : BNE    $FD70
            FD6F | 5A       : DECB         // decrease code -01
            FD70 | 81 F7    : CMPA   #$F7
            FD72 | 26 01    : BNE    $FD75
            FD74 | 5C       : INCB         // increase code +01
            FD75 | 81 FD    : CMPA   #$FD
            FD77 | 26 02    : BNE    $FD7B
            FD79 | C0 10    : SUBB   #$10  // decrease code -10
            FD7B | 81 FE    : CMPA   #$FE
            FD7D | 26 02    : BNE    $FD81
            FD7F | CB 10    : ADDB   #$10  // increase code +10
            FD81 | D7 80    : STB    $80
            FD83 | 81 EF    : CMPA   #$EF
            FD85 | 27 06    : BEQ    $FD8D // play sound
            FD87 | 81 DF    : CMPA   #$DF
            FD89 | 26 05    : BNE    $FD90
            FD8B | C6 01    : LDB    #$01  // stop sound
            FD8D | F7 18 0C : STB    $180C // send sound code
            FD90 | 20 CE    : BRA    $FD60
            -->
        </script>
        <script state="run">
            <output format="----- breywood 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@0080</argument>
            </output>
        </script>
        <script state="off">
            <action>sub.mw@40F8 = BD84            </action>
            <action>sub.mq@FD60 = 0000000000000000</action>
            <action>sub.mq@FD68 = 0000000000000000</action>
            <action>sub.mq@FD70 = 0000000000000000</action>
            <action>sub.mq@FD78 = 0000000000000000</action>
            <action>sub.mq@FD80 = 0000000000000000</action>
            <action>sub.mq@FD88 = 0000000000000000</action>
            <action>sub.mq@FD90 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
Post Reply