Page 1 of 1

[bombsa] Bombs Away (Jaleco)

Posted: Wed Apr 26, 2023 9:39 am
by jman

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mw@209c = 2b7d</action> <!-- boss -->
        <action>maincpu.mw@20e4 = 2b7d</action> <!-- middle enemy -->
        <action>maincpu.mw@2100 = 2b7d</action> <!-- enemy -->
        <action>maincpu.mw@2165 = 2b7d</action> <!-- bullet (air) -->
        <action>maincpu.mw@21e6 = 2b7d</action> <!-- bullet (ground) -->
    </script>
    <script state="off">
        <action>maincpu.mw@209c = 24e6</action>
        <action>maincpu.mw@20e4 = 24e6</action>
        <action>maincpu.mw@2100 = 24e6</action>
        <action>maincpu.mw@2165 = 24e6</action>
        <action>maincpu.mw@21e6 = 24e6</action>
    </script>
</cheat>

<cheat desc="auto fire - shot">
    <script state="on">
        <action>maincpu.mb@3874 = 76</action>
    </script>
    <script state="off">
        <action>maincpu.mb@3874 = ee</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x0080">01 (slow)</item>
        <item value="0x0180">02       </item>
        <item value="0x0280">03       </item>
        <item value="0x0380">04       </item>
        <item value="0x0480">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@34a2 = fd000021</action> <!-- up -->
        <action>maincpu.md@351a = fd000021</action> <!-- down -->
        <action>maincpu.md@3565 = fd000021</action> <!-- left -->
        <action>maincpu.md@35db = fd000021</action> <!-- right -->
    </script>
    <script state="change">
        <action>maincpu.mw@34a3 =  param</action>
        <action>maincpu.mw@351b = -param</action>
        <action>maincpu.mw@3566 = -param</action>
        <action>maincpu.mw@35dc =  param</action>
    </script>
    <script state="off">
        <action>maincpu.md@34a2 = fd190016</action>
        <action>maincpu.md@351a = fd52edb7</action>
        <action>maincpu.md@3565 = fd52edb7</action>
        <action>maincpu.md@35db = fd190016</action>
    </script>
</cheat>

<cheat desc="bullet speed">
    <parameter>
        <item value="0x01">01 (slow)</item>
        <item value="0x08">02       </item>
        <item value="0x10">03       </item>
        <item value="0x18">04       </item>
        <item value="0x20">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@3919 = param</action> <!-- normal -->
        <action>maincpu.mb@391e = param</action> <!-- normal (power-up) -->
        <action>maincpu.mb@392f = param</action> <!-- reverse -->
        <action>maincpu.mb@3934 = param</action> <!-- reverse (power-up) -->
    </script>
    <script state="off">
        <action>maincpu.mb@3919 = 0c</action>
        <action>maincpu.mb@391e = 0c</action>
        <action>maincpu.mb@392f = 0c</action>
        <action>maincpu.mb@3934 = 0c</action>
    </script>
</cheat>

<cheat desc="fast bomb">
    <script state="on">
        <action>maincpu.mw@3b26 = 3b12</action>
    </script>
    <script state="off">
        <action>maincpu.mw@3b26 = 3a95</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@01e9 =             7620</action>
        <action>maincpu.mq@7620 = 47b8e0013ad90021</action>
        <action>maincpu.mq@7628 = fe350120fdfef928</action>
        <action>maincpu.mq@7630 = 0420fbfe340120fe</action>
        <action>maincpu.mq@7638 = 0520f7fe0618f03e</action>
        <action>maincpu.mq@7640 = 20effe787786103e</action>
        <action>maincpu.mq@7648 = 0420dffe05187e03</action>
        <action>maincpu.mq@7650 = 0000cd18d00032af</action>
        <!--
        7620 | 21 00 d9 : ld  hl,$D900  // sound code address
        7623 | 3a 01 e0 : ld  a,($E001) // read input
        7626 | b8       : cp  b
        7627 | 47       : ld  b,a
        7628 | 28 f9    : jr  z,$7623
        762a | fe fd    : cp  $FD
        762c | 20 01    : jr  nz,$762F
        762e | 35       : dec (hl)      // decrease code -01
        762f | fe fe    : cp  $FE
        7631 | 20 01    : jr  nz,$7634
        7633 | 34       : inc (hl)      // increase code +01
        7634 | fe fb    : cp  $FB
        7636 | 20 04    : jr  nz,$763C
        7638 | 3e f0    : ld  a,$F0     // decrease code -10
        763a | 18 06    : jr  $7642
        763c | fe f7    : cp  $F7
        763e | 20 05    : jr  nz,$7645
        7640 | 3e 10    : ld  a,$10     // increase code +10
        7642 | 86       : add a,(hl)
        7643 | 77       : ld  (hl),a
        7644 | 78       : ld  a,b
        7645 | fe ef    : cp  $EF
        7647 | 20 03    : jr  nz,$764C
        7649 | 7e       : ld  a,(hl)    // play sound
        764a | 18 05    : jr  $7651
        764c | fe df    : cp  $DF
        764e | 20 04    : jr  nz,$7654
        7650 | af       : xor a         // stop sound
        7651 | 32 00 d0 : ld  ($D000),a // send sound code
        7654 | 18 cd    : jr  $7623
        -->
    </script>
    <script state="run">
        <output format="----- bombs away sound test mode -----" line="10" align="center" />
        <output format="left : decrease code -01"               line="11" align="center" />
        <output format="right : increase code +01"              line="12" align="center" />
        <output format="down : decrease code -10"               line="13" align="center" />
        <output format="up : increase code +10"                 line="14" align="center" />
        <output format="button 1 : play sound"                  line="15" align="center" />
        <output format="button 2 : stop sound"                  line="16" align="center" />
        <output format="----------------------------"           line="17" align="center" />
        <output format="&lt;&lt; sound code %2.2X &gt;&gt;"     line="19" align="center"  >
            <argument>maincpu.pb@d900</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@01e9 =             01c2</action>
        <action>maincpu.mq@7620 = 0000000000000000</action>
        <action>maincpu.mq@7628 = 0000000000000000</action>
        <action>maincpu.mq@7630 = 0000000000000000</action>
        <action>maincpu.mq@7638 = 0000000000000000</action>
        <action>maincpu.mq@7640 = 0000000000000000</action>
        <action>maincpu.mq@7648 = 0000000000000000</action>
        <action>maincpu.mq@7650 = 0000000000000000</action>
    </script>
</cheat>
"invincibility" in the database based on 0.245 has minor problem. "hit" sound is played when you are hit by a bullet or enemy.

[bombsa] Bombs Away (Jaleco)

Posted: Thu Nov 07, 2024 10:35 am
by jman
bombsa.xml

Code: Select all

<!-- Bombs Away (prototype) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@209C = 2B7D</action> <!-- boss -->
            <action>maincpu.mw@20E4 = 2B7D</action> <!-- middle enemy -->
            <action>maincpu.mw@2100 = 2B7D</action> <!-- enemy -->
            <action>maincpu.mw@2165 = 2B7D</action> <!-- bullet (air) -->
            <action>maincpu.mw@21E6 = 2B7D</action> <!-- bullet (ground) -->
        </script>
        <script state="off">
            <action>maincpu.mw@209C = 24E6</action>
            <action>maincpu.mw@20E4 = 24E6</action>
            <action>maincpu.mw@2100 = 24E6</action>
            <action>maincpu.mw@2165 = 24E6</action>
            <action>maincpu.mw@21E6 = 24E6</action>
        </script>
    </cheat>

    <cheat desc="rapid fire - shot">
        <script state="on">
            <action>maincpu.mb@3874 = 76</action>
        </script>
        <script state="off">
            <action>maincpu.mb@3874 = EE</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0180">02       </item>
            <item value="0x0280">03       </item>
            <item value="0x0380">04       </item>
            <item value="0x0480">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mb@34A2 = 21</action> <!-- up -->
            <action>maincpu.mb@351A = 21</action> <!-- down -->
            <action>maincpu.mb@3565 = 21</action> <!-- left -->
            <action>maincpu.mb@35DB = 21</action> <!-- right -->
        </script>
        <script state="change">
            <action>maincpu.mw@34A3 =  param</action>
            <action>maincpu.mw@351B = -param</action>
            <action>maincpu.mw@3566 = -param</action>
            <action>maincpu.mw@35DC =  param</action>
        </script>
        <script state="off">
            <action>maincpu.md@34A2 = FD190016</action>
            <action>maincpu.md@351A = FD52EDB7</action>
            <action>maincpu.md@3565 = FD52EDB7</action>
            <action>maincpu.md@35DB = FD190016</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x08">02       </item>
            <item value="0x10">03       </item>
            <item value="0x18">04       </item>
            <item value="0x20">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@3919 = param</action> <!-- normal -->
            <action>maincpu.mb@391E = param</action> <!-- normal (power-up) -->
            <action>maincpu.mb@392F = param</action> <!-- reverse -->
            <action>maincpu.mb@3934 = param</action> <!-- reverse (power-up) -->
        </script>
        <script state="off">
            <action>maincpu.mb@3919 = 0C</action>
            <action>maincpu.mb@391E = 0C</action>
            <action>maincpu.mb@392F = 0C</action>
            <action>maincpu.mb@3934 = 0C</action>
        </script>
    </cheat>

    <cheat desc="fast bomb">
        <script state="on">
            <action>maincpu.mw@3B26 = 3B12</action>
        </script>
        <script state="off">
            <action>maincpu.mw@3B26 = 3A95</action>
        </script>
    </cheat>

    <cheat desc="no bomb decrement">
        <script state="on">
            <action>maincpu.mb@3A72 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@3A72 = 3D</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@01E9 = 7620            </action>
            <action>maincpu.mq@7620 = 47B8E0013AD90021</action>
            <action>maincpu.mq@7628 = FE350120FDFEF928</action>
            <action>maincpu.mq@7630 = 0420FBFE340120FE</action>
            <action>maincpu.mq@7638 = 0520F7FE0618F03E</action>
            <action>maincpu.mq@7640 = 20EFFE787786103E</action>
            <action>maincpu.mq@7648 = 0420DFFE05187E03</action>
            <action>maincpu.mq@7650 = 0000CD18D00032AF</action>
            <!--
            7620 | 21 00 D9 : ld   hl,$D900  // sound code address
            7623 | 3A 01 E0 : ld   a,($E001) // read input
            7626 | B8       : cp   b
            7627 | 47       : ld   b,a
            7628 | 28 F9    : jr   z,$7623
            762A | FE FD    : cp   $FD
            762C | 20 01    : jr   nz,$762F
            762E | 35       : dec  (hl)      // decrease code -01
            762F | FE FE    : cp   $FE
            7631 | 20 01    : jr   nz,$7634
            7633 | 34       : inc  (hl)      // increase code +01
            7634 | FE FB    : cp   $FB
            7636 | 20 04    : jr   nz,$763C
            7638 | 3E F0    : ld   a,$F0     // decrease code -10
            763A | 18 06    : jr   $7642
            763C | FE F7    : cp   $F7
            763E | 20 05    : jr   nz,$7645
            7640 | 3E 10    : ld   a,$10     // increase code +10
            7642 | 86       : add  a,(hl)
            7643 | 77       : ld   (hl),a
            7644 | 78       : ld   a,b
            7645 | FE EF    : cp   $EF
            7647 | 20 03    : jr   nz,$764C
            7649 | 7E       : ld   a,(hl)    // play sound
            764A | 18 05    : jr   $7651
            764C | FE DF    : cp   $DF
            764E | 20 04    : jr   nz,$7654
            7650 | AF       : xor  a         // stop sound
            7651 | 32 00 D0 : ld   ($D000),a // send sound code
            7654 | 18 CD    : jr   $7623
            -->
        </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="button 2 : stop sound"             line="16" align="center" />
            <output format="----------------------------"      line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;" line="19" align="center"  >
                <argument>maincpu.pb@D900</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@01E9 = 01C2            </action>
            <action>maincpu.mq@7620 = 0000000000000000</action>
            <action>maincpu.mq@7628 = 0000000000000000</action>
            <action>maincpu.mq@7630 = 0000000000000000</action>
            <action>maincpu.mq@7638 = 0000000000000000</action>
            <action>maincpu.mq@7640 = 0000000000000000</action>
            <action>maincpu.mq@7648 = 0000000000000000</action>
            <action>maincpu.mq@7650 = 0000000000000000</action>
        </script>
    </cheat>

</mamecheat>
"no bomb decrement" : Added new.