Page 1 of 1

[nostj] Nostradamus

Posted: Tue May 31, 2022 12:26 pm
by jman

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <action>maincpu.mb@661d = 02</action> <!-- P1 -->
        <action>maincpu.mb@663c = 60</action> <!-- P2 -->
    </script>
    <script state="off">
        <action>maincpu.mb@661d = 46</action>
        <action>maincpu.mb@663c = 64</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@89e5 = 2a</action> <!-- player -->
        <action>maincpu.mb@8ac1 = 2a</action> <!-- launch -->
    </script>
    <script state="off">
        <action>maincpu.mb@89e5 = 29</action>
        <action>maincpu.mb@8ac1 = 29</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x0280">01 (slow)</item>
        <item value="0x0300">02       </item>
        <item value="0x0380">03       </item>
        <item value="0x0400">04       </item>
        <item value="0x0480">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@8890 =         4eb81300</action> <!-- y position -->
        <action>maincpu.md@8898 =         4eb8130a</action> <!-- x position -->
        <action>maincpu.mq@1300 = 36300000610e3203</action>
        <action>maincpu.mq@1308 = 4e75363000026104</action>
        <action>maincpu.mq@1310 = 34034e75383c0000</action>
        <action>maincpu.mq@1318 = 4a4367066a024444</action>
        <action>maincpu.mq@1320 = 36044e7500000000</action>
        <!--
        1300 | 3630 0000 : move.w (A0,D0.w),D3    // y position
        1304 | 610e      : bsr    $1314
        1306 | 3203      : move.w D3,D1
        1308 | 4e75      : rts
        130a | 3630 0002 : move.w ($2,A0,D0.w),D3 // x position
        130e | 6104      : bsr    $1314
        1310 | 3403      : move.w D3,D2
        1312 | 4e75      : rts
        1314 | 383c xxxx : move.w #$xx,D4
        1318 | 4a43      : tst.w  D3
        131a | 6706      : beq    $1322
        131c | 6a02      : bpl    $1320
        131e | 4444      : neg.w  D4
        1320 | 3604      : move.w D4,D3
        1322 | 4e75      : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mw@1316 = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@8890 =         32300000</action>
        <action>maincpu.md@8898 =         34300002</action>
        <action>maincpu.mq@1300 = 0000000000000000</action>
        <action>maincpu.mq@1308 = 0000000000000000</action>
        <action>maincpu.mq@1310 = 0000000000000000</action>
        <action>maincpu.mq@1318 = 0000000000000000</action>
        <action>maincpu.mq@1320 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="bullet speed - main shot">
    <parameter>
        <item value="0x0600">01 (slow)</item>
        <item value="0x0c00">02       </item>
        <item value="0x1200">03       </item>
        <item value="0x1800">04       </item>
        <item value="0x1e00">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.mq@d990 = 4eb90000133041f9</action> <!-- P1 -->
        <action>maincpu.mq@e2be = 4eb90000133041f9</action> <!-- P2 -->
        <action>maincpu.mq@1330 = 343c1e0032300000</action>
        <action>maincpu.mq@1338 = 67066a0244423202</action>
        <action>maincpu.mq@1340 = 3b4100104e750000</action>
        <!--
        1330 | 343c xxxx : move.w #$xx,D2
        1334 | 3230 0000 : move.w (A0,D0.w),D1
        1338 | 6706      : beq    $1340
        133a | 6a02      : bpl    $133e
        133c | 4442      : neg.w  D2
        133e | 3202      : move.w D2,D1
        1340 | 3b41 0010 : move.w D1,($10,A5)
        1344 | 4e75      : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mw@1332 = param</action>
    </script>
    <script state="off">
        <action>maincpu.mq@d990 = 3b700000001041f9</action>
        <action>maincpu.mq@e2be = 3b700000001041f9</action>
        <action>maincpu.mq@1330 = 0000000000000000</action>
        <action>maincpu.mq@1338 = 0000000000000000</action>
        <action>maincpu.mq@1340 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="sound test mode">
    <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
    <script state="on">
        <action>maincpu.md@216a =         4ef81350</action>
        <action>maincpu.mq@1350 = 41f90010100043f9</action>
        <action>maincpu.mq@1358 = 00c0000112001039</action>
        <action>maincpu.mq@1360 = 00800001b20067f4</action>
        <action>maincpu.mq@1368 = 0c0000fb66025310</action>
        <action>maincpu.mq@1370 = 0c0000f766025210</action>
        <action>maincpu.mq@1378 = 0c0000fd66040410</action>
        <action>maincpu.mq@1380 = 00100c0000fe6604</action>
        <action>maincpu.mq@1388 = 061000100c0000ef</action>
        <action>maincpu.mq@1390 = 6606129011500001</action>
        <action>maincpu.mq@1398 = 0c00007f66120c28</action>
        <action>maincpu.mq@13a0 = 00400001640612bc</action>
        <action>maincpu.mq@13a8 = 0010600412bc0040</action>
        <action>maincpu.mq@13b0 = 60aa000000000000</action>
        <!--
        1350 | 41f9 0010 1000 : lea    $101000.l,A0 // sound code address
        1356 | 43f9 00c0 0001 : lea    $c00001.l,A1 // sound latch address
        135c | 1200           : move.b D0,D1
        135e | 1039 0080 0001 : move.b $800001.l,D0 // read input
        1364 | b200           : cmp.b  D0,D1
        1366 | 67f4           : beq    $135c
        1368 | 0c00 00fb      : cmpi.b #-$5,D0
        136c | 6602           : bne    $1370
        136e | 5310           : subq.b #1,(A0)      // decrease code -01
        1370 | 0c00 00f7      : cmpi.b #-$9,D0
        1374 | 6602           : bne    $1378
        1376 | 5210           : addq.b #1,(A0)      // increase code +01
        1378 | 0c00 00fd      : cmpi.b #-$3,D0
        137c | 6604           : bne    $1382
        137e | 0410 0010      : subi.b #$10,(A0)    // decrease code -10
        1382 | 0c00 00fe      : cmpi.b #-$2,D0
        1386 | 6604           : bne    $138c
        1388 | 0610 0010      : addi.b #$10,(A0)    // increase code +10
        138c | 0c00 00ef      : cmpi.b #-$11,D0
        1390 | 6606           : bne    $1398
        1392 | 1290           : move.b (A0),(A1)    // play sound
        1394 | 1150 0001      : move.b (A0),($1,A0)
        1398 | 0c00 007f      : cmpi.b #$7f,D0
        139c | 6612           : bne    $13b0
        139e | 0c28 0040 0001 : cmpi.b #$40,($1,A0) // stop sound
        13a4 | 6406           : bcc    $13ac
        13a6 | 12bc 0010      : move.b #$10,(A1)    // music stop
        13aa | 6004           : bra    $13b0
        13ac | 12bc 0040      : move.b #$40,(A1)    // sfx stop
        13b0 | 60aa           : bra    $135c
        -->
    </script>
    <script state="run">
        <output format="----- nostradamus 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="down : decrease code -10"                line="14" align="center" />
        <output format="button 1 : play sound"                   line="15" align="center" />
        <output format="start : 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@101000</argument>
        </output>
    </script>
    <script state="off">
        <action>maincpu.md@216a =         426e012c</action>
        <action>maincpu.mq@1350 = 0000000000000000</action>
        <action>maincpu.mq@1358 = 0000000000000000</action>
        <action>maincpu.mq@1360 = 0000000000000000</action>
        <action>maincpu.mq@1368 = 0000000000000000</action>
        <action>maincpu.mq@1370 = 0000000000000000</action>
        <action>maincpu.mq@1378 = 0000000000000000</action>
        <action>maincpu.mq@1380 = 0000000000000000</action>
        <action>maincpu.mq@1388 = 0000000000000000</action>
        <action>maincpu.mq@1390 = 0000000000000000</action>
        <action>maincpu.mq@1398 = 0000000000000000</action>
        <action>maincpu.mq@13a0 = 0000000000000000</action>
        <action>maincpu.mq@13a8 = 0000000000000000</action>
        <action>maincpu.mq@13b0 = 0000000000000000</action>
    </script>
</cheat>

<cheat desc="skip ram/rom check">
    <script state="on">
        <action>maincpu.mw@0122 = 0146</action> <!-- rom check skip -->
        <action>maincpu.mb@05e1 =   00</action> <!-- ram initialization -->
        <action>maincpu.mw@05f8 = 4ed2</action> <!-- ram check escape -->
    </script>
    <script state="off">
        <action>maincpu.mw@0122 = 000a</action>
        <action>maincpu.mb@05e1 =   80</action>
        <action>maincpu.mw@05f8 = 123c</action>
    </script>
</cheat>

[nost]+ Nostradamus

Posted: Sun Nov 12, 2023 1:48 pm
by jman
nost.xml

Code: Select all

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

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@661D = 02</action> <!-- P1 -->
            <action>maincpu.mb@663C = 60</action> <!-- P2 -->
        </script>
        <script state="off">
            <action>maincpu.mb@661D = 46</action>
            <action>maincpu.mb@663C = 64</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@89E5 = 2A</action> <!-- player -->
            <action>maincpu.mb@8AC1 = 2A</action> <!-- launch -->
        </script>
        <script state="off">
            <action>maincpu.mb@89E5 = 29</action>
            <action>maincpu.mb@8AC1 = 29</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0100">01 (slow)</item>
            <item value="0x0300">02       </item>
            <item value="0x0400">03       </item>
            <item value="0x0500">04       </item>
            <item value="0x0600">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@8890 = 4EB81300        </action> <!-- y position -->
            <action>maincpu.md@8898 = 4EB8130A        </action> <!-- x position -->
            <action>maincpu.mq@1300 = 36300000610E3203</action>
            <action>maincpu.mq@1308 = 4E75363000026104</action>
            <action>maincpu.mq@1310 = 34034E75383C0000</action>
            <action>maincpu.mq@1318 = 4A4367066A024444</action>
            <action>maincpu.mq@1320 = 36044E7500000000</action>
            <!--
            1300 | 3630 0000 : move.w  (A0,D0.w), D3    // y position
            1304 | 610E      : bsr     $1314
            1306 | 3203      : move.w  D3, D1
            1308 | 4E75      : rts
            130A | 3630 0002 : move.w  ($2,A0,D0.w), D3 // x position
            130E | 6104      : bsr     $1314
            1310 | 3403      : move.w  D3, D2
            1312 | 4E75      : rts
            1314 | 383C xxxx : move.w  #$xx, D4        // main routine
            1318 | 4A43      : tst.w   D3
            131A | 6706      : beq     $1322
            131C | 6A02      : bpl     $1320
            131E | 4444      : neg.w   D4
            1320 | 3604      : move.w  D4, D3
            1322 | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@1316 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@8890 = 32300000        </action>
            <action>maincpu.md@8898 = 34300002        </action>
            <action>maincpu.mq@1300 = 0000000000000000</action>
            <action>maincpu.mq@1308 = 0000000000000000</action>
            <action>maincpu.mq@1310 = 0000000000000000</action>
            <action>maincpu.mq@1318 = 0000000000000000</action>
            <action>maincpu.mq@1320 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x0600">01 (slow)</item>
            <item value="0x0c00">02       </item>
            <item value="0x1200">03       </item>
            <item value="0x1800">04       </item>
            <item value="0x1e00">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@D990 = 4EB90000133041F9</action> <!-- P1 -->
            <action>maincpu.mq@E2BE = 4EB90000133041F9</action> <!-- P2 -->
            <action>maincpu.mq@1330 = 343C1E0032300000</action>
            <action>maincpu.mq@1338 = 67066A0244423202</action>
            <action>maincpu.mq@1340 = 3B4100104E750000</action>
            <!--
            1330 | 343C xxxx : move.w  #$xx, D2
            1334 | 3230 0000 : move.w  (A0,D0.w), D1
            1338 | 6706      : beq     $1340
            133A | 6A02      : bpl     $133e
            133C | 4442      : neg.w   D2
            133E | 3202      : move.w  D2, D1
            1340 | 3B41 0010 : move.w  D1, ($10,A5)
            1344 | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@1332 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@D990 = 3B700000001041F9</action>
            <action>maincpu.mq@E2BE = 3B700000001041F9</action>
            <action>maincpu.mq@1330 = 0000000000000000</action>
            <action>maincpu.mq@1338 = 0000000000000000</action>
            <action>maincpu.mq@1340 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="hidden items finder">
        <script state="on">
            <action>maincpu.mb@6481C = 60</action> <!-- extra ship -->
            <action>maincpu.mb@64890 = 60</action> <!-- power up -->
            <action>maincpu.mb@648E2 = 60</action> <!-- full power up -->
            <action>maincpu.mb@64936 = 60</action> <!-- bonus -->
        </script>
        <script state="off">
            <action>maincpu.mb@6481C = 66</action>
            <action>maincpu.mb@64890 = 66</action>
            <action>maincpu.mb@648E2 = 66</action>
            <action>maincpu.mb@64936 = 66</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.md@216A = 4EF81350        </action>
            <action>maincpu.mq@1350 = 41F90010100043F9</action>
            <action>maincpu.mq@1358 = 00C0000112001039</action>
            <action>maincpu.mq@1360 = 00800001B20067F4</action>
            <action>maincpu.mq@1368 = 0C0000FB66025310</action>
            <action>maincpu.mq@1370 = 0C0000F766025210</action>
            <action>maincpu.mq@1378 = 0C0000FD66040410</action>
            <action>maincpu.mq@1380 = 00100C0000FE6604</action>
            <action>maincpu.mq@1388 = 061000100C0000EF</action>
            <action>maincpu.mq@1390 = 660212900C00007F</action>
            <action>maincpu.mq@1398 = 6602421160BE0000</action>
            <!--
            1350 | 41F9 0010 1000 : lea     $101000.l, A0 // sound code address
            1356 | 43F9 00C0 0001 : lea     $c00001.l, A1 // sound latch address
            135C | 1200           : move.b  D0, D1
            135E | 1039 0080 0001 : move.b  $800001.l, D0 // read input
            1364 | B200           : cmp.b   D0, D1
            1366 | 67F4           : beq     $135c
            1368 | 0C00 00FB      : cmpi.b  #-$5, D0
            136C | 6602           : bne     $1370
            136E | 5310           : subq.b  #1, (A0)      // decrease code -01
            1370 | 0C00 00F7      : cmpi.b  #-$9, D0
            1374 | 6602           : bne     $1378
            1376 | 5210           : addq.b  #1, (A0)      // increase code +01
            1378 | 0C00 00FD      : cmpi.b  #-$3, D0
            137C | 6604           : bne     $1382
            137E | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            1382 | 0C00 00FE      : cmpi.b  #-$2, D0
            1386 | 6604           : bne     $138c
            1388 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            138C | 0C00 00EF      : cmpi.b  #-$11, D0
            1390 | 6602           : bne     $1394
            1392 | 1290           : move.b  (A0), (A1)    // play sound
            1394 | 0C00 007F      : cmpi.b  #$7f, D0
            1398 | 6602           : bne     $139c
            139A | 4211           : clr.b   (A1)          // stop sound
            139C | 60BE           : bra     $135c
            -->
            <action>soundcpu.md@0069 = D30010CD        </action>
            <action>soundcpu.mq@0010 = 020BCD403E0D20A7</action>
            <action>soundcpu.mq@0018 = 0000C301C8CD103E</action>
            <action>soundcpu.mq@0020 = FFFFFFFFC9C00F32</action>
            <!--
            0010 | A7       : and  a
            0011 | 20 0D    : jr   nz,$0020
            0013 | 3E 40    : ld   a,$40     // stop sfx
            0015 | CD 0B 02 : call $020B
            0018 | 3E 10    : ld   a,$10     // stop music
            001A | CD C8 01 : call $01C8
            001D | C3 00 00 : jp   $0000     // reset soundcpu
            0020 | 32 0F C0 : ld   ($C00F),a
            0023 | C9       : ret
            -->
        </script>
        <script state="run">
            <output format="----- nostradamus 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@101000</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.md@216A = 426E012C        </action>
            <action> maincpu.mq@1350 = 0000000000000000</action>
            <action> maincpu.mq@1358 = 0000000000000000</action>
            <action> maincpu.mq@1360 = 0000000000000000</action>
            <action> maincpu.mq@1368 = 0000000000000000</action>
            <action> maincpu.mq@1370 = 0000000000000000</action>
            <action> maincpu.mq@1378 = 0000000000000000</action>
            <action> maincpu.mq@1380 = 0000000000000000</action>
            <action> maincpu.mq@1388 = 0000000000000000</action>
            <action> maincpu.mq@1390 = 0000000000000000</action>
            <action> maincpu.mq@1398 = 0000000000000000</action>
            <action>soundcpu.md@0069 = D3C00F32        </action>
            <action>soundcpu.mq@0010 = FFFFFFFFFFFFFFFF</action>
            <action>soundcpu.mq@0018 = FFFFFFFFFFFFFFFF</action>
            <action>soundcpu.mq@0020 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@0112 = 6000</action> <!-- skip wait -->
            <action>maincpu.mw@0122 = 0146</action> <!-- skip rom check -->
            <action>maincpu.mw@05E0 = 0000</action> <!-- initalize ram -->
            <action>maincpu.mw@05F8 = 4ED2</action> <!-- escape ram check -->
        </script>
        <script state="off">
            <action>maincpu.mw@0112 = 6700</action>
            <action>maincpu.mw@0122 = 000A</action>
            <action>maincpu.mw@05E0 = 0080</action>
            <action>maincpu.mw@05F8 = 123C</action>
        </script>
    </cheat>

</mamecheat>
nostj.xml

Code: Select all

<!-- Nostradamus (Japan) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@661D = 02</action> <!-- P1 -->
            <action>maincpu.mb@663C = 60</action> <!-- P2 -->
        </script>
        <script state="off">
            <action>maincpu.mb@661D = 46</action>
            <action>maincpu.mb@663C = 64</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@89E5 = 2A</action> <!-- player -->
            <action>maincpu.mb@8AC1 = 2A</action> <!-- launch -->
        </script>
        <script state="off">
            <action>maincpu.mb@89E5 = 29</action>
            <action>maincpu.mb@8AC1 = 29</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0100">01 (slow)</item>
            <item value="0x0300">02       </item>
            <item value="0x0400">03       </item>
            <item value="0x0500">04       </item>
            <item value="0x0600">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@8890 = 4EB81300        </action> <!-- y position -->
            <action>maincpu.md@8898 = 4EB8130A        </action> <!-- x position -->
            <action>maincpu.mq@1300 = 36300000610E3203</action>
            <action>maincpu.mq@1308 = 4E75363000026104</action>
            <action>maincpu.mq@1310 = 34034E75383C0000</action>
            <action>maincpu.mq@1318 = 4A4367066A024444</action>
            <action>maincpu.mq@1320 = 36044E7500000000</action>
            <!--
            1300 | 3630 0000 : move.w  (A0,D0.w), D3    // y position
            1304 | 610E      : bsr     $1314
            1306 | 3203      : move.w  D3, D1
            1308 | 4E75      : rts
            130A | 3630 0002 : move.w  ($2,A0,D0.w), D3 // x position
            130E | 6104      : bsr     $1314
            1310 | 3403      : move.w  D3, D2
            1312 | 4E75      : rts
            1314 | 383C xxxx : move.w  #$xx, D4        // main routine
            1318 | 4A43      : tst.w   D3
            131A | 6706      : beq     $1322
            131C | 6A02      : bpl     $1320
            131E | 4444      : neg.w   D4
            1320 | 3604      : move.w  D4, D3
            1322 | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@1316 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@8890 = 32300000        </action>
            <action>maincpu.md@8898 = 34300002        </action>
            <action>maincpu.mq@1300 = 0000000000000000</action>
            <action>maincpu.mq@1308 = 0000000000000000</action>
            <action>maincpu.mq@1310 = 0000000000000000</action>
            <action>maincpu.mq@1318 = 0000000000000000</action>
            <action>maincpu.mq@1320 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x0600">01 (slow)</item>
            <item value="0x0c00">02       </item>
            <item value="0x1200">03       </item>
            <item value="0x1800">04       </item>
            <item value="0x1e00">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@D990 = 4EB90000133041F9</action> <!-- P1 -->
            <action>maincpu.mq@E2BE = 4EB90000133041F9</action> <!-- P2 -->
            <action>maincpu.mq@1330 = 343C1E0032300000</action>
            <action>maincpu.mq@1338 = 67066A0244423202</action>
            <action>maincpu.mq@1340 = 3B4100104E750000</action>
            <!--
            1330 | 343C xxxx : move.w  #$xx, D2
            1334 | 3230 0000 : move.w  (A0,D0.w), D1
            1338 | 6706      : beq     $1340
            133A | 6A02      : bpl     $133e
            133C | 4442      : neg.w   D2
            133E | 3202      : move.w  D2, D1
            1340 | 3B41 0010 : move.w  D1, ($10,A5)
            1344 | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@1332 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@D990 = 3B700000001041F9</action>
            <action>maincpu.mq@E2BE = 3B700000001041F9</action>
            <action>maincpu.mq@1330 = 0000000000000000</action>
            <action>maincpu.mq@1338 = 0000000000000000</action>
            <action>maincpu.mq@1340 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="hidden items finder">
        <script state="on">
            <action>maincpu.mb@6481C = 60</action> <!-- extra ship -->
            <action>maincpu.mb@64890 = 60</action> <!-- power up -->
            <action>maincpu.mb@648E2 = 60</action> <!-- full power up -->
            <action>maincpu.mb@64936 = 60</action> <!-- bonus -->
        </script>
        <script state="off">
            <action>maincpu.mb@6481C = 66</action>
            <action>maincpu.mb@64890 = 66</action>
            <action>maincpu.mb@648E2 = 66</action>
            <action>maincpu.mb@64936 = 66</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.md@216A = 4EF81350        </action>
            <action>maincpu.mq@1350 = 41F90010100043F9</action>
            <action>maincpu.mq@1358 = 00C0000112001039</action>
            <action>maincpu.mq@1360 = 00800001B20067F4</action>
            <action>maincpu.mq@1368 = 0C0000FB66025310</action>
            <action>maincpu.mq@1370 = 0C0000F766025210</action>
            <action>maincpu.mq@1378 = 0C0000FD66040410</action>
            <action>maincpu.mq@1380 = 00100C0000FE6604</action>
            <action>maincpu.mq@1388 = 061000100C0000EF</action>
            <action>maincpu.mq@1390 = 660212900C00007F</action>
            <action>maincpu.mq@1398 = 6602421160BE0000</action>
            <!--
            1350 | 41F9 0010 1000 : lea     $101000.l, A0 // sound code address
            1356 | 43F9 00C0 0001 : lea     $c00001.l, A1 // sound latch address
            135C | 1200           : move.b  D0, D1
            135E | 1039 0080 0001 : move.b  $800001.l, D0 // read input
            1364 | B200           : cmp.b   D0, D1
            1366 | 67F4           : beq     $135c
            1368 | 0C00 00FB      : cmpi.b  #-$5, D0
            136C | 6602           : bne     $1370
            136E | 5310           : subq.b  #1, (A0)      // decrease code -01
            1370 | 0C00 00F7      : cmpi.b  #-$9, D0
            1374 | 6602           : bne     $1378
            1376 | 5210           : addq.b  #1, (A0)      // increase code +01
            1378 | 0C00 00FD      : cmpi.b  #-$3, D0
            137C | 6604           : bne     $1382
            137E | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            1382 | 0C00 00FE      : cmpi.b  #-$2, D0
            1386 | 6604           : bne     $138c
            1388 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            138C | 0C00 00EF      : cmpi.b  #-$11, D0
            1390 | 6602           : bne     $1394
            1392 | 1290           : move.b  (A0), (A1)    // play sound
            1394 | 0C00 007F      : cmpi.b  #$7f, D0
            1398 | 6602           : bne     $139c
            139A | 4211           : clr.b   (A1)          // stop sound
            139C | 60BE           : bra     $135c
            -->
            <action>soundcpu.md@0069 = D30010CD        </action>
            <action>soundcpu.mq@0010 = 020BCD403E0D20A7</action>
            <action>soundcpu.mq@0018 = 0000C301C8CD103E</action>
            <action>soundcpu.mq@0020 = FFFFFFFFC9C00F32</action>
            <!--
            0010 | A7       : and  a
            0011 | 20 0D    : jr   nz,$0020
            0013 | 3E 40    : ld   a,$40     // stop sfx
            0015 | CD 0B 02 : call $020B
            0018 | 3E 10    : ld   a,$10     // stop music
            001A | CD C8 01 : call $01C8
            001D | C3 00 00 : jp   $0000     // reset soundcpu
            0020 | 32 0F C0 : ld   ($C00F),a
            0023 | C9       : ret
            -->
        </script>
        <script state="run">
            <output format="----- nostradamus 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@101000</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.md@216A = 426E012C        </action>
            <action> maincpu.mq@1350 = 0000000000000000</action>
            <action> maincpu.mq@1358 = 0000000000000000</action>
            <action> maincpu.mq@1360 = 0000000000000000</action>
            <action> maincpu.mq@1368 = 0000000000000000</action>
            <action> maincpu.mq@1370 = 0000000000000000</action>
            <action> maincpu.mq@1378 = 0000000000000000</action>
            <action> maincpu.mq@1380 = 0000000000000000</action>
            <action> maincpu.mq@1388 = 0000000000000000</action>
            <action> maincpu.mq@1390 = 0000000000000000</action>
            <action> maincpu.mq@1398 = 0000000000000000</action>
            <action>soundcpu.md@0069 = D3C00F32        </action>
            <action>soundcpu.mq@0010 = FFFFFFFFFFFFFFFF</action>
            <action>soundcpu.mq@0018 = FFFFFFFFFFFFFFFF</action>
            <action>soundcpu.mq@0020 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@0112 = 6000</action> <!-- skip wait -->
            <action>maincpu.mw@0122 = 0146</action> <!-- skip rom check -->
            <action>maincpu.mw@05E0 = 0000</action> <!-- initalize ram -->
            <action>maincpu.mw@05F8 = 4ED2</action> <!-- escape ram check -->
        </script>
        <script state="off">
            <action>maincpu.mw@0112 = 6700</action>
            <action>maincpu.mw@0122 = 000A</action>
            <action>maincpu.mw@05E0 = 0080</action>
            <action>maincpu.mw@05F8 = 123C</action>
        </script>
    </cheat>

</mamecheat>
nostk.xml

Code: Select all

<!-- Nostradamus (Korea) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <action>maincpu.mb@65FA = 02</action> <!-- P1 -->
            <action>maincpu.mb@661C = 60</action> <!-- P2 -->
        </script>
        <script state="off">
            <action>maincpu.mb@65FA = 46</action>
            <action>maincpu.mb@661C = 64</action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@89B3 = 2A</action> <!-- player -->
            <action>maincpu.mb@8A8F = 2A</action> <!-- launch -->
        </script>
        <script state="off">
            <action>maincpu.mb@89B3 = 29</action>
            <action>maincpu.mb@8A8F = 29</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0100">01 (slow)</item>
            <item value="0x0300">02       </item>
            <item value="0x0400">03       </item>
            <item value="0x0500">04       </item>
            <item value="0x0600">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@885E = 4EB812F0        </action> <!-- y position -->
            <action>maincpu.md@8866 = 4EB812FA        </action> <!-- x position -->
            <action>maincpu.mq@12F0 = 36300000610E3203</action>
            <action>maincpu.mq@12F8 = 4E75363000026104</action>
            <action>maincpu.mq@1300 = 34034E75383C0000</action>
            <action>maincpu.mq@1308 = 4A4367066A024444</action>
            <action>maincpu.mq@1310 = 36044E7500000000</action>
            <!--
            12F0 | 3630 0000 : move.w  (A0,D0.w), D3    // y position
            12F4 | 610E      : bsr     $1304
            12F6 | 3203      : move.w  D3, D1
            12F8 | 4E75      : rts
            12FA | 3630 0002 : move.w  ($2,A0,D0.w), D3 // x position
            12FE | 6104      : bsr     $1304
            1300 | 3403      : move.w  D3, D2
            1302 | 4E75      : rts
            1304 | 383C xxxx : move.w  #$xx, D4        // main routine
            1308 | 4A43      : tst.w   D3
            130A | 6706      : beq     $1312
            130C | 6A02      : bpl     $1310
            130E | 4444      : neg.w   D4
            1310 | 3604      : move.w  D4, D3
            1312 | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@1306 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@885E = 32300000        </action>
            <action>maincpu.md@8866 = 34300002        </action>
            <action>maincpu.mq@12F0 = 0000000000000000</action>
            <action>maincpu.mq@12F8 = 0000000000000000</action>
            <action>maincpu.mq@1300 = 0000000000000000</action>
            <action>maincpu.mq@1308 = 0000000000000000</action>
            <action>maincpu.mq@1310 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="bullet speed - main shot">
        <parameter>
            <item value="0x0600">01 (slow)</item>
            <item value="0x0c00">02       </item>
            <item value="0x1200">03       </item>
            <item value="0x1800">04       </item>
            <item value="0x1e00">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.mq@D950 = 4EB90000132041F9</action> <!-- P1 -->
            <action>maincpu.mq@E27E = 4EB90000132041F9</action> <!-- P2 -->
            <action>maincpu.mq@1320 = 343C1E0032300000</action>
            <action>maincpu.mq@1328 = 67066A0244423202</action>
            <action>maincpu.mq@1330 = 3B4100104E750000</action>
            <!--
            1320 | 343C xxxx : move.w  #$xx, D2
            1324 | 3230 0000 : move.w  (A0,D0.w), D1
            1328 | 6706      : beq     $1330
            132A | 6A02      : bpl     $132e
            132C | 4442      : neg.w   D2
            132E | 3202      : move.w  D2, D1
            1330 | 3B41 0010 : move.w  D1, ($10,A5)
            1334 | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@1322 = param</action>
        </script>
        <script state="off">
            <action>maincpu.mq@D950 = 3B700000001041F9</action>
            <action>maincpu.mq@E27E = 3B700000001041F9</action>
            <action>maincpu.mq@1320 = 0000000000000000</action>
            <action>maincpu.mq@1328 = 0000000000000000</action>
            <action>maincpu.mq@1330 = 0000000000000000</action>
        </script>
    </cheat>

    <cheat desc="hidden items finder">
        <script state="on">
            <action>maincpu.mb@6481C = 60</action> <!-- extra ship -->
            <action>maincpu.mb@64890 = 60</action> <!-- power up -->
            <action>maincpu.mb@648E2 = 60</action> <!-- full power up -->
            <action>maincpu.mb@64936 = 60</action> <!-- bonus -->
        </script>
        <script state="off">
            <action>maincpu.mb@6481C = 66</action>
            <action>maincpu.mb@64890 = 66</action>
            <action>maincpu.mb@648E2 = 66</action>
            <action>maincpu.mb@64936 = 66</action>
        </script>
    </cheat>

    <cheat desc="sound test mode">
        <comment>set &quot;skip ram/rom check&quot; then reset the game (F3)</comment>
        <script state="on">
            <action>maincpu.md@216A = 4EF81340        </action>
            <action>maincpu.mq@1340 = 41F90010100043F9</action>
            <action>maincpu.mq@1348 = 00C0000112001039</action>
            <action>maincpu.mq@1350 = 00800001B20067F4</action>
            <action>maincpu.mq@1358 = 0C0000FB66025310</action>
            <action>maincpu.mq@1360 = 0C0000F766025210</action>
            <action>maincpu.mq@1368 = 0C0000FD66040410</action>
            <action>maincpu.mq@1370 = 00100C0000FE6604</action>
            <action>maincpu.mq@1378 = 061000100C0000EF</action>
            <action>maincpu.mq@1380 = 660212900C00007F</action>
            <action>maincpu.mq@1388 = 6602421160BE0000</action>
            <!--
            1340 | 41F9 0010 1000 : lea     $101000.l, A0 // sound code address
            1346 | 43F9 00C0 0001 : lea     $c00001.l, A1 // sound latch address
            134C | 1200           : move.b  D0, D1
            134E | 1039 0080 0001 : move.b  $800001.l, D0 // read input
            1354 | B200           : cmp.b   D0, D1
            1356 | 67F4           : beq     $134c
            1358 | 0C00 00FB      : cmpi.b  #-$5, D0
            135C | 6602           : bne     $1360
            135E | 5310           : subq.b  #1, (A0)      // decrease code -01
            1360 | 0C00 00F7      : cmpi.b  #-$9, D0
            1364 | 6602           : bne     $1368
            1366 | 5210           : addq.b  #1, (A0)      // increase code +01
            1368 | 0C00 00FD      : cmpi.b  #-$3, D0
            136C | 6604           : bne     $1372
            136E | 0410 0010      : subi.b  #$10, (A0)    // decrease code -10
            1372 | 0C00 00FE      : cmpi.b  #-$2, D0
            1376 | 6604           : bne     $137c
            1378 | 0610 0010      : addi.b  #$10, (A0)    // increase code +10
            137C | 0C00 00EF      : cmpi.b  #-$11, D0
            1380 | 6602           : bne     $1384
            1382 | 1290           : move.b  (A0), (A1)    // play sound
            1384 | 0C00 007F      : cmpi.b  #$7f, D0
            1388 | 6602           : bne     $138c
            138A | 4211           : clr.b   (A1)          // stop sound
            138C | 60BE           : bra     $134c
            -->
            <action>soundcpu.md@0069 = D30010CD        </action>
            <action>soundcpu.mq@0010 = 020BCD403E0D20A7</action>
            <action>soundcpu.mq@0018 = 0000C301C8CD103E</action>
            <action>soundcpu.mq@0020 = FFFFFFFFC9C00F32</action>
            <!--
            0010 | A7       : and  a
            0011 | 20 0D    : jr   nz,$0020
            0013 | 3E 40    : ld   a,$40     // stop sfx
            0015 | CD 0B 02 : call $020B
            0018 | 3E 10    : ld   a,$10     // stop music
            001A | CD C8 01 : call $01C8
            001D | C3 00 00 : jp   $0000     // reset soundcpu
            0020 | 32 0F C0 : ld   ($C00F),a
            0023 | C9       : ret
            -->
        </script>
        <script state="run">
            <output format="----- nostradamus 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@101000</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.md@216A = 426E012C        </action>
            <action> maincpu.mq@1340 = 0000000000000000</action>
            <action> maincpu.mq@1348 = 0000000000000000</action>
            <action> maincpu.mq@1350 = 0000000000000000</action>
            <action> maincpu.mq@1358 = 0000000000000000</action>
            <action> maincpu.mq@1360 = 0000000000000000</action>
            <action> maincpu.mq@1368 = 0000000000000000</action>
            <action> maincpu.mq@1370 = 0000000000000000</action>
            <action> maincpu.mq@1378 = 0000000000000000</action>
            <action> maincpu.mq@1380 = 0000000000000000</action>
            <action> maincpu.mq@1388 = 0000000000000000</action>
            <action>soundcpu.md@0069 = D3C00F32        </action>
            <action>soundcpu.mq@0010 = FFFFFFFFFFFFFFFF</action>
            <action>soundcpu.mq@0018 = FFFFFFFFFFFFFFFF</action>
            <action>soundcpu.mq@0020 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action>maincpu.mw@0112 = 6000</action> <!-- skip wait -->
            <action>maincpu.mw@0122 = 0146</action> <!-- skip rom check -->
            <action>maincpu.mw@05E0 = 0000</action> <!-- initalize ram -->
            <action>maincpu.mw@05F8 = 4ED2</action> <!-- escape ram check -->
        </script>
        <script state="off">
            <action>maincpu.mw@0112 = 6700</action>
            <action>maincpu.mw@0122 = 000A</action>
            <action>maincpu.mw@05E0 = 0080</action>
            <action>maincpu.mw@05F8 = 123C</action>
        </script>
    </cheat>

</mamecheat>
  • "hidden items finder" : Added new.
  • "sound test mode" : Fixed some sounds don't stop by sound stop button.
  • "skip ram/rom check" : Improved. Faster boot than previous code.