[bagmanj] Bagman

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: 1266
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times

[bagmanj] Bagman

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@1275 = 18</action> <!-- enemy 1 -->
        <action>maincpu.mb@12a0 = 18</action> <!-- enemy 2 -->
        <action>maincpu.mb@1635 = 18</action> <!-- elevator -->
        <action>maincpu.mb@1de5 = 18</action> <!-- trolley -->
        <action>maincpu.mb@1e47 = 00</action> <!-- fall down -->
        <action>maincpu.mb@1e63 = 00</action> <!-- fall down in elevator -->
    </script>
    <script state="off">
        <action>maincpu.mb@1275 = 28</action>
        <action>maincpu.mb@12a0 = 28</action>
        <action>maincpu.mb@1635 = 20</action>
        <action>maincpu.mb@1de5 = 30</action>
        <action>maincpu.mb@1e47 = 01</action>
        <action>maincpu.mb@1e63 = 0c</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter min="0x01" max="0x05" step="0x01" />
    <script state="on">
        <action>maincpu.md@01f2 =         3a5f10cd</action>
        <action>maincpu.md@0218 =         3a5f1acd</action>
        <action>maincpu.mq@5f10 = 10c10dc7cdc50006</action>
        <action>maincpu.mq@5f18 = 0b6dcdc50006c9f9</action>
        <action>maincpu.mq@5f20 = ffffffffc9f910c1</action>
        <!--
        5f10 | 06 xx    : ld   b,$xx
        5f12 | c5       : push bc
        5f13 | cd c7 0d : call $0dc7
        5f16 | c1       : pop  bc
        5f17 | 10 f9    : djnz $5f12
        5f19 | c9       : ret
        5f1a | 06 xx    : ld   b,$xx
        5f1c | c5       : push bc
        5f1d | cd 6d 0b : call $0b6d
        5f20 | c1       : pop  bc
        5f21 | 10 f9    : djnz $5f1c
        5f23 | c9       : ret
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@5f11 = param</action>
        <action>maincpu.mb@5f1b = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@01f2 =         3a0dc7cc</action>
        <action>maincpu.md@0218 =         3a0b6dcd</action>
        <action>maincpu.mq@5f10 = ffffffffffffffff</action>
        <action>maincpu.mq@5f18 = ffffffffffffffff</action>
        <action>maincpu.mq@5f20 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="invisible ladder">
    <script state="on">
        <action>maincpu.mb@0de4 =               00</action> <!-- up -->
        <action>maincpu.mb@0df0 =               00</action> <!-- down -->
        <action>maincpu.md@0b37 =         c05f30cd</action>
        <action>maincpu.md@2617 =         065f37cd</action>
        <action>maincpu.mq@5f30 = cdc900fe795f3ecd</action>
        <action>maincpu.mq@5f38 = e5ddc925f4115f3e</action>
        <action>maincpu.mq@5f40 = 60263ac080fe7de1</action>
        <action>maincpu.mq@5f48 = ffffc9f1f1c860e6</action>
        <!--
        5f30 | cd 3e 5f : call $5f3e    // up
        5f33 | 79       : ld   a,c
        5f34 | fe 00    : cp   $00
        5f36 | c9       : ret
        5f37 | cd 3e 5f : call $5f3e    // down
        5f3a | 11 f4 25 : ld   de,$25f4
        5f3d | c9       : ret
        5f3e | dd e5    : push ix
        5f40 | e1       : pop  hl
        5f41 | 7d       : ld   a,l
        5f42 | fe 80    : cp   $80
        5f44 | c0       : ret  nz
        5f45 | 3a 26 60 : ld   a,($6026)
        5f48 | e6 60    : and  $60
        5f4a | c8       : ret  z
        5f4b | f1       : pop  af
        5f4c | f1       : pop  af
        5f4d | c9       : ret
        -->
    </script>
    <script state="off">
        <action>maincpu.mb@0de4 =               c0</action>
        <action>maincpu.mb@0df0 =               c0</action>
        <action>maincpu.md@0b37 =         c000fe79</action>
        <action>maincpu.md@2617 =         0625f411</action>
        <action>maincpu.mq@5f30 = ffffffffffffffff</action>
        <action>maincpu.mq@5f38 = ffffffffffffffff</action>
        <action>maincpu.mq@5f40 = ffffffffffffffff</action>
        <action>maincpu.mq@5f48 = 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.mb@0067 =               cd</action> <!-- enable sound -->
        <action>maincpu.mw@24a2 =             5f50</action>
        <action>maincpu.mq@5f50 = 21614022513c21ff</action>
        <action>maincpu.mq@5f58 = 60263a6100220000</action>
        <action>maincpu.mq@5f60 = 012008fef6286fbd</action>
        <action>maincpu.mq@5f68 = 80fe24012010fe25</action>
        <action>maincpu.mq@5f70 = 2020fe05187c0320</action>
        <action>maincpu.mq@5f78 = e5db185f7fcdaf04</action>
        <action>maincpu.mq@5f80 = 235e6f85875f8f21</action>
        <action>maincpu.mq@5f88 = 3cc9e1614022eb56</action>
        <action>maincpu.mq@5f90 = 3850005ba85b7851</action>
        <action>maincpu.mq@5f98 = ff5b945b6852005b</action>
        <!--
        5f50 | ff       : rst  $38
        5f51 | 21 3c 51 : ld   hl,$513c
        5f54 | 22 40 61 : ld   ($6140),hl
        5f57 | 21 00 00 : ld   hl,$0000   // initialize sound and input values
        5f5a | 22 00 61 : ld   ($6100),hl
        5f5d | 3a 26 60 : ld   a,($6026)  // read input
        5f60 | bd       : cp   l
        5f61 | 6f       : ld   l,a
        5f62 | 28 f6    : jr   z,$5f5a
        5f64 | fe 08    : cp   $08
        5f66 | 20 01    : jr   nz,$5f69
        5f68 | 25       : dec  h          // decrease code
        5f69 | fe 10    : cp   $10
        5f6b | 20 01    : jr   nz,$5f6e
        5f6d | 24       : inc  h          // increase code
        5f6e | fe 80    : cp   $80
        5f70 | 20 03    : jr   nz,$5f75
        5f72 | 7c       : ld   a,h        // play sound
        5f73 | 18 05    : jr   $5f7a
        5f75 | fe 20    : cp   $20
        5f77 | 20 04    : jr   nz,$5f7d
        5f79 | af       : xor  a          // stop sound
        5f7a | cd 7f 5f : call $5f7f
        5f7d | 18 db    : jr   $5f5a
        5f7f | e5       : push hl         // read sound code from table
        5f80 | 21 8f 5f : ld   hl,$5f8f
        5f83 | 87       : add  a,a
        5f84 | 85       : add  a,l
        5f85 | 6f       : ld   l,a
        5f86 | 5e       : ld   e,(hl)
        5f87 | 23       : inc  hl
        5f88 | 56       : ld   d,(hl)
        5f89 | eb       : ex   de,hl
        5f8a | 22 40 61 : ld   ($6140),hl // set sound code
        5f8d | e1       : pop  hl
        5f8e | c9       : ret
        5f8f - 5f9f     : sound code table
        -->
    </script>
    <script state="run">
        <output format="----- bagman sound test mode (PSG only) -----"  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="up : 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@6101</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mb@0067 =               cc</action>
        <action>maincpu.mw@24a2 =             121c</action>
        <action>maincpu.mq@5f50 = ffffffffffffffff</action>
        <action>maincpu.mq@5f58 = ffffffffffffffff</action>
        <action>maincpu.mq@5f60 = ffffffffffffffff</action>
        <action>maincpu.mq@5f68 = ffffffffffffffff</action>
        <action>maincpu.mq@5f70 = ffffffffffffffff</action>
        <action>maincpu.mq@5f78 = ffffffffffffffff</action>
        <action>maincpu.mq@5f80 = ffffffffffffffff</action>
        <action>maincpu.mq@5f88 = ffffffffffffffff</action>
        <action>maincpu.mq@5f90 = ffffffffffffffff</action>
        <action>maincpu.mq@5f98 = ffffffffffffffff</action>
    </script>
</cheat>
"invisiblie ladder" is unique. You can climb up/down "invisible" ladder when you press up or down even in falling down.

"sound test mode" has restriction and requires more test.
  • buggy gfx on the screen
  • wait with 3 seconds to play sound after pressed button 1
  • PSG sound only. No play any speech
  • effective sound code is between 0x01 and 0x07. You need to add sound code into table if other sound is found
jman

my wip cheat database back-up (2024/12/01 ver.)
https://u3.getuploader.com/...../download/47
downloadpass : jman2020
jman
Posts: 1266
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times

[bagman]+ Bagman

Post by jman »

[bagman]+ Bagman
bagman.xml

Code: Select all

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

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@1274 = 18</action> <!-- enemy -->
            <action>maincpu.mb@129F = 18</action> <!-- enemy -->
            <action>maincpu.mb@162E = 18</action> <!-- elevator -->
            <action>maincpu.mb@1DE5 = 18</action> <!-- trolley -->
            <action>maincpu.mb@1E47 = 00</action> <!-- fall down -->
            <action>maincpu.mb@1E63 = 00</action> <!-- fall down in elevator -->
        </script>
        <script state="off">
            <action>maincpu.mb@1274 = 20</action>
            <action>maincpu.mb@129F = 20</action>
            <action>maincpu.mb@162E = 20</action>
            <action>maincpu.mb@1DE5 = 30</action>
            <action>maincpu.mb@1E47 = 01</action>
            <action>maincpu.mb@1E63 = 0C</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.md@3806 = 3E5E80CD        </action> <!-- title -->
            <action>maincpu.md@382C = CD5E80CD        </action> <!-- title -->
            <action>maincpu.md@3849 = 3E5E80CD        </action> <!-- title -->
            <action>maincpu.md@3879 = 3E5E80CD        </action> <!-- title -->
            <action>maincpu.md@3B39 = AF5E80CD        </action> <!-- level finish -->
            <action>maincpu.md@01F2 = 3A5E9ACC        </action>
            <action>maincpu.md@0218 = 3A5EA5CD        </action>
            <action>maincpu.mq@5E80 = 670032013E602632</action>
            <action>maincpu.mq@5E88 = 0032AFF567003AC9</action>
            <action>maincpu.mq@5E90 = 0602200106A7F167</action>
            <action>maincpu.mq@5E98 = C7CDC55E89CDC900</action>
            <action>maincpu.mq@5EA0 = 5E89CDC9F910C10D</action>
            <action>maincpu.mq@5EA8 = C9F910C10B6DCDC5</action>
            <!--
            5E80 | 32 26 60 : ld   ($6026),a // flag set routine
            5E83 | 3E 01    : ld   a,$01
            5E85 | 32 00 67 : ld   ($6700),a
            5E88 | C9       : ret
            5E89 | 3A 00 67 : ld   a,($6700) // flag check routine
            5E8C | F5       : push af
            5E8D | AF       : xor  a
            5E8E | 32 00 67 : ld   ($6700),a
            5E91 | F1       : pop  af
            5E92 | A7       : and  a
            5E93 | 06 01    : ld   b,$01
            5E95 | 20 02    : jr   nz,$5E99
            5E97 | 06 xx    : ld   b,$xx
            5E99 | C9       : ret
            5E9A | CD 89 5E : call $5E89
            5E9D | C5       : push bc
            5EAE | CD C7 0D : call $0DC7
            5EA1 | C1       : pop  bc
            5EA2 | 10 F9    : djnz $5E9D
            5EA4 | C9       : ret
            5EA5 | CD 89 5E : call $5E89
            5EA8 | C5       : push bc
            5EA9 | CD 6D 0B : call $0B6D
            5EAC | C1       : pop  bc
            5EAD | 10 F9    : djnz $5EA8
            5EAF | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@5E98 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@3806 = 3E602632        </action>
            <action>maincpu.md@382C = CD602632        </action>
            <action>maincpu.md@3849 = 3E602632        </action>
            <action>maincpu.md@3879 = 3E602632        </action>
            <action>maincpu.md@3B39 = AF602632        </action>
            <action>maincpu.md@01F2 = 3A0DC7CC        </action>
            <action>maincpu.md@0218 = 3A0B6DCD        </action>
            <action>maincpu.mq@5E80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5E88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5E90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5E98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EA8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="invisible ladder">
        <script state="on">
            <action>maincpu.mb@0DE4 = 00              </action> <!-- up -->
            <action>maincpu.mb@0DF0 = 00              </action> <!-- down -->
            <action>maincpu.md@0B37 = C05EBECD        </action> <!-- up -->
            <action>maincpu.md@2617 = 065EC5CD        </action> <!-- down -->
            <action>maincpu.mq@5EB0 = 60263AC080FE7DDD</action>
            <action>maincpu.mq@5EB8 = B0CDC9F1F1C860E6</action>
            <action>maincpu.mq@5EC0 = 5EB0CDC900FE795E</action>
            <action>maincpu.mq@5EC8 = FFFFFFFFC925F411</action>
            <!--
            5EB0 | DD 7D    : ld   a,ixl     // common check routine
            5EB2 | FE 80    : cp   $80
            5EB4 | C0       : ret  nz
            5EB5 | 3A 26 60 : ld   a,($6026) // read input
            5EB8 | E6 60    : and  $60
            5EBA | C8       : ret  z
            5EBB | F1       : pop  af
            5EBC | F1       : pop  af
            5EBD | C9       : ret
            5EBE | CD B0 5E : call $5EB0     // up
            5EF1 | 79       : ld   a,c
            5EF2 | FE 00    : cp   $00
            5EF4 | C9       : ret
            5EF5 | CD B0 5E : call $5EB0     // down
            5EF8 | 11 F4 25 : ld   de,$25F4
            5EFB | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@0DE4 = C0              </action>
            <action>maincpu.mb@0DF0 = C0              </action>
            <action>maincpu.md@0B37 = C000FE79        </action>
            <action>maincpu.md@2617 = 0625F411        </action>
            <action>maincpu.mq@5EB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EC8 = 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.mw@24A2 = 5ED0            </action>
            <action>maincpu.mq@5ED0 = 0021FBA00032013E</action>
            <action>maincpu.mq@5ED8 = 47B860263A2F1861</action>
            <action>maincpu.mq@5EE0 = FE35012008FEF928</action>
            <action>maincpu.mq@5EE8 = 042040FE34012010</action>
            <action>maincpu.mq@5EF0 = 052020FE0618F03E</action>
            <action>maincpu.mq@5EF8 = 2080FE787786103E</action>
            <action>maincpu.mq@5F00 = 04FE785F15CD7E05</action>
            <action>maincpu.mq@5F08 = 083E5F15CDAF0920</action>
            <action>maincpu.mq@5F10 = 3E21D9C6185F15CD</action>
            <action>maincpu.mq@5F18 = 56235E6F8587F55F</action>
            <action>maincpu.mq@5F20 = 4022093008FEF1EB</action>
            <action>maincpu.mq@5F28 = 110D18614232AF61</action>
            <action>maincpu.mq@5F30 = 3EB0ED000601A800</action>
            <action>maincpu.mq@5F38 = 513CC9D9A8033201</action>
            <action>maincpu.mq@5F40 = 5B3850005BA85B78</action>
            <action>maincpu.mq@5F48 = 3F3F5B945B685200</action>
            <action>maincpu.mq@5F50 = 3F033EFD3F393F15</action>
            <action>maincpu.mq@5F58 = 3F333F2D3F333F45</action>
            <action>maincpu.mq@5F60 = 3F093EF73F1B3F27</action>
            <action>maincpu.mq@5F68 = FFFFFFFF3F4B3F1B</action>
            <!--
            5ED0 | 3E 01    : ld   a,$01      // enable interrupt
            5ED2 | 32 00 A0 : ld   ($A000),a
            5ED5 | FB       : ei
            5ED6 | 21 00 61 : ld   hl,$6100   // sound code address
            5ED9 | 18 2F    : jr   $5F0A
            5EDB | 3A 26 60 : ld   a,($6026)  // read input
            5EDE | B8       : cp   b
            5EDF | 47       : ld   b,a
            5EE0 | 28 F9    : jr   z,$5EDB
            5EE2 | FE 08    : cp   $08
            5EE4 | 20 01    : jr   nz,$5EE7
            5EE6 | 35       : dec  (hl)       // decrease code -01
            5EE7 | FE 10    : cp   $10
            5EE9 | 20 01    : jr   nz,$5EEC
            5EEB | 34       : inc  (hl)       // increase code +01
            5EEC | FE 40    : cp   $40
            5EEE | 20 04    : jr   nz,$5EF4
            5EF0 | 3E F0    : ld   a,$F0      // decrease code +10
            5EF2 | 18 06    : jr   $5FFA
            5EF4 | FE 20    : cp   $20
            5EF6 | 20 05    : jr   nz,$5EFD
            5EF8 | 3E 10    : ld   a,$10      // increase code -10
            5EFA | 86       : add  a,(hl)
            5EFB | 77       : ld   (hl),a
            5EFC | 78       : ld   a,b
            5EFD | FE 80    : cp   $80
            5EFF | 20 05    : jr   nz,$5F06
            5F01 | 7E       : ld   a,(hl)     // play sound
            5F02 | CD 15 5F : call $5F15
            5F05 | 78       : ld   a,b
            5F06 | FE 04    : cp   $04
            5F08 | 20 09    : jr   nz,$5F13
            5F0A | AF       : xor  a          // stop sound
            5F0B | CD 15 5F : call $5F15
            5F0E | 3E 08    : ld   a,$08
            5F10 | CD A5 5F : call $5F15
            5F13 | 18 C6    : jr   $5EDB
            5F15 | D9       : exx             // sound code conversion routine
            5F16 | 21 3E 5F : ld   hl,$5F3E
            5F19 | F5       : push af
            5F1A | 87       : add  a,a
            5F1B | 85       : add  a,l
            5F1C | 6F       : ld   l,a
            5F1D | 5E       : ld   e,(hl)
            5F1E | 23       : inc  hl
            5F1F | 56       : ld   d,(hl)
            5F20 | EB       : ex   de,hl
            5F21 | F1       : pop  af
            5F22 | FE 08    : cp   $08
            5F24 | 30 09    : jr   nc,$5F2F
            5F26 | 22 40 61 : ld   ($6140),hl
            5F29 | AF       : xor  a
            5F2A | 32 42 61 : ld   ($6142),a
            5F2D | 18 0D    : jr   $5F3C
            5F2F | 11 00 A8 : ld   de,$A800
            5F32 | 01 06 00 : ld   bc,$0006
            5F35 | ED B0    : ldir
            5F37 | 3E 01    : ld   a,$01
            5F39 | 32 03 A8 : ld   ($A803),a
            5F3C | D9       : exx
            5F3D | C9       : ret
            5F3E - 5F6B     : sound code/address conversion table
            -->
        </script>
        <script state="run">
            <output format="----- 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="start : 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@6100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@24A2 = 121C            </action>
            <action>maincpu.mq@5ED0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5ED8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F38 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F68 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
bagnard.xml

Code: Select all

<!-- Le Bagnard (set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@1274 = 18</action> <!-- enemy -->
            <action>maincpu.mb@129F = 18</action> <!-- enemy -->
            <action>maincpu.mb@162E = 18</action> <!-- elevator -->
            <action>maincpu.mb@1DE5 = 18</action> <!-- trolley -->
            <action>maincpu.mb@1E47 = 00</action> <!-- fall down -->
            <action>maincpu.mb@1E63 = 00</action> <!-- fall down in elevator -->
        </script>
        <script state="off">
            <action>maincpu.mb@1274 = 20</action>
            <action>maincpu.mb@129F = 20</action>
            <action>maincpu.mb@162E = 20</action>
            <action>maincpu.mb@1DE5 = 30</action>
            <action>maincpu.mb@1E47 = 01</action>
            <action>maincpu.mb@1E63 = 0C</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.md@3806 = 3E5E80CD        </action> <!-- title -->
            <action>maincpu.md@382C = CD5E80CD        </action> <!-- title -->
            <action>maincpu.md@3849 = 3E5E80CD        </action> <!-- title -->
            <action>maincpu.md@3879 = 3E5E80CD        </action> <!-- title -->
            <action>maincpu.md@3B39 = AF5E80CD        </action> <!-- level finish -->
            <action>maincpu.md@01F2 = 3A5E9ACC        </action>
            <action>maincpu.md@0218 = 3A5EA5CD        </action>
            <action>maincpu.mq@5E80 = 670032013E602632</action>
            <action>maincpu.mq@5E88 = 0032AFF567003AC9</action>
            <action>maincpu.mq@5E90 = 0602200106A7F167</action>
            <action>maincpu.mq@5E98 = C7CDC55E89CDC900</action>
            <action>maincpu.mq@5EA0 = 5E89CDC9F910C10D</action>
            <action>maincpu.mq@5EA8 = C9F910C10B6DCDC5</action>
            <!--
            5E80 | 32 26 60 : ld   ($6026),a // flag set routine
            5E83 | 3E 01    : ld   a,$01
            5E85 | 32 00 67 : ld   ($6700),a
            5E88 | C9       : ret
            5E89 | 3A 00 67 : ld   a,($6700) // flag check routine
            5E8C | F5       : push af
            5E8D | AF       : xor  a
            5E8E | 32 00 67 : ld   ($6700),a
            5E91 | F1       : pop  af
            5E92 | A7       : and  a
            5E93 | 06 01    : ld   b,$01
            5E95 | 20 02    : jr   nz,$5E99
            5E97 | 06 xx    : ld   b,$xx
            5E99 | C9       : ret
            5E9A | CD 89 5E : call $5E89
            5E9D | C5       : push bc
            5EAE | CD C7 0D : call $0DC7
            5EA1 | C1       : pop  bc
            5EA2 | 10 F9    : djnz $5E9D
            5EA4 | C9       : ret
            5EA5 | CD 89 5E : call $5E89
            5EA8 | C5       : push bc
            5EA9 | CD 6D 0B : call $0B6D
            5EAC | C1       : pop  bc
            5EAD | 10 F9    : djnz $5EA8
            5EAF | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@5E98 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@3806 = 3E602632        </action>
            <action>maincpu.md@382C = CD602632        </action>
            <action>maincpu.md@3849 = 3E602632        </action>
            <action>maincpu.md@3879 = 3E602632        </action>
            <action>maincpu.md@3B39 = AF602632        </action>
            <action>maincpu.md@01F2 = 3A0DC7CC        </action>
            <action>maincpu.md@0218 = 3A0B6DCD        </action>
            <action>maincpu.mq@5E80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5E88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5E90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5E98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EA8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="invisible ladder">
        <script state="on">
            <action>maincpu.mb@0DE4 = 00              </action> <!-- up -->
            <action>maincpu.mb@0DF0 = 00              </action> <!-- down -->
            <action>maincpu.md@0B37 = C05EBECD        </action> <!-- up -->
            <action>maincpu.md@2617 = 065EC5CD        </action> <!-- down -->
            <action>maincpu.mq@5EB0 = 60263AC080FE7DDD</action>
            <action>maincpu.mq@5EB8 = B0CDC9F1F1C860E6</action>
            <action>maincpu.mq@5EC0 = 5EB0CDC900FE795E</action>
            <action>maincpu.mq@5EC8 = FFFFFFFFC925F411</action>
            <!--
            5EB0 | DD 7D    : ld   a,ixl     // common check routine
            5EB2 | FE 80    : cp   $80
            5EB4 | C0       : ret  nz
            5EB5 | 3A 26 60 : ld   a,($6026) // read input
            5EB8 | E6 60    : and  $60
            5EBA | C8       : ret  z
            5EBB | F1       : pop  af
            5EBC | F1       : pop  af
            5EBD | C9       : ret
            5EBE | CD B0 5E : call $5EB0     // up
            5EF1 | 79       : ld   a,c
            5EF2 | FE 00    : cp   $00
            5EF4 | C9       : ret
            5EF5 | CD B0 5E : call $5EB0     // down
            5EF8 | 11 F4 25 : ld   de,$25F4
            5EFB | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@0DE4 = C0              </action>
            <action>maincpu.mb@0DF0 = C0              </action>
            <action>maincpu.md@0B37 = C000FE79        </action>
            <action>maincpu.md@2617 = 0625F411        </action>
            <action>maincpu.mq@5EB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EC8 = 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.mw@24A2 = 5ED0            </action>
            <action>maincpu.mq@5ED0 = 0021FBA00032013E</action>
            <action>maincpu.mq@5ED8 = 47B860263A2F1861</action>
            <action>maincpu.mq@5EE0 = FE35012008FEF928</action>
            <action>maincpu.mq@5EE8 = 042040FE34012010</action>
            <action>maincpu.mq@5EF0 = 052020FE0618F03E</action>
            <action>maincpu.mq@5EF8 = 2080FE787786103E</action>
            <action>maincpu.mq@5F00 = 04FE785F15CD7E05</action>
            <action>maincpu.mq@5F08 = 083E5F15CDAF0920</action>
            <action>maincpu.mq@5F10 = 3E21D9C6185F15CD</action>
            <action>maincpu.mq@5F18 = 56235E6F8587F55F</action>
            <action>maincpu.mq@5F20 = 4022093008FEF1EB</action>
            <action>maincpu.mq@5F28 = 110D18614232AF61</action>
            <action>maincpu.mq@5F30 = 3EB0ED000601A800</action>
            <action>maincpu.mq@5F38 = 513CC9D9A8033201</action>
            <action>maincpu.mq@5F40 = 5B3850005BA85B78</action>
            <action>maincpu.mq@5F48 = 3F3F5B945B685200</action>
            <action>maincpu.mq@5F50 = 3F033EFD3F393F15</action>
            <action>maincpu.mq@5F58 = 3F333F2D3F333F45</action>
            <action>maincpu.mq@5F60 = 3F093EF73F1B3F27</action>
            <action>maincpu.mq@5F68 = FFFFFFFF3F4B3F1B</action>
            <!--
            5ED0 | 3E 01    : ld   a,$01      // enable interrupt
            5ED2 | 32 00 A0 : ld   ($A000),a
            5ED5 | FB       : ei
            5ED6 | 21 00 61 : ld   hl,$6100   // sound code address
            5ED9 | 18 2F    : jr   $5F0A
            5EDB | 3A 26 60 : ld   a,($6026)  // read input
            5EDE | B8       : cp   b
            5EDF | 47       : ld   b,a
            5EE0 | 28 F9    : jr   z,$5EDB
            5EE2 | FE 08    : cp   $08
            5EE4 | 20 01    : jr   nz,$5EE7
            5EE6 | 35       : dec  (hl)       // decrease code -01
            5EE7 | FE 10    : cp   $10
            5EE9 | 20 01    : jr   nz,$5EEC
            5EEB | 34       : inc  (hl)       // increase code +01
            5EEC | FE 40    : cp   $40
            5EEE | 20 04    : jr   nz,$5EF4
            5EF0 | 3E F0    : ld   a,$F0      // decrease code +10
            5EF2 | 18 06    : jr   $5FFA
            5EF4 | FE 20    : cp   $20
            5EF6 | 20 05    : jr   nz,$5EFD
            5EF8 | 3E 10    : ld   a,$10      // increase code -10
            5EFA | 86       : add  a,(hl)
            5EFB | 77       : ld   (hl),a
            5EFC | 78       : ld   a,b
            5EFD | FE 80    : cp   $80
            5EFF | 20 05    : jr   nz,$5F06
            5F01 | 7E       : ld   a,(hl)     // play sound
            5F02 | CD 15 5F : call $5F15
            5F05 | 78       : ld   a,b
            5F06 | FE 04    : cp   $04
            5F08 | 20 09    : jr   nz,$5F13
            5F0A | AF       : xor  a          // stop sound
            5F0B | CD 15 5F : call $5F15
            5F0E | 3E 08    : ld   a,$08
            5F10 | CD A5 5F : call $5F15
            5F13 | 18 C6    : jr   $5EDB
            5F15 | D9       : exx             // sound code conversion routine
            5F16 | 21 3E 5F : ld   hl,$5F3E
            5F19 | F5       : push af
            5F1A | 87       : add  a,a
            5F1B | 85       : add  a,l
            5F1C | 6F       : ld   l,a
            5F1D | 5E       : ld   e,(hl)
            5F1E | 23       : inc  hl
            5F1F | 56       : ld   d,(hl)
            5F20 | EB       : ex   de,hl
            5F21 | F1       : pop  af
            5F22 | FE 08    : cp   $08
            5F24 | 30 09    : jr   nc,$5F2F
            5F26 | 22 40 61 : ld   ($6140),hl
            5F29 | AF       : xor  a
            5F2A | 32 42 61 : ld   ($6142),a
            5F2D | 18 0D    : jr   $5F3C
            5F2F | 11 00 A8 : ld   de,$A800
            5F32 | 01 06 00 : ld   bc,$0006
            5F35 | ED B0    : ldir
            5F37 | 3E 01    : ld   a,$01
            5F39 | 32 03 A8 : ld   ($A803),a
            5F3C | D9       : exx
            5F3D | C9       : ret
            5F3E - 5F6B     : sound code/address conversion table
            -->
        </script>
        <script state="run">
            <output format="----- 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="start : 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@6100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@24A2 = 121C            </action>
            <action>maincpu.mq@5ED0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5ED8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F38 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F68 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
bagnarda.xml

Code: Select all

<!-- Le Bagnard (set 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@157A = 18</action> <!-- enemy -->
            <action>maincpu.mb@15A5 = 18</action> <!-- enemy -->
            <action>maincpu.mb@1927 = 18</action> <!-- elevator -->
            <action>maincpu.mb@2062 = 18</action> <!-- trolley -->
            <action>maincpu.mb@20C4 = 00</action> <!-- fall down -->
            <action>maincpu.mb@20E0 = 00</action> <!-- fall down in elevator -->
        </script>
        <script state="off">
            <action>maincpu.mb@157A = 20</action>
            <action>maincpu.mb@15A5 = 20</action>
            <action>maincpu.mb@1927 = 20</action>
            <action>maincpu.mb@2062 = 30</action>
            <action>maincpu.mb@20C4 = 01</action>
            <action>maincpu.mb@20E0 = 0C</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.md@37F5 = 3E4C90CD        </action> <!-- title -->
            <action>maincpu.md@381B = CD4C90CD        </action> <!-- title -->
            <action>maincpu.md@3838 = 3E4C90CD        </action> <!-- title -->
            <action>maincpu.md@3868 = 3E4C90CD        </action> <!-- title -->
            <action>maincpu.md@3B39 = AF4C90CD        </action> <!-- level finish -->
            <action>maincpu.md@01C4 = 3A4CAACC        </action>
            <action>maincpu.md@01EF = 3A4CB5CC        </action>
            <action>maincpu.mq@4C90 = 670032013E602632</action>
            <action>maincpu.mq@4C98 = 0032AFF567003AC9</action>
            <action>maincpu.mq@4CA0 = 0602200106A7F167</action>
            <action>maincpu.mq@4CA8 = F2CDC54C99CDC900</action>
            <action>maincpu.mq@4CB0 = 4C99CDC9F910C10D</action>
            <action>maincpu.mq@4CB8 = C9F910C10B9DCDC5</action>
            <!--
            4C90 | 32 26 60 : ld   ($6026),a // flag set routine
            4C93 | 3E 01    : ld   a,$01
            4C95 | 32 00 67 : ld   ($6700),a
            4C98 | C9       : ret
            4C99 | 3A 00 67 : ld   a,($6700) // flag check routine
            4C9C | F5       : push af
            4C9D | AF       : xor  a
            4C9E | 32 00 67 : ld   ($6700),a
            4CA1 | F1       : pop  af
            4CA2 | A7       : and  a
            4CA3 | 06 01    : ld   b,$01
            4CA5 | 20 02    : jr   nz,$4CA9
            4CA7 | 06 xx    : ld   b,$xx
            4CA9 | C9       : ret
            4CAA | CD 99 4C : call $4C99
            4CAD | C5       : push bc
            4CAE | CD F2 0D : call $0DF2
            4CB1 | C1       : pop  bc
            4CB2 | 10 F9    : djnz $4CAD
            4CB4 | C9       : ret
            4CB5 | CD 99 4C : call $4C99
            4CB8 | C5       : push bc
            4CB9 | CD 9D 0B : call $0B9D
            4CBC | C1       : pop  bc
            4CBD | 10 F9    : djnz $4CB8
            4CBF | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@4CA8 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@37F5 = 3E602632        </action>
            <action>maincpu.md@381B = CD602632        </action>
            <action>maincpu.md@3838 = 3E602632        </action>
            <action>maincpu.md@3868 = 3E602632        </action>
            <action>maincpu.md@3B39 = AF602632        </action>
            <action>maincpu.md@01C4 = 3A0DF2CC        </action>
            <action>maincpu.md@01EF = 3A0B9DCC        </action>
            <action>maincpu.mq@4C90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4C98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4CA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4CA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4CB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4CB8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="invisible ladder">
        <script state="on">
            <action>maincpu.mb@0E0F = 00              </action> <!-- up -->
            <action>maincpu.mb@0E1B = 00              </action> <!-- down -->
            <action>maincpu.md@0B67 = C04CCECD        </action> <!-- up -->
            <action>maincpu.md@2882 = 064CD5CD        </action> <!-- down -->
            <action>maincpu.mq@4CC0 = 60263AC080FE7DDD</action>
            <action>maincpu.mq@4CC8 = C0CDC9F1F1C860E6</action>
            <action>maincpu.mq@4CD0 = 4CC0CDC900FE794C</action>
            <action>maincpu.mq@4CD8 = FFFFFFFFC9285F11</action>
            <!--
            4CC0 | DD 7D    : ld   a,ixl     // common check routine
            4CC2 | FE 80    : cp   $80
            4CC4 | C0       : ret  nz
            4CC5 | 3A 26 60 : ld   a,($6026) // read input
            4CC8 | E6 60    : and  $60
            4CCA | C8       : ret  z
            4CCB | F1       : pop  af
            4CCC | F1       : pop  af
            4CCD | C9       : ret
            4CCE | CD C0 4C : call $4CC0     // up
            4CD1 | 79       : ld   a,c
            4CD2 | FE 00    : cp   $00
            4CD4 | C9       : ret
            4CD5 | CD C0 4C : call $4CC0     // down
            4CD8 | 11 5F 28 : ld   de,$285F
            4CDB | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@0E0F = C0              </action>
            <action>maincpu.mb@0E1B = C0              </action>
            <action>maincpu.md@0B67 = C000FE79        </action>
            <action>maincpu.md@2882 = 06285F11        </action>
            <action>maincpu.mq@4CC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4CC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4CD0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4CD8 = 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.mw@271D = 4DA0            </action>
            <action>maincpu.mq@4DA0 = 0021FBA00032013E</action>
            <action>maincpu.mq@4DA8 = 47B860263A2F1861</action>
            <action>maincpu.mq@4DB0 = FE35012008FEF928</action>
            <action>maincpu.mq@4DB8 = 042040FE34012010</action>
            <action>maincpu.mq@4DC0 = 052020FE0618F03E</action>
            <action>maincpu.mq@4DC8 = 2080FE787786103E</action>
            <action>maincpu.mq@4DD0 = 04FE784DE5CD7E05</action>
            <action>maincpu.mq@4DD8 = 083E4DE5CDAF0920</action>
            <action>maincpu.mq@4DE0 = 0E21D9C6184DE5CD</action>
            <action>maincpu.mq@4DE8 = 56235E6F8587F54E</action>
            <action>maincpu.mq@4DF0 = 4022093008FEF1EB</action>
            <action>maincpu.mq@4DF8 = 110D18614232AF61</action>
            <action>maincpu.mq@4E00 = 3EB0ED000601A800</action>
            <action>maincpu.mq@4E08 = 513CC9D9A8033201</action>
            <action>maincpu.mq@4E10 = 5B3850005BA85B78</action>
            <action>maincpu.mq@4E18 = 3F2F5B945B685200</action>
            <action>maincpu.mq@4E20 = 3EF33EED3F293F05</action>
            <action>maincpu.mq@4E28 = 3F233F1D3F233F35</action>
            <action>maincpu.mq@4E30 = 3EF93EE73F0B3F17</action>
            <action>maincpu.mq@4E38 = FFFFFFFF3F3B3F0B</action>
            <!--
            4DA0 | 3E 01    : ld   a,$01      // enable interrupt
            4DA2 | 32 00 A0 : ld   ($A000),a
            4DA5 | FB       : ei
            4DA6 | 21 00 61 : ld   hl,$6100   // sound code address
            4DA9 | 18 2F    : jr   $4DDA
            4DAB | 3A 26 60 : ld   a,($6026)  // read input
            4DAE | B8       : cp   b
            4DAF | 47       : ld   b,a
            4DB0 | 28 F9    : jr   z,$4DAB
            4DB2 | FE 08    : cp   $08
            4DB4 | 20 01    : jr   nz,$4DB7
            4DB6 | 35       : dec  (hl)       // decrease code -01
            4DB7 | FE 10    : cp   $10
            4DB9 | 20 01    : jr   nz,$4DBC
            4DBB | 34       : inc  (hl)       // increase code +01
            4DBC | FE 40    : cp   $40
            4DBE | 20 04    : jr   nz,$4DC4
            4DC0 | 3E F0    : ld   a,$F0      // decrease code +10
            4DC2 | 18 06    : jr   $4DCA
            4DC4 | FE 20    : cp   $20
            4DC6 | 20 05    : jr   nz,$4DCD
            4DC8 | 3E 10    : ld   a,$10      // increase code -10
            4DCA | 86       : add  a,(hl)
            4DCB | 77       : ld   (hl),a
            4DCC | 78       : ld   a,b
            4DCD | FE 80    : cp   $80
            4DCF | 20 05    : jr   nz,$4DD6
            4DD1 | 7E       : ld   a,(hl)     // play sound
            4DD2 | CD E5 4D : call $4DE5
            4DD5 | 78       : ld   a,b
            4DD6 | FE 04    : cp   $04
            4DD8 | 20 09    : jr   nz,$4DE3
            4DDA | AF       : xor  a          // stop sound
            4DDB | CD E5 4D : call $4DE5
            4DDE | 3E 08    : ld   a,$08
            4DE0 | CD E5 4D : call $4DE5
            4DE3 | 18 C6    : jr   $4DAB
            4DE5 | D9       : exx             // sound code conversion routine
            4DE6 | 21 0E 4E : ld   hl,$4E0E
            4DE9 | F5       : push af
            4DEA | 87       : add  a,a
            4DEB | 85       : add  a,l
            4DEC | 6F       : ld   l,a
            4DED | 5E       : ld   e,(hl)
            4DEE | 23       : inc  hl
            4DEF | 56       : ld   d,(hl)
            4DF0 | EB       : ex   de,hl
            4DF1 | F1       : pop  af
            4DF2 | FE 08    : cp   $08
            4DF4 | 30 09    : jr   nc,$4DFF
            4DF6 | 22 40 61 : ld   ($6140),hl
            4DF9 | AF       : xor  a
            4DFA | 32 42 61 : ld   ($6142),a
            4DFD | 18 0D    : jr   $4E0C
            4DFF | 11 00 A8 : ld   de,$A800
            4E02 | 01 06 00 : ld   bc,$0006
            4E05 | ED B0    : ldir
            4E07 | 3E 01    : ld   a,$01
            4E09 | 32 03 A8 : ld   ($A803),a
            4E0C | D9       : exx
            4E0D | C9       : ret
            4E0E - 4E3B     : sound code/address conversion table
            -->
        </script>
        <script state="run">
            <output format="----- 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="start : 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@6100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@271D = 1522            </action>
            <action>maincpu.mq@4DA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4DA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4DB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4DB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4DC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4DC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4DE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4DE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4DF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4DF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E38 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
bagnardi.xml

Code: Select all

<!-- Le Bagnard (Itisa, Spain) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@1274 = 18</action> <!-- enemy -->
            <action>maincpu.mb@129F = 18</action> <!-- enemy -->
            <action>maincpu.mb@162E = 18</action> <!-- elevator -->
            <action>maincpu.mb@1DE5 = 18</action> <!-- trolley -->
            <action>maincpu.mb@1E47 = 00</action> <!-- fall down -->
            <action>maincpu.mb@1E63 = 00</action> <!-- fall down in elevator -->
        </script>
        <script state="off">
            <action>maincpu.mb@1274 = 20</action>
            <action>maincpu.mb@129F = 20</action>
            <action>maincpu.mb@162E = 20</action>
            <action>maincpu.mb@1DE5 = 30</action>
            <action>maincpu.mb@1E47 = 01</action>
            <action>maincpu.mb@1E63 = 0C</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.md@3806 = 3E5E80CD        </action> <!-- title -->
            <action>maincpu.md@382C = CD5E80CD        </action> <!-- title -->
            <action>maincpu.md@3849 = 3E5E80CD        </action> <!-- title -->
            <action>maincpu.md@3879 = 3E5E80CD        </action> <!-- title -->
            <action>maincpu.md@3B39 = AF5E80CD        </action> <!-- level finish -->
            <action>maincpu.md@01F2 = 3A5E9ACC        </action>
            <action>maincpu.md@0218 = 3A5EA5CD        </action>
            <action>maincpu.mq@5E80 = 670032013E602632</action>
            <action>maincpu.mq@5E88 = 0032AFF567003AC9</action>
            <action>maincpu.mq@5E90 = 0602200106A7F167</action>
            <action>maincpu.mq@5E98 = C7CDC55E89CDC900</action>
            <action>maincpu.mq@5EA0 = 5E89CDC9F910C10D</action>
            <action>maincpu.mq@5EA8 = C9F910C10B6DCDC5</action>
            <!--
            5E80 | 32 26 60 : ld   ($6026),a // flag set routine
            5E83 | 3E 01    : ld   a,$01
            5E85 | 32 00 67 : ld   ($6700),a
            5E88 | C9       : ret
            5E89 | 3A 00 67 : ld   a,($6700) // flag check routine
            5E8C | F5       : push af
            5E8D | AF       : xor  a
            5E8E | 32 00 67 : ld   ($6700),a
            5E91 | F1       : pop  af
            5E92 | A7       : and  a
            5E93 | 06 01    : ld   b,$01
            5E95 | 20 02    : jr   nz,$5E99
            5E97 | 06 xx    : ld   b,$xx
            5E99 | C9       : ret
            5E9A | CD 89 5E : call $5E89
            5E9D | C5       : push bc
            5EAE | CD C7 0D : call $0DC7
            5EA1 | C1       : pop  bc
            5EA2 | 10 F9    : djnz $5E9D
            5EA4 | C9       : ret
            5EA5 | CD 89 5E : call $5E89
            5EA8 | C5       : push bc
            5EA9 | CD 6D 0B : call $0B6D
            5EAC | C1       : pop  bc
            5EAD | 10 F9    : djnz $5EA8
            5EAF | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@5E98 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@3806 = 3E602632        </action>
            <action>maincpu.md@382C = CD602632        </action>
            <action>maincpu.md@3849 = 3E602632        </action>
            <action>maincpu.md@3879 = 3E602632        </action>
            <action>maincpu.md@3B39 = AF602632        </action>
            <action>maincpu.md@01F2 = 3A0DC7CC        </action>
            <action>maincpu.md@0218 = 3A0B6DCD        </action>
            <action>maincpu.mq@5E80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5E88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5E90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5E98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EA8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="invisible ladder">
        <script state="on">
            <action>maincpu.mb@0DE4 = 00              </action> <!-- up -->
            <action>maincpu.mb@0DF0 = 00              </action> <!-- down -->
            <action>maincpu.md@0B37 = C05EBECD        </action> <!-- up -->
            <action>maincpu.md@2617 = 065EC5CD        </action> <!-- down -->
            <action>maincpu.mq@5EB0 = 60263AC080FE7DDD</action>
            <action>maincpu.mq@5EB8 = B0CDC9F1F1C860E6</action>
            <action>maincpu.mq@5EC0 = 5EB0CDC900FE795E</action>
            <action>maincpu.mq@5EC8 = FFFFFFFFC925F411</action>
            <!--
            5EB0 | DD 7D    : ld   a,ixl     // common check routine
            5EB2 | FE 80    : cp   $80
            5EB4 | C0       : ret  nz
            5EB5 | 3A 26 60 : ld   a,($6026) // read input
            5EB8 | E6 60    : and  $60
            5EBA | C8       : ret  z
            5EBB | F1       : pop  af
            5EBC | F1       : pop  af
            5EBD | C9       : ret
            5EBE | CD B0 5E : call $5EB0     // up
            5EF1 | 79       : ld   a,c
            5EF2 | FE 00    : cp   $00
            5EF4 | C9       : ret
            5EF5 | CD B0 5E : call $5EB0     // down
            5EF8 | 11 F4 25 : ld   de,$25F4
            5EFB | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@0DE4 = C0              </action>
            <action>maincpu.mb@0DF0 = C0              </action>
            <action>maincpu.md@0B37 = C000FE79        </action>
            <action>maincpu.md@2617 = 0625F411        </action>
            <action>maincpu.mq@5EB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EC8 = 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.mw@24A2 = 5ED0            </action>
            <action>maincpu.mq@5ED0 = 0021FBA00032013E</action>
            <action>maincpu.mq@5ED8 = 47B860263A2F1861</action>
            <action>maincpu.mq@5EE0 = FE35012008FEF928</action>
            <action>maincpu.mq@5EE8 = 042040FE34012010</action>
            <action>maincpu.mq@5EF0 = 052020FE0618F03E</action>
            <action>maincpu.mq@5EF8 = 2080FE787786103E</action>
            <action>maincpu.mq@5F00 = 04FE785F15CD7E05</action>
            <action>maincpu.mq@5F08 = 083E5F15CDAF0920</action>
            <action>maincpu.mq@5F10 = 3E21D9C6185F15CD</action>
            <action>maincpu.mq@5F18 = 56235E6F8587F55F</action>
            <action>maincpu.mq@5F20 = 4022093008FEF1EB</action>
            <action>maincpu.mq@5F28 = 110D18614232AF61</action>
            <action>maincpu.mq@5F30 = 3EB0ED000601A800</action>
            <action>maincpu.mq@5F38 = 513CC9D9A8033201</action>
            <action>maincpu.mq@5F40 = 5B3850005BA85B78</action>
            <action>maincpu.mq@5F48 = 3F3F5B945B685200</action>
            <action>maincpu.mq@5F50 = 3F033EFD3F393F15</action>
            <action>maincpu.mq@5F58 = 3F333F2D3F333F45</action>
            <action>maincpu.mq@5F60 = 3F093EF73F1B3F27</action>
            <action>maincpu.mq@5F68 = FFFFFFFF3F4B3F1B</action>
            <!--
            5ED0 | 3E 01    : ld   a,$01      // enable interrupt
            5ED2 | 32 00 A0 : ld   ($A000),a
            5ED5 | FB       : ei
            5ED6 | 21 00 61 : ld   hl,$6100   // sound code address
            5ED9 | 18 2F    : jr   $5F0A
            5EDB | 3A 26 60 : ld   a,($6026)  // read input
            5EDE | B8       : cp   b
            5EDF | 47       : ld   b,a
            5EE0 | 28 F9    : jr   z,$5EDB
            5EE2 | FE 08    : cp   $08
            5EE4 | 20 01    : jr   nz,$5EE7
            5EE6 | 35       : dec  (hl)       // decrease code -01
            5EE7 | FE 10    : cp   $10
            5EE9 | 20 01    : jr   nz,$5EEC
            5EEB | 34       : inc  (hl)       // increase code +01
            5EEC | FE 40    : cp   $40
            5EEE | 20 04    : jr   nz,$5EF4
            5EF0 | 3E F0    : ld   a,$F0      // decrease code +10
            5EF2 | 18 06    : jr   $5FFA
            5EF4 | FE 20    : cp   $20
            5EF6 | 20 05    : jr   nz,$5EFD
            5EF8 | 3E 10    : ld   a,$10      // increase code -10
            5EFA | 86       : add  a,(hl)
            5EFB | 77       : ld   (hl),a
            5EFC | 78       : ld   a,b
            5EFD | FE 80    : cp   $80
            5EFF | 20 05    : jr   nz,$5F06
            5F01 | 7E       : ld   a,(hl)     // play sound
            5F02 | CD 15 5F : call $5F15
            5F05 | 78       : ld   a,b
            5F06 | FE 04    : cp   $04
            5F08 | 20 09    : jr   nz,$5F13
            5F0A | AF       : xor  a          // stop sound
            5F0B | CD 15 5F : call $5F15
            5F0E | 3E 08    : ld   a,$08
            5F10 | CD A5 5F : call $5F15
            5F13 | 18 C6    : jr   $5EDB
            5F15 | D9       : exx             // sound code conversion routine
            5F16 | 21 3E 5F : ld   hl,$5F3E
            5F19 | F5       : push af
            5F1A | 87       : add  a,a
            5F1B | 85       : add  a,l
            5F1C | 6F       : ld   l,a
            5F1D | 5E       : ld   e,(hl)
            5F1E | 23       : inc  hl
            5F1F | 56       : ld   d,(hl)
            5F20 | EB       : ex   de,hl
            5F21 | F1       : pop  af
            5F22 | FE 08    : cp   $08
            5F24 | 30 09    : jr   nc,$5F2F
            5F26 | 22 40 61 : ld   ($6140),hl
            5F29 | AF       : xor  a
            5F2A | 32 42 61 : ld   ($6142),a
            5F2D | 18 0D    : jr   $5F3C
            5F2F | 11 00 A8 : ld   de,$A800
            5F32 | 01 06 00 : ld   bc,$0006
            5F35 | ED B0    : ldir
            5F37 | 3E 01    : ld   a,$01
            5F39 | 32 03 A8 : ld   ($A803),a
            5F3C | D9       : exx
            5F3D | C9       : ret
            5F3E - 5F6B     : sound code/address conversion table
            -->
        </script>
        <script state="run">
            <output format="----- 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="start : 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@6100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@24A2 = 121C            </action>
            <action>maincpu.mq@5ED0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5ED8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F38 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F68 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
jman

my wip cheat database back-up (2024/12/01 ver.)
https://u3.getuploader.com/...../download/47
downloadpass : jman2020
jman
Posts: 1266
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times

[bagman]+ Bagman

Post by jman »

bagnardio.xml

Code: Select all

<!-- Le Bagnard (Itisa, Spain, older) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@1274 = 18</action> <!-- enemy -->
            <action>maincpu.mb@129F = 18</action> <!-- enemy -->
            <action>maincpu.mb@162E = 18</action> <!-- elevator -->
            <action>maincpu.mb@1DE5 = 18</action> <!-- trolley -->
            <action>maincpu.mb@1E47 = 00</action> <!-- fall down -->
            <action>maincpu.mb@1E63 = 00</action> <!-- fall down in elevator -->
        </script>
        <script state="off">
            <action>maincpu.mb@1274 = 20</action>
            <action>maincpu.mb@129F = 20</action>
            <action>maincpu.mb@162E = 20</action>
            <action>maincpu.mb@1DE5 = 30</action>
            <action>maincpu.mb@1E47 = 01</action>
            <action>maincpu.mb@1E63 = 0C</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.md@3806 = 3E5E80CD        </action> <!-- title -->
            <action>maincpu.md@382C = CD5E80CD        </action> <!-- title -->
            <action>maincpu.md@3849 = 3E5E80CD        </action> <!-- title -->
            <action>maincpu.md@3879 = 3E5E80CD        </action> <!-- title -->
            <action>maincpu.md@3B39 = AF5E80CD        </action> <!-- level finish -->
            <action>maincpu.md@01F2 = 3A5E9ACC        </action>
            <action>maincpu.md@0218 = 3A5EA5CD        </action>
            <action>maincpu.mq@5E80 = 670032013E602632</action>
            <action>maincpu.mq@5E88 = 0032AFF567003AC9</action>
            <action>maincpu.mq@5E90 = 0602200106A7F167</action>
            <action>maincpu.mq@5E98 = C7CDC55E89CDC900</action>
            <action>maincpu.mq@5EA0 = 5E89CDC9F910C10D</action>
            <action>maincpu.mq@5EA8 = C9F910C10B6DCDC5</action>
            <!--
            5E80 | 32 26 60 : ld   ($6026),a // flag set routine
            5E83 | 3E 01    : ld   a,$01
            5E85 | 32 00 67 : ld   ($6700),a
            5E88 | C9       : ret
            5E89 | 3A 00 67 : ld   a,($6700) // flag check routine
            5E8C | F5       : push af
            5E8D | AF       : xor  a
            5E8E | 32 00 67 : ld   ($6700),a
            5E91 | F1       : pop  af
            5E92 | A7       : and  a
            5E93 | 06 01    : ld   b,$01
            5E95 | 20 02    : jr   nz,$5E99
            5E97 | 06 xx    : ld   b,$xx
            5E99 | C9       : ret
            5E9A | CD 89 5E : call $5E89
            5E9D | C5       : push bc
            5EAE | CD C7 0D : call $0DC7
            5EA1 | C1       : pop  bc
            5EA2 | 10 F9    : djnz $5E9D
            5EA4 | C9       : ret
            5EA5 | CD 89 5E : call $5E89
            5EA8 | C5       : push bc
            5EA9 | CD 6D 0B : call $0B6D
            5EAC | C1       : pop  bc
            5EAD | 10 F9    : djnz $5EA8
            5EAF | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@5E98 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@3806 = 3E602632        </action>
            <action>maincpu.md@382C = CD602632        </action>
            <action>maincpu.md@3849 = 3E602632        </action>
            <action>maincpu.md@3879 = 3E602632        </action>
            <action>maincpu.md@3B39 = AF602632        </action>
            <action>maincpu.md@01F2 = 3A0DC7CC        </action>
            <action>maincpu.md@0218 = 3A0B6DCD        </action>
            <action>maincpu.mq@5E80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5E88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5E90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5E98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EA8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="invisible ladder">
        <script state="on">
            <action>maincpu.mb@0DE4 = 00              </action> <!-- up -->
            <action>maincpu.mb@0DF0 = 00              </action> <!-- down -->
            <action>maincpu.md@0B37 = C05EBECD        </action> <!-- up -->
            <action>maincpu.md@2617 = 065EC5CD        </action> <!-- down -->
            <action>maincpu.mq@5EB0 = 60263AC080FE7DDD</action>
            <action>maincpu.mq@5EB8 = B0CDC9F1F1C860E6</action>
            <action>maincpu.mq@5EC0 = 5EB0CDC900FE795E</action>
            <action>maincpu.mq@5EC8 = FFFFFFFFC925F411</action>
            <!--
            5EB0 | DD 7D    : ld   a,ixl     // common check routine
            5EB2 | FE 80    : cp   $80
            5EB4 | C0       : ret  nz
            5EB5 | 3A 26 60 : ld   a,($6026) // read input
            5EB8 | E6 60    : and  $60
            5EBA | C8       : ret  z
            5EBB | F1       : pop  af
            5EBC | F1       : pop  af
            5EBD | C9       : ret
            5EBE | CD B0 5E : call $5EB0     // up
            5EF1 | 79       : ld   a,c
            5EF2 | FE 00    : cp   $00
            5EF4 | C9       : ret
            5EF5 | CD B0 5E : call $5EB0     // down
            5EF8 | 11 F4 25 : ld   de,$25F4
            5EFB | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@0DE4 = C0              </action>
            <action>maincpu.mb@0DF0 = C0              </action>
            <action>maincpu.md@0B37 = C000FE79        </action>
            <action>maincpu.md@2617 = 0625F411        </action>
            <action>maincpu.mq@5EB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EC8 = 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.mw@24A2 = 5ED0            </action>
            <action>maincpu.mq@5ED0 = 0021FBA00032013E</action>
            <action>maincpu.mq@5ED8 = 47B860263A2F1861</action>
            <action>maincpu.mq@5EE0 = FE35012008FEF928</action>
            <action>maincpu.mq@5EE8 = 042040FE34012010</action>
            <action>maincpu.mq@5EF0 = 052020FE0618F03E</action>
            <action>maincpu.mq@5EF8 = 2080FE787786103E</action>
            <action>maincpu.mq@5F00 = 04FE785F15CD7E05</action>
            <action>maincpu.mq@5F08 = 083E5F15CDAF0920</action>
            <action>maincpu.mq@5F10 = 3E21D9C6185F15CD</action>
            <action>maincpu.mq@5F18 = 56235E6F8587F55F</action>
            <action>maincpu.mq@5F20 = 4022093008FEF1EB</action>
            <action>maincpu.mq@5F28 = 110D18614232AF61</action>
            <action>maincpu.mq@5F30 = 3EB0ED000601A800</action>
            <action>maincpu.mq@5F38 = 513CC9D9A8033201</action>
            <action>maincpu.mq@5F40 = 5B3850005BA85B78</action>
            <action>maincpu.mq@5F48 = 3F3F5B945B685200</action>
            <action>maincpu.mq@5F50 = 3F033EFD3F393F15</action>
            <action>maincpu.mq@5F58 = 3F333F2D3F333F45</action>
            <action>maincpu.mq@5F60 = 3F093EF73F1B3F27</action>
            <action>maincpu.mq@5F68 = FFFFFFFF3F4B3F1B</action>
            <!--
            5ED0 | 3E 01    : ld   a,$01      // enable interrupt
            5ED2 | 32 00 A0 : ld   ($A000),a
            5ED5 | FB       : ei
            5ED6 | 21 00 61 : ld   hl,$6100   // sound code address
            5ED9 | 18 2F    : jr   $5F0A
            5EDB | 3A 26 60 : ld   a,($6026)  // read input
            5EDE | B8       : cp   b
            5EDF | 47       : ld   b,a
            5EE0 | 28 F9    : jr   z,$5EDB
            5EE2 | FE 08    : cp   $08
            5EE4 | 20 01    : jr   nz,$5EE7
            5EE6 | 35       : dec  (hl)       // decrease code -01
            5EE7 | FE 10    : cp   $10
            5EE9 | 20 01    : jr   nz,$5EEC
            5EEB | 34       : inc  (hl)       // increase code +01
            5EEC | FE 40    : cp   $40
            5EEE | 20 04    : jr   nz,$5EF4
            5EF0 | 3E F0    : ld   a,$F0      // decrease code +10
            5EF2 | 18 06    : jr   $5FFA
            5EF4 | FE 20    : cp   $20
            5EF6 | 20 05    : jr   nz,$5EFD
            5EF8 | 3E 10    : ld   a,$10      // increase code -10
            5EFA | 86       : add  a,(hl)
            5EFB | 77       : ld   (hl),a
            5EFC | 78       : ld   a,b
            5EFD | FE 80    : cp   $80
            5EFF | 20 05    : jr   nz,$5F06
            5F01 | 7E       : ld   a,(hl)     // play sound
            5F02 | CD 15 5F : call $5F15
            5F05 | 78       : ld   a,b
            5F06 | FE 04    : cp   $04
            5F08 | 20 09    : jr   nz,$5F13
            5F0A | AF       : xor  a          // stop sound
            5F0B | CD 15 5F : call $5F15
            5F0E | 3E 08    : ld   a,$08
            5F10 | CD A5 5F : call $5F15
            5F13 | 18 C6    : jr   $5EDB
            5F15 | D9       : exx             // sound code conversion routine
            5F16 | 21 3E 5F : ld   hl,$5F3E
            5F19 | F5       : push af
            5F1A | 87       : add  a,a
            5F1B | 85       : add  a,l
            5F1C | 6F       : ld   l,a
            5F1D | 5E       : ld   e,(hl)
            5F1E | 23       : inc  hl
            5F1F | 56       : ld   d,(hl)
            5F20 | EB       : ex   de,hl
            5F21 | F1       : pop  af
            5F22 | FE 08    : cp   $08
            5F24 | 30 09    : jr   nc,$5F2F
            5F26 | 22 40 61 : ld   ($6140),hl
            5F29 | AF       : xor  a
            5F2A | 32 42 61 : ld   ($6142),a
            5F2D | 18 0D    : jr   $5F3C
            5F2F | 11 00 A8 : ld   de,$A800
            5F32 | 01 06 00 : ld   bc,$0006
            5F35 | ED B0    : ldir
            5F37 | 3E 01    : ld   a,$01
            5F39 | 32 03 A8 : ld   ($A803),a
            5F3C | D9       : exx
            5F3D | C9       : ret
            5F3E - 5F6B     : sound code/address conversion table
            -->
        </script>
        <script state="run">
            <output format="----- 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="start : 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@6100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@24A2 = 121C            </action>
            <action>maincpu.mq@5ED0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5ED8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5EF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F38 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F68 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
bagmans.xml

Code: Select all

<!-- Bagman (Stern Electronics, revision A5) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@127C = 18</action> <!-- enemy -->
            <action>maincpu.mb@12A7 = 18</action> <!-- enemy -->
            <action>maincpu.mb@1635 = 18</action> <!-- elevator -->
            <action>maincpu.mb@1DE5 = 18</action> <!-- trolley -->
            <action>maincpu.mb@1E47 = 00</action> <!-- fall down -->
            <action>maincpu.mb@1E63 = 00</action> <!-- fall down in elevator -->
        </script>
        <script state="off">
            <action>maincpu.mb@127C = 20</action>
            <action>maincpu.mb@12A7 = 20</action>
            <action>maincpu.mb@1635 = 20</action>
            <action>maincpu.mb@1DE5 = 30</action>
            <action>maincpu.mb@1E47 = 01</action>
            <action>maincpu.mb@1E63 = 0C</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.md@382A = 3E5F10CD        </action> <!-- title -->
            <action>maincpu.md@3850 = CD5F10CD        </action> <!-- title -->
            <action>maincpu.md@386D = 3E5F10CD        </action> <!-- title -->
            <action>maincpu.md@389D = 3E5F10CD        </action> <!-- title -->
            <action>maincpu.md@3B39 = AF5F10CD        </action> <!-- level finish -->
            <action>maincpu.md@01F2 = 3A5F2ACC        </action>
            <action>maincpu.md@0218 = 3A5F35CD        </action>
            <action>maincpu.mq@5F10 = 670032013E602632</action>
            <action>maincpu.mq@5F18 = 0032AFF567003AC9</action>
            <action>maincpu.mq@5F20 = 0602200106A7F167</action>
            <action>maincpu.mq@5F28 = C7CDC55F19CDC900</action>
            <action>maincpu.mq@5F30 = 5F19CDC9F910C10D</action>
            <action>maincpu.mq@5F38 = C9F910C10B6DCDC5</action>
            <!--
            5F10 | 32 26 60 : ld   ($6026),a // flag set routine
            5F13 | 3E 01    : ld   a,$01
            5F15 | 32 00 67 : ld   ($6700),a
            5F18 | C9       : ret
            5F19 | 3A 00 67 : ld   a,($6700) // flag check routine
            5F1C | F5       : push af
            5F1D | AF       : xor  a
            5F1E | 32 00 67 : ld   ($6700),a
            5F21 | F1       : pop  af
            5F22 | A7       : and  a
            5F23 | 06 01    : ld   b,$01
            5F25 | 20 02    : jr   nz,$5F29
            5F27 | 06 xx    : ld   b,$xx
            5F29 | C9       : ret
            5F2A | CD 19 5F : call $5F19
            5F2D | C5       : push bc
            5F2E | CD C7 0D : call $0DC7
            5F31 | C1       : pop  bc
            5F32 | 10 F9    : djnz $5F2D
            5F34 | C9       : ret
            5F35 | CD 19 5F : call $5F19
            5F38 | C5       : push bc
            5F39 | CD 6D 0B : call $0B6D
            5F3C | C1       : pop  bc
            5F3D | 10 F9    : djnz $5F38
            5F3F | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@5F28 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@382A = 3E602632        </action>
            <action>maincpu.md@3850 = CD602632        </action>
            <action>maincpu.md@386D = 3E602632        </action>
            <action>maincpu.md@389D = 3E602632        </action>
            <action>maincpu.md@3B39 = AF602632        </action>
            <action>maincpu.md@01F2 = 3A0DC7CC        </action>
            <action>maincpu.md@0218 = 3A0B6DCD        </action>
            <action>maincpu.mq@5F10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F38 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="invisible ladder">
        <script state="on">
            <action>maincpu.mb@0DE4 = 00              </action> <!-- up -->
            <action>maincpu.mb@0DF0 = 00              </action> <!-- down -->
            <action>maincpu.md@0B37 = C05F4ECD        </action> <!-- up -->
            <action>maincpu.md@2617 = 065F55CD        </action> <!-- down -->
            <action>maincpu.mq@5F40 = 60263AC080FE7DDD</action>
            <action>maincpu.mq@5F48 = 40CDC9F1F1C860E6</action>
            <action>maincpu.mq@5F50 = 5F40CDC900FE795F</action>
            <action>maincpu.mq@5F58 = FFFFFFFFC925F411</action>
            <!--
            5F40 | DD 7D    : ld   a,ixl     // common check routine
            5F42 | FE 80    : cp   $80
            5F44 | C0       : ret  nz
            5F45 | 3A 26 60 : ld   a,($6026) // read input
            5F48 | E6 60    : and  $60
            5F4A | C8       : ret  z
            5F4B | F1       : pop  af
            5F4C | F1       : pop  af
            5F4D | C9       : ret
            5F4E | CD 30 5F : call $5F40     // up
            5F51 | 79       : ld   a,c
            5F52 | FE 00    : cp   $00
            5F54 | C9       : ret
            5F55 | CD 30 5F : call $5F40     // down
            5F58 | 11 F4 25 : ld   de,$25F4
            5F5B | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@0DE4 = C0              </action>
            <action>maincpu.mb@0DF0 = C0              </action>
            <action>maincpu.md@0B37 = C000FE79        </action>
            <action>maincpu.md@2617 = 0625F411        </action>
            <action>maincpu.mq@5F40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F58 = 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.mw@24A2 = 5F60            </action>
            <action>maincpu.mq@5F60 = 0021FBA00032013E</action>
            <action>maincpu.mq@5F68 = 47B860263A2F1861</action>
            <action>maincpu.mq@5F70 = FE35012008FEF928</action>
            <action>maincpu.mq@5F78 = 042040FE34012010</action>
            <action>maincpu.mq@5F80 = 052020FE0618F03E</action>
            <action>maincpu.mq@5F88 = 2080FE787786103E</action>
            <action>maincpu.mq@5F90 = 04FE785FA5CD7E05</action>
            <action>maincpu.mq@5F98 = 083E5FA5CDAF0920</action>
            <action>maincpu.mq@5FA0 = CE21D9C6185FA5CD</action>
            <action>maincpu.mq@5FA8 = 56235E6F8587F55F</action>
            <action>maincpu.mq@5FB0 = 4022093008FEF1EB</action>
            <action>maincpu.mq@5FB8 = 110D18614232AF61</action>
            <action>maincpu.mq@5FC0 = 3EB0ED000601A800</action>
            <action>maincpu.mq@5FC8 = 513CC9D9A8033201</action>
            <action>maincpu.mq@5FD0 = 5B3850005BA85B78</action>
            <action>maincpu.mq@5FD8 = 3F3F5B945B685200</action>
            <action>maincpu.mq@5FE0 = 3F033EFD3F393F15</action>
            <action>maincpu.mq@5FE8 = 3F333F2D3F333F45</action>
            <action>maincpu.mq@5FF0 = 3F093EF73F1B3F27</action>
            <action>maincpu.mq@5FF8 = FFFFFFFF3F4B3F1B</action>
            <!--
            5F60 | 3E 01    : ld   a,$01      // enable interrupt
            5F62 | 32 00 A0 : ld   ($A000),a
            5F65 | FB       : ei
            5F66 | 21 00 61 : ld   hl,$6100   // sound code address
            5F69 | 18 2F    : jr   $5F9A
            5F6B | 3A 26 60 : ld   a,($6026)  // read input
            5F6E | B8       : cp   b
            5F6F | 47       : ld   b,a
            5F70 | 28 F9    : jr   z,$5F6B
            5F72 | FE 08    : cp   $08
            5F74 | 20 01    : jr   nz,$5F77
            5F76 | 35       : dec  (hl)       // decrease code -01
            5F77 | FE 10    : cp   $10
            5F79 | 20 01    : jr   nz,$5F7C
            5F7B | 34       : inc  (hl)       // increase code +01
            5F7C | FE 40    : cp   $40
            5F7E | 20 04    : jr   nz,$5F84
            5F80 | 3E F0    : ld   a,$F0      // decrease code +10
            5F82 | 18 06    : jr   $5F8A
            5F84 | FE 20    : cp   $20
            5F86 | 20 05    : jr   nz,$5F8D
            5F88 | 3E 10    : ld   a,$10      // increase code -10
            5F8A | 86       : add  a,(hl)
            5F8B | 77       : ld   (hl),a
            5F8C | 78       : ld   a,b
            5F8D | FE 80    : cp   $80
            5F8F | 20 05    : jr   nz,$5F96
            5F91 | 7E       : ld   a,(hl)     // play sound
            5F92 | CD A5 5F : call $5FA5
            5F95 | 78       : ld   a,b
            5F96 | FE 04    : cp   $04
            5F98 | 20 09    : jr   nz,$5FA3
            5F9A | AF       : xor  a          // stop sound
            5F9B | CD A5 5F : call $5FA5
            5F9E | 3E 08    : ld   a,$08
            5FA0 | CD A5 5F : call $5FA5
            5FA3 | 18 C6    : jr   $5F6B
            5FA5 | D9       : exx             // sound code conversion routine
            5FA6 | 21 CE 5F : ld   hl,$5FCE
            5FA9 | F5       : push af
            5FAA | 87       : add  a,a
            5FAB | 85       : add  a,l
            5FAC | 6F       : ld   l,a
            5FAD | 5E       : ld   e,(hl)
            5FAE | 23       : inc  hl
            5FAF | 56       : ld   d,(hl)
            5FB0 | EB       : ex   de,hl
            5FB1 | F1       : pop  af
            5FB2 | FE 08    : cp   $08
            5FB4 | 30 09    : jr   nc,$5FBF
            5FB6 | 22 40 61 : ld   ($6140),hl
            5FB9 | AF       : xor  a
            5FBA | 32 42 61 : ld   ($6142),a
            5FBD | 18 0D    : jr   $5FCC
            5FBF | 11 00 A8 : ld   de,$A800
            5FC2 | 01 06 00 : ld   bc,$0006
            5FC5 | ED B0    : ldir
            5FC7 | 3E 01    : ld   a,$01
            5FC9 | 32 03 A8 : ld   ($A803),a
            5FCC | D9       : exx
            5FCD | C9       : ret
            5FCE - 5FFB     : sound code/address conversion table
            -->
        </script>
        <script state="run">
            <output format="----- 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="start : 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@6100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@24A2 = 121C            </action>
            <action>maincpu.mq@5F60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FD0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FD8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FF8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
bagmans4.xml

Code: Select all

<!-- Bagman (Stern Electronics, revision A4) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@127C = 18</action> <!-- enemy -->
            <action>maincpu.mb@12A7 = 18</action> <!-- enemy -->
            <action>maincpu.mb@1635 = 18</action> <!-- elevator -->
            <action>maincpu.mb@1DE5 = 18</action> <!-- trolley -->
            <action>maincpu.mb@1E47 = 00</action> <!-- fall down -->
            <action>maincpu.mb@1E63 = 00</action> <!-- fall down in elevator -->
        </script>
        <script state="off">
            <action>maincpu.mb@127C = 20</action>
            <action>maincpu.mb@12A7 = 20</action>
            <action>maincpu.mb@1635 = 20</action>
            <action>maincpu.mb@1DE5 = 30</action>
            <action>maincpu.mb@1E47 = 01</action>
            <action>maincpu.mb@1E63 = 0C</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.md@382A = 3E5F10CD        </action> <!-- title -->
            <action>maincpu.md@3850 = CD5F10CD        </action> <!-- title -->
            <action>maincpu.md@386D = 3E5F10CD        </action> <!-- title -->
            <action>maincpu.md@389D = 3E5F10CD        </action> <!-- title -->
            <action>maincpu.md@3B39 = AF5F10CD        </action> <!-- level finish -->
            <action>maincpu.md@01F2 = 3A5F2ACC        </action>
            <action>maincpu.md@0218 = 3A5F35CD        </action>
            <action>maincpu.mq@5F10 = 670032013E602632</action>
            <action>maincpu.mq@5F18 = 0032AFF567003AC9</action>
            <action>maincpu.mq@5F20 = 0602200106A7F167</action>
            <action>maincpu.mq@5F28 = C7CDC55F19CDC900</action>
            <action>maincpu.mq@5F30 = 5F19CDC9F910C10D</action>
            <action>maincpu.mq@5F38 = C9F910C10B6DCDC5</action>
            <!--
            5F10 | 32 26 60 : ld   ($6026),a // flag set routine
            5F13 | 3E 01    : ld   a,$01
            5F15 | 32 00 67 : ld   ($6700),a
            5F18 | C9       : ret
            5F19 | 3A 00 67 : ld   a,($6700) // flag check routine
            5F1C | F5       : push af
            5F1D | AF       : xor  a
            5F1E | 32 00 67 : ld   ($6700),a
            5F21 | F1       : pop  af
            5F22 | A7       : and  a
            5F23 | 06 01    : ld   b,$01
            5F25 | 20 02    : jr   nz,$5F29
            5F27 | 06 xx    : ld   b,$xx
            5F29 | C9       : ret
            5F2A | CD 19 5F : call $5F19
            5F2D | C5       : push bc
            5F2E | CD C7 0D : call $0DC7
            5F31 | C1       : pop  bc
            5F32 | 10 F9    : djnz $5F2D
            5F34 | C9       : ret
            5F35 | CD 19 5F : call $5F19
            5F38 | C5       : push bc
            5F39 | CD 6D 0B : call $0B6D
            5F3C | C1       : pop  bc
            5F3D | 10 F9    : djnz $5F38
            5F3F | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@5F28 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@382A = 3E602632        </action>
            <action>maincpu.md@3850 = CD602632        </action>
            <action>maincpu.md@386D = 3E602632        </action>
            <action>maincpu.md@389D = 3E602632        </action>
            <action>maincpu.md@3B39 = AF602632        </action>
            <action>maincpu.md@01F2 = 3A0DC7CC        </action>
            <action>maincpu.md@0218 = 3A0B6DCD        </action>
            <action>maincpu.mq@5F10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F38 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="invisible ladder">
        <script state="on">
            <action>maincpu.mb@0DE4 = 00              </action> <!-- up -->
            <action>maincpu.mb@0DF0 = 00              </action> <!-- down -->
            <action>maincpu.md@0B37 = C05F4ECD        </action> <!-- up -->
            <action>maincpu.md@2617 = 065F55CD        </action> <!-- down -->
            <action>maincpu.mq@5F40 = 60263AC080FE7DDD</action>
            <action>maincpu.mq@5F48 = 40CDC9F1F1C860E6</action>
            <action>maincpu.mq@5F50 = 5F40CDC900FE795F</action>
            <action>maincpu.mq@5F58 = FFFFFFFFC925F411</action>
            <!--
            5F40 | DD 7D    : ld   a,ixl     // common check routine
            5F42 | FE 80    : cp   $80
            5F44 | C0       : ret  nz
            5F45 | 3A 26 60 : ld   a,($6026) // read input
            5F48 | E6 60    : and  $60
            5F4A | C8       : ret  z
            5F4B | F1       : pop  af
            5F4C | F1       : pop  af
            5F4D | C9       : ret
            5F4E | CD 30 5F : call $5F40     // up
            5F51 | 79       : ld   a,c
            5F52 | FE 00    : cp   $00
            5F54 | C9       : ret
            5F55 | CD 30 5F : call $5F40     // down
            5F58 | 11 F4 25 : ld   de,$25F4
            5F5B | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@0DE4 = C0              </action>
            <action>maincpu.mb@0DF0 = C0              </action>
            <action>maincpu.md@0B37 = C000FE79        </action>
            <action>maincpu.md@2617 = 0625F411        </action>
            <action>maincpu.mq@5F40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F58 = 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.mw@24A2 = 5F60            </action>
            <action>maincpu.mq@5F60 = 0021FBA00032013E</action>
            <action>maincpu.mq@5F68 = 47B860263A2F1861</action>
            <action>maincpu.mq@5F70 = FE35012008FEF928</action>
            <action>maincpu.mq@5F78 = 042040FE34012010</action>
            <action>maincpu.mq@5F80 = 052020FE0618F03E</action>
            <action>maincpu.mq@5F88 = 2080FE787786103E</action>
            <action>maincpu.mq@5F90 = 04FE785FA5CD7E05</action>
            <action>maincpu.mq@5F98 = 083E5FA5CDAF0920</action>
            <action>maincpu.mq@5FA0 = CE21D9C6185FA5CD</action>
            <action>maincpu.mq@5FA8 = 56235E6F8587F55F</action>
            <action>maincpu.mq@5FB0 = 4022093008FEF1EB</action>
            <action>maincpu.mq@5FB8 = 110D18614232AF61</action>
            <action>maincpu.mq@5FC0 = 3EB0ED000601A800</action>
            <action>maincpu.mq@5FC8 = 513CC9D9A8033201</action>
            <action>maincpu.mq@5FD0 = 5B3850005BA85B78</action>
            <action>maincpu.mq@5FD8 = 3F3F5B945B685200</action>
            <action>maincpu.mq@5FE0 = 3F033EFD3F393F15</action>
            <action>maincpu.mq@5FE8 = 3F333F2D3F333F45</action>
            <action>maincpu.mq@5FF0 = 3F093EF73F1B3F27</action>
            <action>maincpu.mq@5FF8 = FFFFFFFF3F4B3F1B</action>
            <!--
            5F60 | 3E 01    : ld   a,$01      // enable interrupt
            5F62 | 32 00 A0 : ld   ($A000),a
            5F65 | FB       : ei
            5F66 | 21 00 61 : ld   hl,$6100   // sound code address
            5F69 | 18 2F    : jr   $5F9A
            5F6B | 3A 26 60 : ld   a,($6026)  // read input
            5F6E | B8       : cp   b
            5F6F | 47       : ld   b,a
            5F70 | 28 F9    : jr   z,$5F6B
            5F72 | FE 08    : cp   $08
            5F74 | 20 01    : jr   nz,$5F77
            5F76 | 35       : dec  (hl)       // decrease code -01
            5F77 | FE 10    : cp   $10
            5F79 | 20 01    : jr   nz,$5F7C
            5F7B | 34       : inc  (hl)       // increase code +01
            5F7C | FE 40    : cp   $40
            5F7E | 20 04    : jr   nz,$5F84
            5F80 | 3E F0    : ld   a,$F0      // decrease code +10
            5F82 | 18 06    : jr   $5F8A
            5F84 | FE 20    : cp   $20
            5F86 | 20 05    : jr   nz,$5F8D
            5F88 | 3E 10    : ld   a,$10      // increase code -10
            5F8A | 86       : add  a,(hl)
            5F8B | 77       : ld   (hl),a
            5F8C | 78       : ld   a,b
            5F8D | FE 80    : cp   $80
            5F8F | 20 05    : jr   nz,$5F96
            5F91 | 7E       : ld   a,(hl)     // play sound
            5F92 | CD A5 5F : call $5FA5
            5F95 | 78       : ld   a,b
            5F96 | FE 04    : cp   $04
            5F98 | 20 09    : jr   nz,$5FA3
            5F9A | AF       : xor  a          // stop sound
            5F9B | CD A5 5F : call $5FA5
            5F9E | 3E 08    : ld   a,$08
            5FA0 | CD A5 5F : call $5FA5
            5FA3 | 18 C6    : jr   $5F6B
            5FA5 | D9       : exx             // sound code conversion routine
            5FA6 | 21 CE 5F : ld   hl,$5FCE
            5FA9 | F5       : push af
            5FAA | 87       : add  a,a
            5FAB | 85       : add  a,l
            5FAC | 6F       : ld   l,a
            5FAD | 5E       : ld   e,(hl)
            5FAE | 23       : inc  hl
            5FAF | 56       : ld   d,(hl)
            5FB0 | EB       : ex   de,hl
            5FB1 | F1       : pop  af
            5FB2 | FE 08    : cp   $08
            5FB4 | 30 09    : jr   nc,$5FBF
            5FB6 | 22 40 61 : ld   ($6140),hl
            5FB9 | AF       : xor  a
            5FBA | 32 42 61 : ld   ($6142),a
            5FBD | 18 0D    : jr   $5FCC
            5FBF | 11 00 A8 : ld   de,$A800
            5FC2 | 01 06 00 : ld   bc,$0006
            5FC5 | ED B0    : ldir
            5FC7 | 3E 01    : ld   a,$01
            5FC9 | 32 03 A8 : ld   ($A803),a
            5FCC | D9       : exx
            5FCD | C9       : ret
            5FCE - 5FFB     : sound code/address conversion table
            -->
        </script>
        <script state="run">
            <output format="----- 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="start : 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@6100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@24A2 = 121C            </action>
            <action>maincpu.mq@5F60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FD0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FD8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FF8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
bagmans3.xml

Code: Select all

<!-- Bagman (Stern Electronics, revision A3) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@1279 = 18</action> <!-- enemy -->
            <action>maincpu.mb@12A4 = 18</action> <!-- enemy -->
            <action>maincpu.mb@162B = 18</action> <!-- elevator -->
            <action>maincpu.mb@1DCF = 18</action> <!-- trolley -->
            <action>maincpu.mb@1E31 = 00</action> <!-- fall down -->
            <action>maincpu.mb@1E4D = 00</action> <!-- fall down in elevator -->
        </script>
        <script state="off">
            <action>maincpu.mb@1279 = 20</action>
            <action>maincpu.mb@12A4 = 20</action>
            <action>maincpu.mb@162B = 20</action>
            <action>maincpu.mb@1DCF = 30</action>
            <action>maincpu.mb@1E31 = 01</action>
            <action>maincpu.mb@1E4D = 0C</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.md@382A = 3E4DA0CD        </action> <!-- title -->
            <action>maincpu.md@3850 = CD4DA0CD        </action> <!-- title -->
            <action>maincpu.md@386D = 3E4DA0CD        </action> <!-- title -->
            <action>maincpu.md@389D = 3E4DA0CD        </action> <!-- title -->
            <action>maincpu.md@3B39 = AF4DA0CD        </action> <!-- level finish -->
            <action>maincpu.md@01F2 = 3A4DBACC        </action>
            <action>maincpu.md@0218 = 3A4DC5CD        </action>
            <action>maincpu.mq@4DA0 = 670032013E602632</action>
            <action>maincpu.mq@4DA8 = 0032AFF567003AC9</action>
            <action>maincpu.mq@4DB0 = 0602200106A7F167</action>
            <action>maincpu.mq@4DB8 = 17CDC54DA9CDC900</action>
            <action>maincpu.mq@4DC0 = 4DA9CDC9F910C10E</action>
            <action>maincpu.mq@4DC8 = C9F910C10BBDCDC5</action>
            <!--
            4DA0 | 32 26 60 : ld   ($6026),a // flag set routine
            4DA3 | 3E 01    : ld   a,$01
            4DA5 | 32 00 67 : ld   ($6700),a
            4DA8 | C9       : ret
            4DA9 | 3A 00 67 : ld   a,($6700) // flag check routine
            4DAC | F5       : push af
            4DAD | AF       : xor  a
            4DAE | 32 00 67 : ld   ($6700),a
            4DB1 | F1       : pop  af
            4DB2 | A7       : and  a
            4DB3 | 06 01    : ld   b,$01
            4DB5 | 20 02    : jr   nz,$4DB9
            4DB7 | 06 xx    : ld   b,$xx
            4DB9 | C9       : ret
            4DBA | CD A9 4D : call $4DA9
            4DBD | C5       : push bc
            4DBE | CD 17 0E : call $0E17
            4DC1 | C1       : pop  bc
            4DC2 | 10 F9    : djnz $4DBD
            4DC4 | C9       : ret
            4DC5 | CD A9 4D : call $4DA9
            4DC8 | C5       : push bc
            4DC9 | CD BD 0B : call $0BBD
            4DCC | C1       : pop  bc
            4DCD | 10 F9    : djnz $4DC8
            4DCF | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@4DB8 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@382A = 3E602632        </action>
            <action>maincpu.md@3850 = CD602632        </action>
            <action>maincpu.md@386D = 3E602632        </action>
            <action>maincpu.md@389D = 3E602632        </action>
            <action>maincpu.md@3B39 = AF602632        </action>
            <action>maincpu.md@01F2 = 3A0E17CC        </action>
            <action>maincpu.md@0218 = 3A0BBDCD        </action>
            <action>maincpu.mq@4DA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4DA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4DB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4DB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4DC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4DC8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="invisible ladder">
        <script state="on">
            <action>maincpu.mb@0E34 = 00              </action> <!-- up -->
            <action>maincpu.mb@0E40 = 00              </action> <!-- down -->
            <action>maincpu.md@0B87 = C04DDECD        </action> <!-- up -->
            <action>maincpu.md@268E = 064DE5CD        </action> <!-- down -->
            <action>maincpu.mq@4DD0 = 60263AC080FE7DDD</action>
            <action>maincpu.mq@4DD8 = D0CDC9F1F1C860E6</action>
            <action>maincpu.mq@4DE0 = 4DD0CDC900FE794D</action>
            <action>maincpu.mq@4DE8 = FFFFFFFFC9266B11</action>
            <!--
            4DD0 | DD 7D    : ld   a,ixl     // common check routine
            4DD2 | FE 80    : cp   $80
            4DD4 | C0       : ret  nz
            4DD5 | 3A 26 60 : ld   a,($6026) // read input
            4DD8 | E6 60    : and  $60
            4DDA | C8       : ret  z
            4DDB | F1       : pop  af
            4DDC | F1       : pop  af
            4DDD | C9       : ret
            4DDE | CD D0 4D : call $4DD0     // up
            4DE1 | 79       : ld   a,c
            4DE2 | FE 00    : cp   $00
            4DE4 | C9       : ret
            4DE5 | CD D0 4D : call $4DD0     // down
            4DE8 | 11 F4 25 : ld   de,$266B
            4DEB | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@0E34 = C0              </action>
            <action>maincpu.mb@0E40 = C0              </action>
            <action>maincpu.md@0B87 = C000FE79        </action>
            <action>maincpu.md@268E = 06266B11        </action>
            <action>maincpu.mq@4DD0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4DD8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4DE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4DE8 = 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.mw@2522 = 4DF0            </action>
            <action>maincpu.mq@4DF0 = 0021FBA00032013E</action>
            <action>maincpu.mq@4DF8 = 47B860263A2F1861</action>
            <action>maincpu.mq@4E00 = FE35012008FEF928</action>
            <action>maincpu.mq@4E08 = 042040FE34012010</action>
            <action>maincpu.mq@4E10 = 052020FE0618F03E</action>
            <action>maincpu.mq@4E18 = 2080FE787786103E</action>
            <action>maincpu.mq@4E20 = 04FE784E35CD7E05</action>
            <action>maincpu.mq@4E28 = 083E4E35CDAF0920</action>
            <action>maincpu.mq@4E30 = 5E21D9C6184E35CD</action>
            <action>maincpu.mq@4E38 = 56235E6F8587F54E</action>
            <action>maincpu.mq@4E40 = 4022093008FEF1EB</action>
            <action>maincpu.mq@4E48 = 110D18614232AF61</action>
            <action>maincpu.mq@4E50 = 3EB0ED000601A800</action>
            <action>maincpu.mq@4E58 = 513CC9D9A8033201</action>
            <action>maincpu.mq@4E60 = 5B3850005BA85B78</action>
            <action>maincpu.mq@4E68 = 3F3F5B945B685200</action>
            <action>maincpu.mq@4E70 = 3F033EFD3F393F15</action>
            <action>maincpu.mq@4E78 = 3F333F2D3F333F45</action>
            <action>maincpu.mq@4E80 = 3F093EF73F1B3F27</action>
            <action>maincpu.mq@4E88 = FFFFFFFF3F4B3F1B</action>
            <!--
            4DF0 | 3E 01    : ld   a,$01      // enable interrupt
            4DF2 | 32 00 A0 : ld   ($A000),a
            4DF5 | FB       : ei
            4DF6 | 21 00 61 : ld   hl,$6100   // sound code address
            4DF9 | 18 2F    : jr   $4E2A
            4DFB | 3A 26 60 : ld   a,($6026)  // read input
            4DFE | B8       : cp   b
            4DFF | 47       : ld   b,a
            4E00 | 28 F9    : jr   z,$4DFB
            4E02 | FE 08    : cp   $08
            4E04 | 20 01    : jr   nz,$4E07
            4E06 | 35       : dec  (hl)       // decrease code -01
            4E07 | FE 10    : cp   $10
            4E09 | 20 01    : jr   nz,$4E0C
            4E0B | 34       : inc  (hl)       // increase code +01
            4E0C | FE 40    : cp   $40
            4E0E | 20 04    : jr   nz,$4E14
            4E10 | 3E F0    : ld   a,$F0      // decrease code +10
            4E12 | 18 06    : jr   $4E1A
            4E14 | FE 20    : cp   $20
            4E16 | 20 05    : jr   nz,$4E1D
            4E18 | 3E 10    : ld   a,$10      // increase code -10
            4E1A | 86       : add  a,(hl)
            4E1B | 77       : ld   (hl),a
            4E1C | 78       : ld   a,b
            4E1D | FE 80    : cp   $80
            4E1F | 20 05    : jr   nz,$4E26
            4E21 | 7E       : ld   a,(hl)     // play sound
            4E22 | CD 35 4E : call $4E35
            4E25 | 78       : ld   a,b
            4E26 | FE 04    : cp   $04
            4E28 | 20 09    : jr   nz,$4E33
            4E2A | AF       : xor  a          // stop sound
            4E2B | CD 35 4E : call $4E35
            4E2E | 3E 08    : ld   a,$08
            4E30 | CD 35 4E : call $4E35
            4E33 | 18 C6    : jr   $4DFB
            4E35 | D9       : exx             // sound code conversion routine
            4E36 | 21 5E 4E : ld   hl,$4E5E
            4E39 | F5       : push af
            4E3A | 87       : add  a,a
            4E3B | 85       : add  a,l
            4E3C | 6F       : ld   l,a
            4E3D | 5E       : ld   e,(hl)
            4E3E | 23       : inc  hl
            4E3F | 56       : ld   d,(hl)
            4E40 | EB       : ex   de,hl
            4E41 | F1       : pop  af
            4E42 | FE 08    : cp   $08
            4E44 | 30 09    : jr   nc,$4E4F
            4E46 | 22 40 61 : ld   ($6140),hl
            4E49 | AF       : xor  a
            4E4A | 32 42 61 : ld   ($6142),a
            4E4D | 18 0D    : jr   $4E5C
            4E4F | 11 00 A8 : ld   de,$A800
            4E52 | 01 06 00 : ld   bc,$0006
            4E55 | ED B0    : ldir
            4E57 | 3E 01    : ld   a,$01
            4E59 | 32 03 A8 : ld   ($A803),a
            4E5C | D9       : exx
            4E5D | C9       : ret
            4E5E - 4E8B     : sound code/address conversion table
            -->
        </script>
        <script state="run">
            <output format="----- 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="start : 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@6100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@2522 = 121C            </action>
            <action>maincpu.mq@4DF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4DF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E38 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4E88 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
jman

my wip cheat database back-up (2024/12/01 ver.)
https://u3.getuploader.com/...../download/47
downloadpass : jman2020
jman
Posts: 1266
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 9 times

[bagman]+ Bagman

Post by jman »

bagmanj.xml

Code: Select all

<!-- Bagman (Taito) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@127C = 18</action> <!-- enemy -->
            <action>maincpu.mb@12A7 = 18</action> <!-- enemy -->
            <action>maincpu.mb@1635 = 18</action> <!-- elevator -->
            <action>maincpu.mb@1DE5 = 18</action> <!-- trolley -->
            <action>maincpu.mb@1E47 = 00</action> <!-- fall down -->
            <action>maincpu.mb@1E63 = 00</action> <!-- fall down in elevator -->
        </script>
        <script state="off">
            <action>maincpu.mb@127C = 20</action>
            <action>maincpu.mb@12A7 = 20</action>
            <action>maincpu.mb@1635 = 20</action>
            <action>maincpu.mb@1DE5 = 30</action>
            <action>maincpu.mb@1E47 = 01</action>
            <action>maincpu.mb@1E63 = 0C</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.md@382A = 3E5F10CD        </action> <!-- title -->
            <action>maincpu.md@3850 = CD5F10CD        </action> <!-- title -->
            <action>maincpu.md@386D = 3E5F10CD        </action> <!-- title -->
            <action>maincpu.md@389D = 3E5F10CD        </action> <!-- title -->
            <action>maincpu.md@3B39 = AF5F10CD        </action> <!-- level finish -->
            <action>maincpu.md@01F2 = 3A5F2ACC        </action>
            <action>maincpu.md@0218 = 3A5F35CD        </action>
            <action>maincpu.mq@5F10 = 670032013E602632</action>
            <action>maincpu.mq@5F18 = 0032AFF567003AC9</action>
            <action>maincpu.mq@5F20 = 0602200106A7F167</action>
            <action>maincpu.mq@5F28 = C7CDC55F19CDC900</action>
            <action>maincpu.mq@5F30 = 5F19CDC9F910C10D</action>
            <action>maincpu.mq@5F38 = C9F910C10B6DCDC5</action>
            <!--
            5F10 | 32 26 60 : ld   ($6026),a // flag set routine
            5F13 | 3E 01    : ld   a,$01
            5F15 | 32 00 67 : ld   ($6700),a
            5F18 | C9       : ret
            5F19 | 3A 00 67 : ld   a,($6700) // flag check routine
            5F1C | F5       : push af
            5F1D | AF       : xor  a
            5F1E | 32 00 67 : ld   ($6700),a
            5F21 | F1       : pop  af
            5F22 | A7       : and  a
            5F23 | 06 01    : ld   b,$01
            5F25 | 20 02    : jr   nz,$5F29
            5F27 | 06 xx    : ld   b,$xx
            5F29 | C9       : ret
            5F2A | CD 19 5F : call $5F19
            5F2D | C5       : push bc
            5F2E | CD C7 0D : call $0DC7
            5F31 | C1       : pop  bc
            5F32 | 10 F9    : djnz $5F2D
            5F34 | C9       : ret
            5F35 | CD 19 5F : call $5F19
            5F38 | C5       : push bc
            5F39 | CD 6D 0B : call $0B6D
            5F3C | C1       : pop  bc
            5F3D | 10 F9    : djnz $5F38
            5F3F | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@5F28 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@382A = 3E602632        </action>
            <action>maincpu.md@3850 = CD602632        </action>
            <action>maincpu.md@386D = 3E602632        </action>
            <action>maincpu.md@389D = 3E602632        </action>
            <action>maincpu.md@3B39 = AF602632        </action>
            <action>maincpu.md@01F2 = 3A0DC7CC        </action>
            <action>maincpu.md@0218 = 3A0B6DCD        </action>
            <action>maincpu.mq@5F10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F38 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="invisible ladder">
        <script state="on">
            <action>maincpu.mb@0DE4 = 00              </action> <!-- up -->
            <action>maincpu.mb@0DF0 = 00              </action> <!-- down -->
            <action>maincpu.md@0B37 = C05F4ECD        </action> <!-- up -->
            <action>maincpu.md@2617 = 065F55CD        </action> <!-- down -->
            <action>maincpu.mq@5F40 = 60263AC080FE7DDD</action>
            <action>maincpu.mq@5F48 = 40CDC9F1F1C860E6</action>
            <action>maincpu.mq@5F50 = 5F40CDC900FE795F</action>
            <action>maincpu.mq@5F58 = FFFFFFFFC925F411</action>
            <!--
            5F40 | DD 7D    : ld   a,ixl     // common check routine
            5F42 | FE 80    : cp   $80
            5F44 | C0       : ret  nz
            5F45 | 3A 26 60 : ld   a,($6026) // read input
            5F48 | E6 60    : and  $60
            5F4A | C8       : ret  z
            5F4B | F1       : pop  af
            5F4C | F1       : pop  af
            5F4D | C9       : ret
            5F4E | CD 30 5F : call $5F40     // up
            5F51 | 79       : ld   a,c
            5F52 | FE 00    : cp   $00
            5F54 | C9       : ret
            5F55 | CD 30 5F : call $5F40     // down
            5F58 | 11 F4 25 : ld   de,$25F4
            5F5B | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mb@0DE4 = C0              </action>
            <action>maincpu.mb@0DF0 = C0              </action>
            <action>maincpu.md@0B37 = C000FE79        </action>
            <action>maincpu.md@2617 = 0625F411        </action>
            <action>maincpu.mq@5F40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F58 = 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.mw@24A2 = 5F60            </action>
            <action>maincpu.mq@5F60 = 0021FBA00032013E</action>
            <action>maincpu.mq@5F68 = 47B860263A2F1861</action>
            <action>maincpu.mq@5F70 = FE35012008FEF928</action>
            <action>maincpu.mq@5F78 = 042040FE34012010</action>
            <action>maincpu.mq@5F80 = 052020FE0618F03E</action>
            <action>maincpu.mq@5F88 = 2080FE787786103E</action>
            <action>maincpu.mq@5F90 = 04FE785FA5CD7E05</action>
            <action>maincpu.mq@5F98 = 083E5FA5CDAF0920</action>
            <action>maincpu.mq@5FA0 = CE21D9C6185FA5CD</action>
            <action>maincpu.mq@5FA8 = 56235E6F8587F55F</action>
            <action>maincpu.mq@5FB0 = 4022093008FEF1EB</action>
            <action>maincpu.mq@5FB8 = 110D18614232AF61</action>
            <action>maincpu.mq@5FC0 = 3EB0ED000601A800</action>
            <action>maincpu.mq@5FC8 = 513CC9D9A8033201</action>
            <action>maincpu.mq@5FD0 = 5B3850005BA85B78</action>
            <action>maincpu.mq@5FD8 = 3F3F5B945B685200</action>
            <action>maincpu.mq@5FE0 = 3F033EFD3F393F15</action>
            <action>maincpu.mq@5FE8 = 3F333F2D3F333F45</action>
            <action>maincpu.mq@5FF0 = 3F093EF73F1B3F27</action>
            <action>maincpu.mq@5FF8 = FFFFFFFF3F4B3F1B</action>
            <!--
            5F60 | 3E 01    : ld   a,$01      // enable interrupt
            5F62 | 32 00 A0 : ld   ($A000),a
            5F65 | FB       : ei
            5F66 | 21 00 61 : ld   hl,$6100   // sound code address
            5F69 | 18 2F    : jr   $5F9A
            5F6B | 3A 26 60 : ld   a,($6026)  // read input
            5F6E | B8       : cp   b
            5F6F | 47       : ld   b,a
            5F70 | 28 F9    : jr   z,$5F6B
            5F72 | FE 08    : cp   $08
            5F74 | 20 01    : jr   nz,$5F77
            5F76 | 35       : dec  (hl)       // decrease code -01
            5F77 | FE 10    : cp   $10
            5F79 | 20 01    : jr   nz,$5F7C
            5F7B | 34       : inc  (hl)       // increase code +01
            5F7C | FE 40    : cp   $40
            5F7E | 20 04    : jr   nz,$5F84
            5F80 | 3E F0    : ld   a,$F0      // decrease code +10
            5F82 | 18 06    : jr   $5F8A
            5F84 | FE 20    : cp   $20
            5F86 | 20 05    : jr   nz,$5F8D
            5F88 | 3E 10    : ld   a,$10      // increase code -10
            5F8A | 86       : add  a,(hl)
            5F8B | 77       : ld   (hl),a
            5F8C | 78       : ld   a,b
            5F8D | FE 80    : cp   $80
            5F8F | 20 05    : jr   nz,$5F96
            5F91 | 7E       : ld   a,(hl)     // play sound
            5F92 | CD A5 5F : call $5FA5
            5F95 | 78       : ld   a,b
            5F96 | FE 04    : cp   $04
            5F98 | 20 09    : jr   nz,$5FA3
            5F9A | AF       : xor  a          // stop sound
            5F9B | CD A5 5F : call $5FA5
            5F9E | 3E 08    : ld   a,$08
            5FA0 | CD A5 5F : call $5FA5
            5FA3 | 18 C6    : jr   $5F6B
            5FA5 | D9       : exx             // sound code conversion routine
            5FA6 | 21 CE 5F : ld   hl,$5FCE
            5FA9 | F5       : push af
            5FAA | 87       : add  a,a
            5FAB | 85       : add  a,l
            5FAC | 6F       : ld   l,a
            5FAD | 5E       : ld   e,(hl)
            5FAE | 23       : inc  hl
            5FAF | 56       : ld   d,(hl)
            5FB0 | EB       : ex   de,hl
            5FB1 | F1       : pop  af
            5FB2 | FE 08    : cp   $08
            5FB4 | 30 09    : jr   nc,$5FBF
            5FB6 | 22 40 61 : ld   ($6140),hl
            5FB9 | AF       : xor  a
            5FBA | 32 42 61 : ld   ($6142),a
            5FBD | 18 0D    : jr   $5FCC
            5FBF | 11 00 A8 : ld   de,$A800
            5FC2 | 01 06 00 : ld   bc,$0006
            5FC5 | ED B0    : ldir
            5FC7 | 3E 01    : ld   a,$01
            5FC9 | 32 03 A8 : ld   ($A803),a
            5FCC | D9       : exx
            5FCD | C9       : ret
            5FCE - 5FFB     : sound code/address conversion table
            -->
        </script>
        <script state="run">
            <output format="----- 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="start : 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@6100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@24A2 = 121C            </action>
            <action>maincpu.mq@5F60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5F98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FD0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FD8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5FF8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
  • "player speed" : Improved. No speed change in title screen and at level finish.
  • "invisible ladder" : Rewritten routine.
  • "sound test mode" : Major updated. Now you can listen to some samples (code 0x09 - 0x15). And you don't need to wait for several seconds to play sound. Also added up/down key to select code ±10 and changed sound stop button from up to start. But gfx bug is not fixed.
jman

my wip cheat database back-up (2024/12/01 ver.)
https://u3.getuploader.com/...../download/47
downloadpass : jman2020
Post Reply