[plusalph] Plus Alpha

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: 850
Joined: Tue Dec 01, 2020 1:24 pm

[plusalph] Plus Alpha

Post by jman »

Code: Select all

<!-- Plus Alpha -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@13b8a = 42b9</action> <!-- enemy (clr.l $f4736) -->
            <action>maincpu.mw@13b90 = 42b9</action> <!-- bullet (clr.l $f4876) -->
        </script>
        <script state="off">
            <action>maincpu.mw@13b8a = 2039</action>
            <action>maincpu.mw@13b90 = 80b9</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@14761 = 02</action>
        </script>
        <script state="off">
            <action>maincpu.mb@14761 = 06</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x00008000">01 (slow)</item>
            <item value="0x00018000">02       </item>
            <item value="0x00030000">03       </item>
            <item value="0x00048000">04       </item>
            <item value="0x00060000">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@14618 = 4eb90003cb004e71</action>
            <action>maincpu.mq@3cb00 = 243c000000002034</action>
            <action>maincpu.mq@3cb08 = 100067066a024482</action>
            <action>maincpu.mq@3cb10 = 2002243c00000000</action>
            <action>maincpu.mq@3cb18 = 2234100467066a02</action>
            <action>maincpu.mq@3cb20 = 448222024e75ffff</action>
            <!--
            3cb00 | 243c xxxx xxxx : move.l #$xxxx,D2
            3cb06 | 2034 1000      : move.l (A4,D1.w),D0
            3cb0a | 6706           : beq    $3cb12
            3cb0c | 6a02           : bpl    $3cb10
            3cb0e | 4482           : neg.l  D2
            3cb10 | 2002           : move.l D2,D0
            3cb12 | 243c xxxx xxxx : move.l #$xxxx, D2
            3cb18 | 2234 1004      : move.l ($4,A4,D1.w),D1
            3cb1c | 6706           : beq    $3cb24
            3cb1e | 6a02           : bpl    $3cb22
            3cb20 | 4482           : neg.l  D2
            3cb22 | 2202           : move.l D2,D1
            3cb24 | 4e75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.md@3cb02 = param</action>
            <action>maincpu.md@3cb14 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@14618 = 2034100022341004</action>
            <action>maincpu.mq@3CB00 = ffffffffffffffff</action>
            <action>maincpu.mq@3CB08 = ffffffffffffffff</action>
            <action>maincpu.mq@3CB10 = ffffffffffffffff</action>
            <action>maincpu.mq@3CB18 = ffffffffffffffff</action>
            <action>maincpu.mq@3CB20 = ffffffffffffffff</action>
        </script>
    </cheat>

    <cheat desc="bullet speed (test)">
        <parameter>
            <item value="0x00">01 (normal)</item>
            <item value="0x01">02         </item>
            <item value="0x02">03         </item>
            <item value="0x03">04         </item>
            <item value="0x04">05 (fast)  </item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@1479c = 7e004eb90003cb80</action>
            <action>maincpu.mq@3cb80 = 4eb900014f9a4eb9</action>
            <action>maincpu.mq@3cb88 = 0001500051cffff2</action>
            <action>maincpu.mq@3cb90 = 4e75ffffffffffff</action>
            <!--
            1479c | 7exx           : moveq #$xx,D7 
            1479e | 4eb9 0003 cb80 : jsr   $3cb80.l
            ========================================
            3cb80 | 4eb9 0001 4f9a : jsr   $14f9a.l
            3cb86 | 4eb9 0001 5000 : jsr   $15000.l
            3cb8c | 51cf fff2      : dbra  D7,$3cb80
            3cb90 | 4e75           : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@1479d = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@1479c = 610007fc6100085e</action>
            <action>maincpu.mq@3cb80 = ffffffffffffffff</action>
            <action>maincpu.mq@3cb88 = ffffffffffffffff</action>
            <action>maincpu.mq@3cb90 = ffffffffffffffff</action>
        </script>
    </cheat>

    <cheat desc="hidden item finder">
        <script state="on">
            <action>maincpu.mq@2bc52 = 586800086048357c</action>
            <!--
            2bc52 | 5868 0008 : addq.w #4,($8,A0)
            2bc56 | 6048      : bra    $2bca0
            -->
        </script>
        <script state="off">
            <action>maincpu.mq@2bc52 = 357c01a00002357c</action>
        </script>
    </cheat>

    <cheat desc="hidden bomb finder">
        <script state="on">
            <action>maincpu.mb@2bd6f = 02</action>
            <action>maincpu.mb@2bd7d = 02</action>
        </script>
        <script state="off">
            <action>maincpu.mb@2bd6f = 90</action>
            <action>maincpu.mb@2bd7d = 2c</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- you can't stop some sfxs/voices by sound stop button. code 0x2e breaks sound -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mq@01354 = 4ef90003cb304e40</action>
            <action>maincpu.mq@3cb30 = 41f9000f000043f9</action>
            <action>maincpu.mq@3cb38 = 0008430812001039</action>
            <action>maincpu.mq@3cb40 = 00080003b20067f4</action>
            <action>maincpu.mq@3cb48 = 0c0000fd66025350</action>
            <action>maincpu.mq@3cb50 = 0c0000fe66025250</action>
            <action>maincpu.mq@3cb58 = 0c0000fb66040450</action>
            <action>maincpu.mq@3cb60 = 00100c0000f76604</action>
            <action>maincpu.mq@3cb68 = 065000100c0000ef</action>
            <action>maincpu.mq@3cb70 = 660232900c0000df</action>
            <action>maincpu.mq@3cb78 = 6602425160beffff</action>
            <!--
            3cb30 | 41f9 000f 0000 : lea    $f0000.l,A0 // sound code address
            3cb36 | 43f9 0008 4308 : lea    $84308.l,A1 // sound latch address
            3cb3c | 1200           : move.b D0,D1
            3cb3e | 1039 0008 0003 : move.b $80003.l,D0 // read input
            3cb44 | b200           : cmp.b  D0,D1
            3cb46 | 67f4           : beq    $3cb3c
            3cb48 | 0c00 00fd      : cmpi.b #-$3,D0
            3cb4c | 6602           : bne    $3cb50
            3cb4e | 5350           : subq.w #1,(A0)     // decrease code -01
            3cb50 | 0c00 00fe      : cmpi.b #-$2,D0
            3cb54 | 6602           : bne    $3cb58
            3cb56 | 5250           : addq.w #1,(A0)     // increase code +01
            3cb58 | 0c00 00fb      : cmpi.b #-$5,D0
            3cb5c | 6604           : bne    $3cb62
            3cb5e | 0450 0010      : subi.w #$10,(A0)   // decrease code -10
            3cb62 | 0c00 00f7      : cmpi.b #-$9,D0
            3cb66 | 6604           : bne    $3cb6c
            3cb68 | 0650 0010      : addi.w #$10,(A0)   // increase code +10
            3cb6c | 0c00 00ef      : cmpi.b #-$11,D0
            3cb70 | 6602           : bne    $3cb74
            3cb72 | 3290           : move.w (A0),(A1)   // play sound
            3cb74 | 0c00 00df      : cmpi.b #-$21,D0
            3cb78 | 6602           : bne    $3cb7c
            3cb7a | 4251           : clr.w  (A1)        // stop sound
            3cb7c | 60be           : bra    $3cb3c
            -->
        </script>
        <script state="run">
            <output format="----- plus alpha 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 %4.4X &gt;&gt;"     line="19" align="center"  >
                <argument>maincpu.pw@f0000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@01354 = 41f9000012d64e40</action>
            <action>maincpu.mq@3cb30 = ffffffffffffffff</action>
            <action>maincpu.mq@3cb38 = ffffffffffffffff</action>
            <action>maincpu.mq@3cb40 = ffffffffffffffff</action>
            <action>maincpu.mq@3cb48 = ffffffffffffffff</action>
            <action>maincpu.mq@3cb50 = ffffffffffffffff</action>
            <action>maincpu.mq@3cb58 = ffffffffffffffff</action>
            <action>maincpu.mq@3cb60 = ffffffffffffffff</action>
            <action>maincpu.mq@3cb68 = ffffffffffffffff</action>
            <action>maincpu.mq@3cb70 = ffffffffffffffff</action>
            <action>maincpu.mq@3cb78 = ffffffffffffffff</action>
        </script>
    </cheat>

</mamecheat>
  • "bullet speed" : test code. Speed regulation for bullet is difficult.
  • "sound test mode" : you can't stop some sfxs/voices by sound stop button. Code 0x2e breaks sound.
Post Reply