[starforc] Star Force

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

[starforc] Star Force

Post by jman »

Code: Select all

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@02b6 = 00</action>
    </script>
    <script state="off">
        <action>maincpu.mb@02b6 = 08</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x3c">01 (slow)</item>
        <item value="0x1e">02       </item>
        <item value="0x0f">03       </item>
        <item value="0x07">04       </item>
        <item value="0x03">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@0f5b = param</action>
        <action>maincpu.mb@0fc7 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mb@0f5b = 3c</action>
        <action>maincpu.mb@0fc7 = 3c</action>
    </script>
</cheat>

<cheat desc="bullet speed">
    <parameter>
        <item value="0xfd">01 (slow)</item>
        <item value="0xfa">02       </item>
        <item value="0xf7">03       </item>
        <item value="0xf4">04       </item>
        <item value="0xf1">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@118c = param</action>
        <action>maincpu.mb@1197 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mb@118c = fa</action>
        <action>maincpu.mb@1197 = f8</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter test mode</comment>
    <script state="on">
        <action>maincpu.mq@0522 = 003a810022010021</action>
        <action>maincpu.mq@052a = 2002fef6286fbdd0</action>
        <action>maincpu.mq@0532 = fe24012001fe2501</action>
        <action>maincpu.mq@053a = fe0518003e042004</action>
        <action>maincpu.mq@0542 = 18d004327c042010</action>
        <action>maincpu.mq@054a = 08a7cdef18efe1da</action>
        <!--
        0522 | 21 00 01 : ld  hl,$0100   // initialize sound and input values
        0525 | 22 00 81 : ld  ($8100),hl
        0528 | 3a 00 d0 : ld  a,($d000)  // read input
        052b | bd       : cp  l
        052c | 6f       : ld  l,a
        052d | 28 f6    : jr  z,$525
        052f | fe 02    : cp  $02
        0531 | 20 01    : jr  nz,$0534
        0533 | 25       : dec h          // decrease code
        0534 | fe 01    : cp  $01
        0536 | 20 01    : jr  nz,$539
        0538 | 24       : inc h          // increase code
        0539 | fe 04    : cp  $04
        053b | 20 04    : jr  nz,$541
        053d | 3e 00    : ld  a,$00      // stop sound
        053f | 18 05    : jr  $546
        0541 | fe 10    : cp  $10
        0543 | 20 04    : jr  nz,$549
        0545 | 7c       : ld  a,h        // play sound
        0546 | 32 04 d0 : ld  ($d004),a  // send sound code
        0549 | 18 da    : jr  $525
        -->
    </script>
    <script state="run">
        <output format="----- star force 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.mq@0522 = 0e0218040e46a121</action>
        <action>maincpu.mq@052a = ff210e20b27bd700</action>
        <action>maincpu.mq@0532 = 2006233effe01193</action>
        <action>maincpu.mq@053a = fffe237ec93f39cd</action>
        <action>maincpu.mq@0542 = 19040021e512e528</action>
        <action>maincpu.mq@054a = 08a7cdef18efe171</action>
    </script>
</cheat>

<cheat desc="skip ram/rom check">
    <script state="on">
        <action>maincpu.mb@0442 = c9</action>
        <action>maincpu.mb@03fc = a7</action>
    </script>
    <script state="off">
        <action>maincpu.mb@0442 = dd</action>
        <action>maincpu.mb@03fc = a8</action>
    </script>
</cheat>
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[starforc] update

Post by jman »

Code: Select all

<cheat desc="player speed">
    <parameter>
        <item value="0x01">01 (slow)</item>
        <item value="0x02">02       </item>
        <item value="0x04">03       </item>
        <item value="0x06">04       </item>
        <item value="0x08">05 (fast)</item>
    </parameter>
    <script state="on">
        <!-- right -->
        <action>maincpu.mq@0ed2 = 0477dd0486dd003e</action> <!-- ld a,$xx / add a,(ix+$04) / ld (ix+$04),a -->
        <action>maincpu.mb@0eda =               00</action>
        <action>maincpu.mw@0efe =             00c9</action>
        <!-- left -->
        <action>maincpu.mq@0f21 = 0477dd0486dd003e</action> <!-- ld a,$xx / add a,(ix+$04) / ld (ix+$04),a -->
        <action>maincpu.mb@0f29 =               00</action>
        <action>maincpu.mb@0f4e =             00c9</action>
        <!-- up -->
        <action>maincpu.mq@0f68 = 0577dd0586dd003e</action> <!-- ld a,$xx / add a,(ix+$05) / ld (ix+$05),a -->
        <action>maincpu.mb@0f70 =               00</action>
        <action>maincpu.mb@0f8e =             00c9</action>
        <!-- down -->
        <action>maincpu.mq@0f98 = 0577dd0586dd003e</action> <!-- ld a,$xx / add a,(ix+$05) / ld (ix+$05),a -->
        <action>maincpu.mb@0fa0 =               00</action>
        <action>maincpu.mb@0fba =             00c9</action>
    </script>
    <script state="change">
        <action>maincpu.mb@0ed3 =  param</action>
        <action>maincpu.mb@0f22 = -param</action>
        <action>maincpu.mb@0f69 = -param</action>
        <action>maincpu.mb@0f99 =  param</action>
    </script>
    <script state="off">
        <action>maincpu.mq@0ed2 = 34dd0f5acdd83cfe</action>
        <action>maincpu.mb@0eda =               04</action>
        <action>maincpu.mw@0efe =             d218</action>
        <action>maincpu.mq@0f21 = 35dd0f5acdd83cfe</action>
        <action>maincpu.mb@0f29 =               04</action>
        <action>maincpu.mb@0f4e =             d118</action>
        <action>maincpu.mq@0f68 = 35dd0fc6cdd83cfe</action>
        <action>maincpu.mb@0f70 =               05</action>
        <action>maincpu.mb@0f8e =             d818</action>
        <action>maincpu.mq@0f98 = 34dd0fc6cdd83cfe</action>
        <action>maincpu.mb@0fa0 =               05</action>
        <action>maincpu.mb@0fba =             dc18</action>
    </script>
</cheat>
"player speed" : clean up.

Code: Select all

<cheat desc="bullet speed">
    <parameter>
        <item value="0x01">01 (slow)</item>
        <item value="0x06">02       </item>
        <item value="0x0c">03       </item>
        <item value="0x10">04       </item>
        <item value="0x14">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@118c = -param</action>
        <action>maincpu.mb@1197 = -param</action>
    </script>
    <script state="off">
        <action>maincpu.mb@118c = fa</action>
        <action>maincpu.mb@1197 = f8</action>
    </script>
</cheat>
"bullet speed" : adjust parameter value.

Code: Select all

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mq@0522 = 04e6d0023a810021</action>
        <action>maincpu.mq@052a = d0003a4707070707</action>
        <action>maincpu.mq@0532 = 2002feee284fb9b0</action>
        <action>maincpu.mq@053a = fe34012001fe3501</action>
        <action>maincpu.mq@0542 = fe0618f03e042008</action>
        <action>maincpu.mq@054a = 797786103e052004</action>
        <action>maincpu.mq@0552 = fe05187e032010fe</action>
        <action>maincpu.mq@055a = 18d00432af042040</action>
        <action>maincpu.mq@0562 = 00000000000000c2</action>
        <!--
        0522 | 21 00 81 : ld   hl,$8100  // sound code address
        0525 | 3a 02 d0 : ld   a,($D002) // read start button input
        0528 | e6 04    : and  $04
        052a | 07       : rlca
        052b | 07       : rlca
        052c | 07       : rlca
        052d | 07       : rlca
        052e | 47       : ld   b,a
        052f | 3a 00 d0 : ld   a,($D000) // read other inputs
        0532 | b0       : or   b
        0533 | b9       : cp   c
        0534 | 4f       : ld   c,a
        0535 | 28 ee    : jr   z,$0525
        0537 | fe 02    : cp   $02
        0539 | 20 01    : jr   nz,$053C
        053b | 35       : dec  (hl)      // decrease code -01
        053c | fe 01    : cp   $01
        053e | 20 01    : jr   nz,$0541
        0540 | 34       : inc  (hl)      // increase code +01
        0541 | fe 08    : cp   $08
        0543 | 20 04    : jr   nz,$0549
        0545 | 3e f0    : ld   a,$F0     // decrease code -10
        0547 | 18 06    : jr   $054F
        0549 | fe 04    : cp   $04
        054b | 20 05    : jr   nz,$0552
        054d | 3e 10    : ld   a,$10     // increase code +10
        054f | 86       : add  a,(hl)
        0550 | 77       : ld   (hl),a
        0551 | 79       : ld   a,c
        0552 | fe 10    : cp   $10
        0554 | 20 03    : jr   nz,$0559
        0556 | 7e       : ld   a,(hl)    // play sound
        0557 | 18 05    : jr   $055E
        0559 | fe 40    : cp   $40
        055b | 20 04    : jr   nz,$0561
        055d | af       : xor  a         // stop sound
        055e | 32 04 d0 : ld   ($D004),a // send sound code
        0561 | 18 c2    : jr   $0525
        -->
    </script>
    <script state="run">
        <output format="----- star force 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.mq@0522 = 0e0218040e46a121</action>
        <action>maincpu.mq@052a = ff210e20b27bd700</action>
        <action>maincpu.mq@0532 = 2006233effe01193</action>
        <action>maincpu.mq@053a = fffe237ec93f39cd</action>
        <action>maincpu.mq@0542 = 19040021e512e528</action>
        <action>maincpu.mq@054a = 08a7cdef18efe171</action>
        <action>maincpu.mq@0552 = 0a1180012a05f9cd</action>
        <action>maincpu.mq@055a = af21e1ddd5d71900</action>
        <action>maincpu.mq@0562 = 0036dde5dd030659</action>
        <action>maincpu.mq@056a = 0272dd0173ddd700</action>
    </script>
</cheat>
"sound test mode" : clean up. 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

[starforc]+ Star Force

Post by jman »

starforc.xml

Code: Select all

<!-- Star Force -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@1848 = C9</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1848 = 21</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@02B6 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@02B6 = 08</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="on">
            <!-- right -->
            <action>maincpu.mq@0ED2 = 0477DD0486DD003E</action> <!-- ld a,$xx / add a,(ix+$04) / ld (ix+$04),a -->
            <action>maincpu.mb@0EDA = 00              </action>
            <action>maincpu.mw@0EFE = 00C9            </action>
            <!-- left -->
            <action>maincpu.mq@0F21 = 0477DD0486DD003E</action> <!-- ld a,$xx / add a,(ix+$04) / ld (ix+$04),a -->
            <action>maincpu.mb@0F29 = 00              </action>
            <action>maincpu.mw@0F4E = 00C9            </action>
            <!-- up -->
            <action>maincpu.mq@0F68 = 0577DD0586DD003E</action> <!-- ld a,$xx / add a,(ix+$05) / ld (ix+$05),a -->
            <action>maincpu.mb@0F70 = 00              </action>
            <action>maincpu.mw@0F8E = 00C9            </action>
            <!-- down -->
            <action>maincpu.mq@0F98 = 0577DD0586DD003E</action> <!-- ld a,$xx / add a,(ix+$05) / ld (ix+$05),a -->
            <action>maincpu.mb@0FA0 = 00              </action>
            <action>maincpu.mw@0FBA = 00C9            </action>
        </script>
        <script state="change">
            <action>maincpu.mb@0ED3 =  param</action>
            <action>maincpu.mb@0F22 = -param</action>
            <action>maincpu.mb@0F69 = -param</action>
            <action>maincpu.mb@0F99 =  param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@0ED2 = 34DD0F5ACDD83CFE</action>
            <action>maincpu.mb@0EDA = 04              </action>
            <action>maincpu.mw@0EFE = D218            </action>
            <action>maincpu.mq@0F21 = 35DD0F5ACDD83CFE</action>
            <action>maincpu.mb@0F29 = 04              </action>
            <action>maincpu.mw@0F4E = D118            </action>
            <action>maincpu.mq@0F68 = 35DD0FC6CDD83CFE</action>
            <action>maincpu.mb@0F70 = 05              </action>
            <action>maincpu.mw@0F8E = D818            </action>
            <action>maincpu.mq@0F98 = 34DD0FC6CDD83CFE</action>
            <action>maincpu.mb@0FA0 = 05              </action>
            <action>maincpu.mw@0FBA = DC18            </action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x0c">03       </item>
            <item value="0x10">04       </item>
            <item value="0x14">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@118C = -param</action>
            <action>maincpu.mb@1197 = -param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@118C = FA</action>
            <action>maincpu.mb@1197 = F8</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mq@0522 = 04E6D0023A810021</action>
            <action>maincpu.mq@052A = D0003A4707070707</action>
            <action>maincpu.mq@0532 = 2002FEEE284FB9B0</action>
            <action>maincpu.mq@053A = FE34012001FE3501</action>
            <action>maincpu.mq@0542 = FE0618F03E042008</action>
            <action>maincpu.mq@054A = 797786103E052004</action>
            <action>maincpu.mq@0552 = FE05187E032010FE</action>
            <action>maincpu.mq@055A = 18D00432AF042040</action>
            <action>maincpu.mq@0562 = 00000000000000C2</action>
            <!--
            0522 | 21 00 81 : ld   hl,$8100  // sound code address
            0525 | 3A 02 D0 : ld   a,($D002) // read start button
            0528 | E6 04    : and  $04
            052A | 07       : rlca
            052B | 07       : rlca
            052C | 07       : rlca
            052D | 07       : rlca
            052E | 47       : ld   b,a
            052F | 3A 00 D0 : ld   a,($D000) // read other inputs
            0532 | B0       : or   b
            0533 | B9       : cp   c
            0534 | 4F       : ld   c,a
            0535 | 28 EE    : jr   z,$0525
            0537 | FE 02    : cp   $02
            0539 | 20 01    : jr   nz,$053C
            053B | 35       : dec  (hl)      // decrease code -01
            053C | FE 01    : cp   $01
            053E | 20 01    : jr   nz,$0541
            0540 | 34       : inc  (hl)      // increase code +01
            0541 | FE 08    : cp   $08
            0543 | 20 04    : jr   nz,$0549
            0545 | 3E F0    : ld   a,$F0     // decrease code -10
            0547 | 18 06    : jr   $054F
            0549 | FE 04    : cp   $04
            054B | 20 05    : jr   nz,$0552
            054D | 3E 10    : ld   a,$10     // increase code +10
            054F | 86       : add  a,(hl)
            0550 | 77       : ld   (hl),a
            0551 | 79       : ld   a,c
            0552 | FE 10    : cp   $10
            0554 | 20 03    : jr   nz,$0559
            0556 | 7E       : ld   a,(hl)    // play sound
            0557 | 18 05    : jr   $055E
            0559 | FE 40    : cp   $40
            055B | 20 04    : jr   nz,$0561
            055D | AF       : xor  a         // stop sound
            055E | 32 04 D0 : ld   ($D004),a // send sound code
            0561 | 18 C2    : jr   $0525
            -->
        </script>
        <script state="run">
            <output format="----- star force 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="P1 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@8100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@0522 = 0E0218040E46A121</action>
            <action>maincpu.mq@052A = FF210E20B27BD700</action>
            <action>maincpu.mq@0532 = 2006233EFFE01193</action>
            <action>maincpu.mq@053A = FFFE237EC93F39CD</action>
            <action>maincpu.mq@0542 = 19040021E512E528</action>
            <action>maincpu.mq@054A = 08A7CDEF18EFE171</action>
            <action>maincpu.mq@0552 = 0A1180012A05F9CD</action>
            <action>maincpu.mq@055A = AF21E1DDD5D71900</action>
            <action>maincpu.mq@0562 = 0036DDE5DD030659</action>
            <action>maincpu.mq@056A = 0272DD0173DDD700</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mb@03FC = A7</action>
            <action>maincpu.mb@0442 = C9</action>
        </script>
        <script state="off">
            <action>maincpu.mb@03FC = A8</action>
            <action>maincpu.mb@0442 = DD</action>
        </script>
    </cheat>

</mamecheat>
starforce.xml

Code: Select all

<!-- Star Force (encrypted, set 1) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.ob@1894 = C9</action>
        </script>
        <script state="off">
            <action>maincpu.ob@1894 = 21</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@02CA = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@02CA = 08</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="on">
            <!-- right -->
            <action>maincpu.oq@0F04 = FF77DDFF86DDFF3E</action> <!-- ld a,$xx / add a,(ix+$04) / ld (ix+$04),a -->
            <action>maincpu.mq@0F04 = 04FFFF04FFFF00FF</action>
            <action>maincpu.ob@0F0C = 00              </action>
            <action>maincpu.ow@0F30 = 00C9            </action>
            <!-- left -->
            <action>maincpu.oq@0F53 = FF77DDFF86DDFF3E</action> <!-- ld a,$xx / add a,(ix+$04) / ld (ix+$04),a -->
            <action>maincpu.mq@0F53 = 04FFFF04FFFF00FF</action>
            <action>maincpu.ob@0F5B = 00              </action>
            <action>maincpu.ow@0F80 = 00C9            </action>
            <!-- up -->
            <action>maincpu.oq@0F9A = FF77DDFF86DDFF3E</action> <!-- ld a,$xx / add a,(ix+$05) / ld (ix+$05),a -->
            <action>maincpu.mq@0F9A = 05FFFF05FFFF00FF</action>
            <action>maincpu.ob@0FA2 = 00              </action>
            <action>maincpu.ow@0FC0 = 00C9            </action>
            <!-- down -->
            <action>maincpu.oq@0FCA = FF77DDFF86DDFF3E</action> <!-- ld a,$xx / add a,(ix+$05) / ld (ix+$05),a -->
            <action>maincpu.mq@0FCA = 05FFFF05FFFF00FF</action>
            <action>maincpu.ob@0FD2 = 00              </action>
            <action>maincpu.ow@0FEC = 00C9            </action>
        </script>
        <script state="change">
            <action>maincpu.mb@0F05 =  param</action>
            <action>maincpu.mb@0F54 = -param</action>
            <action>maincpu.mb@0F9B = -param</action>
            <action>maincpu.mb@0FCB =  param</action>
        </script>
        <script state="off">
            <action>maincpu.oq@0F04 = 34DDAF04CDD83CFE</action>
            <action>maincpu.mq@0F04 = BCF50F8C45F03C76</action>
            <action>maincpu.ob@0F0C = 2C              </action>
            <action>maincpu.ow@0F30 = FA18            </action>
            <action>maincpu.oq@0F53 = 35DD272CCDD8B4FE</action>
            <action>maincpu.mq@0F53 = 1D550F8CE5503CD6</action>
            <action>maincpu.ob@0F5B = 8C              </action>
            <action>maincpu.ow@0F80 = D118            </action>
            <action>maincpu.oq@0F9A = 35DD0FD0CDD814FE</action>
            <action>maincpu.mq@0F9A = BDF50FF845F03C76</action>
            <action>maincpu.ob@0FA2 = 2D              </action>
            <action>maincpu.ow@0FC0 = F018            </action>
            <action>maincpu.oq@0FCA = 34DDAFD0CDD83CFE</action>
            <action>maincpu.mq@0FCA = BCF50FF845F03C76</action>
            <action>maincpu.ob@0FD2 = 2D              </action>
            <action>maincpu.ow@0FEC = F418            </action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x0c">03       </item>
            <item value="0x10">04       </item>
            <item value="0x14">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@11BE = -param</action>
            <action>maincpu.mb@11C9 = -param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@11BE = FA</action>
            <action>maincpu.mb@11C9 = F8</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.oq@0533 = FFE6FFFF3AFFFF21</action>
            <action>maincpu.mq@0533 = 04FFD002FF8100FF</action>
            <action>maincpu.oq@053B = FFFF3A4707070707</action>
            <action>maincpu.mq@053B = D000FFFFFFFFFFFF</action>
            <action>maincpu.oq@0543 = 20FFFEFF284FB9B0</action>
            <action>maincpu.mq@0543 = FF02FFEEFFFFFFFF</action>
            <action>maincpu.oq@054B = FE34FF20FFFE35FF</action>
            <action>maincpu.mq@054B = FFFF01FF01FFFF01</action>
            <action>maincpu.oq@0553 = FEFF18FF3EFF20FF</action>
            <action>maincpu.mq@0553 = FF06FFF03E04FF08</action>
            <action>maincpu.oq@055B = 797786FF3EFF20FF</action>
            <action>maincpu.mq@055B = FFFFFF103E05FF04</action>
            <action>maincpu.oq@0563 = FEFF187EFF20FFFE</action>
            <action>maincpu.mq@0563 = FF05FFFF03FF10FF</action>
            <action>maincpu.oq@056B = 18FFFF32AFFF20FF</action>
            <action>maincpu.mq@056B = FFD004FFFF04FF40</action>
            <action>maincpu.oq@0573 = 0000000000000000</action>
            <action>maincpu.mq@0573 = FFFFFFFFFFFFFFC2</action>
            <!--
            0533 | 21 00 81 : ld   hl,$8100  // sound code address
            0536 | 3A 02 D0 : ld   a,($D002) // read start button
            0539 | E6 04    : and  $04
            053B | 07       : rlca
            053C | 07       : rlca
            053D | 07       : rlca
            053E | 07       : rlca
            053F | 47       : ld   b,a
            0540 | 3A 00 D0 : ld   a,($D000) // read other inputs
            0543 | B0       : or   b
            0544 | B9       : cp   c
            0545 | 4F       : ld   c,a
            0546 | 28 EE    : jr   z,$0536
            0548 | FE 02    : cp   $02
            054A | 20 01    : jr   nz,$054D
            054C | 35       : dec  (hl)      // decrease code -01
            054D | FE 01    : cp   $01
            054F | 20 01    : jr   nz,$0552
            0551 | 34       : inc  (hl)      // increase code +01
            0552 | FE 08    : cp   $08
            0554 | 20 04    : jr   nz,$055A
            0556 | 3E F0    : ld   a,$F0     // decrease code -10
            0558 | 18 06    : jr   $0560
            055A | FE 04    : cp   $04
            055C | 20 05    : jr   nz,$0563
            055E | 3E 10    : ld   a,$10     // increase code +10
            0560 | 86       : add  a,(hl)
            0561 | 77       : ld   (hl),a
            0562 | 79       : ld   a,c
            0563 | FE 10    : cp   $10
            0565 | 20 03    : jr   nz,$056A
            0567 | 7E       : ld   a,(hl)    // play sound
            0568 | 18 05    : jr   $056F
            056A | FE 40    : cp   $40
            056C | 20 04    : jr   nz,$0572
            056E | AF       : xor  a         // stop sound
            056F | 32 04 D0 : ld   ($D004),a // send sound code
            0572 | 18 C2    : jr   $0536
            -->
        </script>
        <script state="run">
            <output format="----- star force 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="P1 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@8100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.oq@0533 = 0E8A188C0ECFB821</action>
            <action>maincpu.mq@0533 = 86029004864730A9</action>
            <action>maincpu.oq@053B = D7212620B27BD788</action>
            <action>maincpu.mq@053B = FFA90EA83ADBFF00</action>
            <action>maincpu.oq@0543 = A806AB3ED7401193</action>
            <action>maincpu.mq@0543 = 20A6233EFFE09993</action>
            <action>maincpu.oq@054B = D7FE237EC93F48CD</action>
            <action>maincpu.mq@054B = FFD60B7EE13FC045</action>
            <action>maincpu.oq@0553 = 198C2821E512CD28</action>
            <action>maincpu.mq@0553 = 910400A96D3AE588</action>
            <action>maincpu.oq@055B = 2030CD6718EFE171</action>
            <action>maincpu.mq@055B = 08B8E5EF90C769F9</action>
            <action>maincpu.oq@0563 = 221108892A8E22CD</action>
            <action>maincpu.mq@0563 = 0AB1800102060A45</action>
            <action>maincpu.oq@056B = 8621E1DDD5D71988</action>
            <action>maincpu.mq@056B = AEA96955FDD79100</action>
            <action>maincpu.oq@0573 = 2836DDE5DD8B0659</action>
            <action>maincpu.mq@0573 = 00BEF5E5F5038E59</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mb@0408 = B7</action>
            <action>maincpu.ob@0452 = C9</action>
        </script>
        <script state="off">
            <action>maincpu.mb@0408 = B8</action>
            <action>maincpu.ob@0452 = DD</action>
        </script>
    </cheat>

</mamecheat>
starforcb.xml

Code: Select all

<!-- Star Force (encrypted, bootleg) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.ob@1848 = C9</action>
        </script>
        <script state="off">
            <action>maincpu.ob@1848 = 21</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@02B6 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@02B6 = 08</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="on">
            <!-- right -->
            <action>maincpu.oq@0ED2 = FF77DDFF86DDFF3E</action> <!-- ld a,$xx / add a,(ix+$04) / ld (ix+$04),a -->
            <action>maincpu.mq@0ED2 = 04FFFF04FFFF00FF</action>
            <action>maincpu.ob@0EDA = 00              </action>
            <action>maincpu.ow@0EFE = 00C9            </action>
            <!-- left -->
            <action>maincpu.oq@0F21 = FF77DDFF86DDFF3E</action> <!-- ld a,$xx / add a,(ix+$04) / ld (ix+$04),a -->
            <action>maincpu.mq@0F21 = 04FFFF04FFFF00FF</action>
            <action>maincpu.ob@0F29 = 00              </action>
            <action>maincpu.ow@0F4E = 00C9            </action>
            <!-- up -->
            <action>maincpu.oq@0F68 = FF77DDFF86DDFF3E</action> <!-- ld a,$xx / add a,(ix+$05) / ld (ix+$05),a -->
            <action>maincpu.mq@0F68 = 05FFFF05FFFF00FF</action>
            <action>maincpu.ob@0F70 = 00              </action>
            <action>maincpu.ow@0F8E = 00C9            </action>
            <!-- down -->
            <action>maincpu.oq@0F98 = FF77DDFF86DDFF3E</action> <!-- ld a,$xx / add a,(ix+$05) / ld (ix+$05),a -->
            <action>maincpu.mq@0F98 = 05FFFF05FFFF00FF</action>
            <action>maincpu.ob@0FA0 = 00              </action>
            <action>maincpu.ow@0FBA = 00C9            </action>
        </script>
        <script state="change">
            <action>maincpu.mb@0ED3 =  param</action>
            <action>maincpu.mb@0F22 = -param</action>
            <action>maincpu.mb@0F69 = -param</action>
            <action>maincpu.mb@0F99 =  param</action>
        </script>
        <script state="off">
            <action>maincpu.oq@0ED2 = 34DD27FACDD8B4FE</action>
            <action>maincpu.mq@0ED2 = 1C550F5AE5503C5E</action>
            <action>maincpu.ob@0EDA = 8C              </action>
            <action>maincpu.ow@0EFE = 5A18            </action>
            <action>maincpu.oq@0F21 = 35DD27FACDD8B4FE</action>
            <action>maincpu.mq@0F21 = 1D550F5AE5503C5E</action>
            <action>maincpu.ob@0F29 = 8C              </action>
            <action>maincpu.ow@0F4E = D118            </action>
            <action>maincpu.oq@0F68 = 35DDAF4ECDD83CFE</action>
            <action>maincpu.mq@0F68 = BDF50FC645F03C76</action>
            <action>maincpu.ob@0F70 = 2D              </action>
            <action>maincpu.ow@0F8E = F018            </action>
            <action>maincpu.oq@0F98 = 34DD0F4ECDD814FE</action>
            <action>maincpu.mq@0F98 = BCF50FC645F03C76</action>
            <action>maincpu.ob@0FA0 = 2D              </action>
            <action>maincpu.ow@0FBA = 7C18            </action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x0c">03       </item>
            <item value="0x10">04       </item>
            <item value="0x14">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@118C = -param</action>
            <action>maincpu.mb@1197 = -param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@118C = FA</action>
            <action>maincpu.mb@1197 = F8</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.oq@0522 = FFE6FFFF3AFFFF21</action>
            <action>maincpu.mq@0522 = 04FFD002FF8100FF</action>
            <action>maincpu.oq@052A = FFFF3A4707070707</action>
            <action>maincpu.mq@052A = D000FFFFFFFFFFFF</action>
            <action>maincpu.oq@0532 = 20FFFEFF284FB9B0</action>
            <action>maincpu.mq@0532 = FF02FFEEFFFFFFFF</action>
            <action>maincpu.oq@053A = FE34FF20FFFE35FF</action>
            <action>maincpu.mq@053A = FFFF01FF01FFFF01</action>
            <action>maincpu.oq@0542 = FEFF18FF3EFF20FF</action>
            <action>maincpu.mq@0542 = FF06FFF03E04FF08</action>
            <action>maincpu.oq@054A = 797786FF3EFF20FF</action>
            <action>maincpu.mq@054A = FFFFFF103E05FF04</action>
            <action>maincpu.oq@0552 = FEFF187EFF20FFFE</action>
            <action>maincpu.mq@0552 = FF05FFFF03FF10FF</action>
            <action>maincpu.oq@055A = 18FFFF32AFFF20FF</action>
            <action>maincpu.mq@055A = FFD004FFFF04FF40</action>
            <action>maincpu.oq@0562 = 0000000000000000</action>
            <action>maincpu.mq@0562 = FFFFFFFFFFFFFFC2</action>
            <!--
            0522 | 21 00 81 : ld   hl,$8100  // sound code address
            0525 | 3A 02 D0 : ld   a,($D002) // read start button
            0528 | E6 04    : and  $04
            052A | 07       : rlca
            052B | 07       : rlca
            052C | 07       : rlca
            052D | 07       : rlca
            052E | 47       : ld   b,a
            052F | 3A 00 D0 : ld   a,($D000) // read other inputs
            0532 | B0       : or   b
            0533 | B9       : cp   c
            0534 | 4F       : ld   c,a
            0535 | 28 EE    : jr   z,$0525
            0537 | FE 02    : cp   $02
            0539 | 20 01    : jr   nz,$053C
            053B | 35       : dec  (hl)      // decrease code -01
            053C | FE 01    : cp   $01
            053E | 20 01    : jr   nz,$0541
            0540 | 34       : inc  (hl)      // increase code +01
            0541 | FE 08    : cp   $08
            0543 | 20 04    : jr   nz,$0549
            0545 | 3E F0    : ld   a,$F0     // decrease code -10
            0547 | 18 06    : jr   $054F
            0549 | FE 04    : cp   $04
            054B | 20 05    : jr   nz,$0552
            054D | 3E 10    : ld   a,$10     // increase code +10
            054F | 86       : add  a,(hl)
            0550 | 77       : ld   (hl),a
            0551 | 79       : ld   a,c
            0552 | FE 10    : cp   $10
            0554 | 20 03    : jr   nz,$0559
            0556 | 7E       : ld   a,(hl)    // play sound
            0557 | 18 05    : jr   $055E
            0559 | FE 40    : cp   $40
            055B | 20 04    : jr   nz,$0561
            055D | AF       : xor  a         // stop sound
            055E | 32 04 D0 : ld   ($D004),a // send sound code
            0561 | 18 C2    : jr   $0525
            -->
        </script>
        <script state="run">
            <output format="----- star force 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="P1 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@8100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.oq@0522 = 0E2A182C0E6E0121</action>
            <action>maincpu.mq@0522 = 260230042646A109</action>
            <action>maincpu.oq@052A = 7721AE20B27BD728</action>
            <action>maincpu.mq@052A = FF090E089A53D700</action>
            <action>maincpu.oq@0532 = 8006833E77C8111B</action>
            <action>maincpu.mq@0532 = 208E2316FFE03993</action>
            <action>maincpu.oq@053A = 77FE237EC9B711CD</action>
            <action>maincpu.mq@053A = FF76AB56413F39E5</action>
            <action>maincpu.oq@0542 = 192C8821E5124528</action>
            <action>maincpu.mq@0542 = 31040009CD9AE500</action>
            <action>maincpu.oq@054A = 088FCDC718EFE171</action>
            <action>maincpu.mq@054A = 08A745EF3067C959</action>
            <action>maincpu.oq@0552 = 0A11A8292A2D71CD</action>
            <action>maincpu.mq@0552 = 0A9980018A05F9E5</action>
            <action>maincpu.oq@055A = 2721E1DDD5D71928</action>
            <action>maincpu.mq@055A = AF09E1F575FF1900</action>
            <action>maincpu.oq@0562 = 8836DDE5DD2B0671</action>
            <action>maincpu.mq@0562 = 001E556D5503A659</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mb@03FC = A7</action>
            <action>maincpu.ob@0442 = C9</action>
        </script>
        <script state="off">
            <action>maincpu.mb@03FC = A8</action>
            <action>maincpu.ob@0442 = DD</action>
        </script>
    </cheat>

</mamecheat>
starforca.xml

Code: Select all

<!-- Star Force (encrypted, set 2) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.ob@1848 = C9</action>
        </script>
        <script state="off">
            <action>maincpu.ob@1848 = 21</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@02B6 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@02B6 = 08</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="on">
            <!-- right -->
            <action>maincpu.oq@0ED2 = FF77DDFF86DDFF3E</action> <!-- ld a,$xx / add a,(ix+$04) / ld (ix+$04),a -->
            <action>maincpu.mq@0ED2 = 04FFFF04FFFF00FF</action>
            <action>maincpu.ob@0EDA = 00              </action>
            <action>maincpu.ow@0EFE = 00C9            </action>
            <!-- left -->
            <action>maincpu.oq@0F21 = FF77DDFF86DDFF3E</action> <!-- ld a,$xx / add a,(ix+$04) / ld (ix+$04),a -->
            <action>maincpu.mq@0F21 = 04FFFF04FFFF00FF</action>
            <action>maincpu.ob@0F29 = 00              </action>
            <action>maincpu.ow@0F4E = 00C9            </action>
            <!-- up -->
            <action>maincpu.oq@0F68 = FF77DDFF86DDFF3E</action> <!-- ld a,$xx / add a,(ix+$05) / ld (ix+$05),a -->
            <action>maincpu.mq@0F68 = 05FFFF05FFFF00FF</action>
            <action>maincpu.ob@0F70 = 00              </action>
            <action>maincpu.ow@0F8E = 00C9            </action>
            <!-- down -->
            <action>maincpu.oq@0F98 = FF77DDFF86DDFF3E</action> <!-- ld a,$xx / add a,(ix+$05) / ld (ix+$05),a -->
            <action>maincpu.mq@0F98 = 05FFFF05FFFF00FF</action>
            <action>maincpu.ob@0FA0 = 00              </action>
            <action>maincpu.ow@0FBA = 00C9            </action>
        </script>
        <script state="change">
            <action>maincpu.mb@0ED3 =  param</action>
            <action>maincpu.mb@0F22 = -param</action>
            <action>maincpu.mb@0F69 = -param</action>
            <action>maincpu.mb@0F99 =  param</action>
        </script>
        <script state="off">
            <action>maincpu.oq@0ED2 = 34DD075ACDD894FE</action>
            <action>maincpu.mq@0ED2 = 9CDD0F5A65D83CFE</action>
            <action>maincpu.ob@0EDA = 04              </action>
            <action>maincpu.ow@0EFE = 7A18            </action>
            <action>maincpu.oq@0F21 = 35DD0F5ACDD83CFE</action>
            <action>maincpu.mq@0F21 = 35DD0F5ACDD83CFE</action>
            <action>maincpu.ob@0F29 = 04              </action>
            <action>maincpu.ow@0F4E = D118            </action>
            <action>maincpu.oq@0F68 = 35DD0FC6CDD83CFE</action>
            <action>maincpu.mq@0F68 = 35DD0FC6CDD83CFE</action>
            <action>maincpu.ob@0F70 = 05              </action>
            <action>maincpu.ow@0F8E = D818            </action>
            <action>maincpu.oq@0F98 = 34DD0FC6CDD83CFE</action>
            <action>maincpu.mq@0F98 = 34DD0FC6CDD83CFE</action>
            <action>maincpu.ob@0FA0 = 05              </action>
            <action>maincpu.ow@0FBA = DC18            </action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x0c">03       </item>
            <item value="0x10">04       </item>
            <item value="0x14">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@118C = -param</action>
            <action>maincpu.mb@1197 = -param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@118C = FA</action>
            <action>maincpu.mb@1197 = F8</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.oq@0522 = FFE6FFFF3AFFFF21</action>
            <action>maincpu.mq@0522 = 04FFD002FF8100FF</action>
            <action>maincpu.oq@052A = FFFF3A4707070707</action>
            <action>maincpu.mq@052A = D000FFFFFFFFFFFF</action>
            <action>maincpu.oq@0532 = 20FFFEFF284FB9B0</action>
            <action>maincpu.mq@0532 = FF02FFEEFFFFFFFF</action>
            <action>maincpu.oq@053A = FE34FF20FFFE35FF</action>
            <action>maincpu.mq@053A = FFFF01FF01FFFF01</action>
            <action>maincpu.oq@0542 = FEFF18FF3EFF20FF</action>
            <action>maincpu.mq@0542 = FF06FFF03E04FF08</action>
            <action>maincpu.oq@054A = 797786FF3EFF20FF</action>
            <action>maincpu.mq@054A = FFFFFF103E05FF04</action>
            <action>maincpu.oq@0552 = FEFF187EFF20FFFE</action>
            <action>maincpu.mq@0552 = FF05FFFF03FF10FF</action>
            <action>maincpu.oq@055A = 18FFFF32AFFF20FF</action>
            <action>maincpu.mq@055A = FFD004FFFF04FF40</action>
            <action>maincpu.oq@0562 = 0000000000000000</action>
            <action>maincpu.mq@0562 = FFFFFFFFFFFFFFC2</action>
            <!--
            0522 | 21 00 81 : ld   hl,$8100  // sound code address
            0525 | 3A 02 D0 : ld   a,($D002) // read start button
            0528 | E6 04    : and  $04
            052A | 07       : rlca
            052B | 07       : rlca
            052C | 07       : rlca
            052D | 07       : rlca
            052E | 47       : ld   b,a
            052F | 3A 00 D0 : ld   a,($D000) // read other inputs
            0532 | B0       : or   b
            0533 | B9       : cp   c
            0534 | 4F       : ld   c,a
            0535 | 28 EE    : jr   z,$0525
            0537 | FE 02    : cp   $02
            0539 | 20 01    : jr   nz,$053C
            053B | 35       : dec  (hl)      // decrease code -01
            053C | FE 01    : cp   $01
            053E | 20 01    : jr   nz,$0541
            0540 | 34       : inc  (hl)      // increase code +01
            0541 | FE 08    : cp   $08
            0543 | 20 04    : jr   nz,$0549
            0545 | 3E F0    : ld   a,$F0     // decrease code -10
            0547 | 18 06    : jr   $054F
            0549 | FE 04    : cp   $04
            054B | 20 05    : jr   nz,$0552
            054D | 3E 10    : ld   a,$10     // increase code +10
            054F | 86       : add  a,(hl)
            0550 | 77       : ld   (hl),a
            0551 | 79       : ld   a,c
            0552 | FE 10    : cp   $10
            0554 | 20 03    : jr   nz,$0559
            0556 | 7E       : ld   a,(hl)    // play sound
            0557 | 18 05    : jr   $055E
            0559 | FE 40    : cp   $40
            055B | 20 04    : jr   nz,$0561
            055D | AF       : xor  a         // stop sound
            055E | 32 04 D0 : ld   ($D004),a // send sound code
            0561 | 18 C2    : jr   $0525
            -->
        </script>
        <script state="run">
            <output format="----- star force 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="P1 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@8100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.oq@0522 = 0E0218040E46A121</action>
            <action>maincpu.mq@0522 = 0E0218040E46A121</action>
            <action>maincpu.oq@052A = FF210E20B27BD700</action>
            <action>maincpu.mq@052A = FF210E20B27BD700</action>
            <action>maincpu.oq@0532 = 2006233EFFE01193</action>
            <action>maincpu.mq@0532 = 2006233EFFE01193</action>
            <action>maincpu.oq@053A = FFFE237EC93F39CD</action>
            <action>maincpu.mq@053A = FFFE237EC93F39CD</action>
            <action>maincpu.oq@0542 = 19040021E512E528</action>
            <action>maincpu.mq@0542 = 19040021E512E528</action>
            <action>maincpu.oq@054A = 08A7CDEF18EFE171</action>
            <action>maincpu.mq@054A = 08A7CDEF18EFE171</action>
            <action>maincpu.oq@0552 = 0A1180012A05F9CD</action>
            <action>maincpu.mq@0552 = 0A1180012A05F9CD</action>
            <action>maincpu.oq@055A = AF21E1DDD5D71900</action>
            <action>maincpu.mq@055A = AF21E1DDD5D71900</action>
            <action>maincpu.oq@0562 = 0036DDE5DD030659</action>
            <action>maincpu.mq@0562 = 0036DDE5DD030659</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mb@03FC = A7</action>
            <action>maincpu.ob@0442 = C9</action>
        </script>
        <script state="off">
            <action>maincpu.mb@03FC = A8</action>
            <action>maincpu.ob@0442 = DD</action>
        </script>
    </cheat>

</mamecheat>
megaforc.xml

Code: Select all

<!-- Mega Force (World) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@1848 = C9</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1848 = 21</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@02B6 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@02B6 = 08</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="on">
            <!-- right -->
            <action>maincpu.mq@0ED2 = 0477DD0486DD003E</action> <!-- ld a,$xx / add a,(ix+$04) / ld (ix+$04),a -->
            <action>maincpu.mb@0EDA = 00              </action>
            <action>maincpu.mw@0EFE = 00C9            </action>
            <!-- left -->
            <action>maincpu.mq@0F21 = 0477DD0486DD003E</action> <!-- ld a,$xx / add a,(ix+$04) / ld (ix+$04),a -->
            <action>maincpu.mb@0F29 = 00              </action>
            <action>maincpu.mw@0F4E = 00C9            </action>
            <!-- up -->
            <action>maincpu.mq@0F68 = 0577DD0586DD003E</action> <!-- ld a,$xx / add a,(ix+$05) / ld (ix+$05),a -->
            <action>maincpu.mb@0F70 = 00              </action>
            <action>maincpu.mw@0F8E = 00C9            </action>
            <!-- down -->
            <action>maincpu.mq@0F98 = 0577DD0586DD003E</action> <!-- ld a,$xx / add a,(ix+$05) / ld (ix+$05),a -->
            <action>maincpu.mb@0FA0 = 00              </action>
            <action>maincpu.mw@0FBA = 00C9            </action>
        </script>
        <script state="change">
            <action>maincpu.mb@0ED3 =  param</action>
            <action>maincpu.mb@0F22 = -param</action>
            <action>maincpu.mb@0F69 = -param</action>
            <action>maincpu.mb@0F99 =  param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@0ED2 = 34DD0F5ACDD83CFE</action>
            <action>maincpu.mb@0EDA = 04              </action>
            <action>maincpu.mw@0EFE = D218            </action>
            <action>maincpu.mq@0F21 = 35DD0F5ACDD83CFE</action>
            <action>maincpu.mb@0F29 = 04              </action>
            <action>maincpu.mw@0F4E = D118            </action>
            <action>maincpu.mq@0F68 = 35DD0FC6CDD83CFE</action>
            <action>maincpu.mb@0F70 = 05              </action>
            <action>maincpu.mw@0F8E = D818            </action>
            <action>maincpu.mq@0F98 = 34DD0FC6CDD83CFE</action>
            <action>maincpu.mb@0FA0 = 05              </action>
            <action>maincpu.mw@0FBA = DC18            </action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x0c">03       </item>
            <item value="0x10">04       </item>
            <item value="0x14">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@118C = -param</action>
            <action>maincpu.mb@1197 = -param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@118C = FA</action>
            <action>maincpu.mb@1197 = F8</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mq@0522 = 04E6D0023A810021</action>
            <action>maincpu.mq@052A = D0003A4707070707</action>
            <action>maincpu.mq@0532 = 2002FEEE284FB9B0</action>
            <action>maincpu.mq@053A = FE34012001FE3501</action>
            <action>maincpu.mq@0542 = FE0618F03E042008</action>
            <action>maincpu.mq@054A = 797786103E052004</action>
            <action>maincpu.mq@0552 = FE05187E032010FE</action>
            <action>maincpu.mq@055A = 18D00432AF042040</action>
            <action>maincpu.mq@0562 = 00000000000000C2</action>
            <!--
            0522 | 21 00 81 : ld   hl,$8100  // sound code address
            0525 | 3A 02 D0 : ld   a,($D002) // read start button
            0528 | E6 04    : and  $04
            052A | 07       : rlca
            052B | 07       : rlca
            052C | 07       : rlca
            052D | 07       : rlca
            052E | 47       : ld   b,a
            052F | 3A 00 D0 : ld   a,($D000) // read other inputs
            0532 | B0       : or   b
            0533 | B9       : cp   c
            0534 | 4F       : ld   c,a
            0535 | 28 EE    : jr   z,$0525
            0537 | FE 02    : cp   $02
            0539 | 20 01    : jr   nz,$053C
            053B | 35       : dec  (hl)      // decrease code -01
            053C | FE 01    : cp   $01
            053E | 20 01    : jr   nz,$0541
            0540 | 34       : inc  (hl)      // increase code +01
            0541 | FE 08    : cp   $08
            0543 | 20 04    : jr   nz,$0549
            0545 | 3E F0    : ld   a,$F0     // decrease code -10
            0547 | 18 06    : jr   $054F
            0549 | FE 04    : cp   $04
            054B | 20 05    : jr   nz,$0552
            054D | 3E 10    : ld   a,$10     // increase code +10
            054F | 86       : add  a,(hl)
            0550 | 77       : ld   (hl),a
            0551 | 79       : ld   a,c
            0552 | FE 10    : cp   $10
            0554 | 20 03    : jr   nz,$0559
            0556 | 7E       : ld   a,(hl)    // play sound
            0557 | 18 05    : jr   $055E
            0559 | FE 40    : cp   $40
            055B | 20 04    : jr   nz,$0561
            055D | AF       : xor  a         // stop sound
            055E | 32 04 D0 : ld   ($D004),a // send sound code
            0561 | 18 C2    : jr   $0525
            -->
        </script>
        <script state="run">
            <output format="----- mega force 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="P1 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@8100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@0522 = 0E0218040E46A121</action>
            <action>maincpu.mq@052A = FF210E20B27BD700</action>
            <action>maincpu.mq@0532 = 2006233EFFE01193</action>
            <action>maincpu.mq@053A = FFFE237EC93F39CD</action>
            <action>maincpu.mq@0542 = 19040021E512E528</action>
            <action>maincpu.mq@054A = 08A7CDEF18EFE171</action>
            <action>maincpu.mq@0552 = 0A1180012A05F9CD</action>
            <action>maincpu.mq@055A = AF21E1DDD5D71900</action>
            <action>maincpu.mq@0562 = 0036DDE5DD030659</action>
            <action>maincpu.mq@056A = 0272DD0173DDD700</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mb@03FC = A7</action>
            <action>maincpu.mb@0442 = C9</action>
        </script>
        <script state="off">
            <action>maincpu.mb@03FC = A8</action>
            <action>maincpu.mb@0442 = DD</action>
        </script>
    </cheat>

</mamecheat>
megaforcu.xml

Code: Select all

<!-- Mega Force (US) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@1840 = C9</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1840 = 21</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@02B6 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@02B6 = 08</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x02">02       </item>
            <item value="0x04">03       </item>
            <item value="0x06">04       </item>
            <item value="0x08">05 (fast)</item>
        </parameter>
        <script state="on">
            <!-- right -->
            <action>maincpu.mq@0ECA = 0477DD0486DD003E</action> <!-- ld a,$xx / add a,(ix+$04) / ld (ix+$04),a -->
            <action>maincpu.mb@0ED2 = 00              </action>
            <action>maincpu.mw@0EF6 = 00C9            </action>
            <!-- left -->
            <action>maincpu.mq@0F19 = 0477DD0486DD003E</action> <!-- ld a,$xx / add a,(ix+$04) / ld (ix+$04),a -->
            <action>maincpu.mb@0F21 = 00              </action>
            <action>maincpu.mw@0F46 = 00C9            </action>
            <!-- up -->
            <action>maincpu.mq@0F60 = 0577DD0586DD003E</action> <!-- ld a,$xx / add a,(ix+$05) / ld (ix+$05),a -->
            <action>maincpu.mb@0F68 = 00              </action>
            <action>maincpu.mw@0F86 = 00C9            </action>
            <!-- down -->
            <action>maincpu.mq@0F90 = 0577DD0586DD003E</action> <!-- ld a,$xx / add a,(ix+$05) / ld (ix+$05),a -->
            <action>maincpu.mb@0F98 = 00              </action>
            <action>maincpu.mw@0FB2 = 00C9            </action>
        </script>
        <script state="change">
            <action>maincpu.mb@0ECB =  param</action>
            <action>maincpu.mb@0F1A = -param</action>
            <action>maincpu.mb@0F61 = -param</action>
            <action>maincpu.mb@0F91 =  param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@0ECA = 34DD0F5ACDD83CFE</action>
            <action>maincpu.mb@0ED2 = 04              </action>
            <action>maincpu.mw@0EF6 = D218            </action>
            <action>maincpu.mq@0F19 = 35DD0F5ACDD83CFE</action>
            <action>maincpu.mb@0F21 = 04              </action>
            <action>maincpu.mw@0F46 = D118            </action>
            <action>maincpu.mq@0F60 = 35DD0FC6CDD83CFE</action>
            <action>maincpu.mb@0F68 = 05              </action>
            <action>maincpu.mw@0F86 = D818            </action>
            <action>maincpu.mq@0F90 = 34DD0FC6CDD83CFE</action>
            <action>maincpu.mb@0F98 = 05              </action>
            <action>maincpu.mw@0FB2 = DC18            </action>
        </script>
    </cheat>

    <cheat desc="bullet speed">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x06">02       </item>
            <item value="0x0c">03       </item>
            <item value="0x10">04       </item>
            <item value="0x14">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@1184 = -param</action>
            <action>maincpu.mb@118F = -param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1184 = FA</action>
            <action>maincpu.mb@118F = F8</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mq@0513 = 04E6D0023A810021</action>
            <action>maincpu.mq@051B = D0003A4707070707</action>
            <action>maincpu.mq@0523 = 2002FEEE284FB9B0</action>
            <action>maincpu.mq@052B = FE34012001FE3501</action>
            <action>maincpu.mq@0533 = FE0618F03E042008</action>
            <action>maincpu.mq@053B = 797786103E052004</action>
            <action>maincpu.mq@0543 = FE05187E032010FE</action>
            <action>maincpu.mq@054B = 18D00432AF042040</action>
            <action>maincpu.mq@0553 = 00000000000000C2</action>
            <!--
            0513 | 21 00 81 : ld   hl,$8100  // sound code address
            0516 | 3A 02 D0 : ld   a,($D002) // read start button input
            0519 | E6 04    : and  $04
            051B | 07       : rlca
            051C | 07       : rlca
            051D | 07       : rlca
            051E | 07       : rlca
            051F | 47       : ld   b,a
            0520 | 3A 00 D0 : ld   a,($D000) // read other inputs
            0523 | B0       : or   b
            0524 | B9       : cp   c
            0525 | 4F       : ld   c,a
            0526 | 28 EE    : jr   z,$0516
            0528 | FE 02    : cp   $02
            052A | 20 01    : jr   nz,$052D
            052C | 35       : dec  (hl)      // decrease code -01
            052D | FE 01    : cp   $01
            052F | 20 01    : jr   nz,$0532
            0531 | 34       : inc  (hl)      // increase code +01
            0532 | FE 08    : cp   $08
            0534 | 20 04    : jr   nz,$053A
            0536 | 3E F0    : ld   a,$F0     // decrease code -10
            0538 | 18 06    : jr   $0540
            053A | FE 04    : cp   $04
            053C | 20 05    : jr   nz,$0543
            053E | 3E 10    : ld   a,$10     // increase code +10
            0540 | 86       : add  a,(hl)
            0541 | 77       : ld   (hl),a
            0542 | 79       : ld   a,c
            0543 | FE 10    : cp   $10
            0545 | 20 03    : jr   nz,$054A
            0547 | 7E       : ld   a,(hl)    // play sound
            0548 | 18 05    : jr   $054F
            054A | FE 40    : cp   $40
            054C | 20 04    : jr   nz,$0552
            054E | AF       : xor  a         // stop sound
            054F | 32 04 D0 : ld   ($D004),a // send sound code
            0552 | 18 C2    : jr   $0516
            -->
        </script>
        <script state="run">
            <output format="----- mega force 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="P1 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@8100</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@0513 = 0E0218040E462021</action>
            <action>maincpu.mq@051B = FF210E20B27BD700</action>
            <action>maincpu.mq@0523 = 2006233EFFE01193</action>
            <action>maincpu.mq@052B = FFFE237EC93EB4CD</action>
            <action>maincpu.mq@0533 = 19040021E512E528</action>
            <action>maincpu.mq@053B = 0898CDEF18EFE171</action>
            <action>maincpu.mq@0543 = 0A1180012A05EACD</action>
            <action>maincpu.mq@054B = AF21E1DDD5D71900</action>
            <action>maincpu.mq@0553 = 0036DDE5DD030659</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mb@0402 = 12</action>
            <action>maincpu.mb@0445 = C9</action>
        </script>
        <script state="off">
            <action>maincpu.mb@0402 = 13</action>
            <action>maincpu.mb@0445 = DD</action>
        </script>
    </cheat>

</mamecheat>
Post Reply