[dangarj] Ufo Robo Dangar

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

[dangarj] Ufo Robo Dangar

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mw@428e = 9d42</action> <!-- wave -->
        <action>maincpu.mw@42bf = 9d42</action> <!-- bullet -->
        <action>maincpu.mw@9b2f = 9d42</action> <!-- enemy -->
    </script>
    <script state="off">
        <action>maincpu.mw@428e = 9cc5</action>
        <action>maincpu.mw@42bf = 9cc5</action>
        <action>maincpu.mw@9b2f = 9ccb</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@1a8d = 00</action>
        <action>maincpu.mb@4475 = 00</action>
    </script>
    <script state="off">
        <action>maincpu.mb@1a8d = 20</action>
        <action>maincpu.mb@4475 = 20</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter min="0x01" max="0x05" step="0x01" />
    <script state="on">
        <action>maincpu.mw@1c8d =             bb20</action> <!-- single fighter -->
        <action>maincpu.mw@1cf8 =             bb20</action> <!-- twin fighter 2 -->
        <action>maincpu.mw@1de3 =             bb20</action> <!-- twin fighter 3 -->
        <action>maincpu.mw@20f8 =             bb20</action> <!-- robot -->
        <action>maincpu.mw@249f =             bb20</action> <!-- ufo 1 -->
        <action>maincpu.mw@259a =             bb20</action> <!-- ufo 2 -->
        <action>maincpu.mw@2683 =             bb20</action> <!-- ufo 3 -->
        <action>maincpu.mq@bb20 = 02200106b7e3fd3a</action>
        <action>maincpu.mq@bb28 = 10c1289acdc50406</action>
        <action>maincpu.mq@bb30 = ffffffffffffc9f9</action>
        <!--
        bb20 | 3a fd e3 : ld   a,($E3FD) // check auto moving flag
        bb23 | b7       : or   a
        bb24 | 06 01    : ld   b,$01
        bb26 | 20 02    : jr   nz,$BB2A
        bb28 | 06 xx    : ld   b,$xx
        bb2a | c5       : push bc
        bb2b | cd 9a 28 : call $289A
        bb2e | c1       : pop  bc
        bb2f | 10 f9    : djnz $BB2A
        bb31 | c9       : ret
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@bb29 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mw@1c8d =             289a</action>
        <action>maincpu.mw@1cf8 =             289a</action>
        <action>maincpu.mw@1de3 =             289a</action>
        <action>maincpu.mw@20f8 =             289a</action>
        <action>maincpu.mw@249f =             289a</action>
        <action>maincpu.mw@259a =             289a</action>
        <action>maincpu.mw@2683 =             289a</action>
        <action>maincpu.mq@bb20 = ffffffffffffffff</action>
        <action>maincpu.mq@bb28 = ffffffffffffffff</action>
        <action>maincpu.mq@bb30 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="bullet speed - main shot">
    <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="change">
        <action>maincpu.mb@1077f = param</action> <!-- ($c77f) -->
    </script>
    <script state="off">
        <action>maincpu.mb@1077f = 04</action>
    </script>
</cheat>

<cheat desc="short hit mark">
    <script state="on">
        <action>maincpu.mb@4364 = 00</action>
    </script>
    <script state="off">
        <action>maincpu.mb@4364 = 17</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@0968 =             bb40</action>
        <action>maincpu.mq@bb40 = 2847b800dbe10021</action>
        <action>maincpu.mq@bb48 = f7fe350120fbfefa</action>
        <action>maincpu.mq@bb50 = 3e0420fdfe340120</action>
        <action>maincpu.mq@bb58 = 3e0620fefe0618f0</action>
        <action>maincpu.mq@bb60 = 20effe0f18778610</action>
        <action>maincpu.mq@bb68 = 0420dffe06187e03</action>
        <action>maincpu.mq@bb70 = ffffcd1845d33f3e</action>
        <!--
        bb40 | 21 00 e1 : ld  hl,$E100 // sound code address
        bb43 | db 00    : in  a,($00)  // read input
        bb45 | b8       : cp  b
        bb46 | 47       : ld  b,a
        bb47 | 28 fa    : jr  z,$BB43
        bb49 | fe fb    : cp  $FB
        bb4b | 20 01    : jr  nz,$BB4E
        bb4d | 35       : dec (hl)     // decrease code -01
        bb4e | fe f7    : cp  $F7
        bb50 | 20 01    : jr  nz,$BB53
        bb52 | 34       : inc (hl)     // increase code +01
        bb53 | fe fd    : cp  $FD
        bb55 | 20 04    : jr  nz,$BB5B
        bb57 | 3e f0    : ld  a,$F0    // decrease code -10
        bb59 | 18 06    : jr  $BB61
        bb5b | fe fe    : cp  $FE
        bb5d | 20 06    : jr  nz,$BB65
        bb5f | 3e 10    : ld  a,$10    // increase code +10
        bb61 | 86       : add a,(hl)
        bb62 | 77       : ld  (hl),a
        bb63 | 18 0f    : jr  $BB74
        bb65 | fe ef    : cp  $EF
        bb67 | 20 03    : jr  nz,$BB6C
        bb69 | 7e       : ld  a,(hl)   // play sound
        bb6a | 18 06    : jr  $BB72
        bb6c | fe df    : cp  $DF
        bb6e | 20 04    : jr  nz,$BB74
        bb70 | 3e 3f    : ld  a,$3F    // stop sound
        bb72 | d3 45    : out ($45),a  // send sound code
        bb74 | 18 cd    : jr  $BB43
        -->
    </script>
    <script state="run">
        <output format="----- ufo robo dangar 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="up : increase code +10"                      line="13" align="center" />
        <output format="down : decrease 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@e100</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@0968 =             08a7</action>
        <action>maincpu.mq@bb40 = ffffffffffffffff</action>
        <action>maincpu.mq@bb48 = ffffffffffffffff</action>
        <action>maincpu.mq@bb50 = ffffffffffffffff</action>
        <action>maincpu.mq@bb58 = ffffffffffffffff</action>
        <action>maincpu.mq@bb60 = ffffffffffffffff</action>
        <action>maincpu.mq@bb68 = ffffffffffffffff</action>
        <action>maincpu.mq@bb70 = ffffffffffffffff</action>
    </script>
</cheat>
<cheat desc="skip ram/rom check">
    <script state="on">
        <action>maincpu.mw@0179 = 02a9</action>
    </script>
    <script state="off">
        <action>maincpu.mw@0179 = 017e</action>
    </script>
</cheat>
jman
Posts: 842
Joined: Tue Dec 01, 2020 1:24 pm

[dangar]+ Ufo Robo Dangar

Post by jman »

dangar.xml

Code: Select all

<!-- Ufo Robo Dangar (4/09/1987) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@4643 = A10A</action> <!-- wave -->
            <action>maincpu.mw@4674 = A10A</action> <!-- bullet -->
            <action>maincpu.mw@9EF7 = A10A</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mw@4643 = A08D</action>
            <action>maincpu.mw@4674 = A08D</action>
            <action>maincpu.mw@9EF7 = A093</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@1E1B = 00</action>
            <action>maincpu.mb@482A = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1E1B = 20</action>
            <action>maincpu.mb@482A = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@2027 = BE20            </action> <!-- single fighter -->
            <action>maincpu.mw@2092 = BE20            </action> <!-- twin fighter 2 -->
            <action>maincpu.mw@20FE = BE20            </action> <!-- twin fighter 2 (formation) -->
            <action>maincpu.mw@217E = BE20            </action> <!-- twin fighter 3 -->
            <action>maincpu.mw@21EA = BE20            </action> <!-- twin fighter 3 (formation) -->
            <action>maincpu.mw@23C6 = BE20            </action> <!-- robot (formation) -->
            <action>maincpu.mw@2493 = BE20            </action> <!-- robot -->
            <action>maincpu.mw@283A = BE20            </action> <!-- ufo 1 -->
            <action>maincpu.mw@2889 = BE20            </action> <!-- ufo 1 (formation) -->
            <action>maincpu.mw@2935 = BE20            </action> <!-- ufo 2 -->
            <action>maincpu.mw@2984 = BE20            </action> <!-- ufo 2 (formation) -->
            <action>maincpu.mw@2A1E = BE20            </action> <!-- ufo 3 -->
            <action>maincpu.mw@2A7B = BE20            </action> <!-- ufo 3 (formation) -->
            <action>maincpu.mq@BE20 = 02200106B7E4003A</action>
            <action>maincpu.mq@BE28 = 10C12C4FCDC50006</action>
            <action>maincpu.mq@BE30 = FFFFFFFFFFFFC9F9</action>
            <!--
            BE20 | 3A 00 E4 : ld   a,($E400) // check auto move flag
            BE23 | B7       : or   a
            BE24 | 06 01    : ld   b,$01
            BE26 | 20 02    : jr   nz,$BE2A
            BE28 | 06 xx    : ld   b,$xx
            BE2A | C5       : push bc
            BE2B | CD 4F 2C : call $2C4F
            BE2E | C1       : pop  bc
            BE2F | 10 F9    : djnz $BE2A
            BE31 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@BE29 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@2027 = 2C4F            </action>
            <action>maincpu.mw@2092 = 2C4F            </action>
            <action>maincpu.mw@20FE = 2C4F            </action>
            <action>maincpu.mw@217E = 2C4F            </action>
            <action>maincpu.mw@21EA = 2C4F            </action>
            <action>maincpu.mw@23C6 = 2C4F            </action>
            <action>maincpu.mw@2493 = 2C4F            </action>
            <action>maincpu.mw@283A = 2C4F            </action>
            <action>maincpu.mw@2889 = 2C4F            </action>
            <action>maincpu.mw@2935 = 2C4F            </action>
            <action>maincpu.mw@2984 = 2C4F            </action>
            <action>maincpu.mw@2A1E = 2C4F            </action>
            <action>maincpu.mw@2A7B = 2C4F            </action>
            <action>maincpu.mq@BE20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BE28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BE30 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <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="change">
            <action>maincpu.mb@1077F = param</action> <!-- ($c77f) -->
        </script>
        <script state="off">
            <action>maincpu.mb@1077F = 04</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <action>maincpu.mb@4719 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@4719 = 17</action>
        </script>
    </cheat>

    <cheat desc="infinite formation attack">
        <script state="on">
            <action>maincpu.md@25B4 = 35BE80CD        </action>
            <action>maincpu.mq@BE80 = FFFFFFC934C0B77E</action>
            <!--
            BE80 | 7E : ld   a,(hl)
            BE81 | B7 : or   a
            BE82 | C0 : ret  nz
            BE83 | 34 : inc  (hl)
            BE84 | C9 : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@25B4 = 35C8B77E        </action>
            <action>maincpu.mq@BE80 = FFFFFFFFFFFFFFFF</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@0AEA = BE40            </action>
            <action>maincpu.mq@BE40 = 2847B800DBE10021</action>
            <action>maincpu.mq@BE48 = F7FE350120FBFEFA</action>
            <action>maincpu.mq@BE50 = 3E0420FDFE340120</action>
            <action>maincpu.mq@BE58 = 3E0520FEFE0618F0</action>
            <action>maincpu.mq@BE60 = 0320EFFE78778610</action>
            <action>maincpu.mq@BE68 = 3E0420DFFE06187E</action>
            <action>maincpu.mq@BE70 = FFFFFFCE1845D33F</action>
            <!--
            BE40 | 21 00 E1 : ld   hl,$E100 // sound code address
            BE43 | DB 00    : in   a,($00)  // read input
            BE45 | B8       : cp   b
            BE46 | 47       : ld   b,a
            BE47 | 28 FA    : jr   z,$BE43
            BE49 | FE FB    : cp   $FB
            BE4B | 20 01    : jr   nz,$BE4E
            BE4D | 35       : dec  (hl)     // decrease code -01
            BE4E | FE F7    : cp   $F7
            BE50 | 20 01    : jr   nz,$BE53
            BE52 | 34       : inc  (hl)     // increase code +01
            BE53 | FE FD    : cp   $FD
            BE55 | 20 04    : jr   nz,$BE5B
            BE57 | 3E F0    : ld   a,$F0    // decrease code -10
            BE59 | 18 06    : jr   $BE61
            BE5B | FE FE    : cp   $FE
            BE5D | 20 05    : jr   nz,$BE64
            BE5F | 3E 10    : ld   a,$10    // increase code +10
            BE61 | 86       : add  a,(hl)
            BE62 | 77       : ld   (hl),a
            BE63 | 78       : ld   a,b
            BE64 | FE EF    : cp   $EF
            BE66 | 20 03    : jr   nz,$BE6B
            BE68 | 7E       : ld   a,(hl)   // play sound
            BE69 | 18 06    : jr   $BE71
            BE6B | FE DF    : cp   $DF
            BE6D | 20 04    : jr   nz,$BE73
            BE6F | 3E 3F    : ld   a,$3F    // stop sound
            BE71 | D3 45    : out  ($45),a  // send sound code
            BE73 | 18 CE    : jr   $BE43
            -->
        </script>
        <script state="run">
            <output format="----- ufo robo dangar 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@E100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@0AEA = 0A29            </action>
            <action>maincpu.mq@BE40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BE48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BE50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BE58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BE60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BE68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BE70 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@01B3 = 02E3</action>
        </script>
        <script state="off">
            <action>maincpu.mw@01B3 = 01B8</action>
        </script>
    </cheat>

</mamecheat>
dangara.xml

Code: Select all

<!-- Ufo Robo Dangar (12/1/1986) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@4643 = A10A</action> <!-- wave -->
            <action>maincpu.mw@4674 = A10A</action> <!-- bullet -->
            <action>maincpu.mw@9EF7 = A10A</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mw@4643 = A08D</action>
            <action>maincpu.mw@4673 = A08D</action>
            <action>maincpu.mw@9EF7 = A093</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@1E1B = 00</action>
            <action>maincpu.mb@482A = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1E1B = 20</action>
            <action>maincpu.mb@482A = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@2027 = BE20            </action> <!-- single fighter -->
            <action>maincpu.mw@2093 = BE20            </action> <!-- twin fighter 2 -->
            <action>maincpu.mw@20FF = BE20            </action> <!-- twin fighter 2 (formation) -->
            <action>maincpu.mw@217E = BE20            </action> <!-- twin fighter 3 -->
            <action>maincpu.mw@21EA = BE20            </action> <!-- twin fighter 3 (formation) -->
            <action>maincpu.mw@23C6 = BE20            </action> <!-- robot (formation) -->
            <action>maincpu.mw@2493 = BE20            </action> <!-- robot -->
            <action>maincpu.mw@283A = BE20            </action> <!-- ufo 1 -->
            <action>maincpu.mw@2889 = BE20            </action> <!-- ufo 1 (formation) -->
            <action>maincpu.mw@2935 = BE20            </action> <!-- ufo 2 -->
            <action>maincpu.mw@2984 = BE20            </action> <!-- ufo 2 (formation) -->
            <action>maincpu.mw@2A1E = BE20            </action> <!-- ufo 3 -->
            <action>maincpu.mw@2A7B = BE20            </action> <!-- ufo 3 (formation) -->
            <action>maincpu.mq@BE20 = 02200106B7E4003A</action>
            <action>maincpu.mq@BE28 = 10C12C4FCDC50006</action>
            <action>maincpu.mq@BE30 = FFFFFFFFFFFFC9F9</action>
            <!--
            BE20 | 3A 00 E4 : ld   a,($E400) // check auto move flag
            BE23 | B7       : or   a
            BE24 | 06 01    : ld   b,$01
            BE26 | 20 02    : jr   nz,$BE2A
            BE28 | 06 xx    : ld   b,$xx
            BE2A | C5       : push bc
            BE2B | CD 4F 2C : call $2C4F
            BE2E | C1       : pop  bc
            BE2F | 10 F9    : djnz $BE2A
            BE31 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@BE29 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@2027 = 2C4F            </action>
            <action>maincpu.mw@2093 = 2C4F            </action>
            <action>maincpu.mw@20FF = 2C4F            </action>
            <action>maincpu.mw@217E = 2C4F            </action>
            <action>maincpu.mw@21EA = 2C4F            </action>
            <action>maincpu.mw@23C6 = 2C4F            </action>
            <action>maincpu.mw@2493 = 2C4F            </action>
            <action>maincpu.mw@283A = 2C4F            </action>
            <action>maincpu.mw@2889 = 2C4F            </action>
            <action>maincpu.mw@2935 = 2C4F            </action>
            <action>maincpu.mw@2984 = 2C4F            </action>
            <action>maincpu.mw@2A1E = 2C4F            </action>
            <action>maincpu.mw@2A7B = 2C4F            </action>
            <action>maincpu.mq@BE20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BE28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BE30 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <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="change">
            <action>maincpu.mb@1077F = param</action> <!-- ($c77f) -->
        </script>
        <script state="off">
            <action>maincpu.mb@1077F = 04</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <action>maincpu.mb@4719 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@4719 = 17</action>
        </script>
    </cheat>

    <cheat desc="infinite formation attack">
        <script state="on">
            <action>maincpu.md@25B4 = 35BB80CD        </action>
            <action>maincpu.mq@BB80 = FFFFFFC934C0B77E</action>
            <!--
            BB80 | 7E : ld   a,(hl)
            BB81 | B7 : or   a
            BB82 | C0 : ret  nz
            BB83 | 34 : inc  (hl)
            BB84 | C9 : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@25B4 = 35C8B77E        </action>
            <action>maincpu.mq@BB80 = FFFFFFFFFFFFFFFF</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@0AEA = BE40            </action>
            <action>maincpu.mq@BE40 = 2847B800DBE10021</action>
            <action>maincpu.mq@BE48 = F7FE350120FBFEFA</action>
            <action>maincpu.mq@BE50 = 3E0420FDFE340120</action>
            <action>maincpu.mq@BE58 = 3E0520FEFE0618F0</action>
            <action>maincpu.mq@BE60 = 0320EFFE78778610</action>
            <action>maincpu.mq@BE68 = 3E0420DFFE06187E</action>
            <action>maincpu.mq@BE70 = FFFFFFCE1845D33F</action>
            <!--
            BE40 | 21 00 E1 : ld   hl,$E100 // sound code address
            BE43 | DB 00    : in   a,($00)  // read input
            BE45 | B8       : cp   b
            BE46 | 47       : ld   b,a
            BE47 | 28 FA    : jr   z,$BE43
            BE49 | FE FB    : cp   $FB
            BE4B | 20 01    : jr   nz,$BE4E
            BE4D | 35       : dec  (hl)     // decrease code -01
            BE4E | FE F7    : cp   $F7
            BE50 | 20 01    : jr   nz,$BE53
            BE52 | 34       : inc  (hl)     // increase code +01
            BE53 | FE FD    : cp   $FD
            BE55 | 20 04    : jr   nz,$BE5B
            BE57 | 3E F0    : ld   a,$F0    // decrease code -10
            BE59 | 18 06    : jr   $BE61
            BE5B | FE FE    : cp   $FE
            BE5D | 20 05    : jr   nz,$BE64
            BE5F | 3E 10    : ld   a,$10    // increase code +10
            BE61 | 86       : add  a,(hl)
            BE62 | 77       : ld   (hl),a
            BE63 | 78       : ld   a,b
            BE64 | FE EF    : cp   $EF
            BE66 | 20 03    : jr   nz,$BE6B
            BE68 | 7E       : ld   a,(hl)   // play sound
            BE69 | 18 06    : jr   $BE71
            BE6B | FE DF    : cp   $DF
            BE6D | 20 04    : jr   nz,$BE73
            BE6F | 3E 3F    : ld   a,$3F    // stop sound
            BE71 | D3 45    : out  ($45),a  // send sound code
            BE73 | 18 CE    : jr   $BE43
            -->
        </script>
        <script state="run">
            <output format="----- ufo robo dangar 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@E100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@0AEA = 0A29            </action>
            <action>maincpu.mq@BE40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BE48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BE50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BE58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BE60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BE68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BE70 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@01B3 = 02E3</action>
        </script>
        <script state="off">
            <action>maincpu.mw@01B3 = 01B8</action>
        </script>
    </cheat>

</mamecheat>
dangarj.xml

Code: Select all

<!-- Ufo Robo Dangar (9/26/1986, Japan) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@428E = 9D42</action> <!-- wave -->
            <action>maincpu.mw@42BF = 9D42</action> <!-- bullet -->
            <action>maincpu.mw@9B2F = 9D42</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mw@428E = 9CC5</action>
            <action>maincpu.mw@42BF = 9CC5</action>
            <action>maincpu.mw@9B2F = 9CCB</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@1A8D = 00</action>
            <action>maincpu.mb@4475 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1A8D = 20</action>
            <action>maincpu.mb@4475 = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@1C8D = BB20            </action> <!-- single fighter -->
            <action>maincpu.mw@1CF8 = BB20            </action> <!-- twin fighter 2 -->
            <action>maincpu.mw@1D64 = BB20            </action> <!-- twin fighter 2 (formation) -->
            <action>maincpu.mw@1DE3 = BB20            </action> <!-- twin fighter 3 -->
            <action>maincpu.mw@1E4F = BB20            </action> <!-- twin fighter 3 (formation) -->
            <action>maincpu.mw@202B = BB20            </action> <!-- robot (formation) -->
            <action>maincpu.mw@20F8 = BB20            </action> <!-- robot -->
            <action>maincpu.mw@249F = BB20            </action> <!-- ufo 1 -->
            <action>maincpu.mw@24EE = BB20            </action> <!-- ufo 1 (formation) -->
            <action>maincpu.mw@259A = BB20            </action> <!-- ufo 2 -->
            <action>maincpu.mw@25E9 = BB20            </action> <!-- ufo 2 (formation) -->
            <action>maincpu.mw@2683 = BB20            </action> <!-- ufo 3 -->
            <action>maincpu.mw@26E0 = BB20            </action> <!-- ufo 3 (formation) -->
            <action>maincpu.mq@BB20 = 02200106B7E3FD3A</action>
            <action>maincpu.mq@BB28 = 10C1289ACDC50006</action>
            <action>maincpu.mq@BB30 = FFFFFFFFFFFFC9F9</action>
            <!--
            BB20 | 3A FD E3 : ld   a,($E3FD) // check auto move flag
            BB23 | B7       : or   a
            BB24 | 06 01    : ld   b,$01
            BB26 | 20 02    : jr   nz,$BB2A
            BB28 | 06 xx    : ld   b,$xx
            BB2A | C5       : push bc
            BB2B | CD 9A 28 : call $289A
            BB2E | C1       : pop  bc
            BB2F | 10 F9    : djnz $BB2A
            BB31 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@BB29 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@1C8D = 289A            </action>
            <action>maincpu.mw@1CF8 = 289A            </action>
            <action>maincpu.mw@1D64 = 289A            </action>
            <action>maincpu.mw@1DE3 = 289A            </action>
            <action>maincpu.mw@1E4F = 289A            </action>
            <action>maincpu.mw@202B = 289A            </action>
            <action>maincpu.mw@20F8 = 289A            </action>
            <action>maincpu.mw@249F = 289A            </action>
            <action>maincpu.mw@24EE = 289A            </action>
            <action>maincpu.mw@259A = 289A            </action>
            <action>maincpu.mw@25E9 = 289A            </action>
            <action>maincpu.mw@2683 = 289A            </action>
            <action>maincpu.mw@26E0 = 289A            </action>
            <action>maincpu.mq@BB20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BB28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BB30 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <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="change">
            <action>maincpu.mb@1077F = param</action> <!-- ($c77f) -->
        </script>
        <script state="off">
            <action>maincpu.mb@1077F = 04</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <action>maincpu.mb@4364 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@4364 = 17</action>
        </script>
    </cheat>

    <cheat desc="infinite formation attack">
        <script state="on">
            <action>maincpu.md@2219 = 35BB80CD        </action>
            <action>maincpu.mq@BB80 = FFFFFFC934C0B77E</action>
            <!--
            BB80 | 7E : ld   a,(hl)
            BB81 | B7 : or   a
            BB82 | C0 : ret  nz
            BB83 | 34 : inc  (hl)
            BB84 | C9 : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@2219 = 35C8B77E        </action>
            <action>maincpu.mq@BB80 = FFFFFFFFFFFFFFFF</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@0968 = BB40            </action>
            <action>maincpu.mq@BB40 = 2847B800DBE10021</action>
            <action>maincpu.mq@BB48 = F7FE350120FBFEFA</action>
            <action>maincpu.mq@BB50 = 3E0420FDFE340120</action>
            <action>maincpu.mq@BB58 = 3E0520FEFE0618F0</action>
            <action>maincpu.mq@BB60 = 0320EFFE78778610</action>
            <action>maincpu.mq@BB68 = 3E0420DFFE06187E</action>
            <action>maincpu.mq@BB70 = FFFFFFCE1845D33F</action>
            <!--
            BB40 | 21 00 E1 : ld   hl,$E100 // sound code address
            BB43 | DB 00    : in   a,($00)  // read input
            BB45 | B8       : cp   b
            BB46 | 47       : ld   b,a
            BB47 | 28 FA    : jr   z,$BB43
            BB49 | FE FB    : cp   $FB
            BB4B | 20 01    : jr   nz,$BB4E
            BB4D | 35       : dec  (hl)     // decrease code -01
            BB4E | FE F7    : cp   $F7
            BB50 | 20 01    : jr   nz,$BB53
            BB52 | 34       : inc  (hl)     // increase code +01
            BB53 | FE FD    : cp   $FD
            BB55 | 20 04    : jr   nz,$BB5B
            BB57 | 3E F0    : ld   a,$F0    // decrease code -10
            BB59 | 18 06    : jr   $BB61
            BB5B | FE FE    : cp   $FE
            BB5D | 20 05    : jr   nz,$BB64
            BB5F | 3E 10    : ld   a,$10    // increase code +10
            BB61 | 86       : add  a,(hl)
            BB62 | 77       : ld   (hl),a
            BB63 | 78       : ld   a,b
            BB64 | FE EF    : cp   $EF
            BB66 | 20 03    : jr   nz,$BB6B
            BB68 | 7E       : ld   a,(hl)   // play sound
            BB69 | 18 06    : jr   $BB71
            BB6B | FE DF    : cp   $DF
            BB6D | 20 04    : jr   nz,$BB73
            BB6F | 3E 3F    : ld   a,$3F    // stop sound
            BB71 | D3 45    : out  ($45),a  // send sound code
            BB73 | 18 CE    : jr   $BB43
            -->
        </script>
        <script state="run">
            <output format="----- ufo robo dangar 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@E100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@0968 = 08A7            </action>
            <action>maincpu.mq@BB40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BB48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BB50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BB58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BB60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BB68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BB70 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@0179 = 02A9</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0179 = 017E</action>
        </script>
    </cheat>

</mamecheat>
dangarb.xml

Code: Select all

<!-- Ufo Robo Dangar (9/26/1986, bootleg set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@428E = 9D42</action> <!-- wave -->
            <action>maincpu.mw@42BF = 9D42</action> <!-- bullet -->
            <action>maincpu.mw@9B2F = 9D42</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mw@428E = 9CC5</action>
            <action>maincpu.mw@42BF = 9CC5</action>
            <action>maincpu.mw@9B2F = 9CCB</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@1A8D = 00</action>
            <action>maincpu.mb@4475 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1A8D = 20</action>
            <action>maincpu.mb@4475 = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@1C8D = BB20            </action> <!-- single fighter -->
            <action>maincpu.mw@1CF8 = BB20            </action> <!-- twin fighter 2 -->
            <action>maincpu.mw@1D64 = BB20            </action> <!-- twin fighter 2 (formation) -->
            <action>maincpu.mw@1DE3 = BB20            </action> <!-- twin fighter 3 -->
            <action>maincpu.mw@1E4F = BB20            </action> <!-- twin fighter 3 (formation) -->
            <action>maincpu.mw@202B = BB20            </action> <!-- robot (formation) -->
            <action>maincpu.mw@20F8 = BB20            </action> <!-- robot -->
            <action>maincpu.mw@249F = BB20            </action> <!-- ufo 1 -->
            <action>maincpu.mw@24EE = BB20            </action> <!-- ufo 1 (formation) -->
            <action>maincpu.mw@259A = BB20            </action> <!-- ufo 2 -->
            <action>maincpu.mw@25E9 = BB20            </action> <!-- ufo 2 (formation) -->
            <action>maincpu.mw@2683 = BB20            </action> <!-- ufo 3 -->
            <action>maincpu.mw@26E0 = BB20            </action> <!-- ufo 3 (formation) -->
            <action>maincpu.mq@BB20 = 02200106B7E3FD3A</action>
            <action>maincpu.mq@BB28 = 10C1289ACDC50006</action>
            <action>maincpu.mq@BB30 = FFFFFFFFFFFFC9F9</action>
            <!--
            BB20 | 3A FD E3 : ld   a,($E3FD) // check auto move flag
            BB23 | B7       : or   a
            BB24 | 06 01    : ld   b,$01
            BB26 | 20 02    : jr   nz,$BB2A
            BB28 | 06 xx    : ld   b,$xx
            BB2A | C5       : push bc
            BB2B | CD 9A 28 : call $289A
            BB2E | C1       : pop  bc
            BB2F | 10 F9    : djnz $BB2A
            BB31 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@BB29 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@1C8D = 289A            </action>
            <action>maincpu.mw@1CF8 = 289A            </action>
            <action>maincpu.mw@1D64 = 289A            </action>
            <action>maincpu.mw@1DE3 = 289A            </action>
            <action>maincpu.mw@1E4F = 289A            </action>
            <action>maincpu.mw@202B = 289A            </action>
            <action>maincpu.mw@20F8 = 289A            </action>
            <action>maincpu.mw@249F = 289A            </action>
            <action>maincpu.mw@24EE = 289A            </action>
            <action>maincpu.mw@259A = 289A            </action>
            <action>maincpu.mw@25E9 = 289A            </action>
            <action>maincpu.mw@2683 = 289A            </action>
            <action>maincpu.mw@26E0 = 289A            </action>
            <action>maincpu.mq@BB20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BB28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BB30 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <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="change">
            <action>maincpu.mb@1077F = param</action> <!-- ($c77f) -->
        </script>
        <script state="off">
            <action>maincpu.mb@1077F = 04</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <action>maincpu.mb@4364 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@4364 = 17</action>
        </script>
    </cheat>

    <cheat desc="infinite formation attack">
        <script state="on">
            <action>maincpu.md@2219 = 35BB80CD        </action>
            <action>maincpu.mq@BB80 = FFFFFFC934C0B77E</action>
            <!--
            BB80 | 7E : ld   a,(hl)
            BB81 | B7 : or   a
            BB82 | C0 : ret  nz
            BB83 | 34 : inc  (hl)
            BB84 | C9 : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@2219 = 35C8B77E        </action>
            <action>maincpu.mq@BB80 = FFFFFFFFFFFFFFFF</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@0968 = BB40            </action>
            <action>maincpu.mq@BB40 = 2847B800DBE10021</action>
            <action>maincpu.mq@BB48 = F7FE350120FBFEFA</action>
            <action>maincpu.mq@BB50 = 3E0420FDFE340120</action>
            <action>maincpu.mq@BB58 = 3E0520FEFE0618F0</action>
            <action>maincpu.mq@BB60 = 0320EFFE78778610</action>
            <action>maincpu.mq@BB68 = 3E0420DFFE06187E</action>
            <action>maincpu.mq@BB70 = FFFFFFCE1845D33F</action>
            <!--
            BB40 | 21 00 E1 : ld   hl,$E100 // sound code address
            BB43 | DB 00    : in   a,($00)  // read input
            BB45 | B8       : cp   b
            BB46 | 47       : ld   b,a
            BB47 | 28 FA    : jr   z,$BB43
            BB49 | FE FB    : cp   $FB
            BB4B | 20 01    : jr   nz,$BB4E
            BB4D | 35       : dec  (hl)     // decrease code -01
            BB4E | FE F7    : cp   $F7
            BB50 | 20 01    : jr   nz,$BB53
            BB52 | 34       : inc  (hl)     // increase code +01
            BB53 | FE FD    : cp   $FD
            BB55 | 20 04    : jr   nz,$BB5B
            BB57 | 3E F0    : ld   a,$F0    // decrease code -10
            BB59 | 18 06    : jr   $BB61
            BB5B | FE FE    : cp   $FE
            BB5D | 20 05    : jr   nz,$BB64
            BB5F | 3E 10    : ld   a,$10    // increase code +10
            BB61 | 86       : add  a,(hl)
            BB62 | 77       : ld   (hl),a
            BB63 | 78       : ld   a,b
            BB64 | FE EF    : cp   $EF
            BB66 | 20 03    : jr   nz,$BB6B
            BB68 | 7E       : ld   a,(hl)   // play sound
            BB69 | 18 06    : jr   $BB71
            BB6B | FE DF    : cp   $DF
            BB6D | 20 04    : jr   nz,$BB73
            BB6F | 3E 3F    : ld   a,$3F    // stop sound
            BB71 | D3 45    : out  ($45),a  // send sound code
            BB73 | 18 CE    : jr   $BB43
            -->
        </script>
        <script state="run">
            <output format="----- ufo robo dangar 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@E100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@0968 = 08A7            </action>
            <action>maincpu.mq@BB40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BB48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BB50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BB58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BB60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BB68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BB70 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@0179 = 02A9</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0179 = 017E</action>
        </script>
    </cheat>

</mamecheat>
dangarbt.xml

Code: Select all

<!-- Ufo Robo Dangar (9/26/1986, bootleg set 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mw@428E = 9D42</action> <!-- wave -->
            <action>maincpu.mw@42BF = 9D42</action> <!-- bullet -->
            <action>maincpu.mw@9B2F = 9D42</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mw@428E = 9CC5</action>
            <action>maincpu.mw@42BF = 9CC5</action>
            <action>maincpu.mw@9B2F = 9CCB</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@1A8D = 00</action>
            <action>maincpu.mb@4475 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1A8D = 20</action>
            <action>maincpu.mb@4475 = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.mw@1C8D = BB20            </action> <!-- single fighter -->
            <action>maincpu.mw@1CF8 = BB20            </action> <!-- twin fighter 2 -->
            <action>maincpu.mw@1D64 = BB20            </action> <!-- twin fighter 2 (formation) -->
            <action>maincpu.mw@1DE3 = BB20            </action> <!-- twin fighter 3 -->
            <action>maincpu.mw@1E4F = BB20            </action> <!-- twin fighter 3 (formation) -->
            <action>maincpu.mw@202B = BB20            </action> <!-- robot (formation) -->
            <action>maincpu.mw@20F8 = BB20            </action> <!-- robot -->
            <action>maincpu.mw@249F = BB20            </action> <!-- ufo 1 -->
            <action>maincpu.mw@24EE = BB20            </action> <!-- ufo 1 (formation) -->
            <action>maincpu.mw@259A = BB20            </action> <!-- ufo 2 -->
            <action>maincpu.mw@25E9 = BB20            </action> <!-- ufo 2 (formation) -->
            <action>maincpu.mw@2683 = BB20            </action> <!-- ufo 3 -->
            <action>maincpu.mw@26E0 = BB20            </action> <!-- ufo 3 (formation) -->
            <action>maincpu.mq@BB20 = 02200106B7E3FD3A</action>
            <action>maincpu.mq@BB28 = 10C1289ACDC50006</action>
            <action>maincpu.mq@BB30 = FFFFFFFFFFFFC9F9</action>
            <!--
            BB20 | 3A FD E3 : ld   a,($E3FD) // check auto move flag
            BB23 | B7       : or   a
            BB24 | 06 01    : ld   b,$01
            BB26 | 20 02    : jr   nz,$BB2A
            BB28 | 06 xx    : ld   b,$xx
            BB2A | C5       : push bc
            BB2B | CD 9A 28 : call $289A
            BB2E | C1       : pop  bc
            BB2F | 10 F9    : djnz $BB2A
            BB31 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@BB29 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mw@1C8D = 289A            </action>
            <action>maincpu.mw@1CF8 = 289A            </action>
            <action>maincpu.mw@1D64 = 289A            </action>
            <action>maincpu.mw@1DE3 = 289A            </action>
            <action>maincpu.mw@1E4F = 289A            </action>
            <action>maincpu.mw@202B = 289A            </action>
            <action>maincpu.mw@20F8 = 289A            </action>
            <action>maincpu.mw@249F = 289A            </action>
            <action>maincpu.mw@24EE = 289A            </action>
            <action>maincpu.mw@259A = 289A            </action>
            <action>maincpu.mw@25E9 = 289A            </action>
            <action>maincpu.mw@2683 = 289A            </action>
            <action>maincpu.mw@26E0 = 289A            </action>
            <action>maincpu.mq@BB20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BB28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BB30 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <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="change">
            <action>maincpu.mb@1077F = param</action> <!-- ($c77f) -->
        </script>
        <script state="off">
            <action>maincpu.mb@1077F = 04</action>
        </script>
    </cheat>

    <cheat desc="short hit mark">
        <script state="on">
            <action>maincpu.mb@4364 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@4364 = 17</action>
        </script>
    </cheat>

    <cheat desc="infinite formation attack">
        <script state="on">
            <action>maincpu.md@2219 = 35BB80CD        </action>
            <action>maincpu.mq@BB80 = FFFFFFC934C0B77E</action>
            <!--
            BB80 | 7E : ld   a,(hl)
            BB81 | B7 : or   a
            BB82 | C0 : ret  nz
            BB83 | 34 : inc  (hl)
            BB84 | C9 : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@2219 = 35C8B77E        </action>
            <action>maincpu.mq@BB80 = FFFFFFFFFFFFFFFF</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@0968 = BB40            </action>
            <action>maincpu.mq@BB40 = 2847B800DBE10021</action>
            <action>maincpu.mq@BB48 = F7FE350120FBFEFA</action>
            <action>maincpu.mq@BB50 = 3E0420FDFE340120</action>
            <action>maincpu.mq@BB58 = 3E0520FEFE0618F0</action>
            <action>maincpu.mq@BB60 = 0320EFFE78778610</action>
            <action>maincpu.mq@BB68 = 3E0420DFFE06187E</action>
            <action>maincpu.mq@BB70 = FFFFFFCE1845D33F</action>
            <!--
            BB40 | 21 00 E1 : ld   hl,$E100 // sound code address
            BB43 | DB 00    : in   a,($00)  // read input
            BB45 | B8       : cp   b
            BB46 | 47       : ld   b,a
            BB47 | 28 FA    : jr   z,$BB43
            BB49 | FE FB    : cp   $FB
            BB4B | 20 01    : jr   nz,$BB4E
            BB4D | 35       : dec  (hl)     // decrease code -01
            BB4E | FE F7    : cp   $F7
            BB50 | 20 01    : jr   nz,$BB53
            BB52 | 34       : inc  (hl)     // increase code +01
            BB53 | FE FD    : cp   $FD
            BB55 | 20 04    : jr   nz,$BB5B
            BB57 | 3E F0    : ld   a,$F0    // decrease code -10
            BB59 | 18 06    : jr   $BB61
            BB5B | FE FE    : cp   $FE
            BB5D | 20 05    : jr   nz,$BB64
            BB5F | 3E 10    : ld   a,$10    // increase code +10
            BB61 | 86       : add  a,(hl)
            BB62 | 77       : ld   (hl),a
            BB63 | 78       : ld   a,b
            BB64 | FE EF    : cp   $EF
            BB66 | 20 03    : jr   nz,$BB6B
            BB68 | 7E       : ld   a,(hl)   // play sound
            BB69 | 18 06    : jr   $BB71
            BB6B | FE DF    : cp   $DF
            BB6D | 20 04    : jr   nz,$BB73
            BB6F | 3E 3F    : ld   a,$3F    // stop sound
            BB71 | D3 45    : out  ($45),a  // send sound code
            BB73 | 18 CE    : jr   $BB43
            -->
        </script>
        <script state="run">
            <output format="----- ufo robo dangar 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@E100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@0968 = 08A7            </action>
            <action>maincpu.mq@BB40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BB48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BB50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BB58 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BB60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BB68 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@BB70 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@0179 = 02A9</action>
        </script>
        <script state="off">
            <action>maincpu.mw@0179 = 017E</action>
        </script>
    </cheat>

</mamecheat>
"player speed" : Fixed speed change in formation attack.
Post Reply