[tokio] Tokio/Scramble Formation

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: 869
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 1 time

[tokio] Tokio/Scramble Formation

Post by jman »

Code: Select all

<cheat desc="no hit - player">
    <script state="on">
        <action>subcpu.mb@493d = c9</action>
    </script>
    <script state="off">
        <action>subcpu.mb@493d = d0</action>
    </script>
</cheat>

<cheat desc="no hit - sidefighters">
    <comment>also sidefigher attack (button 1 + 2) is &quot;no hit&quot;</comment>
    <script state="on">
        <action>subcpu.mb@49b1 = 18</action>
    </script>
    <script state="off">
        <action>subcpu.mb@49b1 = 30</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <!-- common -->
        <action>maincpu.mb@36a8 = 01</action>
        <!-- shot -->
        <action>maincpu.mb@5f81 = 01</action>
        <action>maincpu.mb@5fc5 = 01</action>
        <action>maincpu.mb@600e = 01</action>
        <action>maincpu.mb@607d = 01</action>
        <!-- bomb -->
        <action>maincpu.mb@65f9 = 01</action>
    </script>
    <script state="off">
        <action>maincpu.mb@36a8 = 23</action>
        <action>maincpu.mb@5f81 = 08</action>
        <action>maincpu.mb@5fc5 = 08</action>
        <action>maincpu.mb@600e = 08</action>
        <action>maincpu.mb@607d = 09</action>
        <action>maincpu.mb@65f9 = 0a</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x0100">01 (slow)</item>
        <item value="0x0200">02       </item>
        <item value="0x0400">03       </item>
        <item value="0x0600">04       </item>
        <item value="0x0800">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@4bac = 2a000011</action> <!-- up -->
        <action>maincpu.md@4be5 = 2a000011</action> <!-- down -->
        <action>maincpu.md@4c53 = 2a000011</action> <!-- left -->
        <action>maincpu.md@4c1e = 2a000011</action> <!-- right -->
        <action>maincpu.md@4c8d = 2a000011</action> <!-- upper-right -->
        <action>maincpu.md@4cce = 2a000011</action> <!-- upper-left -->
        <action>maincpu.md@4d11 = 2a000011</action> <!-- lower-right -->
        <action>maincpu.md@4d50 = 2a000011</action> <!-- lower-left -->
    </script>
    <script state="change">
        <action>maincpu.mw@4bad = param</action>
        <action>maincpu.mw@4be6 = param</action>
        <action>maincpu.mw@4c54 = param</action>
        <action>maincpu.mw@4c1f = param</action>
        <action>maincpu.mw@4c8e = param</action>
        <action>maincpu.mw@4ccf = param</action>
        <action>maincpu.mw@4d12 = param</action>
        <action>maincpu.mw@4d51 = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@4bac = 2a56235e</action>
        <action>maincpu.md@4be5 = 2a56235e</action>
        <action>maincpu.md@4c53 = 2a56235e</action>
        <action>maincpu.md@4c1e = 2a56235e</action>
        <action>maincpu.md@4c8d = 2a56235e</action>
        <action>maincpu.md@4cce = 2a56235e</action>
        <action>maincpu.md@4d11 = 2a56235e</action>
        <action>maincpu.md@4d50 = 2a56235e</action>
    </script>
</cheat>

<cheat desc="bullet speed - shot">
    <parameter>
        <item value="0x01">01 (slow)</item>
        <item value="0x08">02       </item>
        <item value="0x10">03       </item>
        <item value="0x18">04       </item>
        <item value="0x20">05 (fast)</item>
    </parameter>
    <script state="change">
        <action>maincpu.mb@5da7 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mb@5da7 = 07</action>
    </script>
</cheat>

<cheat desc="secret item finder (test)">
    <!-- unsafe custome routine on banked rom -->
    <script state="on">
        <action>maincpu.md@07c08 =         209d60cd</action>
        <action>maincpu.mq@2dd60 = fee17e09e61621e5</action>
        <action>maincpu.mq@2dd68 = ffffc906fe7ec8ff</action>
        <!--
        9d60 | e5       : push hl
        9d61 | 21 16 e6 : ld   hl,$E616
        9d64 | 09       : add  hl,bc
        9d65 | 7e       : ld   a,(hl)
        9d66 | e1       : pop  hl
        9d67 | fe ff    : cp   $FF
        9d69 | c8       : ret  z
        9d6a | 7e       : ld   a,(hl)
        9d6b | fe 06    : cp   $06
        9d6d | c9       : ret
        -->
    </script>
    <script state="off">
        <action>maincpu.md@07c08 =         2006fe7e</action>
        <action>maincpu.mq@2dd60 = ffffffffffffffff</action>
        <action>maincpu.mq@2dd68 = ffffffffffffffff</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@00b35 = 009130c3fa8032af</action>
        <action>maincpu.mq@11130 = ef3efc0011e00021</action>
        <action>maincpu.mq@11138 = b8fa063afa003212</action>
        <action>maincpu.mq@11140 = 350120fefef62847</action>
        <action>maincpu.mq@11148 = 20fbfe340120fdfe</action>
        <action>maincpu.mq@11150 = 20f7fe0618f03e04</action>
        <action>maincpu.mq@11158 = dffe787786103e05</action>
        <action>maincpu.mq@11160 = 20effe78127e0320</action>
        <action>maincpu.mq@11168 = ffffffcc1812af02</action>
        <!--
        0b35 | af       : xor a
        0b36 | 32 80 fa : ld  ($FA80),a // set bank
        0b39 | c3 30 91 : jp  $9130
        ===============================
        9130 | 21 00 e0 :ld   hl,$E000  // sound code address
        9133 | 11 00 fc : ld  de,$FC00  // sound latch address
        9136 | 3e ef    : ld  a,$EF
        9138 | 12       : ld  (de),a    // enable sound
        9139 | 32 00 fa : ld  ($FA00),a // watchdog
        913c | 3a 06 fa : ld  a,($FA06) // read input
        913f | b8       : cp  b
        9140 | 47       : ld  b,a
        9141 | 28 f6    : jr  z,$9139
        9143 | fe fe    : cp  $FE
        9145 | 20 01    : jr  nz,$9148
        9147 | 35       : dec (hl)      // decrease code -01
        9148 | fe fd    : cp  $FD
        914a | 20 01    : jr  nz,$914D
        914c | 34       : inc (hl)      // increase code +01
        914d | fe fb    : cp  $FB
        914f | 20 04    : jr  nz,$9155
        9151 | 3e f0    : ld  a,$F0     // decrease code -10
        9153 | 18 06    : jr  $915B
        9155 | fe f7    : cp  $F7
        9157 | 20 05    : jr  nz,$915E
        9159 | 3e 10    : ld  a,$10     // increase code +10
        915b | 86       : add a,(hl)
        915c | 77       : ld  (hl),a
        915d | 78       : ld  a,b
        915e | fe df    : cp  $DF
        9160 | 20 03    : jr  nz,$9165
        9162 | 7e       : ld  a,(hl)    // play sound
        9163 | 12       : ld  (de),a
        9164 | 78       : ld  a,b
        9165 | fe ef    : cp  $EF
        9167 | 20 02    : jr  nz,$916B
        9169 | af       : xor a         // stop sound
        916a | 12       : ld  (de),a
        916b | 18 cc    : jr  $9139
        -->
    </script>
    <script state="run">
        <output format="----- scramble formation sound test mode -----" line="10" align="center" />
        <output format="left : decrease code -01"                       line="11" align="center" />
        <output format="right : increase code +01"                      line="12" align="center" />
        <output format="up : increase code +10"                         line="13" align="center" />
        <output format="down : decrease code -10"                       line="14" align="center" />
        <output format="button 1 : play sound"                          line="15" align="center" />
        <output format="button 2 : stop sound"                          line="16" align="center" />
        <output format="----------------------------"                   line="17" align="center" />
        <output format="&lt;&lt; sound code %2.2X &gt;&gt;"             line="19" align="center"  >
            <argument>maincpu.pb@e000</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mq@00b35 = 0000000000000000</action>
        <action>maincpu.mq@11130 = ffffffffffffffff</action>
        <action>maincpu.mq@11138 = ffffffffffffffff</action>
        <action>maincpu.mq@11140 = ffffffffffffffff</action>
        <action>maincpu.mq@11148 = ffffffffffffffff</action>
        <action>maincpu.mq@11150 = ffffffffffffffff</action>
        <action>maincpu.mq@11158 = ffffffffffffffff</action>
        <action>maincpu.mq@11160 = ffffffffffffffff</action>
        <action>maincpu.mq@11168 = ffffffffffffffff</action>
    </script>
</cheat>
  • "no hit - sidefighters" : sidefighter attack (press button 1 and 2 at the same time) doesn't hit so that add comment about it.
  • "secret item finder" : unsafe. because custome routine is on banked rom. this code will cause the game crash if different bank is set. anyway, test play in 1st lap is no problem but I don't know 2nd or later lap.
jman
Posts: 869
Joined: Tue Dec 01, 2020 1:24 pm
Been thanked: 1 time

[tokio]+ Tokio/Scramble Formation

Post by jman »

tokio.xml

Code: Select all

<!-- Tokio / Scramble Formation (newer) -->
<mamecheat version="1">

    <cheat desc="no hit - player">
        <script state="on">
            <action>subcpu.mb@493D = C9</action>
        </script>
        <script state="off">
            <action>subcpu.mb@493D = D0</action>
        </script>
    </cheat>

    <cheat desc="no hit - sidefighters">
        <comment>also sidefigher attack (button 1 + 2) is &quot;no hit&quot;</comment>
        <script state="on">
            <action>subcpu.mb@49B1 = 18</action>
        </script>
        <script state="off">
            <action>subcpu.mb@49B1 = 30</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <!-- common -->
            <action>maincpu.mb@36A8 = 01</action>
            <!-- shot -->
            <action>maincpu.mb@5F81 = 01</action>
            <action>maincpu.mb@5FC5 = 01</action>
            <action>maincpu.mb@600E = 01</action>
            <action>maincpu.mb@607D = 01</action>
            <!-- bomb -->
            <action>maincpu.mb@65F9 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@36A8 = 23</action>
            <action>maincpu.mb@5F81 = 08</action>
            <action>maincpu.mb@5FC5 = 08</action>
            <action>maincpu.mb@600E = 08</action>
            <action>maincpu.mb@607D = 09</action>
            <action>maincpu.mb@65F9 = 0A</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0100">01 (slow)</item>
            <item value="0x0200">02       </item>
            <item value="0x0400">03       </item>
            <item value="0x0600">04       </item>
            <item value="0x0800">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mb@4BAC = 11</action> <!-- up -->
            <action>maincpu.mb@4BE5 = 11</action> <!-- down -->
            <action>maincpu.mb@4C1E = 11</action> <!-- right -->
            <action>maincpu.mb@4C53 = 11</action> <!-- left -->
            <action>maincpu.mb@4C8D = 11</action> <!-- upper-right -->
            <action>maincpu.mb@4CCE = 11</action> <!-- upper-left -->
            <action>maincpu.mb@4D11 = 11</action> <!-- lower-right -->
            <action>maincpu.mb@4D50 = 11</action> <!-- lower-left -->
        </script>
        <script state="change">
            <action>maincpu.mw@4BAD = param</action>
            <action>maincpu.mw@4BE6 = param</action>
            <action>maincpu.mw@4C1F = param</action>
            <action>maincpu.mw@4C54 = param</action>
            <action>maincpu.mw@4C8E = param</action>
            <action>maincpu.mw@4CCF = param</action>
            <action>maincpu.mw@4D12 = param</action>
            <action>maincpu.mw@4D51 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@4BAC = 2A56235E</action>
            <action>maincpu.md@4BE5 = 2A56235E</action>
            <action>maincpu.md@4C1E = 2A56235E</action>
            <action>maincpu.md@4C53 = 2A56235E</action>
            <action>maincpu.md@4C8D = 2A56235E</action>
            <action>maincpu.md@4CCE = 2A56235E</action>
            <action>maincpu.md@4D11 = 2A56235E</action>
            <action>maincpu.md@4D50 = 2A56235E</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x08">02       </item>
            <item value="0x10">03       </item>
            <item value="0x18">04       </item>
            <item value="0x20">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@5DA7 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@5DA7 = 07</action>
        </script>
    </cheat>

    <cheat desc="secret item finder (test)">
        <!-- unsafe custom routine on banked rom -->
        <script state="on">
            <action>maincpu.md@07C08 = 209D60CD        </action>
            <action>maincpu.mq@2DD60 = FEE17E09E61621E5</action>
            <action>maincpu.mq@2DD68 = FFFFC906FE7EC8FF</action>
            <!--
            9D60 | E5       : push hl
            9D61 | 21 16 E6 : ld   hl,$E616
            9D64 | 09       : add  hl,bc
            9D65 | 7E       : ld   a,(hl)
            9D66 | E1       : pop  hl
            9D67 | FE FF    : cp   $FF
            9D69 | C8       : ret  z
            9D6A | 7E       : ld   a,(hl)
            9D6B | FE 06    : cp   $06
            9D6D | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@07C08 = 2006FE7E        </action>
            <action>maincpu.mq@2DD60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2DD68 = FFFFFFFFFFFFFFFF</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@00B35 = 009130C3FA8032AF</action>
            <action>maincpu.mq@11130 = EF3EFC0011E00021</action>
            <action>maincpu.mq@11138 = B8FA063AFA003212</action>
            <action>maincpu.mq@11140 = 350120FEFEF62847</action>
            <action>maincpu.mq@11148 = 20FBFE340120FDFE</action>
            <action>maincpu.mq@11150 = 20F7FE0618F03E04</action>
            <action>maincpu.mq@11158 = DFFE787786103E05</action>
            <action>maincpu.mq@11160 = 20EFFE78127E0320</action>
            <action>maincpu.mq@11168 = FFFFFFCC1812AF02</action>
            <!--
            0B35 | AF       : xor  a
            0B36 | 32 80 FA : ld   ($FA80),a // set bank
            0B39 | C3 30 91 : jp   $9130
            ================================
            9130 | 21 00 E0 : ld   hl,$E000  // sound code address
            9133 | 11 00 FC : ld   de,$FC00  // sound latch address
            9136 | 3E EF    : ld   a,$EF     // enable sound
            9138 | 12       : ld   (de),a
            9139 | 32 00 FA : ld   ($FA00),a // watchdog
            913C | 3A 06 FA : ld   a,($FA06) // read input
            913F | B8       : cp   b
            9140 | 47       : ld   b,a
            9141 | 28 F6    : jr   z,$9139
            9143 | FE FE    : cp   $FE
            9145 | 20 01    : jr   nz,$9148
            9147 | 35       : dec  (hl)      // decrease code -01
            9148 | FE FD    : cp   $FD
            914A | 20 01    : jr   nz,$914D
            914C | 34       : inc  (hl)      // increase code +01
            914D | FE FB    : cp   $FB
            914F | 20 04    : jr   nz,$9155
            9151 | 3E F0    : ld   a,$F0     // decrease code -10
            9153 | 18 06    : jr   $915B
            9155 | FE F7    : cp   $F7
            9157 | 20 05    : jr   nz,$915E
            9159 | 3E 10    : ld   a,$10     // increase code +10
            915B | 86       : add  a,(hl)
            915C | 77       : ld   (hl),a
            915D | 78       : ld   a,b
            915E | FE DF    : cp   $DF
            9160 | 20 03    : jr   nz,$9165
            9162 | 7E       : ld   a,(hl)    // play sound
            9163 | 12       : ld   (de),a
            9164 | 78       : ld   a,b
            9165 | FE EF    : cp   $EF
            9167 | 20 02    : jr   nz,$916B
            9169 | AF       : xor  a         // stop sound
            916A | 12       : ld   (de),a
            916B | 18 CC    : jr   $9139
            -->
        </script>
        <script state="run">
            <output format="----- scramble formation sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"                       line="11" align="center" />
            <output format="right : increase code +01"                      line="12" align="center" />
            <output format="down : decrease code -10"                       line="13" align="center" />
            <output format="up : increase code +10"                         line="14" align="center" />
            <output format="button 1 : play sound"                          line="15" align="center" />
            <output format="button 2 : stop sound"                          line="16" align="center" />
            <output format="----------------------------"                   line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"              line="19" align="center"  >
                <argument>maincpu.pb@E000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@00B35 = 0000000000000000</action>
            <action>maincpu.mq@11130 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11138 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11140 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11148 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11150 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11158 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11160 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11168 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
tokioo.xml

Code: Select all

<!-- Tokio / Scramble Formation (older) -->
<mamecheat version="1">

    <cheat desc="no hit - player">
        <script state="on">
            <action>subcpu.mb@493D = C9</action>
        </script>
        <script state="off">
            <action>subcpu.mb@493D = D0</action>
        </script>
    </cheat>

    <cheat desc="no hit - sidefighters">
        <comment>also sidefigher attack (button 1 + 2) is &quot;no hit&quot;</comment>
        <script state="on">
            <action>subcpu.mb@49B1 = 18</action>
        </script>
        <script state="off">
            <action>subcpu.mb@49B1 = 30</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <!-- common -->
            <action>maincpu.mb@36A8 = 01</action>
            <!-- shot -->
            <action>maincpu.mb@5F81 = 01</action>
            <action>maincpu.mb@5FC5 = 01</action>
            <action>maincpu.mb@600E = 01</action>
            <action>maincpu.mb@607D = 01</action>
            <!-- bomb -->
            <action>maincpu.mb@65F9 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@36A8 = 23</action>
            <action>maincpu.mb@5F81 = 08</action>
            <action>maincpu.mb@5FC5 = 08</action>
            <action>maincpu.mb@600E = 08</action>
            <action>maincpu.mb@607D = 09</action>
            <action>maincpu.mb@65F9 = 0A</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0100">01 (slow)</item>
            <item value="0x0200">02       </item>
            <item value="0x0400">03       </item>
            <item value="0x0600">04       </item>
            <item value="0x0800">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mb@4BAC = 11</action> <!-- up -->
            <action>maincpu.mb@4BE5 = 11</action> <!-- down -->
            <action>maincpu.mb@4C1E = 11</action> <!-- right -->
            <action>maincpu.mb@4C53 = 11</action> <!-- left -->
            <action>maincpu.mb@4C8D = 11</action> <!-- upper-right -->
            <action>maincpu.mb@4CCE = 11</action> <!-- upper-left -->
            <action>maincpu.mb@4D11 = 11</action> <!-- lower-right -->
            <action>maincpu.mb@4D50 = 11</action> <!-- lower-left -->
        </script>
        <script state="change">
            <action>maincpu.mw@4BAD = param</action>
            <action>maincpu.mw@4BE6 = param</action>
            <action>maincpu.mw@4C1F = param</action>
            <action>maincpu.mw@4C54 = param</action>
            <action>maincpu.mw@4C8E = param</action>
            <action>maincpu.mw@4CCF = param</action>
            <action>maincpu.mw@4D12 = param</action>
            <action>maincpu.mw@4D51 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@4BAC = 2A56235E</action>
            <action>maincpu.md@4BE5 = 2A56235E</action>
            <action>maincpu.md@4C1E = 2A56235E</action>
            <action>maincpu.md@4C53 = 2A56235E</action>
            <action>maincpu.md@4C8D = 2A56235E</action>
            <action>maincpu.md@4CCE = 2A56235E</action>
            <action>maincpu.md@4D11 = 2A56235E</action>
            <action>maincpu.md@4D50 = 2A56235E</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x08">02       </item>
            <item value="0x10">03       </item>
            <item value="0x18">04       </item>
            <item value="0x20">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@5DA7 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@5DA7 = 07</action>
        </script>
    </cheat>

    <cheat desc="secret item finder (test)">
        <!-- unsafe custom routine on banked rom -->
        <script state="on">
            <action>maincpu.md@07C08 = 209D60CD        </action>
            <action>maincpu.mq@2DD60 = FEE17E09E61621E5</action>
            <action>maincpu.mq@2DD68 = FFFFC906FE7EC8FF</action>
            <!--
            9D60 | E5       : push hl
            9D61 | 21 16 E6 : ld   hl,$E616
            9D64 | 09       : add  hl,bc
            9D65 | 7E       : ld   a,(hl)
            9D66 | E1       : pop  hl
            9D67 | FE FF    : cp   $FF
            9D69 | C8       : ret  z
            9D6A | 7E       : ld   a,(hl)
            9D6B | FE 06    : cp   $06
            9D6D | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@07C08 = 2006FE7E        </action>
            <action>maincpu.mq@2DD60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2DD68 = FFFFFFFFFFFFFFFF</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@00B35 = 009130C3FA8032AF</action>
            <action>maincpu.mq@11130 = EF3EFC0011E00021</action>
            <action>maincpu.mq@11138 = B8FA063AFA003212</action>
            <action>maincpu.mq@11140 = 350120FEFEF62847</action>
            <action>maincpu.mq@11148 = 20FBFE340120FDFE</action>
            <action>maincpu.mq@11150 = 20F7FE0618F03E04</action>
            <action>maincpu.mq@11158 = DFFE787786103E05</action>
            <action>maincpu.mq@11160 = 20EFFE78127E0320</action>
            <action>maincpu.mq@11168 = FFFFFFCC1812AF02</action>
            <!--
            0B35 | AF       : xor  a
            0B36 | 32 80 FA : ld   ($FA80),a // set bank
            0B39 | C3 30 91 : jp   $9130
            ================================
            9130 | 21 00 E0 : ld   hl,$E000  // sound code address
            9133 | 11 00 FC : ld   de,$FC00  // sound latch address
            9136 | 3E EF    : ld   a,$EF     // enable sound
            9138 | 12       : ld   (de),a
            9139 | 32 00 FA : ld   ($FA00),a // watchdog
            913C | 3A 06 FA : ld   a,($FA06) // read input
            913F | B8       : cp   b
            9140 | 47       : ld   b,a
            9141 | 28 F6    : jr   z,$9139
            9143 | FE FE    : cp   $FE
            9145 | 20 01    : jr   nz,$9148
            9147 | 35       : dec  (hl)      // decrease code -01
            9148 | FE FD    : cp   $FD
            914A | 20 01    : jr   nz,$914D
            914C | 34       : inc  (hl)      // increase code +01
            914D | FE FB    : cp   $FB
            914F | 20 04    : jr   nz,$9155
            9151 | 3E F0    : ld   a,$F0     // decrease code -10
            9153 | 18 06    : jr   $915B
            9155 | FE F7    : cp   $F7
            9157 | 20 05    : jr   nz,$915E
            9159 | 3E 10    : ld   a,$10     // increase code +10
            915B | 86       : add  a,(hl)
            915C | 77       : ld   (hl),a
            915D | 78       : ld   a,b
            915E | FE DF    : cp   $DF
            9160 | 20 03    : jr   nz,$9165
            9162 | 7E       : ld   a,(hl)    // play sound
            9163 | 12       : ld   (de),a
            9164 | 78       : ld   a,b
            9165 | FE EF    : cp   $EF
            9167 | 20 02    : jr   nz,$916B
            9169 | AF       : xor  a         // stop sound
            916A | 12       : ld   (de),a
            916B | 18 CC    : jr   $9139
            -->
        </script>
        <script state="run">
            <output format="----- scramble formation sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"                       line="11" align="center" />
            <output format="right : increase code +01"                      line="12" align="center" />
            <output format="down : decrease code -10"                       line="13" align="center" />
            <output format="up : increase code +10"                         line="14" align="center" />
            <output format="button 1 : play sound"                          line="15" align="center" />
            <output format="button 2 : stop sound"                          line="16" align="center" />
            <output format="----------------------------"                   line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"              line="19" align="center"  >
                <argument>maincpu.pb@E000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@00B35 = 0000000000000000</action>
            <action>maincpu.mq@11130 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11138 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11140 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11148 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11150 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11158 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11160 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11168 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
tokiou.xml

Code: Select all

<!-- Tokio / Scramble Formation (US) -->
<mamecheat version="1">

    <cheat desc="no hit - player">
        <script state="on">
            <action>subcpu.mb@493D = C9</action>
        </script>
        <script state="off">
            <action>subcpu.mb@493D = D0</action>
        </script>
    </cheat>

    <cheat desc="no hit - sidefighters">
        <comment>also sidefigher attack (button 1 + 2) is &quot;no hit&quot;</comment>
        <script state="on">
            <action>subcpu.mb@49B1 = 18</action>
        </script>
        <script state="off">
            <action>subcpu.mb@49B1 = 30</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <!-- common -->
            <action>maincpu.mb@362D = 01</action>
            <!-- shot -->
            <action>maincpu.mb@5F18 = 01</action>
            <action>maincpu.mb@5F5C = 01</action>
            <action>maincpu.mb@5FA5 = 01</action>
            <action>maincpu.mb@6014 = 01</action>
            <!-- bomb -->
            <action>maincpu.mb@6590 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@362D = 23</action>
            <action>maincpu.mb@5F18 = 08</action>
            <action>maincpu.mb@5F5C = 08</action>
            <action>maincpu.mb@5FA5 = 08</action>
            <action>maincpu.mb@6014 = 09</action>
            <action>maincpu.mb@6590 = 0A</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0100">01 (slow)</item>
            <item value="0x0200">02       </item>
            <item value="0x0400">03       </item>
            <item value="0x0600">04       </item>
            <item value="0x0800">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mb@4B43 = 11</action> <!-- up -->
            <action>maincpu.mb@4B7C = 11</action> <!-- down -->
            <action>maincpu.mb@4BB5 = 11</action> <!-- right -->
            <action>maincpu.mb@4BEA = 11</action> <!-- left -->
            <action>maincpu.mb@4C24 = 11</action> <!-- upper-right -->
            <action>maincpu.mb@4C65 = 11</action> <!-- upper-left -->
            <action>maincpu.mb@4CA8 = 11</action> <!-- lower-right -->
            <action>maincpu.mb@4CE7 = 11</action> <!-- lower-left -->
        </script>
        <script state="change">
            <action>maincpu.mw@4B44 = param</action>
            <action>maincpu.mw@4B7D = param</action>
            <action>maincpu.mw@4BB6 = param</action>
            <action>maincpu.mw@4BEB = param</action>
            <action>maincpu.mw@4C25 = param</action>
            <action>maincpu.mw@4C66 = param</action>
            <action>maincpu.mw@4CA9 = param</action>
            <action>maincpu.mw@4CE8 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@4B43 = 2A56235E</action>
            <action>maincpu.md@4B7C = 2A56235E</action>
            <action>maincpu.md@4BB5 = 2A56235E</action>
            <action>maincpu.md@4BEA = 2A56235E</action>
            <action>maincpu.md@4C24 = 2A56235E</action>
            <action>maincpu.md@4C65 = 2A56235E</action>
            <action>maincpu.md@4CA8 = 2A56235E</action>
            <action>maincpu.md@4CE7 = 2A56235E</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x08">02       </item>
            <item value="0x10">03       </item>
            <item value="0x18">04       </item>
            <item value="0x20">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@5D3E = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@5D3E = 07</action>
        </script>
    </cheat>

    <cheat desc="secret item finder (test)">
        <!-- unsafe custom routine on banked rom -->
        <script state="on">
            <action>maincpu.md@07B9F = 209D60CD        </action>
            <action>maincpu.mq@2DD60 = FEE17E09E61621E5</action>
            <action>maincpu.mq@2DD68 = FFFFC906FE7EC8FF</action>
            <!--
            9D60 | E5       : push hl
            9D61 | 21 16 E6 : ld   hl,$E616
            9D64 | 09       : add  hl,bc
            9D65 | 7E       : ld   a,(hl)
            9D66 | E1       : pop  hl
            9D67 | FE FF    : cp   $FF
            9D69 | C8       : ret  z
            9D6A | 7E       : ld   a,(hl)
            9D6B | FE 06    : cp   $06
            9D6D | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@07B9F = 2006FE7E        </action>
            <action>maincpu.mq@2DD60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2DD68 = FFFFFFFFFFFFFFFF</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@00C15 = 009130C3FA8032AF</action>
            <action>maincpu.mq@11130 = EF3EFC0011E00021</action>
            <action>maincpu.mq@11138 = B8FA063AFA003212</action>
            <action>maincpu.mq@11140 = 350120FEFEF62847</action>
            <action>maincpu.mq@11148 = 20FBFE340120FDFE</action>
            <action>maincpu.mq@11150 = 20F7FE0618F03E04</action>
            <action>maincpu.mq@11158 = DFFE787786103E05</action>
            <action>maincpu.mq@11160 = 20EFFE78127E0320</action>
            <action>maincpu.mq@11168 = FFFFFFCC1812AF02</action>
            <!--
            0B35 | AF       : xor  a
            0B36 | 32 80 FA : ld   ($FA80),a // set bank
            0B39 | C3 30 91 : jp   $9130
            ================================
            9130 | 21 00 E0 : ld   hl,$E000  // sound code address
            9133 | 11 00 FC : ld   de,$FC00  // sound latch address
            9136 | 3E EF    : ld   a,$EF     // enable sound
            9138 | 12       : ld   (de),a
            9139 | 32 00 FA : ld   ($FA00),a // watchdog
            913C | 3A 06 FA : ld   a,($FA06) // read input
            913F | B8       : cp   b
            9140 | 47       : ld   b,a
            9141 | 28 F6    : jr   z,$9139
            9143 | FE FE    : cp   $FE
            9145 | 20 01    : jr   nz,$9148
            9147 | 35       : dec  (hl)      // decrease code -01
            9148 | FE FD    : cp   $FD
            914A | 20 01    : jr   nz,$914D
            914C | 34       : inc  (hl)      // increase code +01
            914D | FE FB    : cp   $FB
            914F | 20 04    : jr   nz,$9155
            9151 | 3E F0    : ld   a,$F0     // decrease code -10
            9153 | 18 06    : jr   $915B
            9155 | FE F7    : cp   $F7
            9157 | 20 05    : jr   nz,$915E
            9159 | 3E 10    : ld   a,$10     // increase code +10
            915B | 86       : add  a,(hl)
            915C | 77       : ld   (hl),a
            915D | 78       : ld   a,b
            915E | FE DF    : cp   $DF
            9160 | 20 03    : jr   nz,$9165
            9162 | 7E       : ld   a,(hl)    // play sound
            9163 | 12       : ld   (de),a
            9164 | 78       : ld   a,b
            9165 | FE EF    : cp   $EF
            9167 | 20 02    : jr   nz,$916B
            9169 | AF       : xor  a         // stop sound
            916A | 12       : ld   (de),a
            916B | 18 CC    : jr   $9139
            -->
        </script>
        <script state="run">
            <output format="----- scramble formation sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"                       line="11" align="center" />
            <output format="right : increase code +01"                      line="12" align="center" />
            <output format="down : decrease code -10"                       line="13" align="center" />
            <output format="up : increase code +10"                         line="14" align="center" />
            <output format="button 1 : play sound"                          line="15" align="center" />
            <output format="button 2 : stop sound"                          line="16" align="center" />
            <output format="----------------------------"                   line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"              line="19" align="center"  >
                <argument>maincpu.pb@E000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@00C15 = 0000000000000000</action>
            <action>maincpu.mq@11130 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11138 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11140 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11148 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11150 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11158 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11160 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11168 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
tokiob.xml

Code: Select all

<!-- Tokio / Scramble Formation (bootleg) -->
<mamecheat version="1">

    <cheat desc="no hit - player">
        <script state="on">
            <action>subcpu.mb@493D = C9</action>
        </script>
        <script state="off">
            <action>subcpu.mb@493D = D0</action>
        </script>
    </cheat>

    <cheat desc="no hit - sidefighters">
        <comment>also sidefigher attack (button 1 + 2) is &quot;no hit&quot;</comment>
        <script state="on">
            <action>subcpu.mb@49B1 = 18</action>
        </script>
        <script state="off">
            <action>subcpu.mb@49B1 = 30</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <!-- common -->
            <action>maincpu.mb@36A8 = 01</action>
            <!-- shot -->
            <action>maincpu.mb@5F81 = 01</action>
            <action>maincpu.mb@5FC5 = 01</action>
            <action>maincpu.mb@600E = 01</action>
            <action>maincpu.mb@607D = 01</action>
            <!-- bomb -->
            <action>maincpu.mb@65F9 = 01</action>
        </script>
        <script state="off">
            <action>maincpu.mb@36A8 = 23</action>
            <action>maincpu.mb@5F81 = 08</action>
            <action>maincpu.mb@5FC5 = 08</action>
            <action>maincpu.mb@600E = 08</action>
            <action>maincpu.mb@607D = 09</action>
            <action>maincpu.mb@65F9 = 0A</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0100">01 (slow)</item>
            <item value="0x0200">02       </item>
            <item value="0x0400">03       </item>
            <item value="0x0600">04       </item>
            <item value="0x0800">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mb@4BAC = 11</action> <!-- up -->
            <action>maincpu.mb@4BE5 = 11</action> <!-- down -->
            <action>maincpu.mb@4C1E = 11</action> <!-- right -->
            <action>maincpu.mb@4C53 = 11</action> <!-- left -->
            <action>maincpu.mb@4C8D = 11</action> <!-- upper-right -->
            <action>maincpu.mb@4CCE = 11</action> <!-- upper-left -->
            <action>maincpu.mb@4D11 = 11</action> <!-- lower-right -->
            <action>maincpu.mb@4D50 = 11</action> <!-- lower-left -->
        </script>
        <script state="change">
            <action>maincpu.mw@4BAD = param</action>
            <action>maincpu.mw@4BE6 = param</action>
            <action>maincpu.mw@4C1F = param</action>
            <action>maincpu.mw@4C54 = param</action>
            <action>maincpu.mw@4C8E = param</action>
            <action>maincpu.mw@4CCF = param</action>
            <action>maincpu.mw@4D12 = param</action>
            <action>maincpu.mw@4D51 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@4BAC = 2A56235E</action>
            <action>maincpu.md@4BE5 = 2A56235E</action>
            <action>maincpu.md@4C1E = 2A56235E</action>
            <action>maincpu.md@4C53 = 2A56235E</action>
            <action>maincpu.md@4C8D = 2A56235E</action>
            <action>maincpu.md@4CCE = 2A56235E</action>
            <action>maincpu.md@4D11 = 2A56235E</action>
            <action>maincpu.md@4D50 = 2A56235E</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - shot">
        <parameter>
            <item value="0x01">01 (slow)</item>
            <item value="0x08">02       </item>
            <item value="0x10">03       </item>
            <item value="0x18">04       </item>
            <item value="0x20">05 (fast)</item>
        </parameter>
        <script state="change">
            <action>maincpu.mb@5DA7 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mb@5DA7 = 07</action>
        </script>
    </cheat>

    <cheat desc="secret item finder (test)">
        <!-- unsafe custom routine on banked rom -->
        <script state="on">
            <action>maincpu.md@07C08 = 209D60CD        </action>
            <action>maincpu.mq@2DD60 = FEE17E09E61621E5</action>
            <action>maincpu.mq@2DD68 = FFFFC906FE7EC8FF</action>
            <!--
            9D60 | E5       : push hl
            9D61 | 21 16 E6 : ld   hl,$E616
            9D64 | 09       : add  hl,bc
            9D65 | 7E       : ld   a,(hl)
            9D66 | E1       : pop  hl
            9D67 | FE FF    : cp   $FF
            9D69 | C8       : ret  z
            9D6A | 7E       : ld   a,(hl)
            9D6B | FE 06    : cp   $06
            9D6D | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.md@07C08 = 2006FE7E        </action>
            <action>maincpu.mq@2DD60 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@2DD68 = FFFFFFFFFFFFFFFF</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@00B35 = 009130C3FA8032AF</action>
            <action>maincpu.mq@11130 = EF3EFC0011E00021</action>
            <action>maincpu.mq@11138 = B8FA063AFA003212</action>
            <action>maincpu.mq@11140 = 350120FEFEF62847</action>
            <action>maincpu.mq@11148 = 20FBFE340120FDFE</action>
            <action>maincpu.mq@11150 = 20F7FE0618F03E04</action>
            <action>maincpu.mq@11158 = DFFE787786103E05</action>
            <action>maincpu.mq@11160 = 20EFFE78127E0320</action>
            <action>maincpu.mq@11168 = FFFFFFCC1812AF02</action>
            <!--
            0B35 | AF       : xor  a
            0B36 | 32 80 FA : ld   ($FA80),a // set bank
            0B39 | C3 30 91 : jp   $9130
            ================================
            9130 | 21 00 E0 : ld   hl,$E000  // sound code address
            9133 | 11 00 FC : ld   de,$FC00  // sound latch address
            9136 | 3E EF    : ld   a,$EF     // enable sound
            9138 | 12       : ld   (de),a
            9139 | 32 00 FA : ld   ($FA00),a // watchdog
            913C | 3A 06 FA : ld   a,($FA06) // read input
            913F | B8       : cp   b
            9140 | 47       : ld   b,a
            9141 | 28 F6    : jr   z,$9139
            9143 | FE FE    : cp   $FE
            9145 | 20 01    : jr   nz,$9148
            9147 | 35       : dec  (hl)      // decrease code -01
            9148 | FE FD    : cp   $FD
            914A | 20 01    : jr   nz,$914D
            914C | 34       : inc  (hl)      // increase code +01
            914D | FE FB    : cp   $FB
            914F | 20 04    : jr   nz,$9155
            9151 | 3E F0    : ld   a,$F0     // decrease code -10
            9153 | 18 06    : jr   $915B
            9155 | FE F7    : cp   $F7
            9157 | 20 05    : jr   nz,$915E
            9159 | 3E 10    : ld   a,$10     // increase code +10
            915B | 86       : add  a,(hl)
            915C | 77       : ld   (hl),a
            915D | 78       : ld   a,b
            915E | FE DF    : cp   $DF
            9160 | 20 03    : jr   nz,$9165
            9162 | 7E       : ld   a,(hl)    // play sound
            9163 | 12       : ld   (de),a
            9164 | 78       : ld   a,b
            9165 | FE EF    : cp   $EF
            9167 | 20 02    : jr   nz,$916B
            9169 | AF       : xor  a         // stop sound
            916A | 12       : ld   (de),a
            916B | 18 CC    : jr   $9139
            -->
        </script>
        <script state="run">
            <output format="----- scramble formation sound test mode -----" line="10" align="center" />
            <output format="left : decrease code -01"                       line="11" align="center" />
            <output format="right : increase code +01"                      line="12" align="center" />
            <output format="down : decrease code -10"                       line="13" align="center" />
            <output format="up : increase code +10"                         line="14" align="center" />
            <output format="button 1 : play sound"                          line="15" align="center" />
            <output format="button 2 : stop sound"                          line="16" align="center" />
            <output format="----------------------------"                   line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"              line="19" align="center"  >
                <argument>maincpu.pb@E000</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mq@00B35 = 3AB9AAE62F7E0436</action>
            <action>maincpu.mq@11130 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11138 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11140 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11148 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11150 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11158 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11160 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@11168 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
Post Reply