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="<< sound code %2.2X >>" 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="<< sound code %2.2X >>" 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>