Page 1 of 1

[bankp] Bank Panic

Posted: Sun Oct 24, 2021 11:10 am
by jman
Mainly cleaned up codes.

Code: Select all

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@9ac0 = a7</action> <!-- left -->
        <action>maincpu.mb@9ad7 = af</action> <!-- center -->
        <action>maincpu.mb@9aee = a7</action> <!-- right -->
        <action>maincpu.mb@9af6 = 04</action> <!-- ? -->
    </script>
    <script state="off">
        <action>maincpu.mb@9ac0 = e7</action>
        <action>maincpu.mb@9ad7 = ef</action>
        <action>maincpu.mb@9aee = f7</action>
        <action>maincpu.mb@9af6 = 08</action>
    </script>
</cheat>

<cheat desc="auto shooting a robber">
    <script state="on">
        <action>maincpu.md@99cd =         32dfc0cd</action>
        <action>maincpu.mq@dfc0 = 0306002011e46221</action>
        <action>maincpu.mq@dfc8 = 3af91019072076cb</action>
        <action>maincpu.mq@dfd0 = 19dfdc2158c9e006</action>
        <action>maincpu.mq@dfd8 = 102040c9e006327e</action>
        <!--
        dfc0 | 21 62 e4 : ld   hl,$e462  // search a door
        dfc3 | 11 20 00 : ld   de,$0020
        dfc6 | 06 03    : ld   b,$03
        dfc8 | cb 76    : bit  6,(hl)
        dfca | 20 07    : jr   nz,$dfd3  // is robber?
        dfcc | 19       : add  hl,de
        dfcd | 10 f9    : djnz $dfc8
        dfcf | 3a 06 e0 : ld   a,($e006) // not found
        dfd2 | c9       : ret
        dfd3 | 58       : ld   e,b       // found
        dfd4 | 21 dc df : ld   hl,$dfdc
        dfd7 | 19       : add  hl,de
        dfd8 | 7e       : ld   a,(hl)
        dfd9 | 32 06 e0 : ld   ($e006),a // set button index
        dfdc | c9       : ret
        dfdd - dfdf     : address/button convert table
         address button
          $e462    10   left
          $e482    20   center
          $e4a2    40   right
        -->
    </script>
    <script state="off">
        <action>maincpu.md@99cd =         32e0063a</action>
        <action>maincpu.mq@dfc0 = ffffffffffffffff</action>
        <action>maincpu.mq@dfc8 = ffffffffffffffff</action>
        <action>maincpu.mq@dfd0 = ffffffffffffffff</action>
        <action>maincpu.mq@dfd8 = ffffffffffffffff</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@0262 = 1021e00122001021</action>
        <action>maincpu.mq@026a = f62847b8e0063ae0</action>
        <action>maincpu.mq@0272 = 2002fe35012008fe</action>
        <action>maincpu.mq@027a = 0016042010fe3401</action>
        <action>maincpu.mq@0282 = ff160b2020fe0618</action>
        <action>maincpu.mq@028a = 18da04cd7e4f5faf</action>
        <action>maincpu.mq@0292 = 73cdc5052040fe09</action>
        <action>maincpu.mq@029a = e2e611ebca18c1da</action>
        <!--
        0262 | 21 10 00 : ld   hl,$0010
        0265 | 22 01 e0 : ld   ($e001),hl
        0268 | 21 10 e0 : ld   hl,$e010   // sound code address
        026b | 3a 06 e0 : ld   a,($e006)  // read input
        026e | b8       : cp   b
        026f | 47       : ld   b,a
        0270 | 28 f6    : jr   z,$0268
        0272 | fe 08    : cp   $08
        0274 | 20 01    : jr   nz,$0277
        0276 | 35       : dec  (hl)       // decrease code
        0277 | fe 02    : cp   $02
        0279 | 20 01    : jr   nz,$027c
        027b | 34       : inc  (hl)       // increase code
        027c | fe 10    : cp   $10
        027e | 20 04    : jr   nz,$0284
        0280 | 16 00    : ld   d,$00      // play with normal tempo
        0282 | 18 06    : jr   $028a
        0284 | fe 20    : cp   $20
        0286 | 20 0b    : jr   nz,$0293
        0288 | 16 ff    : ld   d,$ff      // play with fast tempo
        028a | af       : xor  a
        028b | 5f       : ld   e,a
        028c | 4f       : ld   c,a
        028d | 7e       : ld   a,(hl)
        028e | cd 04 da : call $da04      // send sound code
        0291 | 18 09    : jr   $029c
        0293 | fe 40    : cp   $40
        0295 | 20 05    : jr   nz,$029c
        0297 | c5       : push bc
        0298 | cd 73 da : call $da73      // stop sound
        029b | c1       : pop  bc
        029c | 18 ca    : jr   $0268
        -->
    </script>
    <script state="run">
        <output format="----- bank panic 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 with normal tempo" line="13" align="center" />
        <output format="button 2 : play sound with fast tempo"   line="14" align="center" />
        <output format="button 3 : stop sound"                   line="15" align="center" />
        <output format="----------------------------"            line="16" align="center" />
        <output format="&lt;&lt; sound code %2.2X &gt;&gt;"      line="18" align="center">
            <argument>maincpu.pb@e010</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mq@0252 = f57790e67ee00121</action>
        <action>maincpu.mq@025a = 0837cdff0106233e</action>
        <action>maincpu.mq@0262 = 72ca7fcbf1080bcd</action>
        <action>maincpu.mq@026a = 3a1620b7e0273a03</action>
        <action>maincpu.mq@0272 = e0243a1020b7e020</action>
        <action>maincpu.mq@027a = 10e6e0013a0a20b7</action>
        <action>maincpu.mq@0282 = 0a1e21bb18e00132</action>
        <action>maincpu.mq@028a = b0ed001801e2e011</action>
        <action>maincpu.mq@0292 = 362103e6f5e0073a</action>
        <action>maincpu.mq@029a = e2e611eb0c7fcd0a</action>
    </script>
</cheat>

<cheat desc="skip ram/rom check">
    <script state="on">
        <action>maincpu.mw@0001 = 01f0</action>
    </script>
    <script state="off">
        <action>maincpu.mw@0001 = abc0</action>
    </script>
</cheat>
  • "auto shooting a robber" : Rewritten the codes with qword. Now new 5 codes against old 16 codes.
  • "sound test mode" : Rewritten the codes with qword. Added "sound stop" button.
The follwoing codes are test.

Code: Select all

<cheat desc="open doors soon (test)">
    <script state="on">
        <action>maincpu.mb@2fb5 = 18</action>
        <action>maincpu.mb@2fcd = 18</action>
        <action>maincpu.mb@2f5f = 18</action>
        <action>maincpu.mb@2f6a = 18</action>
    </script>
    <script state="off">
        <action>maincpu.mb@2fb5 = 28</action>
        <action>maincpu.mb@2fcd = 28</action>
        <action>maincpu.mb@2f5f = 28</action>
        <action>maincpu.mb@2f6a = 28</action>
    </script>
</cheat>

<cheat desc="visitor (test)">
    <parameter>
        <item value="0x00">customer only</item>
        <item value="0x02">robber only  </item>
    </parameter>
    <script state="on">
        <action>maincpu.md@30cd = fd00003e</action>
    </script>
    <script state="change">
        <action>maincpu.mb@30ce = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@30cd = fd127edd</action>
    </script>
</cheat>
  • "open doors soon" : Sometimes locked a door.
  • "visitor" : Often robber comes even when you set "customer only".

[bankp]+ Bank Panic

Posted: Sun Feb 04, 2024 7:10 am
by jman
bankp.xml

Code: Select all

<!-- Bank Panic -->
<mamecheat version="1">

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@9AC0 = A7</action> <!-- left -->
            <action>maincpu.mb@9AD7 = AF</action> <!-- center -->
            <action>maincpu.mb@9AEE = A7</action> <!-- right -->
            <action>maincpu.mb@9AF6 = 04</action> <!-- fire timer -->
        </script>
        <script state="off">
            <action>maincpu.mb@9AC0 = E7</action>
            <action>maincpu.mb@9AD7 = EF</action>
            <action>maincpu.mb@9AEE = F7</action>
            <action>maincpu.mb@9AF6 = 08</action>
        </script>
    </cheat>

    <cheat desc="auto shooting a robber">
        <script state="on">
            <action>maincpu.md@99CD = 32DFC0CD        </action>
            <action>maincpu.mq@DFC0 = 0306002011E46221</action>
            <action>maincpu.mq@DFC8 = 3AF91019072076CB</action>
            <action>maincpu.mq@DFD0 = 19DFDC2158C9E006</action>
            <action>maincpu.mq@DFD8 = 102040C9E006327E</action>
            <!--
            DFC0 | 21 62 E4 : ld   hl,$E462  // search the doors
            DFC3 | 11 20 00 : ld   de,$0020
            DFC6 | 06 03    : ld   b,$03
            DFC8 | CB 76    : bit  6,(hl)
            DFCA | 20 07    : jr   nz,$DFD3  // is robber?
            DFCC | 19       : add  hl,de
            DFCD | 10 F9    : djnz $DFC8
            DFCF | 3A 06 E0 : ld   a,($E006) // not found
            DFD2 | C9       : ret
            DFD3 | 58       : ld   e,b       // found
            DFD4 | 21 DC DF : ld   hl,$DFDC
            DFD7 | 19       : add  hl,de
            DFD8 | 7E       : ld   a,(hl)
            DFD9 | 32 06 E0 : ld   ($E006),a // set button index
            DFDC | C9       : ret
            DFDD - DFDF     : address/button conversion table
             address button
              $e462    10   : left
              $e482    20   : center
              $e4a2    40   : right
            -->
        </script>
        <script state="off">
            <action>maincpu.md@99CD = 32E0063A        </action>
            <action>maincpu.mq@DFC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DFC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DFD0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DFD8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="open doors soon (test)">
        <script state="on">
            <action>maincpu.mb@2FB5 = 18</action>
            <action>maincpu.mb@2FCD = 18</action>
            <action>maincpu.mb@2F5F = 18</action>
            <action>maincpu.mb@2F6A = 18</action>
        </script>
        <script state="off">
            <action>maincpu.mb@2FB5 = 28</action>
            <action>maincpu.mb@2FCD = 28</action>
            <action>maincpu.mb@2F5F = 28</action>
            <action>maincpu.mb@2F6A = 28</action>
        </script>
    </cheat>

    <cheat desc="visitor (test)">
        <parameter>
            <item value="0x00">customer</item>
            <item value="0x02">robber  </item>
        </parameter>
        <script state="on">
            <action>maincpu.md@30CD = FD00003E</action>
        </script>
        <script state="change">
            <action>maincpu.mb@30CE = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@30CD = FD127EDD</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x80">02       </item>
            <item value="0x40">03       </item>
            <item value="0x20">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@0A13 = param</action> <!-- initialize -->
            <action>maincpu.mb@0DB4 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@0A13 = 80</action>
            <action>maincpu.mb@0DB4 = 80</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@0262 = 0021E00122001021</action>
            <action>maincpu.mq@026A = F62847B8E0063AE1</action>
            <action>maincpu.mq@0272 = 2002FE35012008FE</action>
            <action>maincpu.mq@027A = 0016042010FE3401</action>
            <action>maincpu.mq@0282 = FF160B2020FE0618</action>
            <action>maincpu.mq@028A = 18DA04CD7E4F5FAF</action>
            <action>maincpu.mq@0292 = 73CDC5052040FE09</action>
            <action>maincpu.mq@029A = E2E611EBCA18C1DA</action>
            <!--
            0262 | 21 10 00 : ld   hl,$0010
            0265 | 22 01 E0 : ld   ($E001),hl
            0268 | 21 00 E1 : ld   hl,$E100   // sound code address
            026B | 3A 06 E0 : ld   a,($E006)  // read input
            026E | B8       : cp   b
            026F | 47       : ld   b,a
            0270 | 28 F6    : jr   z,$0268
            0272 | FE 08    : cp   $08
            0274 | 20 01    : jr   nz,$0277
            0276 | 35       : dec  (hl)       // decrease code -01
            0277 | FE 02    : cp   $02
            0279 | 20 01    : jr   nz,$027C
            027B | 34       : inc  (hl)       // increase code +01
            027C | FE 10    : cp   $10
            027E | 20 04    : jr   nz,$0284
            0280 | 16 00    : ld   d,$00      // play with normal tempo
            0282 | 18 06    : jr   $028A
            0284 | FE 20    : cp   $20
            0286 | 20 0B    : jr   nz,$0293
            0288 | 16 FF    : ld   d,$FF      // play with fast tempo
            028A | AF       : xor  a
            028B | 5F       : ld   e,a
            028C | 4F       : ld   c,a
            028D | 7E       : ld   a,(hl)
            028E | CD 04 DA : call $DA04      // send sound code
            0291 | 18 09    : jr   $029C
            0293 | FE 40    : cp   $40
            0295 | 20 05    : jr   nz,$029C
            0297 | C5       : push bc
            0298 | CD 73 DA : call $DA73      // stop sound
            029B | C1       : pop  bc
            029C | 18 CA    : jr   $0268
            -->
        </script>
        <script state="run">
            <output format="----- bank panic 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="button 1 : play sound with normal tempo" line="13" align="center" />
            <output format="button 2 : play sound with fast tempo"   line="14" align="center" />
            <output format="button 3 : stop sound"                   line="15" align="center" />
            <output format="----------------------------"            line="16" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"       line="18" align="center">
                <argument>maincpu.pb@E100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@0262 = 72CA7FCBF1080BCD</action>
            <action>maincpu.mq@026A = 3A1620B7E0273A03</action>
            <action>maincpu.mq@0272 = E0243A1020B7E020</action>
            <action>maincpu.mq@027A = 10E6E0013A0A20B7</action>
            <action>maincpu.mq@0282 = 0A1E21BB18E00132</action>
            <action>maincpu.mq@028A = B0ED001801E2E011</action>
            <action>maincpu.mq@0292 = 362103E6F5E0073A</action>
            <action>maincpu.mq@029A = E2E611EB0C7FCD0A</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@0001 = 01F0</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0001 = ABC0</action>
        </script>
    </cheat>

</mamecheat>
bankpt.xml

Code: Select all

<!-- Bank Panic (Tecfri bootleg) -->
<mamecheat version="1">

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@9AC0 = A7</action> <!-- left -->
            <action>maincpu.mb@9AD7 = AF</action> <!-- center -->
            <action>maincpu.mb@9AEE = A7</action> <!-- right -->
            <action>maincpu.mb@9AF6 = 04</action> <!-- fire timer -->
        </script>
        <script state="off">
            <action>maincpu.mb@9AC0 = E7</action>
            <action>maincpu.mb@9AD7 = EF</action>
            <action>maincpu.mb@9AEE = F7</action>
            <action>maincpu.mb@9AF6 = 08</action>
        </script>
    </cheat>

    <cheat desc="auto shooting a robber">
        <script state="on">
            <action>maincpu.md@99CD = 32DFC0CD        </action>
            <action>maincpu.mq@DFC0 = 0306002011E46221</action>
            <action>maincpu.mq@DFC8 = 3AF91019072076CB</action>
            <action>maincpu.mq@DFD0 = 19DFDC2158C9E006</action>
            <action>maincpu.mq@DFD8 = 102040C9E006327E</action>
            <!--
            DFC0 | 21 62 E4 : ld   hl,$E462  // search the doors
            DFC3 | 11 20 00 : ld   de,$0020
            DFC6 | 06 03    : ld   b,$03
            DFC8 | CB 76    : bit  6,(hl)
            DFCA | 20 07    : jr   nz,$DFD3  // is robber?
            DFCC | 19       : add  hl,de
            DFCD | 10 F9    : djnz $DFC8
            DFCF | 3A 06 E0 : ld   a,($E006) // not found
            DFD2 | C9       : ret
            DFD3 | 58       : ld   e,b       // found
            DFD4 | 21 DC DF : ld   hl,$DFDC
            DFD7 | 19       : add  hl,de
            DFD8 | 7E       : ld   a,(hl)
            DFD9 | 32 06 E0 : ld   ($E006),a // set button index
            DFDC | C9       : ret
            DFDD - DFDF     : address/button conversion table
             address button
              $e462    10   : left
              $e482    20   : center
              $e4a2    40   : right
            -->
        </script>
        <script state="off">
            <action>maincpu.md@99CD = 32E0063A        </action>
            <action>maincpu.mq@DFC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DFC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DFD0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@DFD8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="open doors soon (test)">
        <script state="on">
            <action>maincpu.mb@2FB5 = 18</action>
            <action>maincpu.mb@2FCD = 18</action>
            <action>maincpu.mb@2F5F = 18</action>
            <action>maincpu.mb@2F6A = 18</action>
        </script>
        <script state="off">
            <action>maincpu.mb@2FB5 = 28</action>
            <action>maincpu.mb@2FCD = 28</action>
            <action>maincpu.mb@2F5F = 28</action>
            <action>maincpu.mb@2F6A = 28</action>
        </script>
    </cheat>

    <cheat desc="visitor (test)">
        <parameter>
            <item value="0x00">customer</item>
            <item value="0x02">robber  </item>
        </parameter>
        <script state="on">
            <action>maincpu.md@30CD = FD00003E</action>
        </script>
        <script state="change">
            <action>maincpu.mb@30CE = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@30CD = FD127EDD</action>
        </script>
    </cheat>

    <cheat desc="timer speed">
        <parameter>
            <item value="0xff">01 (slow)</item>
            <item value="0x80">02       </item>
            <item value="0x40">03       </item>
            <item value="0x20">04       </item>
            <item value="0x01">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@0A13 = param</action> <!-- initialize -->
            <action>maincpu.mb@0DB4 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@0A13 = 80</action>
            <action>maincpu.mb@0DB4 = 80</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@0262 = 0021E00122001021</action>
            <action>maincpu.mq@026A = F62847B8E0063AE1</action>
            <action>maincpu.mq@0272 = 2002FE35012008FE</action>
            <action>maincpu.mq@027A = 0016042010FE3401</action>
            <action>maincpu.mq@0282 = FF160B2020FE0618</action>
            <action>maincpu.mq@028A = 18DA04CD7E4F5FAF</action>
            <action>maincpu.mq@0292 = 73CDC5052040FE09</action>
            <action>maincpu.mq@029A = E2E611EBCA18C1DA</action>
            <!--
            0262 | 21 10 00 : ld   hl,$0010
            0265 | 22 01 E0 : ld   ($E001),hl
            0268 | 21 00 E1 : ld   hl,$E100   // sound code address
            026B | 3A 06 E0 : ld   a,($E006)  // read input
            026E | B8       : cp   b
            026F | 47       : ld   b,a
            0270 | 28 F6    : jr   z,$0268
            0272 | FE 08    : cp   $08
            0274 | 20 01    : jr   nz,$0277
            0276 | 35       : dec  (hl)       // decrease code -01
            0277 | FE 02    : cp   $02
            0279 | 20 01    : jr   nz,$027C
            027B | 34       : inc  (hl)       // increase code +01
            027C | FE 10    : cp   $10
            027E | 20 04    : jr   nz,$0284
            0280 | 16 00    : ld   d,$00      // play with normal tempo
            0282 | 18 06    : jr   $028A
            0284 | FE 20    : cp   $20
            0286 | 20 0B    : jr   nz,$0293
            0288 | 16 FF    : ld   d,$FF      // play with fast tempo
            028A | AF       : xor  a
            028B | 5F       : ld   e,a
            028C | 4F       : ld   c,a
            028D | 7E       : ld   a,(hl)
            028E | CD 04 DA : call $DA04      // send sound code
            0291 | 18 09    : jr   $029C
            0293 | FE 40    : cp   $40
            0295 | 20 05    : jr   nz,$029C
            0297 | C5       : push bc
            0298 | CD 73 DA : call $DA73      // stop sound
            029B | C1       : pop  bc
            029C | 18 CA    : jr   $0268
            -->
        </script>
        <script state="run">
            <output format="----- bank panic 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="button 1 : play sound with normal tempo" line="13" align="center" />
            <output format="button 2 : play sound with fast tempo"   line="14" align="center" />
            <output format="button 3 : stop sound"                   line="15" align="center" />
            <output format="----------------------------"            line="16" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"       line="18" align="center">
                <argument>maincpu.pb@E100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@0262 = 72CA7FCBF1080BCD</action>
            <action>maincpu.mq@026A = 3A1620B7E0273A03</action>
            <action>maincpu.mq@0272 = E0243A1020B7E020</action>
            <action>maincpu.mq@027A = 10E6E0013A0A20B7</action>
            <action>maincpu.mq@0282 = 0A1E21BB18E00132</action>
            <action>maincpu.mq@028A = B0ED001801E2E011</action>
            <action>maincpu.mq@0292 = 362103E6F5E0073A</action>
            <action>maincpu.mq@029A = E2E611EB0C7FCD0A</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@0001 = 01F0</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0001 = ABC0</action>
        </script>
    </cheat>

</mamecheat>