[bombjack] Bomb Jack

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

[bombjack] Bomb Jack

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@3625 = c3</action>
    </script>
    <script state="off">
        <action>maincpu.mb@3625 = ca</action>
    </script>
</cheat>

<cheat desc="gettable fire bomb only">
    <script state="on">
        <action>maincpu.md@2121 =         d27e40cd</action>
        <action>maincpu.mq@7e40 = fd082818fe81a23a</action>
        <action>maincpu.mq@7e48 = b7c9b702207e00cb</action>
        <action>maincpu.mq@7e50 = 0000000000c952ed</action>
        <!--
        7e40 | 3a a2 81    : ld  a,($81a2)
        7e43 | fe 18       : cp  $18
        7e45 | 28 08       : jr  z,$7e4f
        7e47 | fd cb 00 7e : bit 7,(iy+$00)
        7e4b | 20 02       : jr  nz,$7e4f
        7e4d | b7          : or  a
        7e4e | c9          : ret
        7e4f | b7          : or  a
        7e50 | ed 52       : sbc hl,de
        7e52 | c9          : ret
        -->
    </script>
    <script state="off">
        <action>maincpu.md@2121 =         d252edb7</action>
        <action>maincpu.mq@7e40 = 0000000000000000</action>
        <action>maincpu.mq@7e48 = 0000000000000000</action>
        <action>maincpu.mq@7e50 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>set ram/rom check skip then reset the game (F3)</comment>
    <script state="on">
        <action>maincpu.mw@01ab =             7e10</action>
        <action>maincpu.mq@7e10 = 22d57e1311100021</action>
        <action>maincpu.mq@7e18 = c86fbdb0003a8100</action>
        <action>maincpu.mq@7e20 = 2001fe25012002fe</action>
        <action>maincpu.mq@7e28 = 187c032010fe2401</action>
        <action>maincpu.mq@7e30 = 0032013ec004fe05</action>
        <action>maincpu.mq@7e38 = 000000000000c9b8</action>
        <!--
        7e10 | 21 00 10 : ld   hl,$1000   // initialize sound and input values
        7e13 | 11 13 7e : ld   de,$7e13
        7e16 | d5       : push de
        7e17 | 22 00 81 : ld   ($8100),hl
        7e1a | 3a 00 b0 : ld   a,($b000)  // read input
        7e1d | bd       : cp   l
        7e1e | 6f       : ld   l,a
        7e1f | c8       : ret  z
        7e20 | fe 02    : cp   $02
        7e22 | 20 01    : jr   nz,$7e25
        7e24 | 25       : dec  h          // decrease code
        7e25 | fe 01    : cp   $01
        7e27 | 20 01    : jr   nz,$7e2a
        7e29 | 24       : inc  h          // increase code
        7e2a | fe 10    : cp   $10
        7e2c | 20 03    : jr   nz,$7e31
        7e2e | 7c       : ld   a,h        // play sound
        7e2f | 18 05    : jr   $7e36
        7e31 | fe 04    : cp   $04
        7e33 | c0       : ret  nz
        7e34 | 3e 01    : ld   a,$01      // stop sound
        7e36 | 32 00 b8 : ld   ($b800),a  // send sound code
        7e39 | c9       : ret
        -->
    </script>
    <script state="run">
        <output format="----- bomb jack sound test mode -----" line="10" align="center" />
        <output format="left : decrease code"                  line="11" align="center" />
        <output format="right : increase code"                 line="12" align="center" />
        <output format="button 1 : play sound"                 line="13" align="center" />
        <output format="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@8101</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@01ab =             0205</action>
        <action>maincpu.mq@7e10 = 0000000000000000</action>
        <action>maincpu.mq@7e18 = 0000000000000000</action>
        <action>maincpu.mq@7e20 = 0000000000000000</action>
        <action>maincpu.mq@7e28 = 0000000000000000</action>
        <action>maincpu.mq@7e30 = 0000000000000000</action>
        <action>maincpu.mq@7e38 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="skip ram/rom check">
    <script state="on">
        <action>maincpu.mb@0013 = 26</action>
    </script>
    <script state="off">
        <action>maincpu.mb@0013 = 20</action>
    </script>
</cheat>
"gettable fire bomb only" is unique. You can't get normal bomb by this code except first bomb. Fire bomb appears after you get first (normal) bomb. So you get "special bonus" (collect 23 fire bombs) easily.
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[bombjack] Bomb Jack (update)

Post by jman »

Code: Select all

<cheat desc="gettable fire bomb only">
    <script state="on">
        <action>maincpu.md@2121 =         d27e10cd</action>
        <action>maincpu.mq@7e10 = fd082818fe81a23a</action>
        <action>maincpu.mq@7e18 = b7c9b702207e00cb</action>
        <action>maincpu.mq@7e20 = 0000000000c952ed</action>
        <!--
        7e10 | 3a a2 81    : ld  a,($81A2)
        7e13 | fe 18       : cp  $18
        7e15 | 28 08       : jr  z,$7E1F
        7e17 | fd cb 00 7e : bit 7,(iy+$00)
        7e1b | 20 02       : jr  nz,$7E1F
        7e1d | b7          : or  a
        7e1e | c9          : ret
        7e1f | b7          : or  a
        7e20 | ed 52       : sbc hl,de
        7e22 | c9          : ret
        -->
    </script>
    <script state="off">
        <action>maincpu.md@2121 =         d252edb7</action>
        <action>maincpu.mq@7e10 = 0000000000000000</action>
        <action>maincpu.mq@7e18 = 0000000000000000</action>
        <action>maincpu.mq@7e20 = 0000000000000000</action>
    </script>
</cheat>
"gettable fire bomb only" : reallocate address.

Code: Select all

<cheat desc="sound test mode">
    <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
    <script state="on">
        <action>maincpu.mw@01ab =             7e30</action>
        <action>maincpu.mq@7e30 = 04e6b0023a810021</action>
        <action>maincpu.mq@7e38 = b1b0003a4f070707</action>
        <action>maincpu.mq@7e40 = 012002feef2847b8</action>
        <action>maincpu.mq@7e48 = 08fe34012001fe35</action>
        <action>maincpu.mq@7e50 = 04fe0618f03e0420</action>
        <action>maincpu.mq@7e58 = fe787786103e0520</action>
        <action>maincpu.mq@7e60 = 20fe06187e032010</action>
        <action>maincpu.mq@7e68 = 18b80032013e0520</action>
        <action>maincpu.mq@7e70 = 00000000000000c2</action>
        <!--
        7e30 | 21 00 81 : ld   hl,$8100  // sound code address
        7e33 | 3a 02 b0 : ld   a,($B002) // read start button
        7e36 | e6 04    : and  $04
        7e38 | 07       : rlca
        7e39 | 07       : rlca
        7e3a | 07       : rlca
        7e3b | 4f       : ld   c,a
        7e3c | 3a 00 b0 : ld   a,($B000) // read other inputs
        7e3f | b1       : or   c
        7e40 | b8       : cp   b
        7e41 | 47       : ld   b,a
        7e42 | 28 ef    : jr   z,$7E33
        7e44 | fe 02    : cp   $02
        7e46 | 20 01    : jr   nz,$7E49
        7e48 | 35       : dec  (hl)      // decrease code -01
        7e49 | fe 01    : cp   $01
        7e4b | 20 01    : jr   nz,$7E4E
        7e4d | 34       : inc  (hl)      // increase code +01
        7e4e | fe 08    : cp   $08
        7e50 | 20 04    : jr   nz,$7E56
        7e52 | 3e f0    : ld   a,$F0     // decrease code -10
        7e54 | 18 06    : jr   $7E5C
        7e56 | fe 04    : cp   $04
        7e58 | 20 05    : jr   nz,$7E5F
        7e5a | 3e 10    : ld   a,$10     // increase code +10
        7e5c | 86       : add  a,(hl)
        7e5d | 77       : ld   (hl),a
        7e5e | 78       : ld   a,b
        7e5f | fe 10    : cp   $10
        7e61 | 20 03    : jr   nz,$7E66
        7e63 | 7e       : ld   a,(hl)    // play sound
        7e64 | 18 06    : jr   $7E6C
        7e66 | fe 20    : cp   $20
        7e68 | 20 05    : jr   nz,$7E6F
        7e6a | 3e 01    : ld   a,$01     // stop sound
        7e6c | 32 00 b8 : ld   ($B800),a // send sound code
        7e6f | 18 c2    : jr   $7E33
        -->
    </script>
    <script state="run">
        <output format="----- bomb jack 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 %2.2X &gt;&gt;"    line="19" align="center"  >
            <argument>maincpu.pb@8100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@01ab =             0205</action>
        <action>maincpu.mq@7e30 = 0000000000000000</action>
        <action>maincpu.mq@7e38 = 0000000000000000</action>
        <action>maincpu.mq@7e40 = 0000000000000000</action>
        <action>maincpu.mq@7e48 = 0000000000000000</action>
        <action>maincpu.mq@7e50 = 0000000000000000</action>
        <action>maincpu.mq@7e58 = 0000000000000000</action>
        <action>maincpu.mq@7e60 = 0000000000000000</action>
        <action>maincpu.mq@7e68 = 0000000000000000</action>
        <action>maincpu.mq@7e70 = 0000000000000000</action>
    </script>
</cheat>
"sound test mode" : rewrite routine. reallocate address. add up/down key (code ±10). change sound stop button from up to start.
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[bombjack]+ Bomb Jack

Post by jman »

bombjack.xml

Code: Select all

<!-- Bomb Jack (set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@3625 = C3</action>
        </script>
        <script state="off">
            <action>maincpu.mb@3625 = CA</action>
        </script>
    </cheat>

    <cheat desc="gettable fire bomb only">
        <script state="on">
            <!-- bomb count -->
            <action>maincpu.mw@2012 = 7E10            </action>
            <action>maincpu.mq@7E10 = 1806000511848021</action>
            <action>maincpu.mq@7E18 = 03207ECB042076CB</action>
            <action>maincpu.mq@7E20 = C38FA03278F51019</action>
            <action>maincpu.mq@7E28 = 00000000000020C0</action>
            <!--
            7E10 | 21 80 84 : ld   hl,$8480
            7E13 | 11 05 00 : ld   de,$0005
            7E16 | 06 18    : ld   b,$18
            7E18 | CB 76    : bit  6,(hl)
            7E1A | 20 04    : jr   nz,$7E20
            7E1C | CB 7E    : bit  7,(hl)
            7E1E | 20 03    : jr   nz,$7E23
            7E20 | 19       : add  hl,de
            7E21 | 10 F5    : djnz $7E18
            7E23 | 78       : ld   a,b
            7E24 | 32 A0 8F : ld   ($8FA0),a
            7E27 | C3 C0 20 : jp   $20C0
            -->
            <!-- bomb check -->
            <action>maincpu.md@2121 = D27E30CD        </action>
            <action>maincpu.mq@7E30 = CBFD0528A78FA03A</action>
            <action>maincpu.mq@7E38 = 0000C952EDC87E00</action>
            <!--
            7E30 | 3A A0 8F    : ld   a,($8FA0)
            7E33 | A7          : and  a
            7E34 | 28 05       : jr   z,$7E3B
            7E36 | FD CB 00 7E : bit  7,(iy+$00)
            7E3A | C8          : ret  z
            7E3B | ED 52       : sbc  hl,de
            7E3D | C9          : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@2012 = 20C0            </action>
            <action>maincpu.mq@7E10 = 0000000000000000</action>
            <action>maincpu.mq@7E18 = 0000000000000000</action>
            <action>maincpu.mq@7E20 = 0000000000000000</action>
            <action>maincpu.mq@7E28 = 0000000000000000</action>
            <action>maincpu.md@2121 = D252EDB7        </action>
            <action>maincpu.mq@7E30 = 0000000000000000</action>
            <action>maincpu.mq@7E38 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@01AB = 7E40            </action>
            <action>maincpu.mq@7E40 = 04E6B0023A800021</action>
            <action>maincpu.mq@7E48 = B1B0003A4F070707</action>
            <action>maincpu.mq@7E50 = 012002FEEF2847B8</action>
            <action>maincpu.mq@7E58 = 08FE34012001FE35</action>
            <action>maincpu.mq@7E60 = 04FE0618F03E0420</action>
            <action>maincpu.mq@7E68 = FE787786103E0520</action>
            <action>maincpu.mq@7E70 = 20FE06187E032010</action>
            <action>maincpu.mq@7E78 = 18B80032013E0520</action>
            <action>maincpu.mq@7E80 = 00000000000000C2</action>
            <!--
            7E40 | 21 00 80 : ld   hl,$8000  // sound code address
            7E43 | 3A 02 B0 : ld   a,($B002) // read start button
            7E46 | E6 04    : and  $04
            7E48 | 07       : rlca
            7E49 | 07       : rlca
            7E4A | 07       : rlca
            7E4B | 4F       : ld   c,a
            7E4C | 3A 00 B0 : ld   a,($B000) // read other inputs
            7E4F | B1       : or   c
            7E50 | B8       : cp   b
            7E51 | 47       : ld   b,a
            7E52 | 28 EF    : jr   z,$7E43
            7E54 | FE 02    : cp   $02
            7E56 | 20 01    : jr   nz,$7E59
            7E58 | 35       : dec  (hl)      // decrease code -01
            7E59 | FE 01    : cp   $01
            7E5B | 20 01    : jr   nz,$7E5E
            7E5D | 34       : inc  (hl)      // increase code +01
            7E5E | FE 08    : cp   $08
            7E60 | 20 04    : jr   nz,$7E66
            7E62 | 3E F0    : ld   a,$F0     // decrease code -10
            7E64 | 18 06    : jr   $7E6C
            7E66 | FE 04    : cp   $04
            7E68 | 20 05    : jr   nz,$7E6F
            7E6A | 3E 10    : ld   a,$10     // increase code +10
            7E6C | 86       : add  a,(hl)
            7E6D | 77       : ld   (hl),a
            7E6E | 78       : ld   a,b
            7E6F | FE 10    : cp   $10
            7E71 | 20 03    : jr   nz,$7E76
            7E73 | 7E       : ld   a,(hl)    // play sound
            7E74 | 18 06    : jr   $7E7C
            7E76 | FE 20    : cp   $20
            7E78 | 20 05    : jr   nz,$7E7F
            7E7A | 3E 01    : ld   a,$01     // stop sound
            7E7C | 32 00 B8 : ld   ($B800),a // send sound code
            7E7F | 18 C2    : jr   $7E43
            -->
        </script>
        <script state="run">
            <output format="----- bomb jack 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="1P 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@8000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@01AB = 0205            </action>
            <action>maincpu.mq@7E40 = 0000000000000000</action>
            <action>maincpu.mq@7E48 = 0000000000000000</action>
            <action>maincpu.mq@7E50 = 0000000000000000</action>
            <action>maincpu.mq@7E58 = 0000000000000000</action>
            <action>maincpu.mq@7E60 = 0000000000000000</action>
            <action>maincpu.mq@7E68 = 0000000000000000</action>
            <action>maincpu.mq@7E70 = 0000000000000000</action>
            <action>maincpu.mq@7E78 = 0000000000000000</action>
            <action>maincpu.mq@7E80 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mb@0013 = 26</action>
        </script>
        <script state="off">
            <action>maincpu.mb@0013 = 20</action>
        </script>
    </cheat>

</mamecheat>
bombjack2.xml

Code: Select all

<!-- Bomb Jack (set 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@3625 = C3</action>
        </script>
        <script state="off">
            <action>maincpu.mb@3625 = CA</action>
        </script>
    </cheat>

    <cheat desc="gettable fire bomb only">
        <script state="on">
            <!-- bomb count -->
            <action>maincpu.mw@2012 = 7E10            </action>
            <action>maincpu.mq@7E10 = 1806000511848021</action>
            <action>maincpu.mq@7E18 = 03207ECB042076CB</action>
            <action>maincpu.mq@7E20 = C38FA03278F51019</action>
            <action>maincpu.mq@7E28 = 00000000000020C0</action>
            <!--
            7E10 | 21 80 84 : ld   hl,$8480
            7E13 | 11 05 00 : ld   de,$0005
            7E16 | 06 18    : ld   b,$18
            7E18 | CB 76    : bit  6,(hl)
            7E1A | 20 04    : jr   nz,$7E20
            7E1C | CB 7E    : bit  7,(hl)
            7E1E | 20 03    : jr   nz,$7E23
            7E20 | 19       : add  hl,de
            7E21 | 10 F5    : djnz $7E18
            7E23 | 78       : ld   a,b
            7E24 | 32 A0 8F : ld   ($8FA0),a
            7E27 | C3 C0 20 : jp   $20C0
            -->
            <!-- bomb check -->
            <action>maincpu.md@2121 = D27E30CD        </action>
            <action>maincpu.mq@7E30 = CBFD0528A78FA03A</action>
            <action>maincpu.mq@7E38 = 0000C952EDC87E00</action>
            <!--
            7E30 | 3A A0 8F    : ld   a,($8FA0)
            7E33 | A7          : and  a
            7E34 | 28 05       : jr   z,$7E3B
            7E36 | FD CB 00 7E : bit  7,(iy+$00)
            7E3A | C8          : ret  z
            7E3B | ED 52       : sbc  hl,de
            7E3D | C9          : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@2012 = 20C0            </action>
            <action>maincpu.mq@7E10 = 0000000000000000</action>
            <action>maincpu.mq@7E18 = 0000000000000000</action>
            <action>maincpu.mq@7E20 = 0000000000000000</action>
            <action>maincpu.mq@7E28 = 0000000000000000</action>
            <action>maincpu.md@2121 = D252EDB7        </action>
            <action>maincpu.mq@7E30 = 0000000000000000</action>
            <action>maincpu.mq@7E38 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@01AB = 7E40            </action>
            <action>maincpu.mq@7E40 = 04E6B0023A800021</action>
            <action>maincpu.mq@7E48 = B1B0003A4F070707</action>
            <action>maincpu.mq@7E50 = 012002FEEF2847B8</action>
            <action>maincpu.mq@7E58 = 08FE34012001FE35</action>
            <action>maincpu.mq@7E60 = 04FE0618F03E0420</action>
            <action>maincpu.mq@7E68 = FE787786103E0520</action>
            <action>maincpu.mq@7E70 = 20FE06187E032010</action>
            <action>maincpu.mq@7E78 = 18B80032013E0520</action>
            <action>maincpu.mq@7E80 = 00000000000000C2</action>
            <!--
            7E40 | 21 00 80 : ld   hl,$8000  // sound code address
            7E43 | 3A 02 B0 : ld   a,($B002) // read start button
            7E46 | E6 04    : and  $04
            7E48 | 07       : rlca
            7E49 | 07       : rlca
            7E4A | 07       : rlca
            7E4B | 4F       : ld   c,a
            7E4C | 3A 00 B0 : ld   a,($B000) // read other inputs
            7E4F | B1       : or   c
            7E50 | B8       : cp   b
            7E51 | 47       : ld   b,a
            7E52 | 28 EF    : jr   z,$7E43
            7E54 | FE 02    : cp   $02
            7E56 | 20 01    : jr   nz,$7E59
            7E58 | 35       : dec  (hl)      // decrease code -01
            7E59 | FE 01    : cp   $01
            7E5B | 20 01    : jr   nz,$7E5E
            7E5D | 34       : inc  (hl)      // increase code +01
            7E5E | FE 08    : cp   $08
            7E60 | 20 04    : jr   nz,$7E66
            7E62 | 3E F0    : ld   a,$F0     // decrease code -10
            7E64 | 18 06    : jr   $7E6C
            7E66 | FE 04    : cp   $04
            7E68 | 20 05    : jr   nz,$7E6F
            7E6A | 3E 10    : ld   a,$10     // increase code +10
            7E6C | 86       : add  a,(hl)
            7E6D | 77       : ld   (hl),a
            7E6E | 78       : ld   a,b
            7E6F | FE 10    : cp   $10
            7E71 | 20 03    : jr   nz,$7E76
            7E73 | 7E       : ld   a,(hl)    // play sound
            7E74 | 18 06    : jr   $7E7C
            7E76 | FE 20    : cp   $20
            7E78 | 20 05    : jr   nz,$7E7F
            7E7A | 3E 01    : ld   a,$01     // stop sound
            7E7C | 32 00 B8 : ld   ($B800),a // send sound code
            7E7F | 18 C2    : jr   $7E43
            -->
        </script>
        <script state="run">
            <output format="----- bomb jack 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="1P 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@8000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@01AB = 0205            </action>
            <action>maincpu.mq@7E40 = 0000000000000000</action>
            <action>maincpu.mq@7E48 = 0000000000000000</action>
            <action>maincpu.mq@7E50 = 0000000000000000</action>
            <action>maincpu.mq@7E58 = 0000000000000000</action>
            <action>maincpu.mq@7E60 = 0000000000000000</action>
            <action>maincpu.mq@7E68 = 0000000000000000</action>
            <action>maincpu.mq@7E70 = 0000000000000000</action>
            <action>maincpu.mq@7E78 = 0000000000000000</action>
            <action>maincpu.mq@7E80 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mb@0013 = 26</action>
        </script>
        <script state="off">
            <action>maincpu.mb@0013 = 20</action>
        </script>
    </cheat>

</mamecheat>
bombjackt.xml

Code: Select all

<!-- Bomb Jack (Tecfri, Spain) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@3625 = C3</action>
        </script>
        <script state="off">
            <action>maincpu.mb@3625 = CA</action>
        </script>
    </cheat>

    <cheat desc="gettable fire bomb only">
        <script state="on">
            <!-- bomb count -->
            <action>maincpu.mw@2012 = 7E10            </action>
            <action>maincpu.mq@7E10 = 1806000511848021</action>
            <action>maincpu.mq@7E18 = 03207ECB042076CB</action>
            <action>maincpu.mq@7E20 = C38FA03278F51019</action>
            <action>maincpu.mq@7E28 = 00000000000020C0</action>
            <!--
            7E10 | 21 80 84 : ld   hl,$8480
            7E13 | 11 05 00 : ld   de,$0005
            7E16 | 06 18    : ld   b,$18
            7E18 | CB 76    : bit  6,(hl)
            7E1A | 20 04    : jr   nz,$7E20
            7E1C | CB 7E    : bit  7,(hl)
            7E1E | 20 03    : jr   nz,$7E23
            7E20 | 19       : add  hl,de
            7E21 | 10 F5    : djnz $7E18
            7E23 | 78       : ld   a,b
            7E24 | 32 A0 8F : ld   ($8FA0),a
            7E27 | C3 C0 20 : jp   $20C0
            -->
            <!-- bomb check -->
            <action>maincpu.md@2121 = D27E30CD        </action>
            <action>maincpu.mq@7E30 = CBFD0528A78FA03A</action>
            <action>maincpu.mq@7E38 = 0000C952EDC87E00</action>
            <!--
            7E30 | 3A A0 8F    : ld   a,($8FA0)
            7E33 | A7          : and  a
            7E34 | 28 05       : jr   z,$7E3B
            7E36 | FD CB 00 7E : bit  7,(iy+$00)
            7E3A | C8          : ret  z
            7E3B | ED 52       : sbc  hl,de
            7E3D | C9          : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@2012 = 20C0            </action>
            <action>maincpu.mq@7E10 = 0000000000000000</action>
            <action>maincpu.mq@7E18 = 0000000000000000</action>
            <action>maincpu.mq@7E20 = 0000000000000000</action>
            <action>maincpu.mq@7E28 = 0000000000000000</action>
            <action>maincpu.md@2121 = D252EDB7        </action>
            <action>maincpu.mq@7E30 = 0000000000000000</action>
            <action>maincpu.mq@7E38 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@01AB = 7E40            </action>
            <action>maincpu.mq@7E40 = 04E6B0023A800021</action>
            <action>maincpu.mq@7E48 = B1B0003A4F070707</action>
            <action>maincpu.mq@7E50 = 012002FEEF2847B8</action>
            <action>maincpu.mq@7E58 = 08FE34012001FE35</action>
            <action>maincpu.mq@7E60 = 04FE0618F03E0420</action>
            <action>maincpu.mq@7E68 = FE787786103E0520</action>
            <action>maincpu.mq@7E70 = 20FE06187E032010</action>
            <action>maincpu.mq@7E78 = 18B80032013E0520</action>
            <action>maincpu.mq@7E80 = 00000000000000C2</action>
            <!--
            7E40 | 21 00 80 : ld   hl,$8000  // sound code address
            7E43 | 3A 02 B0 : ld   a,($B002) // read start button
            7E46 | E6 04    : and  $04
            7E48 | 07       : rlca
            7E49 | 07       : rlca
            7E4A | 07       : rlca
            7E4B | 4F       : ld   c,a
            7E4C | 3A 00 B0 : ld   a,($B000) // read other inputs
            7E4F | B1       : or   c
            7E50 | B8       : cp   b
            7E51 | 47       : ld   b,a
            7E52 | 28 EF    : jr   z,$7E43
            7E54 | FE 02    : cp   $02
            7E56 | 20 01    : jr   nz,$7E59
            7E58 | 35       : dec  (hl)      // decrease code -01
            7E59 | FE 01    : cp   $01
            7E5B | 20 01    : jr   nz,$7E5E
            7E5D | 34       : inc  (hl)      // increase code +01
            7E5E | FE 08    : cp   $08
            7E60 | 20 04    : jr   nz,$7E66
            7E62 | 3E F0    : ld   a,$F0     // decrease code -10
            7E64 | 18 06    : jr   $7E6C
            7E66 | FE 04    : cp   $04
            7E68 | 20 05    : jr   nz,$7E6F
            7E6A | 3E 10    : ld   a,$10     // increase code +10
            7E6C | 86       : add  a,(hl)
            7E6D | 77       : ld   (hl),a
            7E6E | 78       : ld   a,b
            7E6F | FE 10    : cp   $10
            7E71 | 20 03    : jr   nz,$7E76
            7E73 | 7E       : ld   a,(hl)    // play sound
            7E74 | 18 06    : jr   $7E7C
            7E76 | FE 20    : cp   $20
            7E78 | 20 05    : jr   nz,$7E7F
            7E7A | 3E 01    : ld   a,$01     // stop sound
            7E7C | 32 00 B8 : ld   ($B800),a // send sound code
            7E7F | 18 C2    : jr   $7E43
            -->
        </script>
        <script state="run">
            <output format="----- bomb jack 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="1P 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@8000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@01AB = 0205            </action>
            <action>maincpu.mq@7E40 = 0000000000000000</action>
            <action>maincpu.mq@7E48 = 0000000000000000</action>
            <action>maincpu.mq@7E50 = 0000000000000000</action>
            <action>maincpu.mq@7E58 = 0000000000000000</action>
            <action>maincpu.mq@7E60 = 0000000000000000</action>
            <action>maincpu.mq@7E68 = 0000000000000000</action>
            <action>maincpu.mq@7E70 = 0000000000000000</action>
            <action>maincpu.mq@7E78 = 0000000000000000</action>
            <action>maincpu.mq@7E80 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mb@0013 = 26</action>
        </script>
        <script state="off">
            <action>maincpu.mb@0013 = 20</action>
        </script>
    </cheat>

</mamecheat>
bombjackbl.xml

Code: Select all

<!-- Bomb Jack (bootleg) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@3625 = C3</action>
        </script>
        <script state="off">
            <action>maincpu.mb@3625 = CA</action>
        </script>
    </cheat>

    <cheat desc="gettable fire bomb only">
        <script state="on">
            <!-- bomb count -->
            <action>maincpu.mw@2012 = 7E10            </action>
            <action>maincpu.mq@7E10 = 1806000511848021</action>
            <action>maincpu.mq@7E18 = 03207ECB042076CB</action>
            <action>maincpu.mq@7E20 = C38FA03278F51019</action>
            <action>maincpu.mq@7E28 = 00000000000020C0</action>
            <!--
            7E10 | 21 80 84 : ld   hl,$8480
            7E13 | 11 05 00 : ld   de,$0005
            7E16 | 06 18    : ld   b,$18
            7E18 | CB 76    : bit  6,(hl)
            7E1A | 20 04    : jr   nz,$7E20
            7E1C | CB 7E    : bit  7,(hl)
            7E1E | 20 03    : jr   nz,$7E23
            7E20 | 19       : add  hl,de
            7E21 | 10 F5    : djnz $7E18
            7E23 | 78       : ld   a,b
            7E24 | 32 A0 8F : ld   ($8FA0),a
            7E27 | C3 C0 20 : jp   $20C0
            -->
            <!-- bomb check -->
            <action>maincpu.md@2121 = D27E30CD        </action>
            <action>maincpu.mq@7E30 = CBFD0528A78FA03A</action>
            <action>maincpu.mq@7E38 = 0000C952EDC87E00</action>
            <!--
            7E30 | 3A A0 8F    : ld   a,($8FA0)
            7E33 | A7          : and  a
            7E34 | 28 05       : jr   z,$7E3B
            7E36 | FD CB 00 7E : bit  7,(iy+$00)
            7E3A | C8          : ret  z
            7E3B | ED 52       : sbc  hl,de
            7E3D | C9          : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@2012 = 20C0            </action>
            <action>maincpu.mq@7E10 = 0000000000000000</action>
            <action>maincpu.mq@7E18 = 0000000000000000</action>
            <action>maincpu.mq@7E20 = 0000000000000000</action>
            <action>maincpu.mq@7E28 = 0000000000000000</action>
            <action>maincpu.md@2121 = D252EDB7        </action>
            <action>maincpu.mq@7E30 = 0000000000000000</action>
            <action>maincpu.mq@7E38 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.mw@01AB = 7E40            </action>
            <action>maincpu.mq@7E40 = 04E6B0023A800021</action>
            <action>maincpu.mq@7E48 = B1B0003A4F070707</action>
            <action>maincpu.mq@7E50 = 012002FEEF2847B8</action>
            <action>maincpu.mq@7E58 = 08FE34012001FE35</action>
            <action>maincpu.mq@7E60 = 04FE0618F03E0420</action>
            <action>maincpu.mq@7E68 = FE787786103E0520</action>
            <action>maincpu.mq@7E70 = 20FE06187E032010</action>
            <action>maincpu.mq@7E78 = 18B80032013E0520</action>
            <action>maincpu.mq@7E80 = 00000000000000C2</action>
            <!--
            7E40 | 21 00 80 : ld   hl,$8000  // sound code address
            7E43 | 3A 02 B0 : ld   a,($B002) // read start button
            7E46 | E6 04    : and  $04
            7E48 | 07       : rlca
            7E49 | 07       : rlca
            7E4A | 07       : rlca
            7E4B | 4F       : ld   c,a
            7E4C | 3A 00 B0 : ld   a,($B000) // read other inputs
            7E4F | B1       : or   c
            7E50 | B8       : cp   b
            7E51 | 47       : ld   b,a
            7E52 | 28 EF    : jr   z,$7E43
            7E54 | FE 02    : cp   $02
            7E56 | 20 01    : jr   nz,$7E59
            7E58 | 35       : dec  (hl)      // decrease code -01
            7E59 | FE 01    : cp   $01
            7E5B | 20 01    : jr   nz,$7E5E
            7E5D | 34       : inc  (hl)      // increase code +01
            7E5E | FE 08    : cp   $08
            7E60 | 20 04    : jr   nz,$7E66
            7E62 | 3E F0    : ld   a,$F0     // decrease code -10
            7E64 | 18 06    : jr   $7E6C
            7E66 | FE 04    : cp   $04
            7E68 | 20 05    : jr   nz,$7E6F
            7E6A | 3E 10    : ld   a,$10     // increase code +10
            7E6C | 86       : add  a,(hl)
            7E6D | 77       : ld   (hl),a
            7E6E | 78       : ld   a,b
            7E6F | FE 10    : cp   $10
            7E71 | 20 03    : jr   nz,$7E76
            7E73 | 7E       : ld   a,(hl)    // play sound
            7E74 | 18 06    : jr   $7E7C
            7E76 | FE 20    : cp   $20
            7E78 | 20 05    : jr   nz,$7E7F
            7E7A | 3E 01    : ld   a,$01     // stop sound
            7E7C | 32 00 B8 : ld   ($B800),a // send sound code
            7E7F | 18 C2    : jr   $7E43
            -->
        </script>
        <script state="run">
            <output format="----- bomb jack 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="1P 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@8000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@01AB = 0205            </action>
            <action>maincpu.mq@7E40 = 0000000000000000</action>
            <action>maincpu.mq@7E48 = 0000000000000000</action>
            <action>maincpu.mq@7E50 = 0000000000000000</action>
            <action>maincpu.mq@7E58 = 0000000000000000</action>
            <action>maincpu.mq@7E60 = 0000000000000000</action>
            <action>maincpu.mq@7E68 = 0000000000000000</action>
            <action>maincpu.mq@7E70 = 0000000000000000</action>
            <action>maincpu.mq@7E78 = 0000000000000000</action>
            <action>maincpu.mq@7E80 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mb@0013 = 26</action>
        </script>
        <script state="off">
            <action>maincpu.mb@0013 = 20</action>
        </script>
    </cheat>

</mamecheat>
"gettable fire bomb only" : Fixed bug. Previous code can't get any bomb after you die with fire bomb.
  1. get a bomb
  2. kill player
  3. re-start the game
  4. you can't get any bomb
Post Reply