[omega] Omega

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

[omega] Omega

Post by jman »

Code: Select all

<cheat desc="keep a ball">
    <script state="on">
        <action>maincpu.ob@1d87 = 18</action>
    </script>
    <script state="off">
        <action>maincpu.ob@1d87 = 28</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@050d =             3fa0</action>
        <action>maincpu.oq@3fa0 = ffff32ff3effff21</action>
        <action>maincpu.mq@3fa0 = c0baff01ff0000ff</action>
        <action>maincpu.oq@3fa8 = fff2ff28a7ffff3a</action>
        <action>maincpu.mq@3fa8 = b5ff09ffffc0dfff</action>
        <action>maincpu.oq@3fb0 = 47ff3eff18ff3eff</action>
        <action>maincpu.mq@3fb0 = ff20ff02ff10ff3f</action>
        <action>maincpu.oq@3fb8 = ffff22b02fffff3a</action>
        <action>maincpu.mq@3fb8 = c100ffffffe000ff</action>
        <action>maincpu.oq@3fc0 = ff20fffeff286fbd</action>
        <action>maincpu.mq@3fc0 = 01ff20ffe4ffffff</action>
        <action>maincpu.oq@3fc8 = fffe24ff20fffe25</action>
        <action>maincpu.mq@3fc8 = 01ffff01ff10ffff</action>
        <action>maincpu.oq@3fd0 = 20fffeff187cff20</action>
        <action>maincpu.mq@3fd0 = ff02ff06ffff03ff</action>
        <action>maincpu.oq@3fd8 = ff18ffff32ff3eff</action>
        <action>maincpu.mq@3fd8 = c8ffcc00ff13ff05</action>
        <!--
        3fa0 | 21 00 00 :  ld  hl,$0000  // initialize sound and input values
        3fa3 | 3e 01    :  ld  a,$01
        3fa5 | 32 ba c0 :  ld  ($c0ba),a
        3fa8 | 3a df c0 :  ld  a,($c0df) // read paddle input
        3fab | a7       :  and a
        3fac | 28 09    :  jr  z,$3fb7
        3fae | f2 b5 3f :  jp  p,$3fb5
        3fb1 | 3e 10    :  ld  a,$10
        3fb3 | 18 02    :  jr  $3fb7
        3fb5 | 3e 20    :  ld  a,$20
        3fb7 | 47       :  ld  b,a
        3fb8 | 3a 00 e0 :  ld  a,($e000) // read button input
        3fbb | 2f       :  cpl
        3fbc | b0       :  or  b
        3fbd | 22 00 c1 :  ld  ($c100),hl
        3fc0 | bd       :  cp  l
        3fc1 | 6f       :  ld  l,a
        3fc2 | 28 e4    :  jr  z,$3fa8
        3fc4 | fe 20    :  cp  $20
        3fc6 | 20 01    :  jr  nz,$3fc9
        3fc8 | 25       :  dec h         // decrease code
        3fc9 | fe 10    :  cp  $10
        3fcb | 20 01    :  jr  nz,$3fce
        3fcd | 24       :  inc h         // increase code
        3fce | fe 01    :  cp  $01
        3fd0 | 20 03    :  jr  nz,$3fd5
        3fd2 | 7c       :  ld  a,h       // play sound
        3fd3 | 18 06    :  jr  $3fdb
        3fd5 | fe 02    :  cp  $02
        3fd7 | 20 05    :  jr  nz,$3fde
        3fd9 | 3e 13    :  ld  a,$13     // stop sound
        3fdb | 32 00 cc :  ld  ($cc00),a
        3fde | 18 c8    :  jr  $3fa8
        -->
    </script>
    <script state="run">
        <output format="----- omega sound test mode -----"  line="10" align="center" />
        <output format="left : increase code"               line="11" align="center" />
        <output format="right : decrease code"              line="12" align="center" />
        <output format="button 1 : play sound"              line="13" align="center" />
        <output format="button 2 : 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@c101</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.mw@050d =             b008</action>
        <action>maincpu.oq@3fa0 = dd8cd460e31d5b9f</action>
        <action>maincpu.mq@3fa0 = ffffffffffffffff</action>
        <action>maincpu.oq@3fa8 = dd8cd460e31d5b9f</action>
        <action>maincpu.mq@3fa8 = ffffffffffffffff</action>
        <action>maincpu.oq@3fb0 = 07de84e8a77785e9</action>
        <action>maincpu.mq@3fb0 = ffffffffffffffff</action>
        <action>maincpu.oq@3fb8 = 07de84e8a77785e9</action>
        <action>maincpu.mq@3fb8 = ffffffffffffffff</action>
        <action>maincpu.oq@3fc0 = f1fd0d8692521971</action>
        <action>maincpu.mq@3fc0 = ffffffffffffffff</action>
        <action>maincpu.oq@3fc8 = f1fd0d8692521971</action>
        <action>maincpu.mq@3fc8 = ffffffffffffffff</action>
        <action>maincpu.oq@3fd0 = c81160bbd884c4a2</action>
        <action>maincpu.mq@3fd0 = ffffffffffffffff</action>
        <action>maincpu.oq@3fd8 = c81160bbd884c4a2</action>
        <action>maincpu.mq@3fd8 = ffffffffffffffff</action>
    </script>
</cheat>
The following code is incomplete so that require more test. Sometimes ball doesn't penetrate a block.

Code: Select all

<cheat desc="penetrate block">
    <script state="on">
        <action>maincpu.ob@1fa9 =               cd</action>
        <action>maincpu.mw@1faa =             3fe0</action>
        <action>maincpu.oq@3fe0 = dd28a77ee1e5fd47</action>
        <action>maincpu.mq@3fe0 = 09ffffffffffffff</action>
        <action>maincpu.oq@3fe8 = 77dd786020a77e23</action>
        <action>maincpu.mq@3fe8 = ffffff04ffffffff</action>
        <action>maincpu.ow@3ff0 =             c9e9</action>
        <action>maincpu.mw@3ff0 =             ff10</action>
        <!--
        3fe0 : 47       : ld   b,a
        3fe1 : fd e5    : push iy
        3fe3 : e1       : pop  hl
        3fe4 : 7e       : ld   a,(hl)
        3fe5 : a7       : and  a
        3fe6 : 28 09    : jr   z,$3ff1
        3fe8 : 23       : inc  hl
        3fe9 : 7e       : ld   a,(hl)
        3fea : a7       : and  a
        3feb : 20 04    : jr   nz,$3ff1
        3fed : 78       : ld   a,b
        3fee : dd 77 10 : ld   (ix+$10),a
        3ff1 : c9       : ret
        -->
    </script>
    <script state="off">
        <action>maincpu.ow@1fa9 =             77dd</action>
        <action>maincpu.mb@1fab =               10</action>
        <action>maincpu.oq@3fa0 = dd8cd460e31d5b9f</action>
        <action>maincpu.mq@3fa0 = ffffffffffffffff</action>
        <action>maincpu.oq@3fa8 = dd8cd460e31d5b9f</action>
        <action>maincpu.mq@3fa8 = ffffffffffffffff</action>
        <action>maincpu.ow@3fb0 =             e985</action>
        <action>maincpu.mw@3fb0 =             ffff</action>
    </script>
</cheat>
jman
Posts: 843
Joined: Tue Dec 01, 2020 1:24 pm

[omega]+ Omega

Post by jman »

omega.xml

Code: Select all

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

    <cheat desc="keep a ball">
        <script state="on">
            <action>maincpu.ob@1D87 = 18</action>
        </script>
        <script state="off">
            <action>maincpu.ob@1D87 = 28</action>
        </script>
    </cheat>

    <cheat desc="no hit - bomb">
        <script state="on">
            <action>maincpu.ob@32DA = C9</action>
        </script>
        <script state="off">
            <action>maincpu.ob@32DA = D0</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@1909 = D8</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1909 = D9</action>
        </script>
    </cheat>

    <cheat desc="ball speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0180">02       </item>
            <item value="0x0380">03       </item>
            <item value="0x0580">04       </item>
            <item value="0x0780">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.od@1C8E = DDFFFFCD        </action>
            <action>maincpu.md@1C8E = FF4030FF        </action>
            <action>maincpu.oq@4030 = 54FFFFCD7A46234E</action>
            <action>maincpu.mq@4030 = FF4040FFFFFFFFFF</action>
            <action>maincpu.oq@4038 = C94D44FFFFCD785D</action>
            <action>maincpu.mq@4038 = FFFFFF4040FFFFFF</action>
            <action>maincpu.oq@4040 = FFFF21F0A7FFFF21</action>
            <action>maincpu.mq@4040 = 0000FFFFFF0000FF</action>
            <action>maincpu.oq@4048 = FFFFFFFFFFFFFFC9</action>
            <action>maincpu.mq@4048 = FFFFFFFFFFFFFFFF</action>
            <!--
            4030 | 4E       : ld   c,(hl)
            4031 | 23       : inc  hl
            4032 | 46       : ld   b,(hl)
            4033 | 7A       : ld   a,d
            4034 | CD 40 40 : call $4040
            4037 | 54       : ld   d,h
            4038 | 5D       : ld   e,l
            4039 | 78       : ld   a,b
            403A | CD 40 40 : call $4040
            403D | 44       : ld   b,h
            403E | 4D       : ld   c,l
            403F | C9       : ret
            4040 | 21 xx xx : ld   hl,$xxxx
            4043 | A7       : and  a
            4044 | F0       : ret  p
            4045 | 21 xx xx : ld   hl,$xxxx
            4048 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@4041 =  param</action>
            <action>maincpu.mw@4046 = -param</action>
        </script>
        <script state="off">
            <action>maincpu.od@1C8E = DD46234E        </action>
            <action>maincpu.md@1C8E = C0CDEDB7        </action>
            <action>maincpu.oq@4030 = 74A1E0311987AC44</action>
            <action>maincpu.mq@4030 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@4038 = 74A1E0311987AC44</action>
            <action>maincpu.mq@4038 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@4040 = 04D30BFCD62A2E8C</action>
            <action>maincpu.mq@4040 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@4048 = 04D30BFCD62A2E8C</action>
            <action>maincpu.mq@4048 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="infinite shot (test)">
        <comment>bullet is decreased</comment>
        <script state="on">
            <action>maincpu.mb@1913 = 00</action>
            <action>maincpu.ob@191F = 18</action>
            <action>maincpu.mb@1929 = 00</action>
            <action>maincpu.mb@1930 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1913 = 52</action>
            <action>maincpu.ob@191F = 20</action>
            <action>maincpu.mb@1929 = 0C</action>
            <action>maincpu.mb@1930 = 35</action>
        </script>
    </cheat>

    <cheat desc="penetrate block (test)">
        <!-- sometimes doesn't penetrate block -->
        <script state="on">
            <action>maincpu.ob@1FA9 = CD              </action>
            <action>maincpu.mw@1FAA = 3FE0            </action>
            <action>maincpu.oq@3FE0 = FF28A77EE1E5FD47</action>
            <action>maincpu.mq@3FE0 = 09FFFFFFFFFFFFFF</action>
            <action>maincpu.oq@3FE8 = 77DD78FF20A77E23</action>
            <action>maincpu.mq@3FE8 = FFFFFF04FFFFFFFF</action>
            <action>maincpu.oq@3FF0 = FFFFFFFFFFFFC9FF</action>
            <action>maincpu.mq@3FF0 = FFFFFFFFFFFFFF10</action>
            <!--
            3FE0 | 47       : ld   b,a
            3FE1 | FD E5    : push iy
            3FE3 | E1       : pop  hl
            3FE4 | 7E       : ld   a,(hl)
            3FE5 | A7       : and  a
            3FE6 | 28 09    : jr   z,$3FF1
            3FE8 | 23       : inc  hl
            3FE9 | 7E       : ld   a,(hl)
            3FEA | A7       : and  a
            3FEB | 20 04    : jr   nz,$3FF1
            3FED | 78       : ld   a,b
            3FEE | DD 77 10 : ld   (ix+$10),a
            3FF1 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.oq@1FA9 = DD              </action>
            <action>maincpu.mq@1FAA = 1031            </action>
            <action>maincpu.oq@3FE0 = F1FD0D8692521971</action>
            <action>maincpu.mq@3FE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@3FE8 = F1FD0D8692521971</action>
            <action>maincpu.mq@3FE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@3FF0 = C81160BBD884C4A2</action>
            <action>maincpu.mq@3FF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@3FF8 = C81160BBD884C4A2</action>
            <action>maincpu.mq@3FF8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- code 0x14 or later reset the game -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@050D = 3FA0            </action>
            <action>maincpu.oq@3FA0 = FFFF32FF3EFFFF21</action>
            <action>maincpu.mq@3FA0 = C0BAFF01FFC200FF</action>
            <action>maincpu.oq@3FA8 = FF3EFF28A7FFFF3A</action>
            <action>maincpu.mq@3FA8 = 10FF07FFFFC0DFFF</action>
            <action>maincpu.oq@3FB0 = FF3A4FFF3EFFFFF2</action>
            <action>maincpu.mq@3FB0 = 00FFFF20FF3FB5FF</action>
            <action>maincpu.oq@3FB8 = FEFF2847B8B12FFF</action>
            <action>maincpu.mq@3FB8 = FFE9FFFFFFFFFFE0</action>
            <action>maincpu.oq@3FC0 = FF20FFFE35FF20FF</action>
            <action>maincpu.mq@3FC0 = 01FF20FFFF01FF10</action>
            <action>maincpu.oq@3FC8 = FF187EFF20FFFE34</action>
            <action>maincpu.mq@3FC8 = 06FFFF03FF01FFFF</action>
            <action>maincpu.oq@3FD0 = FF32FF3EFF20FFFE</action>
            <action>maincpu.mq@3FD0 = 00FF13FF05FF02FF</action>
            <action>maincpu.oq@3FD8 = FFFFFFFFFFFF18FF</action>
            <action>maincpu.mq@3FD8 = FFFFFFFFFFCDFFCC</action>
            <!--
            3FA0 | 21 00 C2 : ld   hl,$C200  // sound code address
            3FA3 | 3E 01    : ld   a,$01
            3FA5 | 32 BA C0 : ld   ($C0BA),a // enable sound
            3FA8 | 3A DF C0 : ld   a,($C0DF) // read paddle
            3FAB | A7       : and  a
            3FAC | 28 07    : jr   z,$3FB5
            3FAE | 3E 10    : ld   a,$10
            3FB0 | F2 B5 3F : jp   p,$3FB5
            3FB3 | 3E 20    : ld   a,$20
            3FB5 | 4F       : ld   c,a
            3FB6 | 3A 00 E0 : ld   a,($E000) // read buttons
            3FB9 | 2F       : cpl
            3FBA | B1       : or   c
            3FBB | B8       : cp   b
            3FBC | 47       : ld   b,a
            3FBD | 28 E9    : jr   z,$3FA8
            3FBF | FE 10    : cp   $10
            3FC1 | 20 01    : jr   nz,$3FC4
            3FC3 | 35       : dec  (hl)      // decrease code -01
            3FC4 | FE 20    : cp   $20
            3FC6 | 20 01    : jr   nz,$3FC9
            3FC8 | 34       : inc  (hl)      // increase code +01
            3FC9 | FE 01    : cp   $01
            3FCB | 20 03    : jr   nz,$3FD0
            3FCD | 7E       : ld   a,(hl)    // play sound
            3FCE | 18 06    : jr   $3FD6
            3FD0 | FE 02    : cp   $02
            3FD2 | 20 05    : jr   nz,$3FD9
            3FD4 | 3E 13    : ld   a,$13     // stop sound
            3FD6 | 32 00 CC : ld   ($CC00),a // send sound code
            3FD9 | 18 CD    : jr   $3FA8
            -->
        </script>
        <script state="run">
            <output format="----- omega 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="button 2 : 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@C200</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@050D = 08B0            </action>
            <action>maincpu.oq@3FA0 = DD8CD460E31D5B9F</action>
            <action>maincpu.mq@3FA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@3FA8 = DD8CD460E31D5B9F</action>
            <action>maincpu.mq@3FA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@3FB0 = 07DE84E8A77785E9</action>
            <action>maincpu.mq@3FB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@3FB8 = 07DE84E8A77785E9</action>
            <action>maincpu.mq@3FB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@3FC0 = F1FD0D8692521971</action>
            <action>maincpu.mq@3FC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@3FC8 = F1FD0D8692521971</action>
            <action>maincpu.mq@3FC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@3FD0 = C81160BBD884C4A2</action>
            <action>maincpu.mq@3FD0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@3FD8 = C81160BBD884C4A2</action>
            <action>maincpu.mq@3FD8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
omegaa.xml

Code: Select all

<!-- Omega (earlier) -->
<mamecheat version="1">

    <cheat desc="keep a ball">
        <script state="on">
            <action>maincpu.ob@1D87 = 18</action>
        </script>
        <script state="off">
            <action>maincpu.ob@1D87 = 28</action>
        </script>
    </cheat>

    <cheat desc="no hit - bomb">
        <script state="on">
            <action>maincpu.ob@32DA = C9</action>
        </script>
        <script state="off">
            <action>maincpu.ob@32DA = D0</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@1909 = D8</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1909 = D9</action>
        </script>
    </cheat>

    <cheat desc="ball speed">
        <parameter>
            <item value="0x0080">01 (slow)</item>
            <item value="0x0180">02       </item>
            <item value="0x0380">03       </item>
            <item value="0x0580">04       </item>
            <item value="0x0780">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.od@1C8E = DDFFFFCD        </action>
            <action>maincpu.md@1C8E = FF4030FF        </action>
            <action>maincpu.oq@4030 = 54FFFFCD7A46234E</action>
            <action>maincpu.mq@4030 = FF4040FFFFFFFFFF</action>
            <action>maincpu.oq@4038 = C94D44FFFFCD785D</action>
            <action>maincpu.mq@4038 = FFFFFF4040FFFFFF</action>
            <action>maincpu.oq@4040 = FFFF21F0A7FFFF21</action>
            <action>maincpu.mq@4040 = 0000FFFFFF0000FF</action>
            <action>maincpu.oq@4048 = FFFFFFFFFFFFFFC9</action>
            <action>maincpu.mq@4048 = FFFFFFFFFFFFFFFF</action>
            <!--
            4030 | 4E       : ld   c,(hl)
            4031 | 23       : inc  hl
            4032 | 46       : ld   b,(hl)
            4033 | 7A       : ld   a,d
            4034 | CD 40 40 : call $4040
            4037 | 54       : ld   d,h
            4038 | 5D       : ld   e,l
            4039 | 78       : ld   a,b
            403A | CD 40 40 : call $4040
            403D | 44       : ld   b,h
            403E | 4D       : ld   c,l
            403F | C9       : ret
            4040 | 21 xx xx : ld   hl,$xxxx
            4043 | A7       : and  a
            4044 | F0       : ret  p
            4045 | 21 xx xx : ld   hl,$xxxx
            4048 | C9       : ret
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@4041 =  param</action>
            <action>maincpu.mw@4046 = -param</action>
        </script>
        <script state="off">
            <action>maincpu.od@1C8E = DD46234E        </action>
            <action>maincpu.md@1C8E = C0CDEDB7        </action>
            <action>maincpu.oq@4030 = 74A1E0311987AC44</action>
            <action>maincpu.mq@4030 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@4038 = 74A1E0311987AC44</action>
            <action>maincpu.mq@4038 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@4040 = 04D30BFCD62A2E8C</action>
            <action>maincpu.mq@4040 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@4048 = 04D30BFCD62A2E8C</action>
            <action>maincpu.mq@4048 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="infinite shot (test)">
        <comment>bullet is decreased</comment>
        <script state="on">
            <action>maincpu.mb@1913 = 00</action>
            <action>maincpu.ob@191F = 18</action>
            <action>maincpu.mb@1929 = 00</action>
            <action>maincpu.mb@1930 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@1913 = 52</action>
            <action>maincpu.ob@191F = 20</action>
            <action>maincpu.mb@1929 = 0C</action>
            <action>maincpu.mb@1930 = 35</action>
        </script>
    </cheat>

    <cheat desc="penetrate block (test)">
        <!-- sometimes doesn't penetrate block -->
        <script state="on">
            <action>maincpu.ob@1FA9 = CD              </action>
            <action>maincpu.mw@1FAA = 3FE0            </action>
            <action>maincpu.oq@3FE0 = FF28A77EE1E5FD47</action>
            <action>maincpu.mq@3FE0 = 09FFFFFFFFFFFFFF</action>
            <action>maincpu.oq@3FE8 = 77DD78FF20A77E23</action>
            <action>maincpu.mq@3FE8 = FFFFFF04FFFFFFFF</action>
            <action>maincpu.oq@3FF0 = FFFFFFFFFFFFC9FF</action>
            <action>maincpu.mq@3FF0 = FFFFFFFFFFFFFF10</action>
            <!--
            3FE0 | 47       : ld   b,a
            3FE1 | FD E5    : push iy
            3FE3 | E1       : pop  hl
            3FE4 | 7E       : ld   a,(hl)
            3FE5 | A7       : and  a
            3FE6 | 28 09    : jr   z,$3FF1
            3FE8 | 23       : inc  hl
            3FE9 | 7E       : ld   a,(hl)
            3FEA | A7       : and  a
            3FEB | 20 04    : jr   nz,$3FF1
            3FED | 78       : ld   a,b
            3FEE | DD 77 10 : ld   (ix+$10),a
            3FF1 | C9       : ret
            -->
        </script>
        <script state="off">
            <action>maincpu.oq@1FA9 = DD              </action>
            <action>maincpu.mq@1FAA = 1031            </action>
            <action>maincpu.oq@3FE0 = F1FD0D8692521971</action>
            <action>maincpu.mq@3FE0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@3FE8 = F1FD0D8692521971</action>
            <action>maincpu.mq@3FE8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@3FF0 = C81160BBD884C4A2</action>
            <action>maincpu.mq@3FF0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@3FF8 = C81160BBD884C4A2</action>
            <action>maincpu.mq@3FF8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <!-- code 0x14 or later reset the game -->
        <comment>reset the game (F3) to enter sound test mode</comment>
        <script state="on">
            <action>maincpu.mw@050D = 3FA0            </action>
            <action>maincpu.oq@3FA0 = FFFF32FF3EFFFF21</action>
            <action>maincpu.mq@3FA0 = C0BAFF01FFC200FF</action>
            <action>maincpu.oq@3FA8 = FF3EFF28A7FFFF3A</action>
            <action>maincpu.mq@3FA8 = 10FF07FFFFC0DFFF</action>
            <action>maincpu.oq@3FB0 = FF3A4FFF3EFFFFF2</action>
            <action>maincpu.mq@3FB0 = 00FFFF20FF3FB5FF</action>
            <action>maincpu.oq@3FB8 = FEFF2847B8B12FFF</action>
            <action>maincpu.mq@3FB8 = FFE9FFFFFFFFFFE0</action>
            <action>maincpu.oq@3FC0 = FF20FFFE35FF20FF</action>
            <action>maincpu.mq@3FC0 = 01FF20FFFF01FF10</action>
            <action>maincpu.oq@3FC8 = FF187EFF20FFFE34</action>
            <action>maincpu.mq@3FC8 = 06FFFF03FF01FFFF</action>
            <action>maincpu.oq@3FD0 = FF32FF3EFF20FFFE</action>
            <action>maincpu.mq@3FD0 = 00FF13FF05FF02FF</action>
            <action>maincpu.oq@3FD8 = FFFFFFFFFFFF18FF</action>
            <action>maincpu.mq@3FD8 = FFFFFFFFFFCDFFCC</action>
            <!--
            3FA0 | 21 00 C2 : ld   hl,$C200  // sound code address
            3FA3 | 3E 01    : ld   a,$01
            3FA5 | 32 BA C0 : ld   ($C0BA),a // enable sound
            3FA8 | 3A DF C0 : ld   a,($C0DF) // read paddle
            3FAB | A7       : and  a
            3FAC | 28 07    : jr   z,$3FB5
            3FAE | 3E 10    : ld   a,$10
            3FB0 | F2 B5 3F : jp   p,$3FB5
            3FB3 | 3E 20    : ld   a,$20
            3FB5 | 4F       : ld   c,a
            3FB6 | 3A 00 E0 : ld   a,($E000) // read buttons
            3FB9 | 2F       : cpl
            3FBA | B1       : or   c
            3FBB | B8       : cp   b
            3FBC | 47       : ld   b,a
            3FBD | 28 E9    : jr   z,$3FA8
            3FBF | FE 10    : cp   $10
            3FC1 | 20 01    : jr   nz,$3FC4
            3FC3 | 35       : dec  (hl)      // decrease code -01
            3FC4 | FE 20    : cp   $20
            3FC6 | 20 01    : jr   nz,$3FC9
            3FC8 | 34       : inc  (hl)      // increase code +01
            3FC9 | FE 01    : cp   $01
            3FCB | 20 03    : jr   nz,$3FD0
            3FCD | 7E       : ld   a,(hl)    // play sound
            3FCE | 18 06    : jr   $3FD6
            3FD0 | FE 02    : cp   $02
            3FD2 | 20 05    : jr   nz,$3FD9
            3FD4 | 3E 13    : ld   a,$13     // stop sound
            3FD6 | 32 00 CC : ld   ($CC00),a // send sound code
            3FD9 | 18 CD    : jr   $3FA8
            -->
        </script>
        <script state="run">
            <output format="----- omega 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="button 2 : 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@C200</argument>
            </output>
        </script>
        <script state="off">
            <action>maincpu.mw@050D = 08B0            </action>
            <action>maincpu.oq@3FA0 = DD8CD460E31D5B9F</action>
            <action>maincpu.mq@3FA0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@3FA8 = DD8CD460E31D5B9F</action>
            <action>maincpu.mq@3FA8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@3FB0 = 07DE84E8A77785E9</action>
            <action>maincpu.mq@3FB0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@3FB8 = 07DE84E8A77785E9</action>
            <action>maincpu.mq@3FB8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@3FC0 = F1FD0D8692521971</action>
            <action>maincpu.mq@3FC0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@3FC8 = F1FD0D8692521971</action>
            <action>maincpu.mq@3FC8 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@3FD0 = C81160BBD884C4A2</action>
            <action>maincpu.mq@3FD0 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.oq@3FD8 = C81160BBD884C4A2</action>
            <action>maincpu.mq@3FD8 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

</mamecheat>
Post Reply