[cnebula] Nebula (DECO Cassette)

This forum is for posting M.A.M.E. arcade cheats. Requests will be fulfilled here....but please keep the requests to the requests forum.
Post Reply
jman
Posts: 1008
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 4 times

[cnebula] Nebula (DECO Cassette)

Post by jman »

cnebula (DECO Cassette) will be added in 0.251.

Basic RAM codes.

Code: Select all

<cheat desc="infinite credit">
    <script state="run">
        <action>maincpu.pb@000b = 99</action>
    </script>
</cheat>

<cheat desc="infinite life">
    <script state="run">
        <action>maincpu.pb@0029 = 0a</action>
    </script>
</cheat>
The following ROM codes are wip. Required more test.

Code: Select all

<cheat desc="no hit (wip)">
    <script state="run">
        <action>maincpu.pw@153f = 6058</action> <!-- enemy -->
        <action>maincpu.pw@172d = 6058</action> <!-- meteor -->
        <action>maincpu.pw@1b21 = 6058</action> <!-- bullet -->
    </script>
    <script state="off">
        <action>maincpu.pw@153f = 45c5</action>
        <action>maincpu.pw@172d = 45c5</action>
        <action>maincpu.pw@1b21 = 45c5</action>
    </script>
</cheat>

<cheat desc="auto fire (wip)">
    <script state="run">
        <action>maincpu.pw@190c = fafa</action>
    </script>
    <script state="off">
        <action>maincpu.pw@190c = 4e25</action>
    </script>
</cheat>

<cheat desc="player speed (wip)">
    <parameter>
        <item value="0x01">01 (slow)</item>
        <item value="0x04">02       </item>
        <item value="0x08">03       </item>
        <item value="0x0c">04       </item>
        <item value="0x10">05 (fast)</item>
    </parameter>
    <script state="run">
        <action>maincpu.pb@18d1 = -param</action> <!-- up -->
        <action>maincpu.pb@18d3 =  param</action> <!-- down -->
        <action>maincpu.pb@25f2 =  param</action> <!-- right -->
        <action>maincpu.pb@25f3 = -param</action> <!-- left -->
    </script>
    <script state="off">
        <action>maincpu.pb@18d1 = fc</action>
        <action>maincpu.pb@18d3 = 04</action>
        <action>maincpu.pb@25f2 = 04</action>
        <action>maincpu.pb@25f3 = fc</action>
    </script>
</cheat>

<cheat desc="bullet speed (wip)">
    <parameter>
        <item value="0x01">01 (slow)</item>
        <item value="0x06">02       </item>
        <item value="0x09">03       </item>
        <item value="0x0c">04       </item>
        <item value="0x0f">05 (fast)</item>
    </parameter>
    <script state="run">
        <action>maincpu.pb@1b8b = param</action>
    </script>
    <script state="off">
        <action>maincpu.pb@1b8b = 06</action>
    </script>
</cheat>

<cheat desc="sound test mode (wip)">
    <!-- don't play code 0x40 due to no sound response -->
    <comment>reset the game (F3) then wait data load to enter sound test mode</comment>
    <script state="run">
        <!-- routine -->
        <action>maincpu.pw@0523 =             46c0</action>
        <action>maincpu.pq@46c0 = f011a5e600cd1185</action>
        <action>maincpu.pq@46c8 = 01b002a910c6c8f7</action>
        <action>maincpu.pq@46d0 = 08a9e801b001a9aa</action>
        <action>maincpu.pq@46d8 = 98ca10e9588a06b0</action>
        <action>maincpu.pq@46e0 = 1069188a06b004a9</action>
        <action>maincpu.pq@46e8 = 06f010a9108698ca</action>
        <action>maincpu.pq@46f0 = 148e00c205b020a9</action>
        <action>maincpu.pq@46f8 = 0000000046c02ce4</action>
        <!--
        46c0 | 85 11    : sta $11
        46c2 | ad 00 e6 : lda $e600 // read input
        46c5 | c5 11    : cmp $11
        46c7 | f0 f7    : beq $46c0
        46c9 | a8       : tay
        46ca | a6 10    : ldx $10
        46cc | c9 02    : cmp #$02
        46ce | d0 01    : bne $46d1
        46d0 | ca       : dex       // decrease code -01
        46d1 | c9 01    : cmp #$01
        46d3 | d0 01    : bne $46d6
        46d5 | e8       : inx       // increase code +01
        46d6 | c9 08    : cmp #$08
        46d8 | d0 06    : bne $46e0
        46da | 8a       : txa       // decrease code -10
        46db | 38       : sec
        46dc | e9 10    : sbc #$10
        46de | aa       : tax
        46df | 98       : tya
        46e0 | c9 04    : cmp #$04
        46e2 | d0 06    : bne $46ea
        46e4 | 8a       : txa       // increase code +10
        46e5 | 18       : clc
        46e6 | 69 10    : adc #$10
        46e8 | aa       : tax
        46e9 | 98       : tya
        46ea | 86 10    : stx $10
        46ec | c9 10    : cmp #$10
        46ee | f0 06    : beq $46f6
        46f0 | c9 40    : cmp #$20
        46f2 | d0 05    : bne $46f9
        46f4 | a2 00    : ldx #$00  // stop sound
        46f6 | 8e 14 e4 : stx $e414 // send sound code
        46f9 | 4c a0 26 : jmp $46c0
        -->
        <action>audiocpu.pb@0c75 = 58</action> <!-- enable interrupt in playing music to stop sound -->
        <!-- display -->
        <output format="----- nebula 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@0010</argument>
        </output>
    </script>
    <script state="off">
        <action> maincpu.pw@0523 =             240b</action>
        <action> maincpu.pq@46c0 = 0000000000000000</action>
        <action> maincpu.pq@46c8 = 0000000000000000</action>
        <action> maincpu.pq@46d0 = 0000000000000000</action>
        <action> maincpu.pq@46d8 = 0000000000000000</action>
        <action> maincpu.pq@46e0 = 0000000000000000</action>
        <action> maincpu.pq@46e8 = 0000000000000000</action>
        <action> maincpu.pq@46f0 = 0000000000000000</action>
        <action> maincpu.pq@46f8 = 0000000000000000</action>
        <action>audiocpu.pb@0c75 =               78</action>
    </script>
</cheat>
In "sound test mode", valid sound codes are 0x01 - 0x3f (sfx) and 0x41, 0x42 (music) but code 0x40 causes no sound response so that don't play this code.
jman

my wip cheat database back-up (2024/09/06 ver.)
https://u11.getuploader.com/uploader/download/1589
jman
Posts: 1008
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 4 times

[cnebula] Nebula

Post by jman »

Small clean up.

cnebula.xml

Code: Select all

<!-- Nebula (DECO Cassette) (UK) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="run">
            <action>maincpu.pw@153F = 6058</action> <!-- enemy -->
            <action>maincpu.pw@172D = 6058</action> <!-- meteor -->
            <action>maincpu.pw@1B21 = 6058</action> <!-- bullet -->
        </script>
        <script state="off">
            <action>maincpu.pw@153F = 45C5</action>
            <action>maincpu.pw@172D = 45C5</action>
            <action>maincpu.pw@1B21 = 45C5</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="run">
            <action>maincpu.pw@190C = EAEA</action>
        </script>
        <script state="off">
            <action>maincpu.pw@190C = 4E25</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x04">02       </item>
            <item value="0x08">03       </item>
            <item value="0x0c">04       </item>
            <item value="0x10">05 (fast)</item>
        </parameter>
        <script state="run">
            <action>maincpu.pb@18D1 = -param</action> <!-- up -->
            <action>maincpu.pb@18D3 =  param</action> <!-- down -->
            <action>maincpu.pb@25F2 =  param</action> <!-- right -->
            <action>maincpu.pb@25F3 = -param</action> <!-- left -->
        </script>
        <script state="off">
            <action>maincpu.pb@18D1 = FC</action>
            <action>maincpu.pb@18D3 = 04</action>
            <action>maincpu.pb@25F2 = 04</action>
            <action>maincpu.pb@25F3 = FC</action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x09">03       </item>
            <item value="0x0c">04       </item>
            <item value="0x0f">05 (fast)</item>
        </parameter>
        <script state="run">
            <action>maincpu.pb@1B8B = param</action>
        </script>
        <script state="off">
            <action>maincpu.pb@1B8B = 06</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- don't play code 0x40 due to no sound response -->
        <comment>reset the game (F3) then wait data load to enter sound test mode</comment>
        <script state="run">
            <!-- routine -->
            <action>maincpu.pw@0523 = 46C0            </action>
            <action>maincpu.pq@46C0 = F081A4E600CC8184</action>
            <action>maincpu.pq@46C8 = AA01B002A080C6F7</action>
            <action>maincpu.pq@46D0 = B008A0E801B001A0</action>
            <action>maincpu.pq@46D8 = 04A0CA10E9588A05</action>
            <action>maincpu.pq@46E0 = 86CA1069188A05B0</action>
            <action>maincpu.pq@46E8 = B020A006F010A080</action>
            <action>maincpu.pq@46F0 = C02CE4148E00C205</action>
            <action>maincpu.pq@46F8 = 0000000000000046</action>
            <!--
            46C0 | 84 81    : sty $81
            46C2 | AC 00 E6 : ldy $e600 // read input
            46C5 | C4 81    : cpy $81
            46C7 | F0 F7    : beq $46c0
            46C9 | A6 80    : ldx $80
            46CB | C0 02    : cpy #$02
            46CD | D0 01    : bne $46d0
            46CF | CA       : dex       // decrease code -01
            46D0 | C0 01    : cpy #$01
            46D2 | D0 01    : bne $46d5
            46D4 | E8       : inx       // increase code +01
            46D5 | C0 08    : cpy #$08
            46D7 | D0 05    : bne $46de
            46D9 | 8A       : txa       // decrease code -10
            46DA | 38       : sec
            46DB | E9 10    : sbc #$10
            46DD | AA       : tax
            46DE | C0 04    : cpy #$04
            46E0 | D0 05    : bne $46e7
            46E2 | 8A       : txa       // increase code +10
            46E3 | 18       : clc
            46E4 | 69 10    : adc #$10
            46E6 | AA       : tax
            46E7 | 86 80    : stx $80
            46E9 | C0 10    : cpy #$10
            46EB | F0 06    : beq $46f3 // play sound
            46ED | C0 20    : cpy #$20
            46EF | D0 05    : bne $46f6
            46F1 | A2 00    : ldx #$00  // stop sound
            46F3 | 8E 14 E4 : stx $e414 // send sound code
            46F6 | 4C C0 46 : jmp $46c0
            -->
            <action>audiocpu.pb@0C75 = 58</action> <!-- enable interrupt to stop sound in playing music -->
            <!-- display -->
            <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@0080</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.pw@0523 = 240B            </action>
            <action> maincpu.pq@46C0 = 0000000000000000</action>
            <action> maincpu.pq@46C8 = 0000000000000000</action>
            <action> maincpu.pq@46D0 = 0000000000000000</action>
            <action> maincpu.pq@46D8 = 0000000000000000</action>
            <action> maincpu.pq@46E0 = 0000000000000000</action>
            <action> maincpu.pq@46E8 = 0000000000000000</action>
            <action> maincpu.pq@46F0 = 0000000000000000</action>
            <action> maincpu.pq@46F8 = 0000000000000000</action>
            <action>audiocpu.pb@0C75 = 78              </action>
        </script>
    </cheat>

</mamecheat>
"sound test mode" : Rewritten routine.
jman

my wip cheat database back-up (2024/09/06 ver.)
https://u11.getuploader.com/uploader/download/1589
Post Reply