Page 1 of 1

[ixion] Ixion

Posted: Tue Oct 03, 2023 11:08 am
by jman

Code: Select all

<!-- Ixion (prototype) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.ob@1536 = 18  </action> <!-- out of tile -->
            <action>maincpu.ow@189B = C9AF</action> <!-- background -->
            <action>maincpu.ob@1F9C = C9  </action> <!-- bullet -->
            <action>maincpu.ob@21AF = 18  </action> <!-- kailo/oliak -->
        </script>
        <script state="off">
            <action>maincpu.ob@1536 = 28  </action>
            <action>maincpu.ow@189B = CDE5</action>
            <action>maincpu.ob@1F9C = 21  </action>
            <action>maincpu.ob@21AF = 28  </action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter min="0x01" max="0x05" step="0x01" />
        <script state="on">
            <action>maincpu.ob@129E = C3              </action>
            <action>maincpu.mw@129F = 4D00            </action>
            <action>maincpu.oq@4D00 = CDFFFFCBDDC5FF06</action>
            <action>maincpu.mq@4D00 = FF4E01FFFFFF00FF</action>
            <action>maincpu.oq@4D08 = FFFFC9FF10C1FFFF</action>
            <action>maincpu.mq@4D08 = FFFFFFF5FFFF12A2</action>
            <!--
            4D00 | 06 xx       : ld   b,$xx
            4D02 | C5          : push bc
            4D03 | DD CB 01 4E : bit  1,(ix+$01)
            4D07 | CD A2 12    : call $12A2
            4D0A | C1          : pop  bc
            4D0B | 10 F5       : djnz $4D02
            4D0D | C9          : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mb@4D01 = param</action>
        </script>
        <script state="off">
            <action>maincpu.ob@129E = DD              </action>
            <action>maincpu.mw@129F = 016B            </action>
            <action>maincpu.oq@4D00 = D757D757D757D757</action>
            <action>maincpu.mq@4D00 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@4D08 = D757D757D757D757</action>
            <action>maincpu.mq@4D08 = 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.mw@2789 = 4D10            </action>
            <action>maincpu.oq@4D10 = FFE6FFFF3AFFFF21</action>
            <action>maincpu.mq@4D10 = 04FFC100FF6010FF</action>
            <action>maincpu.oq@4D18 = B1FFFF3A4F070707</action>
            <action>maincpu.mq@4D18 = FFC001FFFFFFFFFF</action>
            <action>maincpu.oq@4D20 = FF20FFFEFF2847B8</action>
            <action>maincpu.mq@4D20 = 01FF02FFEFFFFFFF</action>
            <action>maincpu.oq@4D28 = FFFE34FF20FFFE35</action>
            <action>maincpu.mq@4D28 = 08FFFF01FF01FFFF</action>
            <action>maincpu.oq@4D30 = FFFEFF18FF3EFF20</action>
            <action>maincpu.mq@4D30 = 04FF06FFF0FF04FF</action>
            <action>maincpu.oq@4D38 = FE787786FF3EFF20</action>
            <action>maincpu.mq@4D38 = FFFFFFFF10FF05FF</action>
            <action>maincpu.oq@4D40 = FFFEFF187EFF20FF</action>
            <action>maincpu.mq@4D40 = 20FF06FFFF03FF10</action>
            <action>maincpu.oq@4D48 = 18FFFF32FF3EFF20</action>
            <action>maincpu.mq@4D48 = FFFF3CFF03FF05FF</action>
            <action>maincpu.oq@4D50 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@4D50 = FFFFFFFFFFFFFFC2</action>
            <!--
            4D10 | 21 10 60 : ld   hl,$6010  // sound code address
            4D13 | 3A 00 C1 : ld   a,($C100) // read start button
            4D16 | E6 04    : and  $04
            4D18 | 07       : rlca
            4D19 | 07       : rlca
            4D1A | 07       : rlca
            4D1B | 4F       : ld   c,a
            4D1C | 3A 01 C0 : ld   a,($C001) // read other inputs
            4D1F | B1       : or   c
            4D20 | B8       : cp   b
            4D21 | 47       : ld   b,a
            4D22 | 28 EF    : jr   z,$4D13
            4D24 | FE 02    : cp   $02
            4D26 | 20 01    : jr   nz,$4D29
            4D28 | 35       : dec  (hl)      // decrease code -01
            4D29 | FE 01    : cp   $01
            4D2B | 20 01    : jr   nz,$4D2E
            4D2D | 34       : inc  (hl)      // increase code +01
            4D2E | FE 08    : cp   $08
            4D30 | 20 04    : jr   nz,$4D36
            4D32 | 3E F0    : ld   a,$F0     // decrease code -10
            4D34 | 18 06    : jr   $4D3C
            4D36 | FE 04    : cp   $04
            4D38 | 20 05    : jr   nz,$4D3F
            4D3A | 3E 10    : ld   a,$10     // increase code +10
            4D3C | 86       : add  a,(hl)
            4D3D | 77       : ld   (hl),a
            4D3E | 78       : ld   a,b
            4D3F | FE 10    : cp   $10
            4D41 | 20 03    : jr   nz,$4D46
            4D43 | 7E       : ld   a,(hl)    // play sound
            4D44 | 18 06    : jr   $4D4C
            4D46 | FE 20    : cp   $20
            4D48 | 20 05    : jr   nz,$4D4F
            4D4A | 3E 03    : ld   a,$03     // stop sound
            4D4C | 32 3C FF : ld   ($FF3C),a // send sound code
            4D4F | 18 C2    : jr   $4D13
            -->
        </script>
        <script state="run">
            <output format="----- ixion 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 1 : 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@6010</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@2789 = 4030            </action>
            <action>maincpu.oq@4D10 = 575F575F575F575F</action>
            <action>maincpu.mq@4D10 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@4D18 = 575F575F575F575F</action>
            <action>maincpu.mq@4D18 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@4D20 = D757D757D757D757</action>
            <action>maincpu.mq@4D20 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@4D28 = D757D757D757D757</action>
            <action>maincpu.mq@4D28 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@4D30 = 575F575F575F575F</action>
            <action>maincpu.mq@4D30 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@4D38 = 575F575F575F575F</action>
            <action>maincpu.mq@4D38 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@4D40 = D757D757D757D757</action>
            <action>maincpu.mq@4D40 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@4D48 = D757D757D757D757</action>
            <action>maincpu.mq@4D48 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@4D50 = 575F575F575F575F</action>
            <action>maincpu.mq@4D50 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
"no hit" : For some reson, you can move on no-tile space.