[saturnzi] Saturn (Zilec)

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

[saturnzi] Saturn (Zilec)

Post by jman »

Code: Select all

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

    <cheat desc="no hit">
        <script state="on">
            <!-- upwards view -->
            <action>maincpu.mb@142B = C3</action> <!-- bullet -->
            <action>maincpu.mb@19DB = C3</action> <!-- enemy -->
            <action>maincpu.mb@1D16 = C3</action> <!-- enemy -->
            <action>maincpu.mb@2BF4 = C3</action> <!-- meteor -->
            <!-- diagonal view -->
            <action>maincpu.mb@0EB7 = C3</action> <!-- bullet -->
            <action>maincpu.mb@2987 = C3</action> <!-- enemy -->
        </script>
        <script state="off">
            <action>maincpu.mb@142B = D2</action>
            <action>maincpu.mb@19DB = D2</action>
            <action>maincpu.mb@1D16 = D2</action>
            <action>maincpu.mb@2BF4 = D2</action>
            <action>maincpu.mb@0EB7 = D2</action>
            <action>maincpu.mb@2987 = D2</action>
        </script>
    </cheat>

    <cheat desc="sound test mode (test)">
        <!-- 0x10 : credit, 0x41 - 0x63 : sfx, 0x81 - 0x8c and 0xc1 - 0xcc : music -->
        <!-- music (0xc1 - 0xcc) doesn't loop -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.md@2EE4 = 216000C3        </action>
            <action>maincpu.mq@6000 = 003AE0003A800021</action>
            <action>maincpu.mq@6008 = 2010FEF62847B8C0</action>
            <action>maincpu.mq@6010 = FE34012020FE3501</action>
            <action>maincpu.mq@6018 = FE0618F03E042080</action>
            <action>maincpu.mq@6020 = 787786103E052040</action>
            <action>maincpu.mq@6028 = FE05187E032008FE</action>
            <action>maincpu.mq@6030 = 18D00032AF042004</action>
            <action>maincpu.mq@6038 = 00000000000000CA</action>
            <!--
            6000 | 21 00 80 : ld  hl,$8000  // sound code address
            6003 | 3A 00 E0 : ld  a,($E000) // watchdog
            6006 | 3A 00 C0 : ld  a,($C000) // read input
            6009 | B8       : cp  b
            600A | 47       : ld  b,a
            600B | 28 F6    : jr  z,$6003
            600D | FE 10    : cp  $10
            600F | 20 01    : jr  nz,$6012
            6011 | 35       : dec (hl)      // decrease code -01
            6012 | FE 20    : cp  $20
            6014 | 20 01    : jr  nz,$6017
            6016 | 34       : inc (hl)      // increase code +01
            6017 | FE 80    : cp  $80
            6019 | 20 04    : jr  nz,$601F
            601B | 3E F0    : ld  a,$F0     // decrease code -10
            601D | 18 06    : jr  $6025
            601F | FE 40    : cp  $40
            6021 | 20 05    : jr  nz,$6028
            6023 | 3E 10    : ld  a,$10     // increase code +10
            6025 | 86       : add a,(hl)
            6026 | 77       : ld  (hl),a
            6027 | 78       : ld  a,b
            6028 | FE 08    : cp  $08
            602A | 20 03    : jr  nz,$602F
            602C | 7E       : ld  a,(hl)    // play sound
            602D | 18 05    : jr  $6034
            602F | FE 04    : cp  $04
            6031 | 20 04    : jr  nz,$6037
            6033 | AF       : xor a         // stop sound
            6034 | 32 00 D0 : ld  ($D000),a // send sound code
            6037 | 18 CA    : jr  $6003
            -->
            <action>audiocpu.mw@039F = 03A1</action> <!-- enable sfx -->
            <action>audiocpu.mw@04CB = 0000</action> <!-- reset audiocpu -->
            <action>audiocpu.mw@05FD = 05FF</action> <!-- enable music -->
        </script>
        <script state="run">
            <output format="----- saturn 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 %2.2X &gt;&gt;" line="19" align="center"  >
                <argument>maincpu.pb@8000</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.md@2EE4 = 21902511        </action>
            <action> maincpu.mq@6000 = 0000000000000000</action>
            <action> maincpu.mq@6008 = 0000000000000000</action>
            <action> maincpu.mq@6010 = 0000000000000000</action>
            <action> maincpu.mq@6018 = 0000000000000000</action>
            <action> maincpu.mq@6020 = 0000000000000000</action>
            <action> maincpu.mq@6028 = 0000000000000000</action>
            <action> maincpu.mq@6030 = 0000000000000000</action>
            <action> maincpu.mq@6038 = 0000000000000000</action>
            <action>audiocpu.mw@039F = 00B6            </action>
            <action>audiocpu.mw@04CB = 00B6            </action>
            <action>audiocpu.mw@05FD = 00B6            </action>
        </script>
    </cheat>

    <cheat desc="skip rom check">
        <script state="on">
            <action>maincpu.mb@2EBB = 0D</action>
        </script>
        <script state="off">
            <action>maincpu.mb@2EBB = 17</action>
        </script>
    </cheat>

</mamecheat>
  • "skip rom check" : This game calls rom check routine several times in title screen. So it's better to set this code at all time.
  • "sound test mode" : 0x10 : credit, 0x41 - 0x63 : sfx, 0x81 - 0x8c and 0xc1 - 0xcc : music. 0x81 - 0x8c are slow tempo but loop. 0xc1 - 0xcc are normal tempo but no loop.
Post Reply