Page 1 of 1

[starforc] Star Force

Posted: Mon Jun 14, 2021 4:56 pm
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>

[starforc] update

Posted: Fri Jul 01, 2022 1:41 pm
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".

[starforc]+ Star Force

Posted: Tue Feb 27, 2024 4:24 pm
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>