pollux.xml
Code: Select all
<!-- Pollux (set 1) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<!-- enemy -->
<action>maincpu.mb@5044 = D7 </action>
<action>maincpu.mq@0010 = 7940FE50E6097EFD</action>
<action>maincpu.mq@0018 = FFFFFFFFFFC9AFC8</action>
<!--
0010 | FD 7E 09 : ld a,(iy+$09)
0013 | E6 50 : and $50
0015 | FE 40 : cp $40
0017 | 79 : ld a,c
0018 | C8 : ret z
0019 | AF : xor a
001A | C9 : ret
-->
<action>maincpu.mb@50A3 = C3</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.mb@5044 = 79 </action>
<action>maincpu.mq@0010 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@0018 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mb@50A3 = CA </action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@3E4D = 4F</action>
<action>maincpu.mb@3E5C = 5E</action>
</script>
<script state="off">
<action>maincpu.mb@3E4D = BA</action>
<action>maincpu.mb@3E5C = BA</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x03">02 </item>
<item value="0x05">03 </item>
<item value="0x07">04 </item>
<item value="0x09">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@3ED8 = DD00001E</action> <!-- right -->
<action>maincpu.md@3EEB = DD00001E</action> <!-- left -->
<action>maincpu.md@3F04 = DD000016</action> <!-- down -->
<action>maincpu.md@3F21 = DD000016</action> <!-- up -->
<action>maincpu.md@3F3C = DD00001E</action> <!-- lower-right : right -->
<action>maincpu.md@3F49 = DD000016</action> <!-- lower-right : down -->
<action>maincpu.md@3F64 = DD00001E</action> <!-- lower-left : left -->
<action>maincpu.md@3F71 = DD000016</action> <!-- lower-left : down -->
<action>maincpu.md@3F8C = DD00001E</action> <!-- upper-right : right -->
<action>maincpu.md@3F99 = DD000016</action> <!-- upper-right : up -->
<action>maincpu.md@3FB4 = DD00001E</action> <!-- upper-left : left -->
<action>maincpu.md@3FC1 = DD000016</action> <!-- upper-left : up -->
</script>
<script state="change">
<action>maincpu.mb@3ED9 = param</action>
<action>maincpu.mb@3EEC = -param</action>
<action>maincpu.mb@3F05 = -param</action>
<action>maincpu.mb@3F22 = param</action>
<action>maincpu.mb@3F3D = param</action>
<action>maincpu.mb@3F4A = -param</action>
<action>maincpu.mb@3F65 = -param</action>
<action>maincpu.mb@3F72 = -param</action>
<action>maincpu.mb@3F8D = param</action>
<action>maincpu.mb@3F9A = param</action>
<action>maincpu.mb@3FB5 = -param</action>
<action>maincpu.mb@3FC2 = param</action>
</script>
<script state="off">
<action>maincpu.md@3ED8 = DD005EFD</action>
<action>maincpu.md@3EEB = DD015EFD</action>
<action>maincpu.md@3F04 = DD0156FD</action>
<action>maincpu.md@3F21 = DD0056FD</action>
<action>maincpu.md@3F3C = DD005EFD</action>
<action>maincpu.md@3F49 = DD0156FD</action>
<action>maincpu.md@3F64 = DD015EFD</action>
<action>maincpu.md@3F71 = DD0156FD</action>
<action>maincpu.md@3F8C = DD005EFD</action>
<action>maincpu.md@3F99 = DD0056FD</action>
<action>maincpu.md@3FB4 = DD015EFD</action>
<action>maincpu.md@3FC1 = DD0056FD</action>
</script>
</cheat>
<cheat desc="bullet speed - normal shot">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x10">02 </item>
<item value="0x18">03 </item>
<item value="0x20">04 </item>
<item value="0x28">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@4607 = param</action>
</script>
<script state="off">
<action>maincpu.mb@4607 = 12</action>
</script>
</cheat>
<cheat desc="bullet speed - multiway">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x10">02 </item>
<item value="0x18">03 </item>
<item value="0x20">04 </item>
<item value="0x28">05 (fast)</item>
</parameter>
<script state="change">
<!-- shot level 1 -->
<action>maincpu.mb@4314 = param</action>
<!-- shot level 2 -->
<action>maincpu.mb@4318 = param</action>
<action>maincpu.mb@431C = param</action>
<!-- shot level 3 -->
<action>maincpu.mb@4320 = param</action>
<action>maincpu.mb@4324 = param</action>
<action>maincpu.mb@4328 = param</action>
<!-- shot level 4 -->
<action>maincpu.mb@432C = param</action>
<action>maincpu.mb@4330 = param</action>
<action>maincpu.mb@4334 = param</action>
<action>maincpu.mb@4338 = param</action>
<!-- shot level 5 -->
<action>maincpu.mb@433C = param</action>
<action>maincpu.mb@4340 = param</action>
<action>maincpu.mb@4344 = param</action>
<action>maincpu.mb@4348 = param</action>
<action>maincpu.mb@434C = param</action>
</script>
<script state="off">
<action>maincpu.mb@4314 = 14</action>
<action>maincpu.mb@4318 = 14</action>
<action>maincpu.mb@431C = 14</action>
<action>maincpu.mb@4320 = 10</action>
<action>maincpu.mb@4324 = 14</action>
<action>maincpu.mb@4328 = 10</action>
<action>maincpu.mb@432C = 0F</action>
<action>maincpu.mb@4330 = 11</action>
<action>maincpu.mb@4334 = 11</action>
<action>maincpu.mb@4338 = 0F</action>
<action>maincpu.mb@433C = 0E</action>
<action>maincpu.mb@4340 = 10</action>
<action>maincpu.mb@4344 = 14</action>
<action>maincpu.mb@4348 = 10</action>
<action>maincpu.mb@434C = 0E</action>
</script>
</cheat>
<cheat desc="short hit mark">
<script state="on">
<action>maincpu.mb@46E6 = C3</action>
</script>
<script state="off">
<action>maincpu.mb@46E6 = CA</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mb@1BA1 = 03 </action> <!-- fix bank -->
<action>maincpu.mq@0C48 = B500C3F00032033E</action>
<action>maincpu.mq@F500 = 47B8F0023AC00021</action>
<action>maincpu.mq@F508 = FE350120FDFEF928</action>
<action>maincpu.mq@F510 = 0420FBFE340120FE</action>
<action>maincpu.mq@F518 = 0520F7FE0618F03E</action>
<action>maincpu.mq@F520 = 20EFFE787786103E</action>
<action>maincpu.mq@F528 = 0420DFFE05187E03</action>
<action>maincpu.mq@F530 = FFFFCD18F01032AF</action>
<!--
0C48 | 3E 03 : ld a,$03 // set bank
0C4A | 32 00 F0 : ld ($F000),a
0C4D | C3 00 B5 : jp $B500
================================
B500 | 21 00 C0 : ld hl,$C000 // sound code address
B503 | 3A 02 F0 : ld a,($F002) // read input
B506 | B8 : cp b
B507 | 47 : ld b,a
B508 | 28 F9 : jr z,$B503
B50A | FE FD : cp $FD
B50C | 20 01 : jr nz,$B50F
B50E | 35 : dec (hl) // decrease code -01
B50F | FE FE : cp $FE
B511 | 20 01 : jr nz,$B514
B513 | 34 : inc (hl) // increase code +01
B514 | FE FB : cp $FB
B516 | 20 04 : jr nz,$B51C
B518 | 3E F0 : ld a,$F0 // decrease code -10
B51A | 18 06 : jr $B522
B51C | FE F7 : cp $F7
B51E | 20 05 : jr nz,$B525
B520 | 3E 10 : ld a,$10 // increase code +10
B522 | 86 : add a,(hl)
B523 | 77 : ld (hl),a
B524 | 78 : ld a,b
B525 | FE EF : cp $EF
B527 | 20 03 : jr nz,$B52C
B529 | 7E : ld a,(hl) // play sound
B52A | 18 05 : jr $B531
B52C | FE DF : cp $DF
B52E | 20 04 : jr nz,$B534
B530 | AF : xor a // stop sound
B531 | 32 10 F0 : ld ($F010),a // send sound code
B534 | 18 CD : jr $B503
-->
</script>
<script state="run">
<output format="----- pollux 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="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@C000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@1BA1 = 02 </action>
<action>maincpu.mq@0C48 = 7FCDCF40311D8DC3</action>
<action>maincpu.mq@F500 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F508 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F510 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F518 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F520 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F528 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F530 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
</mamecheat>
polluxa.xml
Code: Select all
<!-- Pollux (set 2) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<!-- enemy -->
<action>maincpu.mb@500A = D7 </action>
<action>maincpu.mq@0010 = 7940FE50E6097EFD</action>
<action>maincpu.mq@0018 = FFFFFFFFFFC9AFC8</action>
<!--
0010 | FD 7E 09 : ld a,(iy+$09)
0013 | E6 50 : and $50
0015 | FE 40 : cp $40
0017 | 79 : ld a,c
0018 | C8 : ret z
0019 | AF : xor a
001A | C9 : ret
-->
<action>maincpu.mb@5069 = C3</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.mb@500A = 79 </action>
<action>maincpu.mq@0010 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@0018 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mb@5069 = CA </action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@3E3F = 41</action>
<action>maincpu.mb@3E4E = 50</action>
</script>
<script state="off">
<action>maincpu.mb@3E3F = AC</action>
<action>maincpu.mb@3E4E = AC</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x03">02 </item>
<item value="0x05">03 </item>
<item value="0x07">04 </item>
<item value="0x09">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@3ECA = DD00001E</action> <!-- right -->
<action>maincpu.md@3EDD = DD00001E</action> <!-- left -->
<action>maincpu.md@3EF6 = DD000016</action> <!-- down -->
<action>maincpu.md@3F13 = DD000016</action> <!-- up -->
<action>maincpu.md@3F2E = DD00001E</action> <!-- lower-right : right -->
<action>maincpu.md@3F3B = DD000016</action> <!-- lower-right : down -->
<action>maincpu.md@3F56 = DD00001E</action> <!-- lower-left : left -->
<action>maincpu.md@3F63 = DD000016</action> <!-- lower-left : down -->
<action>maincpu.md@3F7E = DD00001E</action> <!-- upper-right : right -->
<action>maincpu.md@3F8B = DD000016</action> <!-- upper-right : up -->
<action>maincpu.md@3FA6 = DD00001E</action> <!-- upper-left : left -->
<action>maincpu.md@3FB3 = DD000016</action> <!-- upper-left : up -->
</script>
<script state="change">
<action>maincpu.mb@3ECB = param</action>
<action>maincpu.mb@3EDE = -param</action>
<action>maincpu.mb@3EF7 = -param</action>
<action>maincpu.mb@3F14 = param</action>
<action>maincpu.mb@3F2F = param</action>
<action>maincpu.mb@3F3C = -param</action>
<action>maincpu.mb@3F57 = -param</action>
<action>maincpu.mb@3F64 = -param</action>
<action>maincpu.mb@3F7F = param</action>
<action>maincpu.mb@3F8C = param</action>
<action>maincpu.mb@3FA7 = -param</action>
<action>maincpu.mb@3FB4 = param</action>
</script>
<script state="off">
<action>maincpu.md@3ECA = DD005EFD</action>
<action>maincpu.md@3EDD = DD015EFD</action>
<action>maincpu.md@3EF6 = DD0156FD</action>
<action>maincpu.md@3F13 = DD0056FD</action>
<action>maincpu.md@3F2E = DD005EFD</action>
<action>maincpu.md@3F3B = DD0156FD</action>
<action>maincpu.md@3F56 = DD015EFD</action>
<action>maincpu.md@3F63 = DD0156FD</action>
<action>maincpu.md@3F7E = DD005EFD</action>
<action>maincpu.md@3F8B = DD0056FD</action>
<action>maincpu.md@3FA6 = DD015EFD</action>
<action>maincpu.md@3FB3 = DD0056FD</action>
</script>
</cheat>
<cheat desc="bullet speed - normal shot">
<parameter>
<item value="0x09">01 (slow)</item>
<item value="0x12">02 </item>
<item value="0x1b">03 </item>
<item value="0x24">04 </item>
<item value="0x2d">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@45F9 = param</action>
</script>
<script state="off">
<action>maincpu.mb@45F9 = 12</action>
</script>
</cheat>
<cheat desc="bullet speed - multiway">
<parameter>
<item value="0x0a">01 (slow)</item>
<item value="0x14">02 </item>
<item value="0x1e">03 </item>
<item value="0x28">04 </item>
<item value="0x32">05 (fast)</item>
</parameter>
<script state="change">
<!-- shot level 1 -->
<action>maincpu.mb@4306 = param</action>
<!-- shot level 2 -->
<action>maincpu.mb@430A = param</action>
<action>maincpu.mb@430E = param</action>
<!-- shot level 3 -->
<action>maincpu.mb@4312 = param</action>
<action>maincpu.mb@4316 = param</action>
<action>maincpu.mb@431A = param</action>
<!-- shot level 4 -->
<action>maincpu.mb@431E = param</action>
<action>maincpu.mb@4322 = param</action>
<action>maincpu.mb@4326 = param</action>
<action>maincpu.mb@432A = param</action>
<!-- shot level 5 -->
<action>maincpu.mb@432E = param</action>
<action>maincpu.mb@4332 = param</action>
<action>maincpu.mb@4336 = param</action>
<action>maincpu.mb@433A = param</action>
<action>maincpu.mb@433E = param</action>
</script>
<script state="off">
<action>maincpu.mb@4306 = 14</action>
<action>maincpu.mb@430A = 14</action>
<action>maincpu.mb@430E = 14</action>
<action>maincpu.mb@4312 = 10</action>
<action>maincpu.mb@4316 = 14</action>
<action>maincpu.mb@431A = 10</action>
<action>maincpu.mb@431E = 0F</action>
<action>maincpu.mb@4322 = 11</action>
<action>maincpu.mb@4326 = 11</action>
<action>maincpu.mb@432A = 0F</action>
<action>maincpu.mb@432E = 0E</action>
<action>maincpu.mb@4332 = 10</action>
<action>maincpu.mb@4336 = 14</action>
<action>maincpu.mb@433A = 10</action>
<action>maincpu.mb@433E = 0E</action>
</script>
</cheat>
<cheat desc="short hit mark">
<script state="on">
<action>maincpu.mb@46D8 = C3</action>
</script>
<script state="off">
<action>maincpu.mb@46D8 = CA</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mb@1BA1 = 03 </action> <!-- fix bank -->
<action>maincpu.mq@0C48 = B500C3F00032033E</action>
<action>maincpu.mq@F500 = 47B8F0023AC00021</action>
<action>maincpu.mq@F508 = FE350120FDFEF928</action>
<action>maincpu.mq@F510 = 0420FBFE340120FE</action>
<action>maincpu.mq@F518 = 0520F7FE0618F03E</action>
<action>maincpu.mq@F520 = 20EFFE787786103E</action>
<action>maincpu.mq@F528 = 0420DFFE05187E03</action>
<action>maincpu.mq@F530 = FFFFCD18F01032AF</action>
<!--
0C48 | 3E 03 : ld a,$03 // set bank
0C4A | 32 00 F0 : ld ($F000),a
0C4D | C3 00 B5 : jp $B500
================================
B500 | 21 00 C0 : ld hl,$C000 // sound code address
B503 | 3A 02 F0 : ld a,($F002) // read input
B506 | B8 : cp b
B507 | 47 : ld b,a
B508 | 28 F9 : jr z,$B503
B50A | FE FD : cp $FD
B50C | 20 01 : jr nz,$B50F
B50E | 35 : dec (hl) // decrease code -01
B50F | FE FE : cp $FE
B511 | 20 01 : jr nz,$B514
B513 | 34 : inc (hl) // increase code +01
B514 | FE FB : cp $FB
B516 | 20 04 : jr nz,$B51C
B518 | 3E F0 : ld a,$F0 // decrease code -10
B51A | 18 06 : jr $B522
B51C | FE F7 : cp $F7
B51E | 20 05 : jr nz,$B525
B520 | 3E 10 : ld a,$10 // increase code +10
B522 | 86 : add a,(hl)
B523 | 77 : ld (hl),a
B524 | 78 : ld a,b
B525 | FE EF : cp $EF
B527 | 20 03 : jr nz,$B52C
B529 | 7E : ld a,(hl) // play sound
B52A | 18 05 : jr $B531
B52C | FE DF : cp $DF
B52E | 20 04 : jr nz,$B534
B530 | AF : xor a // stop sound
B531 | 32 10 F0 : ld ($F010),a // send sound code
B534 | 18 CD : jr $B503
-->
</script>
<script state="run">
<output format="----- pollux 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="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@C000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@1BA1 = 02 </action>
<action>maincpu.mq@0C48 = 7FCDCF40311D8DC3</action>
<action>maincpu.mq@F500 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F508 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F510 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F518 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F520 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F528 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F530 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
</mamecheat>
polluxa2.xml
Code: Select all
<!-- Pollux (set 3) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<!-- enemy -->
<action>maincpu.mb@5044 = D7 </action>
<action>maincpu.mq@0010 = 7940FE50E6097EFD</action>
<action>maincpu.mq@0018 = FFFFFFFFFFC9AFC8</action>
<!--
0010 | FD 7E 09 : ld a,(iy+$09)
0013 | E6 50 : and $50
0015 | FE 40 : cp $40
0017 | 79 : ld a,c
0018 | C8 : ret z
0019 | AF : xor a
001A | C9 : ret
-->
<action>maincpu.mb@50A3 = C3</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.mb@5044 = 79 </action>
<action>maincpu.mq@0010 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@0018 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mb@50A3 = CA </action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@3E4D = 4F</action>
<action>maincpu.mb@3E5C = 5E</action>
</script>
<script state="off">
<action>maincpu.mb@3E4D = BA</action>
<action>maincpu.mb@3E5C = BA</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x03">02 </item>
<item value="0x05">03 </item>
<item value="0x07">04 </item>
<item value="0x09">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@3ED8 = DD00001E</action> <!-- right -->
<action>maincpu.md@3EEB = DD00001E</action> <!-- left -->
<action>maincpu.md@3F04 = DD000016</action> <!-- down -->
<action>maincpu.md@3F21 = DD000016</action> <!-- up -->
<action>maincpu.md@3F3C = DD00001E</action> <!-- lower-right : right -->
<action>maincpu.md@3F49 = DD000016</action> <!-- lower-right : down -->
<action>maincpu.md@3F64 = DD00001E</action> <!-- lower-left : left -->
<action>maincpu.md@3F71 = DD000016</action> <!-- lower-left : down -->
<action>maincpu.md@3F8C = DD00001E</action> <!-- upper-right : right -->
<action>maincpu.md@3F99 = DD000016</action> <!-- upper-right : up -->
<action>maincpu.md@3FB4 = DD00001E</action> <!-- upper-left : left -->
<action>maincpu.md@3FC1 = DD000016</action> <!-- upper-left : up -->
</script>
<script state="change">
<action>maincpu.mb@3ED9 = param</action>
<action>maincpu.mb@3EEC = -param</action>
<action>maincpu.mb@3F05 = -param</action>
<action>maincpu.mb@3F22 = param</action>
<action>maincpu.mb@3F3D = param</action>
<action>maincpu.mb@3F4A = -param</action>
<action>maincpu.mb@3F65 = -param</action>
<action>maincpu.mb@3F72 = -param</action>
<action>maincpu.mb@3F8D = param</action>
<action>maincpu.mb@3F9A = param</action>
<action>maincpu.mb@3FB5 = -param</action>
<action>maincpu.mb@3FC2 = param</action>
</script>
<script state="off">
<action>maincpu.md@3ED8 = DD005EFD</action>
<action>maincpu.md@3EEB = DD015EFD</action>
<action>maincpu.md@3F04 = DD0156FD</action>
<action>maincpu.md@3F21 = DD0056FD</action>
<action>maincpu.md@3F3C = DD005EFD</action>
<action>maincpu.md@3F49 = DD0156FD</action>
<action>maincpu.md@3F64 = DD015EFD</action>
<action>maincpu.md@3F71 = DD0156FD</action>
<action>maincpu.md@3F8C = DD005EFD</action>
<action>maincpu.md@3F99 = DD0056FD</action>
<action>maincpu.md@3FB4 = DD015EFD</action>
<action>maincpu.md@3FC1 = DD0056FD</action>
</script>
</cheat>
<cheat desc="bullet speed - normal shot">
<parameter>
<item value="0x09">01 (slow)</item>
<item value="0x12">02 </item>
<item value="0x1b">03 </item>
<item value="0x24">04 </item>
<item value="0x2d">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@4607 = param</action>
</script>
<script state="off">
<action>maincpu.mb@4607 = 12</action>
</script>
</cheat>
<cheat desc="bullet speed - multiway">
<parameter>
<item value="0x0a">01 (slow)</item>
<item value="0x14">02 </item>
<item value="0x1e">03 </item>
<item value="0x28">04 </item>
<item value="0x32">05 (fast)</item>
</parameter>
<script state="change">
<!-- shot level 1 -->
<action>maincpu.mb@4314 = param</action>
<!-- shot level 2 -->
<action>maincpu.mb@4318 = param</action>
<action>maincpu.mb@431C = param</action>
<!-- shot level 3 -->
<action>maincpu.mb@4320 = param</action>
<action>maincpu.mb@4324 = param</action>
<action>maincpu.mb@4328 = param</action>
<!-- shot level 4 -->
<action>maincpu.mb@432C = param</action>
<action>maincpu.mb@4330 = param</action>
<action>maincpu.mb@4334 = param</action>
<action>maincpu.mb@4338 = param</action>
<!-- shot level 5 -->
<action>maincpu.mb@433C = param</action>
<action>maincpu.mb@4340 = param</action>
<action>maincpu.mb@4344 = param</action>
<action>maincpu.mb@4348 = param</action>
<action>maincpu.mb@434C = param</action>
</script>
<script state="off">
<action>maincpu.mb@4314 = 14</action>
<action>maincpu.mb@4318 = 14</action>
<action>maincpu.mb@431C = 14</action>
<action>maincpu.mb@4320 = 10</action>
<action>maincpu.mb@4324 = 14</action>
<action>maincpu.mb@4328 = 10</action>
<action>maincpu.mb@432C = 0F</action>
<action>maincpu.mb@4330 = 11</action>
<action>maincpu.mb@4334 = 11</action>
<action>maincpu.mb@4338 = 0F</action>
<action>maincpu.mb@433C = 0E</action>
<action>maincpu.mb@4340 = 10</action>
<action>maincpu.mb@4344 = 14</action>
<action>maincpu.mb@4348 = 10</action>
<action>maincpu.mb@434C = 0E</action>
</script>
</cheat>
<cheat desc="short hit mark">
<script state="on">
<action>maincpu.mb@46E6 = C3</action>
</script>
<script state="off">
<action>maincpu.mb@46E6 = CA</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mb@1BA1 = 03 </action> <!-- fix bank -->
<action>maincpu.mq@0C48 = B500C3F00032033E</action>
<action>maincpu.mq@F500 = 47B8F0023AC00021</action>
<action>maincpu.mq@F508 = FE350120FDFEF928</action>
<action>maincpu.mq@F510 = 0420FBFE340120FE</action>
<action>maincpu.mq@F518 = 0520F7FE0618F03E</action>
<action>maincpu.mq@F520 = 20EFFE787786103E</action>
<action>maincpu.mq@F528 = 0420DFFE05187E03</action>
<action>maincpu.mq@F530 = FFFFCD18F01032AF</action>
<!--
0C48 | 3E 03 : ld a,$03 // set bank
0C4A | 32 00 F0 : ld ($F000),a
0C4D | C3 00 B5 : jp $B500
================================
B500 | 21 00 C0 : ld hl,$C000 // sound code address
B503 | 3A 02 F0 : ld a,($F002) // read input
B506 | B8 : cp b
B507 | 47 : ld b,a
B508 | 28 F9 : jr z,$B503
B50A | FE FD : cp $FD
B50C | 20 01 : jr nz,$B50F
B50E | 35 : dec (hl) // decrease code -01
B50F | FE FE : cp $FE
B511 | 20 01 : jr nz,$B514
B513 | 34 : inc (hl) // increase code +01
B514 | FE FB : cp $FB
B516 | 20 04 : jr nz,$B51C
B518 | 3E F0 : ld a,$F0 // decrease code -10
B51A | 18 06 : jr $B522
B51C | FE F7 : cp $F7
B51E | 20 05 : jr nz,$B525
B520 | 3E 10 : ld a,$10 // increase code +10
B522 | 86 : add a,(hl)
B523 | 77 : ld (hl),a
B524 | 78 : ld a,b
B525 | FE EF : cp $EF
B527 | 20 03 : jr nz,$B52C
B529 | 7E : ld a,(hl) // play sound
B52A | 18 05 : jr $B531
B52C | FE DF : cp $DF
B52E | 20 04 : jr nz,$B534
B530 | AF : xor a // stop sound
B531 | 32 10 F0 : ld ($F010),a // send sound code
B534 | 18 CD : jr $B503
-->
</script>
<script state="run">
<output format="----- pollux 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="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@C000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@1BA1 = 02 </action>
<action>maincpu.mq@0C48 = 7FCDCF40311D8DC3</action>
<action>maincpu.mq@F500 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F508 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F510 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F518 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F520 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F528 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F530 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
</mamecheat>
polluxn.xml
Code: Select all
<!-- Pollux (Japan, NTC license, distributed by Atlus) -->
<mamecheat version="1">
<cheat desc="no hit">
<script state="on">
<!-- enemy -->
<action>maincpu.mb@5051 = D7 </action>
<action>maincpu.mq@0010 = 7940FE50E6097EFD</action>
<action>maincpu.mq@0018 = FFFFFFFFFFC9AFC8</action>
<!--
0010 | FD 7E 09 : ld a,(iy+$09)
0013 | E6 50 : and $50
0015 | FE 40 : cp $40
0017 | 79 : ld a,c
0018 | C8 : ret z
0019 | AF : xor a
001A | C9 : ret
-->
<action>maincpu.mb@50B0 = C3</action> <!-- bullet -->
</script>
<script state="off">
<action>maincpu.mb@5051 = 79 </action>
<action>maincpu.mq@0010 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@0018 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mb@50B0 = CA </action>
</script>
</cheat>
<cheat desc="auto fire">
<script state="on">
<action>maincpu.mb@3E5A = 5C</action>
<action>maincpu.mb@3E69 = 6B</action>
</script>
<script state="off">
<action>maincpu.mb@3E5A = C7</action>
<action>maincpu.mb@3E69 = C7</action>
</script>
</cheat>
<cheat desc="player speed">
<parameter>
<item value="0x01">01 (slow)</item>
<item value="0x03">02 </item>
<item value="0x05">03 </item>
<item value="0x07">04 </item>
<item value="0x09">05 (fast)</item>
</parameter>
<script state="on">
<action>maincpu.md@3EE5 = DD00001E</action> <!-- right -->
<action>maincpu.md@3EF8 = DD00001E</action> <!-- left -->
<action>maincpu.md@3F11 = DD000016</action> <!-- down -->
<action>maincpu.md@3F2E = DD000016</action> <!-- up -->
<action>maincpu.md@3F49 = DD00001E</action> <!-- lower-right : right -->
<action>maincpu.md@3F56 = DD000016</action> <!-- lower-right : down -->
<action>maincpu.md@3F71 = DD00001E</action> <!-- lower-left : left -->
<action>maincpu.md@3F7E = DD000016</action> <!-- lower-left : down -->
<action>maincpu.md@3F99 = DD00001E</action> <!-- upper-right : right -->
<action>maincpu.md@3FA6 = DD000016</action> <!-- upper-right : up -->
<action>maincpu.md@3FC1 = DD00001E</action> <!-- upper-left : left -->
<action>maincpu.md@3FCE = DD000016</action> <!-- upper-left : up -->
</script>
<script state="change">
<action>maincpu.mb@3EE6 = param</action>
<action>maincpu.mb@3EF9 = -param</action>
<action>maincpu.mb@3F12 = -param</action>
<action>maincpu.mb@3F2F = param</action>
<action>maincpu.mb@3F4A = param</action>
<action>maincpu.mb@3F57 = -param</action>
<action>maincpu.mb@3F72 = -param</action>
<action>maincpu.mb@3F7F = -param</action>
<action>maincpu.mb@3F9A = param</action>
<action>maincpu.mb@3FA7 = param</action>
<action>maincpu.mb@3FC2 = -param</action>
<action>maincpu.mb@3FCF = param</action>
</script>
<script state="off">
<action>maincpu.md@3EE5 = DD005EFD</action>
<action>maincpu.md@3EF8 = DD015EFD</action>
<action>maincpu.md@3F11 = DD0156FD</action>
<action>maincpu.md@3F2E = DD0056FD</action>
<action>maincpu.md@3F49 = DD005EFD</action>
<action>maincpu.md@3F56 = DD0156FD</action>
<action>maincpu.md@3F71 = DD015EFD</action>
<action>maincpu.md@3F7E = DD0156FD</action>
<action>maincpu.md@3F99 = DD005EFD</action>
<action>maincpu.md@3FA6 = DD0056FD</action>
<action>maincpu.md@3FC1 = DD015EFD</action>
<action>maincpu.md@3FCE = DD0056FD</action>
</script>
</cheat>
<cheat desc="bullet speed - normal shot">
<parameter>
<item value="0x09">01 (slow)</item>
<item value="0x12">02 </item>
<item value="0x1b">03 </item>
<item value="0x24">04 </item>
<item value="0x2d">05 (fast)</item>
</parameter>
<script state="change">
<action>maincpu.mb@4614 = param</action>
</script>
<script state="off">
<action>maincpu.mb@4614 = 12</action>
</script>
</cheat>
<cheat desc="bullet speed - multiway">
<parameter>
<item value="0x0a">01 (slow)</item>
<item value="0x14">02 </item>
<item value="0x1e">03 </item>
<item value="0x28">04 </item>
<item value="0x32">05 (fast)</item>
</parameter>
<script state="change">
<!-- shot level 1 -->
<action>maincpu.mb@4321 = param</action>
<!-- shot level 2 -->
<action>maincpu.mb@4325 = param</action>
<action>maincpu.mb@4329 = param</action>
<!-- shot level 3 -->
<action>maincpu.mb@432D = param</action>
<action>maincpu.mb@4331 = param</action>
<action>maincpu.mb@4335 = param</action>
<!-- shot level 4 -->
<action>maincpu.mb@4339 = param</action>
<action>maincpu.mb@433D = param</action>
<action>maincpu.mb@4341 = param</action>
<action>maincpu.mb@4345 = param</action>
<!-- shot level 5 -->
<action>maincpu.mb@4349 = param</action>
<action>maincpu.mb@434D = param</action>
<action>maincpu.mb@4351 = param</action>
<action>maincpu.mb@4355 = param</action>
<action>maincpu.mb@4359 = param</action>
</script>
<script state="off">
<action>maincpu.mb@4321 = 14</action>
<action>maincpu.mb@4325 = 14</action>
<action>maincpu.mb@4329 = 14</action>
<action>maincpu.mb@432D = 10</action>
<action>maincpu.mb@4331 = 14</action>
<action>maincpu.mb@4335 = 10</action>
<action>maincpu.mb@4339 = 0F</action>
<action>maincpu.mb@433D = 11</action>
<action>maincpu.mb@4341 = 11</action>
<action>maincpu.mb@4345 = 0F</action>
<action>maincpu.mb@4349 = 0E</action>
<action>maincpu.mb@434D = 10</action>
<action>maincpu.mb@4351 = 14</action>
<action>maincpu.mb@4355 = 10</action>
<action>maincpu.mb@4359 = 0E</action>
</script>
</cheat>
<cheat desc="short hit mark">
<script state="on">
<action>maincpu.mb@46F3 = C3</action>
</script>
<script state="off">
<action>maincpu.mb@46F3 = CA</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="on">
<action>maincpu.mb@1BBC = 03 </action> <!-- fix bank -->
<action>maincpu.mq@0C5B = B500C3F00032033E</action>
<action>maincpu.mq@F500 = 47B8F0023AC00021</action>
<action>maincpu.mq@F508 = FE350120FDFEF928</action>
<action>maincpu.mq@F510 = 0420FBFE340120FE</action>
<action>maincpu.mq@F518 = 0520F7FE0618F03E</action>
<action>maincpu.mq@F520 = 20EFFE787786103E</action>
<action>maincpu.mq@F528 = 0420DFFE05187E03</action>
<action>maincpu.mq@F530 = FFFFCD18F01032AF</action>
<!--
0C5B | 3E 03 : ld a,$03 // set bank
0C5D | 32 00 F0 : ld ($F000),a
0C60 | C3 00 B5 : jp $B500
================================
B500 | 21 00 C0 : ld hl,$C000 // sound code address
B503 | 3A 02 F0 : ld a,($F002) // read input
B506 | B8 : cp b
B507 | 47 : ld b,a
B508 | 28 F9 : jr z,$B503
B50A | FE FD : cp $FD
B50C | 20 01 : jr nz,$B50F
B50E | 35 : dec (hl) // decrease code -01
B50F | FE FE : cp $FE
B511 | 20 01 : jr nz,$B514
B513 | 34 : inc (hl) // increase code +01
B514 | FE FB : cp $FB
B516 | 20 04 : jr nz,$B51C
B518 | 3E F0 : ld a,$F0 // decrease code -10
B51A | 18 06 : jr $B522
B51C | FE F7 : cp $F7
B51E | 20 05 : jr nz,$B525
B520 | 3E 10 : ld a,$10 // increase code +10
B522 | 86 : add a,(hl)
B523 | 77 : ld (hl),a
B524 | 78 : ld a,b
B525 | FE EF : cp $EF
B527 | 20 03 : jr nz,$B52C
B529 | 7E : ld a,(hl) // play sound
B52A | 18 05 : jr $B531
B52C | FE DF : cp $DF
B52E | 20 04 : jr nz,$B534
B530 | AF : xor a // stop sound
B531 | 32 10 F0 : ld ($F010),a // send sound code
B534 | 18 CD : jr $B503
-->
</script>
<script state="run">
<output format="----- pollux 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="<< sound code %02X >>" line="19" align="center" >
<argument>maincpu.pb@C000</argument>
</output>
</script>
<script state="off">
<action>maincpu.mb@1BBC = 02 </action>
<action>maincpu.mq@0C5B = 9ACDCF40311DA8C3</action>
<action>maincpu.mq@F500 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F508 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F510 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F518 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F520 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F528 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F530 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
</mamecheat>