Page 1 of 1

[breywood] Shackled/Breywood

Posted: Thu Dec 16, 2021 2:29 pm
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.

[breywood] Shackled/Breywood (update)

Posted: Wed Dec 28, 2022 9:34 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>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).

[shackled]+ Shackled/Breywood

Posted: Sat Mar 09, 2024 1:41 am
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>