[blockgal]+ Block Gal

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

[blockgal]+ Block Gal

Post by jman »

blockgal.xml

Code: Select all

<!-- Block Gal (MC-8123B, 317-0029) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.ob@1413 = CD              </action>
            <action>maincpu.mw@1414 = 8000            </action>
            <action>maincpu.mq@8000 = FE03281AFE087EDD</action>
            <action>maincpu.mq@8008 = C9E5142F21E1C01B</action>
            <!--
            8000 | DD 7E 08 : ld   a,(ix+$08)
            8003 | FE 1A    : cp   $1A
            8005 | 28 03    : jr   z,$800A
            8007 | FE 1B    : cp   $1B
            8009 | C0       : ret  nz
            800A | E1       : pop  hl
            800B | 21 2F 14 : ld   hl,$142F
            800E | E5       : push hl
            800F | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.ob@1413 = DD              </action>
            <action>maincpu.mw@1414 = 08B4            </action>
            <action>maincpu.mq@8000 = 0000000000000000</action>
            <action>maincpu.mq@8008 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="keep a ball">
        <script state="on">
            <action>maincpu.ob@0D9A = C3              </action>
            <action>maincpu.mw@0D9B = 8010            </action>
            <action>maincpu.mq@8010 = E5097EDDCE0236DD</action>
            <action>maincpu.mq@8018 = 77DD7E6F85802521</action>
            <action>maincpu.mq@8020 = 0201000DB0C3E109</action>
            <action>maincpu.mq@8028 = 0304050606050403</action>
            <action>maincpu.mq@8030 = 000000000E0E0102</action>
            <!--
            8010 | DD 36 02 CE : ld   (ix+$02),$CE // set ball position
            8014 | DD 7E 09    : ld   a,(ix+$09)
            8017 | E5          : push hl
            8018 | 21 25 80    : ld   hl,$8025
            801B | 85          : add  a,l
            801C | 6F          : ld   l,a
            801D | 7E          : ld   a,(hl)
            801E | DD 77 09    : ld   (ix+$09),a   // set ball direction
            8021 | E1          : pop  hl
            8022 | C3 B0 0D    : jp   $0DB0
            8025 - 8033        : ball direction conversion table
            -->
        </script>
        <script state="off">
            <action>maincpu.ob@0D9A = 3E              </action>
            <action>maincpu.mw@0D9B = 3497            </action>
            <action>maincpu.mq@8010 = 0000000000000000</action>
            <action>maincpu.mq@8018 = 0000000000000000</action>
            <action>maincpu.mq@8020 = 0000000000000000</action>
            <action>maincpu.mq@8028 = 0000000000000000</action>
            <action>maincpu.mq@8030 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="control a ball">
        <script state="on">
            <action>maincpu.ob@16C3 = CD              </action>
            <action>maincpu.mw@16C4 = 8038            </action>
            <action>maincpu.mq@8038 = 90C01F3A47C01E3A</action>
            <action>maincpu.mq@8040 = 210338806D212728</action>
            <action>maincpu.mq@8048 = CE0021DDE5DD807D</action>
            <action>maincpu.mq@8050 = 28A7097EDDE50206</action>
            <action>maincpu.mq@8058 = 110977DD7E6F8506</action>
            <action>maincpu.mq@8060 = DDEB10E119DD000C</action>
            <action>maincpu.mq@8068 = 020100C9C20F3AE1</action>
            <action>maincpu.mq@8070 = 0A0A0B0C01020303</action>
            <action>maincpu.mq@8078 = 05060000020B0C0B</action>
            <action>maincpu.mq@8080 = 0909080706050404</action>
            <action>maincpu.mq@8088 = 0000000005080708</action>
            <!--
            8038 | 3A 1E C0    : ld   a,($C01E)  // check input
            803B | 47          : ld   b,a
            803C | 3A 1F C0    : ld   a,($C01F)
            803F | 90          : sub  b
            8040 | 28 27       : jr   z,$8069
            8042 | 21 6D 80    : ld   hl,$806D   // right
            8045 | 38 03       : jr   c,$804A
            8047 | 21 7D 80    : ld   hl,$807D   // left
            804A | DD E5       : push ix
            804C | DD 21 00 CE : ld   ix,$CE00   // iterate over balls
            8050 | 06 02       : ld   b,$02
            8052 | E5          : push hl
            8053 | DD 7E 09    : ld   a,(ix+$09) // read current ball direction
            8056 | A7          : and  a
            8057 | 28 06       : jr   z,$805F
            8059 | 85          : add  a,l        // calculate conversion table address
            805A | 6F          : ld   l,a
            805B | 7E          : ld   a,(hl)
            805C | DD 77 09    : ld   (ix+$09),a // set new ball direction
            805F | 11 0C 00    : ld   de,$000C
            8062 | DD 19       : add  ix,de
            8064 | E1          : pop  hl
            8065 | 10 EB       : djnz $8052
            8067 | DD E1       : pop  ix
            8069 | 3A 0F C2    : ld   a,($C20F)
            806C | C9          : ret
            806D - 808C        : ball direction conversion table
            -->
        </script>
        <script state="off">
            <action>maincpu.ob@16C3 = 3A              </action>
            <action>maincpu.mw@16C4 = C20F            </action>
            <action>maincpu.mq@8038 = 0000000000000000</action>
            <action>maincpu.mq@8040 = 0000000000000000</action>
            <action>maincpu.mq@8048 = 0000000000000000</action>
            <action>maincpu.mq@8050 = 0000000000000000</action>
            <action>maincpu.mq@8058 = 0000000000000000</action>
            <action>maincpu.mq@8060 = 0000000000000000</action>
            <action>maincpu.mq@8068 = 0000000000000000</action>
            <action>maincpu.mq@8070 = 0000000000000000</action>
            <action>maincpu.mq@8078 = 0000000000000000</action>
            <action>maincpu.mq@8080 = 0000000000000000</action>
            <action>maincpu.mq@8088 = 0000000000000000</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@019A = 8090            </action>
            <action>maincpu.mq@8090 = 0136C20E215F00DB</action>
            <action>maincpu.mq@8098 = 0121F3FC20A77EFB</action>
            <action>maincpu.mq@80A0 = 925F00DB53000EC0</action>
            <action>maincpu.mq@80A8 = 0A38141800360420</action>
            <action>maincpu.mq@80B0 = 010E01360A204ECB</action>
            <action>maincpu.mq@80B8 = 0236F82046CB0818</action>
            <action>maincpu.mq@80C0 = B150E62F08DB020E</action>
            <action>maincpu.mq@80C8 = 2001FE2BC72847B8</action>
            <action>maincpu.mq@80D0 = FE34012002FE3501</action>
            <action>maincpu.mq@80D8 = 051880F67E052040</action>
            <action>maincpu.mq@80E0 = 1818D3AF032010FE</action>
            <action>maincpu.mq@80E8 = 00000000000000AA</action>
            <!--
            8090 | DB 00    : in   a,($00)  // initialize temporary input
            8092 | 5F       : ld   e,a
            8093 | 21 0E C2 : ld   hl,$C20E // wait interrupt
            8096 | 36 01    : ld   (hl),$01
            8098 | FB       : ei
            8099 | 7E       : ld   a,(hl)
            809A | A7       : and  a
            809B | 20 FC    : jr   nz,$8099
            809D | F3       : di
            809E | 21 01 C0 : ld   hl,$C001 // dial input flag address
            80A1 | 0E 00    : ld   c,$00
            80A3 | 53       : ld   d,e
            80A4 | DB 00    : in   a,($00)  // read dial
            80A6 | 5F       : ld   e,a
            80A7 | 92       : sub  d
            80A8 | 20 04    : jr   nz,$80AE
            80AA | 36 00    : ld   (hl),$00
            80AC | 18 14    : jr   $80C2
            80AE | 38 0A    : jr   c,$80BA
            80B0 | CB 4E    : bit  1,(hl)   // left
            80B2 | 20 0A    : jr   nz,$80BE
            80B4 | 36 01    : ld   (hl),$01
            80B6 | 0E 01    : ld   c,$01
            80B8 | 18 08    : jr   $80C2
            80BA | CB 46    : bit  0,(hl)   // right
            80BC | 20 F8    : jr   nz,$80B6
            80BE | 36 02    : ld   (hl),$02
            80C0 | 0E 02    : ld   c,$02
            80C2 | DB 08    : in   a,($08)  // read other inputs
            80C4 | 2F       : cpl
            80C5 | E6 50    : and  $50
            80C7 | B1       : or   c
            80C8 | B8       : cp   b
            80C9 | 47       : ld   b,a
            80CA | 28 C7    : jr   z,$8093
            80CC | 2B       : dec  hl       // sound code address ($C000)
            80CD | FE 01    : cp   $01
            80CF | 20 01    : jr   nz,$80D2
            80D1 | 35       : dec  (hl)     // decrease code -01
            80D2 | FE 02    : cp   $02
            80D4 | 20 01    : jr   nz,$80D7
            80D6 | 34       : inc  (hl)     // increase code +01
            80D7 | FE 40    : cp   $40
            80D9 | 20 05    : jr   nz,$80E0
            80DB | 7E       : ld   a,(hl)   // play sound
            80DC | F6 80    : or   $80
            80DE | 18 05    : jr   $80E5
            80E0 | FE 10    : cp   $10
            80E2 | 20 03    : jr   nz,$80E7
            80E4 | AF       : xor  a        // stop sound
            80E5 | D3 18    : out  ($18),a  // send sound code
            80E7 | 18 AA    : jr   $8093
            -->
        </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="button 1 : play sound"             line="13" align="center" />
            <output format="1P start : stop sound"             line="14" align="center" />
            <output format="----------------------------"      line="15" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;" line="17" align="center"  >
                <argument>maincpu.pb@C000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@019A = 2EAB            </action>
            <action>maincpu.mq@8090 = 0000000000000000</action>
            <action>maincpu.mq@8098 = 0000000000000000</action>
            <action>maincpu.mq@80A0 = 0000000000000000</action>
            <action>maincpu.mq@80A8 = 0000000000000000</action>
            <action>maincpu.mq@80B0 = 0000000000000000</action>
            <action>maincpu.mq@80B8 = 0000000000000000</action>
            <action>maincpu.mq@80C0 = 0000000000000000</action>
            <action>maincpu.mq@80C8 = 0000000000000000</action>
            <action>maincpu.mq@80D0 = 0000000000000000</action>
            <action>maincpu.mq@80D8 = 0000000000000000</action>
            <action>maincpu.mq@80E0 = 0000000000000000</action>
            <action>maincpu.mq@80E8 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="quick boot">
        <script state="on">
            <action>maincpu.mw@013C = 2ED7</action>
        </script>
        <script state="off">
            <action>maincpu.mw@013C = 2ED8</action>
        </script>
    </cheat>

</mamecheat>
blockgalb.xml

Code: Select all

<!-- Block Gal (bootleg) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.ob@1440 = CD              </action>
            <action>maincpu.mw@1441 = 5C30            </action>
            <action>maincpu.oq@5C30 = FEFF28FFFEFF7EDD</action>
            <action>maincpu.mq@5C30 = FF03FF1AFF08FFFF</action>
            <action>maincpu.oq@5C38 = C9E5FFFF21E1C0FF</action>
            <action>maincpu.mq@5C38 = FFFF145CFFFFFF1B</action>
            <!--
            5C30 | DD 7E 08 : ld   a,(ix+$08)
            5C33 | FE 1A    : cp   $1A
            5C35 | 28 03    : jr   z,$5C3A
            5C37 | FE 1B    : cp   $1B
            5C39 | C0       : ret  nz
            5C3A | E1       : pop  hl
            5C3B | 21 5C 14 : ld   hl,$145C
            5C3E | E5       : push hl
            5C3F | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.ob@1440 = DD              </action>
            <action>maincpu.mw@1441 = 08B4            </action>
            <action>maincpu.oq@5C30 = 3E610D21C6E06D63</action>
            <action>maincpu.mq@5C30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5C38 = 3E610D21C6E06D63</action>
            <action>maincpu.mq@5C38 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="keep a ball">
        <script state="on">
            <action>maincpu.ob@0DC7 = C3              </action>
            <action>maincpu.mw@0DC8 = 5C40            </action>
            <action>maincpu.oq@5C40 = E5FF7EDDFFFF36DD</action>
            <action>maincpu.mq@5C40 = FF09FFFFC802FFFF</action>
            <action>maincpu.oq@5C48 = 77DD7E6F85FFFF21</action>
            <action>maincpu.mq@5C48 = FFFFFFFFFF5C55FF</action>
            <action>maincpu.oq@5C50 = FFFFFFFFFFC3E1FF</action>
            <action>maincpu.mq@5C50 = 0201000DDDFFFF09</action>
            <action>maincpu.oq@5C58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5C58 = 0304050606050403</action>
            <action>maincpu.oq@5C60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5C60 = FFFFFFFF0E0E0102</action>
            <!--
            5C40 | DD 36 02 C8 : ld   (ix+$02),$C8 // set ball position
            5C44 | DD 7E 09    : ld   a,(ix+$09)
            5C47 | E5          : push hl
            5C48 | 21 25 80    : ld   hl,$5C55
            5C4B | 85          : add  a,l
            5C4C | 6F          : ld   l,a
            5C4D | 7E          : ld   a,(hl)
            5C4E | DD 77 09    : ld   (ix+$09),a   // set ball direction
            5C51 | E1          : pop  hl
            5C52 | C3 B0 0D    : jp   $0DDD
            5C55 - 5C63        : ball direction conversion table
            -->
        </script>
        <script state="off">
            <action>maincpu.ob@0DC7 = 3E              </action>
            <action>maincpu.mw@0DC8 = 2E97            </action>
            <action>maincpu.oq@5C40 = DBA94C6045590DCB</action>
            <action>maincpu.mq@5C40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5C48 = DBA94C6045590DCB</action>
            <action>maincpu.mq@5C48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5C50 = D7A1F91EBCA89CDF</action>
            <action>maincpu.mq@5C50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5C58 = D7A1F91EBCA89CDF</action>
            <action>maincpu.mq@5C58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5C60 = DBA94C6045590DCB</action>
            <action>maincpu.mq@5C60 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="control a ball">
        <script state="on">
            <action>maincpu.ob@16F0 = CD              </action>
            <action>maincpu.mw@16F1 = 5C68            </action>
            <action>maincpu.oq@5C68 = 90FFFF3A47FFFF3A</action>
            <action>maincpu.mq@5C68 = FFC01FFFFFC01EFF</action>
            <action>maincpu.oq@5C70 = 21FF38FFFF21FF28</action>
            <action>maincpu.mq@5C70 = FF03FF5C9DFF27FF</action>
            <action>maincpu.oq@5C78 = FFFF21DDE5DDFFFF</action>
            <action>maincpu.mq@5C78 = CE00FFFFFFFF5CAD</action>
            <action>maincpu.oq@5C80 = 28A7FF7EDDE5FF06</action>
            <action>maincpu.mq@5C80 = FFFF09FFFFFF02FF</action>
            <action>maincpu.oq@5C88 = 11FF77DD7E6F85FF</action>
            <action>maincpu.mq@5C88 = FF09FFFFFFFFFF06</action>
            <action>maincpu.oq@5C90 = DDFF10E119DDFFFF</action>
            <action>maincpu.mq@5C90 = FFEBFFFFFFFF000C</action>
            <action>maincpu.oq@5C98 = FFFFFFC9FFFF3AE1</action>
            <action>maincpu.mq@5C98 = 020100FFC20FFFFF</action>
            <action>maincpu.oq@5CA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CA0 = 0A0A0B0C01020303</action>
            <action>maincpu.oq@5CA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CA8 = 05060000020B0C0B</action>
            <action>maincpu.oq@5CB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CB0 = 0909080706050404</action>
            <action>maincpu.oq@5CB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5CB8 = FFFFFF0005080708</action>
            <!--
            5C68 | 3A 1E C0    : ld   a,($C01E)  // check input
            5C6B | 47          : ld   b,a
            5C6C | 3A 1F C0    : ld   a,($C01F)
            5C6F | 90          : sub  b
            5C70 | 28 27       : jr   z,$5C99
            5C72 | 21 9D 5C    : ld   hl,$5C9D   // right
            5C75 | 38 03       : jr   c,$5C7A
            5C77 | 21 AD 5C    : ld   hl,$5CAD   // left
            5C7A | DD E5       : push ix
            5C7C | DD 21 00 CE : ld   ix,$CE00   // iterate over balls
            5C80 | 06 02       : ld   b,$02
            5C82 | E5          : push hl
            5C83 | DD 7E 09    : ld   a,(ix+$09) // read current ball direction
            5C86 | A7          : and  a
            5C87 | 28 06       : jr   z,$5C8F
            5C89 | 85          : add  a,l        // calculate conversion table address
            5C8A | 6F          : ld   l,a
            5C8B | 7E          : ld   a,(hl)
            5C8C | DD 77 09    : ld   (ix+$09),a // set new ball direction
            5C8F | 11 0C 00    : ld   de,$000C
            5C92 | DD 19       : add  ix,de
            5C94 | E1          : pop  hl
            5C95 | 10 EB       : djnz $5C82
            5C97 | DD E1       : pop  ix
            5C99 | 3A 0F C2    : ld   a,($C20F)
            5C9C | C9          : ret
            5C9D - 5CBC        : ball direction conversion table
            -->
        </script>
        <script state="off">
            <action>maincpu.ob@16F0 = 3A              </action>
            <action>maincpu.mw@16F1 = C20F            </action>
            <action>maincpu.oq@5C68 = DBA94C6045590DCB</action>
            <action>maincpu.mq@5C68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5C70 = D7A1F91EBCA89CDF</action>
            <action>maincpu.mq@5C70 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5C78 = D7A1F91EBCA89CDF</action>
            <action>maincpu.mq@5C78 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5C80 = E046F78503EA7B27</action>
            <action>maincpu.mq@5C80 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5C88 = E046F78503EA7B27</action>
            <action>maincpu.mq@5C88 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5C90 = 3E610D21C6E06D63</action>
            <action>maincpu.mq@5C90 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5C98 = 3E610D21C6E06D63</action>
            <action>maincpu.mq@5C98 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5CA0 = E046F78503EA7B27</action>
            <action>maincpu.mq@5CA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5CA8 = E046F78503EA7B27</action>
            <action>maincpu.mq@5CA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5CB0 = 3E610D21C6E06D63</action>
            <action>maincpu.mq@5CB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5CB8 = 3E610D21C6E06D63</action>
            <action>maincpu.mq@5CB8 = 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@0197 = 5CC0            </action>
            <action>maincpu.oq@5CC0 = FF36FFFF215FFFDB</action>
            <action>maincpu.mq@5CC0 = 01FFC20EFFFF00FF</action>
            <action>maincpu.oq@5CC8 = FF21F3FF20A77EFB</action>
            <action>maincpu.mq@5CC8 = 01FFFFFCFFFFFFFF</action>
            <action>maincpu.oq@5CD0 = 925FFFDB53000EFF</action>
            <action>maincpu.mq@5CD0 = FFFF00FFFF00FFC0</action>
            <action>maincpu.oq@5CD8 = FF38FF18FF36FF20</action>
            <action>maincpu.mq@5CD8 = 0AFF14FF00FF04FF</action>
            <action>maincpu.oq@5CE0 = FF0EFF36FF204ECB</action>
            <action>maincpu.mq@5CE0 = 01FF01FF0AFFFFFF</action>
            <action>maincpu.oq@5CE8 = FF36FF2046CBFF18</action>
            <action>maincpu.mq@5CE8 = 02FFF8FFFFFF08FF</action>
            <action>maincpu.oq@5CF0 = B1FFE62FFFDBFF0E</action>
            <action>maincpu.mq@5CF0 = FF50FFFF08FF02FF</action>
            <action>maincpu.oq@5CF8 = 20FFFE2BFF2847B8</action>
            <action>maincpu.mq@5CF8 = FF01FFFFC7FFFFFF</action>
            <action>maincpu.oq@5D00 = FE34FF20FFFE35FF</action>
            <action>maincpu.mq@5D00 = FFFF01FF02FFFF01</action>
            <action>maincpu.oq@5D08 = FF18FFF67EFF20FF</action>
            <action>maincpu.mq@5D08 = 05FF80FFFF05FF40</action>
            <action>maincpu.oq@5D10 = 18FFD3AFFF20FFFE</action>
            <action>maincpu.mq@5D10 = FF14FFFF03FF10FF</action>
            <action>maincpu.oq@5D18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@5D18 = FFFFFFFFFFFFFFAA</action>
            <!--
            5CC0 | DB 00    : in   a,($00)  // initialize temporary input
            5CC2 | 5F       : ld   e,a
            5CC3 | 21 0E C2 : ld   hl,$C20E // wait interrupt
            5CC6 | 36 01    : ld   (hl),$01
            5CC8 | FB       : ei
            5CC9 | 7E       : ld   a,(hl)
            5CCA | A7       : and  a
            5CCB | 20 FC    : jr   nz,$5CC9
            5CCD | F3       : di
            5CCE | 21 01 C0 : ld   hl,$C001 // dial input flag address
            5CD1 | 0E 00    : ld   c,$00
            5CD3 | 53       : ld   d,e
            5CD4 | DB 00    : in   a,($00)  // read dial
            5CD6 | 5F       : ld   e,a
            5CD7 | 92       : sub  d
            5CD8 | 20 04    : jr   nz,$5CDE
            5CDA | 36 00    : ld   (hl),$00
            5CDC | 18 14    : jr   $5CF2
            5CDE | 38 0A    : jr   c,$5CEA
            5CE0 | CB 4E    : bit  1,(hl)   // left
            5CE2 | 20 0A    : jr   nz,$5CEE
            5CE4 | 36 01    : ld   (hl),$01
            5CE6 | 0E 01    : ld   c,$01
            5CE8 | 18 08    : jr   $5CF2
            5CEA | CB 46    : bit  0,(hl)   // right
            5CEC | 20 F8    : jr   nz,$5CE6
            5CEE | 36 02    : ld   (hl),$02
            5CF0 | 0E 02    : ld   c,$02
            5CF2 | DB 08    : in   a,($08)  // read other inputs
            5CF4 | 2F       : cpl
            5CF5 | E6 50    : and  $50
            5CF7 | B1       : or   c
            5CF8 | B8       : cp   b
            5CF9 | 47       : ld   b,a
            5CFA | 28 C7    : jr   z,$5CC3
            5CFC | 2B       : dec  hl       // sound code address ($C000)
            5CFD | FE 01    : cp   $01
            5CFF | 20 01    : jr   nz,$5D02
            5D01 | 35       : dec  (hl)     // decrease code -01
            5D02 | FE 02    : cp   $02
            5D04 | 20 01    : jr   nz,$5D07
            5D06 | 34       : inc  (hl)     // increase code +01
            5D07 | FE 40    : cp   $40
            5D09 | 20 05    : jr   nz,$5D10
            5D0B | 7E       : ld   a,(hl)   // play sound
            5D0C | F6 80    : or   $80
            5D0E | 18 05    : jr   $5D15
            5D10 | FE 10    : cp   $10
            5D12 | 20 03    : jr   nz,$5D17
            5D14 | AF       : xor  a        // stop sound
            5D15 | D3 14    : out  ($14),a  // send sound code
            5D17 | 18 AA    : jr   $5CC3
            -->
        </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="button 1 : play sound"             line="13" align="center" />
            <output format="1P start : stop sound"             line="14" align="center" />
            <output format="----------------------------"      line="15" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;" line="17" align="center"  >
                <argument>maincpu.pb@C000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@0197 = 2EDD            </action>
            <action>maincpu.oq@5CC0 = DBA94C6045590DCB</action>
            <action>maincpu.mq@5CC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5CC8 = DBA94C6045590DCB</action>
            <action>maincpu.mq@5CC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5CD0 = D7A1F91EBCA89CDF</action>
            <action>maincpu.mq@5CD0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5CD8 = D7A1F91EBCA89CDF</action>
            <action>maincpu.mq@5CD8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5CE0 = DBA94C6045590DCB</action>
            <action>maincpu.mq@5CE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5CE8 = DBA94C6045590DCB</action>
            <action>maincpu.mq@5CE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5CF0 = D7A1F91EBCA89CDF</action>
            <action>maincpu.mq@5CF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5CF8 = D7A1F91EBCA89CDF</action>
            <action>maincpu.mq@5CF8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5D00 = 88088E4B462CEF16</action>
            <action>maincpu.mq@5D00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5D08 = 88088E4B462CEF16</action>
            <action>maincpu.mq@5D08 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5D10 = 08A146EFF1330580</action>
            <action>maincpu.mq@5D10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@5D18 = 08A146EFF1330580</action>
            <action>maincpu.mq@5D18 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="quick boot">
        <script state="on">
            <action>maincpu.mw@0139 = 2F09</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0139 = 2F0A</action>
        </script>
    </cheat>

</mamecheat>
  • "no hit" : A devil doesn't catch your balls.
  • "control a ball" : You can control balls by dial (left or right).
BTW, "Always Keep a Ball" code in official database based on 0.264 doesn't work. Because (encrypted) memory region was different.
jman

my wip cheat database back-up (06/01/2025 ver.)
https://u3.getuploader.com/...../download/58
downloadpass : jman2020
Post Reply