timescan3 is added in 0.259. It's similar to timescan.
timescan3.xml
Code: Select all
<!-- Time Scanner (set 3, Japan, System 16B) (FD1089B 317-0024) -->
<mamecheat version="1">
<cheat desc="keep a ball">
<script state="run">
<action>maincpu.oq@9442 = 4EB90000F9C0327C</action>
<action>maincpu.oq@F9C0 = 303C0106B06E000C</action>
<action>maincpu.oq@F9C8 = 630E3D7C0008002C</action>
<action>maincpu.oq@F9D0 = 3D40000C201F4E75</action>
<action>maincpu.oq@F9D8 = 08EE000300004E75</action>
<!--
F9C0 | 303C 0106 : move.w #$106,D0
F9C4 | B06E 000C : cmp.w ($c,A6),D0
F9C8 | 630E : bls $f9d8
F9CA | 3D7C 0008 002C : move.w #$8,($2c,A6)
F9D0 | 3D40 000C : move.w D0,($c,A6)
F9D4 | 201F : move.l (A7)+,D0
F9D6 | 4E75 : rts
F9D8 | 08EE 0003 0000 : bset #$3,($0,A6)
F9DE | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.oq@9442 = 08EE00030000327C</action>
<action>maincpu.oq@F9C0 = F7BF43BFF7BF43BF</action>
<action>maincpu.oq@F9C8 = EBF747BFEBF747BF</action>
<action>maincpu.oq@F9D0 = F7BF43BFF7BF43BF</action>
<action>maincpu.oq@F9D8 = EBF747BFEBF747BF</action>
</script>
</cheat>
<cheat desc="ball rise by button 3">
<script state="run">
<action>maincpu.oq@10454 = 4EB90000F9E04E71</action>
<action>maincpu.oq@0F9E0 = 08380000C0806708</action>
<action>maincpu.oq@0F9E8 = 2D7C00040000002C</action>
<action>maincpu.oq@0F9F0 = 202E002CD1AE000C</action>
<action>maincpu.oq@0F9F8 = 4E75FFFFFFFFFFFF</action>
<!--
F9E0 | 0838 0000 C080 : btst #$0,$c080.w
F9E6 | 6708 : beq $f9f0
F9E8 | 2D7C 0004 0000 002C : move.l #$40000,($2c,A6)
F9F0 | 202E 002C : move.l ($2c,A6),D0
F9F4 | D1AE 000C : add.l D0,($c,A6)
F9F8 | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.oq@10454 = 202E002CD1AE000C</action>
<action>maincpu.oq@0F9E0 = CBBF1FFFCBBF1FFF</action>
<action>maincpu.oq@0F9E8 = 27FF8FB727FF8FB7</action>
<action>maincpu.oq@0F9F0 = CBBF1FFFCBBF1FFF</action>
<action>maincpu.oq@0F9F8 = 27FF8FB727FF8FB7</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="run">
<!-- main routine -->
<action>maincpu.oq@052E = 4EF90000FA0008B8</action>
<action>maincpu.oq@FA00 = 41F8C10043F900FE</action>
<action>maincpu.oq@FA08 = 00071200103900C4</action>
<action>maincpu.oq@FA10 = 1003B20067F40C00</action>
<action>maincpu.oq@FA18 = 007F660253100C00</action>
<action>maincpu.oq@FA20 = 00BF660252100C00</action>
<action>maincpu.oq@FA28 = 00FE660404100010</action>
<action>maincpu.oq@FA30 = 0C0000DF66040610</action>
<action>maincpu.oq@FA38 = 00100C0000FD6602</action>
<action>maincpu.oq@FA40 = 12900C0000FB6602</action>
<action>maincpu.oq@FA48 = 421160BEFFFFFFFF</action>
<!--
FA00 | 41F8 C100 : lea $c100.w,A0 // sound code address ($ffc100)
FA04 | 43F9 00FE 0007 : lea $fe0007.l,A1 // sound latch address
FA0A | 1200 : move.b D0,D1
FA0C | 1039 00C4 1003 : move.b $c41003.l,D0 // read input
FA12 | B200 : cmp.b D0,D1
FA14 | 67F4 : beq $fa0a
FA16 | 0C00 007F : cmpi.b #$7f,D0
FA1A | 6602 : bne $fa1e
FA1C | 5310 : subq.b #1,(A0) // decrease code -01
FA1E | 0C00 00BF : cmpi.b #-$41,D0
FA22 | 6602 : bne $fa26
FA24 | 5210 : addq.b #1,(A0) // increase code +01
FA26 | 0C00 00FE : cmpi.b #-$2,D0
FA2A | 6604 : bne $fa30
FA2C | 0410 0010 : subi.b #$10,(A0) // decrease code -10
FA30 | 0C00 00DF : cmpi.b #-$21,D0
FA34 | 6604 : bne $fa3a
FA36 | 0610 0010 : addi.b #$10,(A0) // increase code +10
FA3A | 0C00 00FD : cmpi.b #-$3,D0
FA3E | 6602 : bne $fa42
FA40 | 1290 : move.b (A0),(A1) // play sound
FA42 | 0C00 00FB : cmpi.b #-$5,D0
FA46 | 6602 : bne $fa4a
FA48 | 4211 : clr.b (A1) // stop sound
FA4A | 60BE : bra $fa0a
-->
<!-- display -->
<output format="----- time scanner 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="up : increase code +10" line="13" align="center" />
<output format="button 3 : decrease 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 %2.2X >>" line="19" align="center" >
<argument>maincpu.pb@FFC100</argument>
</output>
</script>
<script state="off">
<action>maincpu.oq@052E = 08B80006C03308B8</action>
<action>maincpu.oq@FA00 = 37F77FBF37F77FBF</action>
<action>maincpu.oq@FA08 = 2BFFD7BF2BFFD7BF</action>
<action>maincpu.oq@FA10 = 37F77FBF37F77FBF</action>
<action>maincpu.oq@FA18 = 2BFFD7BF2BFFD7BF</action>
<action>maincpu.oq@FA20 = 07BF17FF07BF17FF</action>
<action>maincpu.oq@FA28 = 57BF77FF57BF77FF</action>
<action>maincpu.oq@FA30 = 07BF17FF07BF17FF</action>
<action>maincpu.oq@FA38 = 57BF77FF57BF77FF</action>
<action>maincpu.oq@FA40 = 37F77FBF37F77FBF</action>
<action>maincpu.oq@FA48 = 2BFFD7BF2BFFD7BF</action>
</script>
</cheat>
</mamecheat>
Also missing timescan1.xml
Code: Select all
<!-- Time Scanner (set 1, System 16A, FD1089B 317-0024) -->
<mamecheat version="1">
<cheat desc="keep a ball">
<script state="run">
<action>maincpu.oq@9478 = 4EB90000FB60327C</action>
<action>maincpu.oq@FB60 = 303C0106B06E000C</action>
<action>maincpu.oq@FB68 = 630E3D7C0008002C</action>
<action>maincpu.oq@FB70 = 3D40000C201F4E75</action>
<action>maincpu.oq@FB78 = 08EE000300004E75</action>
<!--
FB60 | 303C 0106 : move.w #$106,D0
FB64 | B06E 000C : cmp.w ($c,A6),D0
FB68 | 630E : bls $fb78
FB6A | 3D7C 0008 002C : move.w #$8,($2c,A6)
FB70 | 3D40 000C : move.w D0,($c,A6)
FB74 | 201F : move.l (A7)+,D0
FB76 | 4E75 : rts
FB78 | 08EE 0003 0000 : bset #$3,($0,A6)
FB7E | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.oq@9478 = 08EE00030000327C</action>
<action>maincpu.oq@FB60 = 07BF17FF07BF17FF</action>
<action>maincpu.oq@FB68 = 57BF77FF57BF77FF</action>
<action>maincpu.oq@FB70 = 07BF17FF07BF17FF</action>
<action>maincpu.oq@FB78 = 57BF77FF57BF77FF</action>
</script>
</cheat>
<cheat desc="ball rise by button 3">
<script state="run">
<action>maincpu.oq@1044A = 4EB90000FB804E71</action>
<action>maincpu.oq@0FB80 = 08380000C0806708</action>
<action>maincpu.oq@0FB88 = 2D7C00040000002C</action>
<action>maincpu.oq@0FB90 = 202E002CD1AE000C</action>
<action>maincpu.oq@0FB98 = 4E75FFFFFFFFFFFF</action>
<!--
FB80 | 0838 0000 C080 : btst #$0,$c080.w
FB86 | 6708 : beq $fb90
FB88 | 2D7C 0004 0000 002C : move.l #$40000,($2c,A6)
FB90 | 202E 002C : move.l ($2c,A6),D0
FB94 | D1AE 000C : add.l D0,($c,A6)
FB98 | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.oq@1044A = 202E002CD1AE000C</action>
<action>maincpu.oq@0FB80 = 37F77FBF37F77FBF</action>
<action>maincpu.oq@0FB88 = 2BFFD7BF2BFFD7BF</action>
<action>maincpu.oq@0FB90 = 37F77FBF37F77FBF</action>
<action>maincpu.oq@0FB98 = 2BFFD7BF2BFFD7BF</action>
</script>
</cheat>
<cheat desc="sound test mode">
<comment>reset the game (F3) to enter sound test mode</comment>
<script state="run">
<!-- main routine -->
<action>maincpu.oq@0526 = 4EF90000FBA008B8</action>
<action>maincpu.oq@FBA0 = 41F8C10043F900C4</action>
<action>maincpu.oq@FBA8 = 00011200103900C4</action>
<action>maincpu.oq@FBB0 = 1003B20067F40C00</action>
<action>maincpu.oq@FBB8 = 007F660253100C00</action>
<action>maincpu.oq@FBC0 = 00BF660252100C00</action>
<action>maincpu.oq@FBC8 = 00FE660404100010</action>
<action>maincpu.oq@FBD0 = 0C0000DF66040610</action>
<action>maincpu.oq@FBD8 = 00100C0000FD6602</action>
<action>maincpu.oq@FBE0 = 12900C0000FB6602</action>
<action>maincpu.oq@FBE8 = 421160BEFFFFFFFF</action>
<!--
FBA0 | 41F8 C100 : lea $c100.w,A0 // sound code address ($ffc100)
FBA4 | 43F9 00C4 0001 : lea $c40001.l,A1 // sound latch address
FBAA | 1200 : move.b D0,D1
FBAC | 1039 00C4 1003 : move.b $c41003.l,D0 // read input
FBB2 | B200 : cmp.b D0,D1
FBB4 | 67F4 : beq $fbaa
FBB6 | 0C00 007F : cmpi.b #$7f,D0
FBBA | 6602 : bne $fbbe
FBBC | 5310 : subq.b #1,(A0) // decrease code -01
FBBE | 0C00 00BF : cmpi.b #-$41,D0
FBC2 | 6602 : bne $fbc6
FBC4 | 5210 : addq.b #1,(A0) // increase code +01
FBC6 | 0C00 00FE : cmpi.b #-$2,D0
FBCA | 6604 : bne $fbd0
FBCC | 0410 0010 : subi.b #$10,(A0) // decrease code -10
FBD0 | 0C00 00DF : cmpi.b #-$21,D0
FBD4 | 6604 : bne $fbda
FBD6 | 0610 0010 : addi.b #$10,(A0) // increase code +10
FBDA | 0C00 00FD : cmpi.b #-$3,D0
FBDE | 6602 : bne $fbe2
FBE0 | 1290 : move.b (A0),(A1) // play sound
FBE2 | 0C00 00FB : cmpi.b #-$5,D0
FBE6 | 6602 : bne $fbea
FBE8 | 4211 : clr.b (A1) // stop sound
FBEA | 60BE : bra $fbaa
-->
<!-- display -->
<output format="----- time scanner 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="up : increase code +10" line="13" align="center" />
<output format="button 3 : decrease 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 %2.2X >>" line="19" align="center" >
<argument>maincpu.pb@FFC100</argument>
</output>
</script>
<script state="off">
<action>maincpu.oq@0526 = 08B80006C03308B8</action>
<action>maincpu.oq@FBA0 = 07BF17FF07BF17FF</action>
<action>maincpu.oq@FBA8 = 57BF77FF57BF77FF</action>
<action>maincpu.oq@FBB0 = 07BF17FF07BF17FF</action>
<action>maincpu.oq@FBB8 = 57BF77FF57BF77FF</action>
<action>maincpu.oq@FBC0 = 37F77FBF37F77FBF</action>
<action>maincpu.oq@FBC8 = 2BFFD7BF2BFFD7BF</action>
<action>maincpu.oq@FBD0 = 37F77FBF37F77FBF</action>
<action>maincpu.oq@FBD8 = 2BFFD7BF2BFFD7BF</action>
<action>maincpu.oq@FBE0 = 07BF17FF07BF17FF</action>
<action>maincpu.oq@FBE8 = 57BF77FF57BF77FF</action>
</script>
</cheat>
</mamecheat>
Clean up timescan.xml
Code: Select all
<!-- Time Scanner (set 2, System 16B) -->
<mamecheat version="1">
<cheat desc="keep a ball">
<script state="on">
<action>maincpu.mq@9442 = 4EB90000F9C0327C</action>
<action>maincpu.mq@F9C0 = 303C0106B06E000C</action>
<action>maincpu.mq@F9C8 = 630E3D7C0008002C</action>
<action>maincpu.mq@F9D0 = 3D40000C201F4E75</action>
<action>maincpu.mq@F9D8 = 08EE000300004E75</action>
<!--
F9C0 | 303C 0106 : move.w #$106,D0
F9C4 | B06E 000C : cmp.w ($c,A6),D0
F9C8 | 630E : bls $f9d8
F9CA | 3D7C 0008 002C : move.w #$8,($2c,A6)
F9D0 | 3D40 000C : move.w D0,($c,A6)
F9D4 | 201F : move.l (A7)+,D0
F9D6 | 4E75 : rts
F9D8 | 08EE 0003 0000 : bset #$3,($0,A6)
F9DE | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.mq@9442 = 08EE00030000327C</action>
<action>maincpu.mq@F9C0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F9C8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F9D0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@F9D8 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
<cheat desc="ball rise by button 3">
<script state="on">
<action>maincpu.mq@10454 = 4EB90000F9E04E71</action>
<action>maincpu.mq@0F9E0 = 08380000C0806708</action>
<action>maincpu.mq@0F9E8 = 2D7C00040000002C</action>
<action>maincpu.mq@0F9F0 = 202E002CD1AE000C</action>
<action>maincpu.mq@0F9F8 = 4E75FFFFFFFFFFFF</action>
<!--
F9E0 | 0838 0000 C080 : btst #$0,$c080.w
F9E6 | 6708 : beq $f9f0
F9E8 | 2D7C 0004 0000 002C : move.l #$40000,($2c,A6)
F9F0 | 202E 002C : move.l ($2c,A6),D0
F9F4 | D1AE 000C : add.l D0,($c,A6)
F9F8 | 4E75 : rts
-->
</script>
<script state="off">
<action>maincpu.mq@10454 = 202E002CD1AE000C</action>
<action>maincpu.mq@0F9E0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@0F9E8 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@0F9F0 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@0F9F8 = 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.mq@052E = 4EF90000FA0008B8</action>
<action>maincpu.mq@FA00 = 41F8C10043F900FE</action>
<action>maincpu.mq@FA08 = 00071200103900C4</action>
<action>maincpu.mq@FA10 = 1003B20067F40C00</action>
<action>maincpu.mq@FA18 = 007F660253100C00</action>
<action>maincpu.mq@FA20 = 00BF660252100C00</action>
<action>maincpu.mq@FA28 = 00FE660404100010</action>
<action>maincpu.mq@FA30 = 0C0000DF66040610</action>
<action>maincpu.mq@FA38 = 00100C0000FD6602</action>
<action>maincpu.mq@FA40 = 12900C0000FB6602</action>
<action>maincpu.mq@FA48 = 421160BEFFFFFFFF</action>
<!--
FA00 | 41F8 C100 : lea $c100.w,A0 // sound code address ($ffc100)
FA04 | 43F9 00FE 0007 : lea $fe0007.l,A1 // sound latch address
FA0A | 1200 : move.b D0,D1
FA0C | 1039 00C4 1003 : move.b $c41003.l,D0 // read input
FA12 | B200 : cmp.b D0,D1
FA14 | 67F4 : beq $fa0a
FA16 | 0C00 007F : cmpi.b #$7f,D0
FA1A | 6602 : bne $fa1e
FA1C | 5310 : subq.b #1,(A0) // decrease code -01
FA1E | 0C00 00BF : cmpi.b #-$41,D0
FA22 | 6602 : bne $fa26
FA24 | 5210 : addq.b #1,(A0) // increase code +01
FA26 | 0C00 00FE : cmpi.b #-$2,D0
FA2A | 6604 : bne $fa30
FA2C | 0410 0010 : subi.b #$10,(A0) // decrease code -10
FA30 | 0C00 00DF : cmpi.b #-$21,D0
FA34 | 6604 : bne $fa3a
FA36 | 0610 0010 : addi.b #$10,(A0) // increase code +10
FA3A | 0C00 00FD : cmpi.b #-$3,D0
FA3E | 6602 : bne $fa42
FA40 | 1290 : move.b (A0),(A1) // play sound
FA42 | 0C00 00FB : cmpi.b #-$5,D0
FA46 | 6602 : bne $fa4a
FA48 | 4211 : clr.b (A1) // stop sound
FA4A | 60BE : bra $fa0a
-->
</script>
<script state="run">
<output format="----- time scanner 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="up : increase code +10" line="13" align="center" />
<output format="button 3 : decrease 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 %2.2X >>" line="19" align="center" >
<argument>maincpu.pb@FFC100</argument>
</output>
</script>
<script state="off">
<action>maincpu.mq@052E = 08B80006C03308B8</action>
<action>maincpu.mq@FA00 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FA08 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FA10 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FA18 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FA20 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FA28 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FA30 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FA38 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FA40 = FFFFFFFFFFFFFFFF</action>
<action>maincpu.mq@FA48 = FFFFFFFFFFFFFFFF</action>
</script>
</cheat>
</mamecheat>