[zodiack] Zodiack

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

[zodiack] Zodiack

Post by jman »

Code: Select all

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@1942 = 00</action>
    </script>
    <script state="off">
        <action>maincpu.mb@1942 = c0</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter min="0x01" max="0x08" step="0x01" />
    <script state="on">
        <action>maincpu.md@1264 =         004800cd</action> <!-- y position -->
        <action>maincpu.md@1282 =         004805cd</action> <!-- x position -->
        <action>maincpu.mq@4800 = a77e130118588e11</action>
        <action>maincpu.mq@4808 = ed4811f2003e0728</action>
        <action>maincpu.mq@4810 = 000000c9801a4744</action>
        <!--
        4800 | 11 8e 58    : ld  de,$588e // y position
        4803 | 18 01       : jr  $4806
        4805 | 13          : inc de       // x position
        4806 | 7e          : ld  a,(hl)
        4807 | a7          : and a
        4808 | 28 07       : jr  z,$4811
        480a | 3e xx       : ld  a,$xx
        480c | f2 11 48    : jp  p,$4811
        480f | ed 44       : neg
        4811 | 47          : ld  b,a
        4812 | 1a          : ld  a,(de)
        4813 | 80          : add a,b
        4814 | c9          : ret
        -->
    </script>
    <script state="change">
        <action>maincpu.mb@480b = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@1264 =         86588e3a</action>
        <action>maincpu.md@1282 =         86588f3a</action>
        <action>maincpu.mq@4800 = 0000000000000000</action>
        <action>maincpu.mq@4808 = 0000000000000000</action>
        <action>maincpu.mq@4810 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="direct turn on 2nd area">
    <script state="on">
        <action>maincpu.mw@121a =             4850</action>
        <action>maincpu.mq@4850 = 0c280fe658313a47</action>
        <action>maincpu.mq@4858 = 46195f0016486921</action>
        <action>maincpu.mq@4860 = 58903278010736dd</action>
        <action>maincpu.mq@4868 = 0e0200000c0400c9</action>
        <action>maincpu.mq@4870 = 000000000a060800</action>
        <!--
        4850 | 47          : ld  b,a
        4851 | 3a 31 58    : ld  a,($5831)
        4854 | e6 0f       : and $10
        4856 | 28 0c       : jr  z,$4864
        4858 | 21 69 48    : ld  hl,$4869
        485b | 16 00       : ld  d,$00
        485d | 5f          : ld  e,a
        485e | 19          : add hl,de
        485f | 46          : ld  b,(hl)
        4860 | dd 36 07 01 : ld  (ix+$07),$01
        4864 | 78          : ld  a,b
        4865 | 32 90 58    : ld  ($5890),a
        4868 | c9          : ret
        4869 - 4872        : input/direction convert table
         input direction
           4       0       : up
           1       4       : right
           8       8       : down
           2       c       : left
           5       2       : upper-right
           9       6       : lower-right
           a       a       : lower-left
           6       e       : upper-left
        -->
    </script>
    <script state="off">
        <action>maincpu.mw@121a =             108f</action>
        <action>maincpu.mq@4850 = 0000000000000000</action>
        <action>maincpu.mq@4858 = 0000000000000000</action>
        <action>maincpu.mq@4860 = 0000000000000000</action>
        <action>maincpu.mq@4868 = 0000000000000000</action>
        <action>maincpu.mq@4870 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mw@0005 =             06ae</action> <!-- skip some boot sequences -->
        <action>maincpu.md@0742 =         004820c3</action>
        <action>maincpu.mq@4820 = 843a590022000021</action>
        <action>maincpu.mq@4828 = 2080fef6286fbd60</action>
        <action>maincpu.mq@4830 = fe24012008fe2501</action>
        <action>maincpu.mq@4838 = 10fe06187c032040</action>
        <action>maincpu.mq@4840 = 18609032f23e0520</action>
        <action>maincpu.mq@4848 = 00000000000000da</action>
        <!--
        4820 | 21 00 00 : ld  hl,$0000   // initialize sound and input values
        4823 | 22 00 59 : ld  ($5900),hl
        4826 | 3a 84 60 : ld  a,($6084)  // read input
        4829 | bd       : cp  l
        482a | 6f       : ld  l,a
        482b | 28 f6    : jr  z,$4823
        482d | fe 80    : cp  $80
        482f | 20 01    : jr  nz,$4832
        4831 | 25       : dec h          // decrease code
        4832 | fe 08    : cp  $08
        4834 | 20 01    : jr  nz,$4837
        4836 | 24       : inc h          // increase code
        4837 | fe 40    : cp  $40
        4839 | 20 03    : jr  nz,$483e
        483b | 7c       : ld  a,h        // play sound
        483c | 18 06    : jr  $4844
        483e | fe 10    : cp  $10
        4840 | 20 05    : jr  nz,$4847
        4842 | 3e f2    : ld  a,$f2      // stop sound
        4844 | 32 90 60 : ld  ($6090),a  // send sound code
        4847 | 18 da    : jr  $4823
        -->
    </script>
    <script state="run">
        <output format="----- zodiack 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@5901</argument>
        </output>
    </script>
    <script state="off">
    </script>
</cheat>

<cheat desc="skip ram/rom check">
    <script state="on">
        <action> maincpu.mw@44d6 = 2b18</action> <!-- maincpu : ram -->
        <action> maincpu.mw@45f3 = 1f18</action> <!-- maincpu : rom -->
        <action>audiocpu.mw@007a = 2818</action> <!-- audiocpu : ram -->
        <!-- no rom check for audio cpu? -->
        </script>
    <script state="off">
        <action> maincpu.mw@44d6 = dd21</action>
        <action> maincpu.mw@45f3 = 0021</action>
        <action>audiocpu.mw@007a = dd21</action>
    </script>
</cheat>
jman
Posts: 844
Joined: Tue Dec 01, 2020 1:24 pm

[zodiack] update

Post by jman »

Code: Select all

<cheat desc="direct turn">
    <comment>works on 2nd area</comment>
    <script state="on">
        <action>maincpu.mw@121a =             4820</action>
        <action>maincpu.mq@4820 = 0c280fe658313a47</action>
        <action>maincpu.mq@4828 = 46195f0016483921</action>
        <action>maincpu.mq@4830 = 58903278010736dd</action>
        <action>maincpu.mq@4838 = 0e0200000c0400c9</action>
        <action>maincpu.mq@4840 = 000000000a060800</action>
        <!--
        4820 | 47          : ld  b,a
        4821 | 3a 31 58    : ld  a,($5831)
        4824 | e6 0f       : and $0F
        4826 | 28 0c       : jr  z,$4834
        4828 | 21 39 48    : ld  hl,$4839
        482b | 16 00       : ld  d,$00
        482d | 5f          : ld  e,a
        482e | 19          : add hl,de
        482f | 46          : ld  b,(hl)
        4830 | dd 36 07 01 : ld  (ix+$07),$01
        4834 | 78          : ld  a,b
        4835 | 32 90 58    : ld  ($5890),a
        4838 | c9          : ret
        4839 - 4842        : input/direction conversion table
         input direction
           1       4       : right
           2       c       : left
           4       0       : up
           5       2       : upper-right
           6       e       : upper-left
           8       8       : down
           9       6       : lower-right
           a       a       : lower-left
        -->
    </script>
    <script state="off">
        <action>maincpu.mw@121a =             108f</action>
        <action>maincpu.mq@4820 = 0000000000000000</action>
        <action>maincpu.mq@4828 = 0000000000000000</action>
        <action>maincpu.mq@4830 = 0000000000000000</action>
        <action>maincpu.mq@4838 = 0000000000000000</action>
        <action>maincpu.mq@4840 = 0000000000000000</action>
    </script>
</cheat>
"direct turn (on 2nd area)" : reallocate address.

Code: Select all

<cheat desc="sound test mode">
    <comment>reset the game (F3) to enter sound test mode</comment>
    <script state="on">
        <action>maincpu.mw@0005 =             06ae</action> <!-- skip some boot sequences -->
        <action>maincpu.md@0742 =         004820c3</action>
        <action>maincpu.mq@4850 = 7b60835bed590021</action>
        <action>maincpu.mq@4858 = b8b3dae67a5f21e6</action>
        <action>maincpu.mq@4860 = 35012080fef02847</action>
        <action>maincpu.mq@4868 = 2020fe34012008fe</action>
        <action>maincpu.mq@4870 = 2010fe0618f03e04</action>
        <action>maincpu.mq@4878 = 40fe787786103e05</action>
        <action>maincpu.mq@4880 = 2001fe06187e0320</action>
        <action>maincpu.mq@4888 = c318609032f23e05</action>
        <!--
        4850 | 21 00 59    : ld  hl,$5900   // sound code address
        4853 | ed 5b 83 60 : ld  de,($6083) // read input
        4857 | 7b          : ld  a,e
        4858 | e6 21       : and $21
        485a | 5f          : ld  e,a
        485b | 7a          : ld  a,d
        485c | e6 da       : and $DA
        485e | b3          : or  e
        485f | b8          : cp  b
        4860 | 47          : ld  b,a
        4861 | 28 f0       : jr  z,$4853
        4863 | fe 80       : cp  $80
        4865 | 20 01       : jr  nz,$4868
        4867 | 35          : dec (hl)       // decrease code -01
        4868 | fe 08       : cp  $08
        486a | 20 01       : jr  nz,$486D
        486c | 34          : inc (hl)       // increase code +01
        486d | fe 20       : cp  $20
        486f | 20 04       : jr  nz,$4875
        4871 | 3e f0       : ld  a,$F0      // decrease code -10
        4873 | 18 06       : jr  $487B
        4875 | fe 10       : cp  $10
        4877 | 20 05       : jr  nz,$487E
        4879 | 3e 10       : ld  a,$10      // increase code +10
        487b | 86          : add a,(hl)
        487c | 77          : ld  (hl),a
        487d | 78          : ld  a,b
        487e | fe 40       : cp  $40
        4880 | 20 03       : jr  nz,$4885
        4882 | 7e          : ld  a,(hl)     // play sound
        4883 | 18 06       : jr  $488B
        4885 | fe 01       : cp  $01
        4887 | 20 05       : jr  nz,$488E
        4889 | 3e f2       : ld  a,$F2      // stop sound
        488b | 32 90 60    : ld  ($6090),a  // send sound code
        488e | 18 c3       : jr  $4853
        -->
    </script>
    <script state="run">
        <output format="----- zodiack 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@5900</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@0005 =             44d1</action>
        <action>maincpu.md@0742 =         00320006</action>
        <action>maincpu.mq@4850 = 0000000000000000</action>
        <action>maincpu.mq@4858 = 0000000000000000</action>
        <action>maincpu.mq@4860 = 0000000000000000</action>
        <action>maincpu.mq@4868 = 0000000000000000</action>
        <action>maincpu.mq@4870 = 0000000000000000</action>
        <action>maincpu.mq@4878 = 0000000000000000</action>
        <action>maincpu.mq@4880 = 0000000000000000</action>
        <action>maincpu.mq@4888 = 0000000000000000</action>
    </script>
</cheat>
"sound test mode" : rewrite code. reallocate address. add "up/down" key (code ±10). change "sound stop" key from "up" to "start". add missing codes for "off" state.
jman
Posts: 844
Joined: Tue Dec 01, 2020 1:24 pm

[zodiack] Zodiack

Post by jman »

Code: Select all

<!-- Zodiack -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@1C65 = F5</action> <!-- 2nd scene -->
            <action>maincpu.mb@1C8A = F5</action> <!-- 1st scene -->
        </script>
        <script state="off">
            <action>maincpu.mb@1C65 = 92</action>
            <action>maincpu.mb@1C8A = F9</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@1942 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1942 = C0</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <comment>works in 1st and 2nd scenes</comment>
        <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">
            <action>maincpu.md@1264 = 004800CD        </action> <!-- y position -->
            <action>maincpu.md@1282 = 004805CD        </action> <!-- x position -->
            <action>maincpu.mq@4800 = A77E130118588E11</action>
            <action>maincpu.mq@4808 = ED4811F2003E0728</action>
            <action>maincpu.mq@4810 = 000000C9801A4744</action>
            <!--
            4800 | 11 8E 58 : ld   de,$588E // y position
            4803 | 18 01    : jr   $4806
            4805 | 13       : inc  de       // x position
            4806 | 7E       : ld   a,(hl)   // main routine
            4807 | A7       : and  a
            4808 | 28 07    : jr   z,$4811
            480A | 3E xx    : ld   a,$xx
            480C | F2 11 48 : jp   p,$4811
            480F | ED 44    : neg
            4811 | 47       : ld   b,a
            4812 | 1A       : ld   a,(de)
            4813 | 80       : add  a,b
            4814 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@480B = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@1264 = 86588E3A        </action>
            <action>maincpu.md@1282 = 86588F3A        </action>
            <action>maincpu.mq@4800 = 0000000000000000</action>
            <action>maincpu.mq@4808 = 0000000000000000</action>
            <action>maincpu.mq@4810 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="direct turn">
        <comment>works in 2nd scene</comment>
        <script state="on">
            <action>maincpu.mw@121A = 4820            </action>
            <action>maincpu.mq@4820 = 0C280FE658313A47</action>
            <action>maincpu.mq@4828 = 46195F0016483921</action>
            <action>maincpu.mq@4830 = 58903278010736DD</action>
            <action>maincpu.mq@4838 = 0E0200000C0400C9</action>
            <action>maincpu.mq@4840 = 000000000A060800</action>
            <!--
            4820 | 47          : ld   b,a
            4821 | 3A 31 58    : ld   a,($5831)
            4824 | E6 0F       : and  $0F
            4826 | 28 0C       : jr   z,$4834
            4828 | 21 39 48    : ld   hl,$4839
            482B | 16 00       : ld   d,$00
            482D | 5F          : ld   e,a
            482E | 19          : add  hl,de
            482F | 46          : ld   b,(hl)
            4830 | DD 36 07 01 : ld   (ix+$07),$01
            4834 | 78          : ld   a,b
            4835 | 32 90 58    : ld   ($5890),a
            4838 | C9          : ret
            4839 - 4842        : input/direction conversion table
             input direction
              01      04       : right
              02      0c       : left
              04      00       : up
              05      02       : upper-right
              06      0e       : upper-left
              08      08       : down
              09      06       : lower-right
              0a      0a       : lower-left
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@121A = 108F            </action>
            <action>maincpu.mq@4820 = 0000000000000000</action>
            <action>maincpu.mq@4828 = 0000000000000000</action>
            <action>maincpu.mq@4830 = 0000000000000000</action>
            <action>maincpu.mq@4838 = 0000000000000000</action>
            <action>maincpu.mq@4840 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="no inertia">
        <comment>works in 3rd scene</comment>
        <script state="on">
            <action>maincpu.mw@13EE = 4890            </action>
            <action>maincpu.mq@4890 = 2847CB030658313A</action>
            <action>maincpu.mq@4898 = 0602284FCB060602</action>
            <action>maincpu.mq@48A0 = 0000000000C978FE</action>
            <!--
            4890 | 3A 31 58 : ld   a,($5831) // read input
            4893 | 06 03    : ld   b,$03
            4895 | CB 47    : bit  0,a
            4897 | 28 02    : jr   z,$489B
            4899 | 06 06    : ld   b,$06     // right
            489B | CB 4F    : bit  1,a
            489D | 28 02    : jr   z,$48A1
            489F | 06 FE    : ld   b,$FE     // left
            48A1 | 78       : ld   a,b
            48A2 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.mw@13EE = 16D1            </action>
            <action>maincpu.mq@4890 = 0000000000000000</action>
            <action>maincpu.mq@4898 = 0000000000000000</action>
            <action>maincpu.mq@48A0 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@0005 = 06AE            </action> <!-- skip some boot sequences -->
            <action>maincpu.md@0742 = 004820C3        </action>
            <action>maincpu.mq@4850 = 7B60835BED590021</action>
            <action>maincpu.mq@4858 = B8B3DAE67A5F21E6</action>
            <action>maincpu.mq@4860 = 35012080FEF02847</action>
            <action>maincpu.mq@4868 = 2020FE34012008FE</action>
            <action>maincpu.mq@4870 = 2010FE0618F03E04</action>
            <action>maincpu.mq@4878 = 40FE787786103E05</action>
            <action>maincpu.mq@4880 = 2001FE06187E0320</action>
            <action>maincpu.mq@4888 = C318609032F23E05</action>
            <!--
            4850 | 21 00 59    : ld   hl,$5900   // sound code address
            4853 | ED 5B 83 60 : ld   de,($6083) // read input
            4857 | 7B          : ld   a,e
            4858 | E6 21       : and  $21
            485A | 5F          : ld   e,a
            485B | 7A          : ld   a,d
            485C | E6 DA       : and  $DA
            485E | B3          : or   e
            485F | B8          : cp   b
            4860 | 47          : ld   b,a
            4861 | 28 F0       : jr   z,$4853
            4863 | FE 80       : cp   $80
            4865 | 20 01       : jr   nz,$4868
            4867 | 35          : dec  (hl)       // decrease code -01
            4868 | FE 08       : cp   $08
            486A | 20 01       : jr   nz,$486D
            486C | 34          : inc  (hl)       // increase code +01
            486D | FE 20       : cp   $20
            486F | 20 04       : jr   nz,$4875
            4871 | 3E F0       : ld   a,$F0      // decrease code -10
            4873 | 18 06       : jr   $487B
            4875 | FE 10       : cp   $10
            4877 | 20 05       : jr   nz,$487E
            4879 | 3E 10       : ld   a,$10      // increase code +10
            487B | 86          : add  a,(hl)
            487C | 77          : ld   (hl),a
            487D | 78          : ld   a,b
            487E | FE 40       : cp   $40
            4880 | 20 03       : jr   nz,$4885
            4882 | 7E          : ld   a,(hl)     // play sound
            4883 | 18 06       : jr   $488B
            4885 | FE 01       : cp   $01
            4887 | 20 05       : jr   nz,$488E
            4889 | 3E F2       : ld   a,$F2      // stop sound
            488B | 32 90 60    : ld   ($6090),a  // send sound code
            488E | 18 C3       : jr   $4853
            -->
        </script>
        <script state="run">
            <output format="----- zodiack 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@5900</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@0005 = 44D1            </action>
            <action>maincpu.md@0742 = 00320006        </action>
            <action>maincpu.mq@4850 = 0000000000000000</action>
            <action>maincpu.mq@4858 = 0000000000000000</action>
            <action>maincpu.mq@4860 = 0000000000000000</action>
            <action>maincpu.mq@4868 = 0000000000000000</action>
            <action>maincpu.mq@4870 = 0000000000000000</action>
            <action>maincpu.mq@4878 = 0000000000000000</action>
            <action>maincpu.mq@4880 = 0000000000000000</action>
            <action>maincpu.mq@4888 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action> maincpu.mw@44D6 = 2B18</action> <!-- maincpu (ram) -->
            <action> maincpu.mw@45F3 = 1F18</action> <!-- maincpu (rom) -->
            <action>audiocpu.mw@007A = 2818</action> <!-- audiocpu (ram) -->
            <!-- no rom check for audio cpu? -->
            </script>
        <script state="off">
            <action> maincpu.mw@44D6 = DD21</action>
            <action> maincpu.mw@45F3 = 0021</action>
            <action>audiocpu.mw@007A = DD21</action>
        </script>
    </cheat>

</mamecheat>
"no inertia" : Added new.
Post Reply