[gensitou] Prehistoric Isle/Genshitou

This forum is for posting M.A.M.E. Work In Progress "Arcade"cheats that are not quite ready for the prime time. If the cheats are buggy or the cheat descriptions are non-standard then please post them here. Help maybe given but there are no guarantees and they will only be added to the cheat file when the cheat file maintainer is happy with them.
Post Reply
jman
Posts: 865
Joined: Tue Dec 01, 2020 1:24 pm

[gensitou] Prehistoric Isle/Genshitou

Post by jman »

Code: Select all

<cheat desc="no hit">
    <script state="on">
        <!-- common -->
        <action>maincpu.md@1231e =         0003e010</action>
        <action>maincpu.mq@3e010 = 7e00b3fc000700f0</action>
        <action>maincpu.mq@3e018 = 671eb3fc00070630</action>
        <action>maincpu.mq@3e020 = 6716b3fc00070670</action>
        <action>maincpu.mq@3e028 = 670eb3fc00070bb0</action>
        <action>maincpu.mq@3e030 = 67064eb9000128b8</action>
        <action>maincpu.mq@3e038 = 4e75ffffffffffff</action>
        <!--
        3e010 | 7e00           : moveq  #$0,D7
        3e012 | b3fc 0007 00f0 : cmpa.l #$700f0,A1 // P1
        3e018 | 671e           : beq    $3e038
        3e01a | b3fc 0007 0630 : cmpa.l #$70630,A1 // P1 pod
        3e020 | 6716           : beq    $3e038
        3e022 | b3fc 0007 0670 : cmpa.l #$70670,A1 // P2
        3e028 | 670e           : beq    $3e038
        3e02a | b3fc 0007 0bb0 : cmpa.l #$70bb0,A1 // P2 pod
        3e030 | 6706           : beq    $3e038
        3e032 | 4eb9 0001 28b8 : jsr    $128b8.l
        3e038 | 4e75           : rts
        -->
        <action>maincpu.mb@04970 = 60</action> <!-- waterfall -->
        <action>maincpu.mb@0bdf2 = 60</action> <!-- background -->
        <action>maincpu.mb@0be0a = 60</action> <!-- background -->
        <action>maincpu.mb@0be24 = 60</action> <!-- background -->
        <action>maincpu.mb@0be3a = 60</action> <!-- background -->
        <action>maincpu.mb@0fabd = 02</action> <!-- catch hand (stage 3) -->
        <action>maincpu.mb@123f3 = 02</action> <!-- bullet (P1) -->
        <action>maincpu.mb@12409 = 02</action> <!-- bullet (P2) -->
        <action>maincpu.mb@1241d = 02</action> <!-- bullet (P1 pod) -->
        <action>maincpu.mb@12433 = 02</action> <!-- bullet (P2 pod) -->
        <action>maincpu.mb@13036 = 60</action> <!-- gel (stage 4) -->
        <action>maincpu.mb@164a4 = 60</action> <!-- human -->
        <action>maincpu.mb@1691c = 60</action> <!-- human -->
        <action>maincpu.mb@19026 = 60</action> <!-- allosaurus (boss 1-2) predation -->
        <action>maincpu.mb@198ba = 60</action> <!-- rhamphorhynchus (boss 2) wind -->
        <action>maincpu.mb@1a5d6 = 60</action> <!-- brachiosaurus (boss 1-1) predation -->
        <action>maincpu.mb@1a622 = 60</action> <!-- brachiosaurus (boss 1-1) predation -->
        <action>maincpu.mb@1c5a3 = 02</action> <!-- ammonite (boss 4-2) predation -->
        <action>maincpu.mb@1c6f9 = 02</action> <!-- ammonite (boss 4-2) predation -->
        <action>maincpu.mb@1db08 = 60</action> <!-- brachiosaurus head (stage 4) -->
    </script>
    <script state="off">
        <action>maincpu.md@1231e =         000128b8</action>
        <action>maincpu.mq@3e010 = ffffffffffffffff</action>
        <action>maincpu.mq@3e018 = ffffffffffffffff</action>
        <action>maincpu.mq@3e020 = ffffffffffffffff</action>
        <action>maincpu.mq@3e028 = ffffffffffffffff</action>
        <action>maincpu.mq@3e030 = ffffffffffffffff</action>
        <action>maincpu.mq@3e038 = ffffffffffffffff</action>
        <action>maincpu.mb@04970 =               67</action>
        <action>maincpu.mb@0bdf2 =               67</action>
        <action>maincpu.mb@0be0a =               67</action>
        <action>maincpu.mb@0be24 =               67</action>
        <action>maincpu.mb@0be3a =               67</action>
        <action>maincpu.mb@0fabd =               bc</action>
        <action>maincpu.mb@123f3 =               a8</action>
        <action>maincpu.mb@12409 =               92</action>
        <action>maincpu.mb@1241d =               7e</action>
        <action>maincpu.mb@12433 =               68</action>
        <action>maincpu.mb@13036 =               66</action>
        <action>maincpu.mb@164a4 =               66</action>
        <action>maincpu.mb@1691c =               66</action>
        <action>maincpu.mb@19026 =               66</action>
        <action>maincpu.mb@198ba =               66</action>
        <action>maincpu.mb@1a5d6 =               66</action>
        <action>maincpu.mb@1a622 =               66</action>
        <action>maincpu.mb@1c5a3 =               ba</action>
        <action>maincpu.mb@1c6f9 =               26</action>
        <action>maincpu.mb@1db08 =               66</action>
    </script>
</cheat>

<cheat desc="auto fire">
    <script state="on">
        <action>maincpu.mb@bf81 = 01</action> <!-- main shot -->
        <action>maincpu.mb@c335 = 01</action> <!-- pod shot -->
    </script>
    <script state="off">
        <action>maincpu.mb@bf81 = 20</action>
        <action>maincpu.mb@c335 = 20</action>
    </script>
</cheat>

<cheat desc="player speed">
    <parameter>
        <item value="0x0001">01 (slow)</item>
        <item value="0x0003">02       </item>
        <item value="0x0005">03       </item>
        <item value="0x0007">04       </item>
        <item value="0x0009">05 (fast)</item>
    </parameter>
    <script state="on">
        <action>maincpu.md@05830 =         0003e040</action>
        <action>maincpu.mq@3e040 = 4eb84436343c0000</action>
        <action>maincpu.mq@3e048 = 4a4067066a024442</action>
        <action>maincpu.mq@3e050 = 3002343c00004a41</action>
        <action>maincpu.mq@3e058 = 67066a0244423202</action>
        <action>maincpu.mq@3e060 = 4e75ffffffffffff</action>
        <!--
        3e040 | 4eb8 4436 : jsr    $4436.w
        3e044 | 343c xxxx : move.w #$xx,D2 // x position
        3e048 | 4a40      : tst.w  D0
        3e04a | 6706      : beq    $3e052
        3e04c | 6a02      : bpl    $3e050
        3e04e | 4442      : neg.w  D2
        3e050 | 3002      : move.w D2,D0
        3e052 | 343c xxxx : move.w #$xx,D2 // y position
        3e056 | 4a41      : tst.w  D1
        3e058 | 6706      : beq    $3e060
        3e05a | 6a02      : bpl    $3e05e
        3e05c | 4442      : neg.w  D2
        3e05e | 3202      : move.w D2,D1
        3e060 | 4e75      : rts
        -->
    </script>
    <script state="change">
        <action>maincpu.mw@3e046 = param</action>
        <action>maincpu.mw@3e054 = param</action>
    </script>
    <script state="off">
        <action>maincpu.md@05830 =         00004436</action>
        <action>maincpu.mq@3e040 = ffffffffffffffff</action>
        <action>maincpu.mq@3e048 = ffffffffffffffff</action>
        <action>maincpu.mq@3e050 = ffffffffffffffff</action>
        <action>maincpu.mq@3e058 = ffffffffffffffff</action>
        <action>maincpu.mq@3e060 = ffffffffffffffff</action>
    </script>
</cheat>

<cheat desc="short hit mark - main shot">
    <script state="on">
        <action>maincpu.mb@c0e9 = 00</action>
    </script>
    <script state="off">
        <action>maincpu.mb@c0e9 = 04</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.mq@02236 = 4ef90003e070303c</action>
        <action>maincpu.mq@3e070 = 41f90007010043f9</action>
        <action>maincpu.mq@3e078 = 000f007112001039</action>
        <action>maincpu.mq@3e080 = 000e0041b20067f4</action>
        <action>maincpu.mq@3e088 = 0c0000fb66025310</action>
        <action>maincpu.mq@3e090 = 0c0000f766025210</action>
        <action>maincpu.mq@3e098 = 0c0000fd66040410</action>
        <action>maincpu.mq@3e0a0 = 00100c0000fe6604</action>
        <action>maincpu.mq@3e0a8 = 061000100c0000ef</action>
        <action>maincpu.mq@3e0b0 = 660212900c0000df</action>
        <action>maincpu.mq@3e0b8 = 660412bc004060bc</action>
        <!--
        3e070 | 41f9 0007 0100 : lea    $70100.l,A0 // sound code address
        3e076 | 43f9 000f 0071 : lea    $f0071.l,A1 // sound latch address
        3e07c | 1200           : move.b D0,D1
        3e07e | 1039 000e 0041 : move.b $e0041.l,D0 // read input
        3e084 | b200           : cmp.b  D0,D1
        3e086 | 67f4           : beq    $3e07c
        3e088 | 0c00 00fb      : cmpi.b #-$5,D0
        3e08c | 6602           : bne    $3e090
        3e08e | 5310           : subq.b #1,(A0)     // decrease code -01
        3e090 | 0c00 00f7      : cmpi.b #-$9,D0
        3e094 | 6602           : bne    $3e098
        3e096 | 5210           : addq.b #1,(A0)     // increase code +01
        3e098 | 0c00 00fd      : cmpi.b #-$3,D0
        3e09c | 6604           : bne    $3e0a2
        3e09e | 0410 0010      : subi.b #$10,(A0)   // decrease code -10
        3e0a2 | 0c00 00fe      : cmpi.b #-$2,D0
        3e0a6 | 6604           : bne    $3e0ac
        3e0a8 | 0610 0010      : addi.b #$10,(A0)   // increase code +10
        3e0ac | 0c00 00ef      : cmpi.b #-$11,D0
        3e0b0 | 6602           : bne    $3e0b4
        3e0b2 | 1290           : move.b (A0),(A1)   // play sound
        3e0b4 | 0c00 00df      : cmpi.b #-$21,D0
        3e0b8 | 6604           : bne    $3e0be
        3e0ba | 12bc 0040      : move.b #$40,(A1)   // stop music
        3e0be | 60bc           : bra    $3e07c
        -->
        <!-- enable sound -->
        <action>audiocpu.mb@08e7 = 7d</action>
        <action>audiocpu.mb@08ed = 41</action>
        <action>audiocpu.mb@08f4 = 14</action>
    </script>
    <script state="run">
        <output format="----- genshitou 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 music"                 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@70100</argument>
        </output>
    </script>
    <script state="off">
        <action> maincpu.mq@02236 = 427900070048303c</action>
        <action> maincpu.mq@3e070 = ffffffffffffffff</action>
        <action> maincpu.mq@3e078 = ffffffffffffffff</action>
        <action> maincpu.mq@3e080 = ffffffffffffffff</action>
        <action> maincpu.mq@3e088 = ffffffffffffffff</action>
        <action> maincpu.mq@3e090 = ffffffffffffffff</action>
        <action> maincpu.mq@3e098 = ffffffffffffffff</action>
        <action> maincpu.mq@3e0a0 = ffffffffffffffff</action>
        <action> maincpu.mq@3e0a8 = ffffffffffffffff</action>
        <action> maincpu.mq@3e0b0 = ffffffffffffffff</action>
        <action> maincpu.mq@3e0b8 = ffffffffffffffff</action>
        <action>audiocpu.mb@08e7  =               71</action>
        <action>audiocpu.mb@08ed  =               2d</action>
        <action>audiocpu.mb@08f4  =               0f</action>
    </script>
</cheat>

<cheat desc="skip ram/rom check">
    <script state="on">
        <action> maincpu.md@293a = 0000293e</action>
        <action>audiocpu.mb@092f =       dd</action>
    </script>
    <script state="off">
        <action> maincpu.md@293a = 0001dee6</action>
        <action>audiocpu.mb@092f =       80</action>
    </script>
</cheat>
  • "no hit" : optional pod gets "no hit" at the same time because it is broken to suffer damage.
  • "sound test mode" : you can't stop sfx and voice by stop button.
The following code is test. Optional pod can't fire except front shot and sometimes lost the pod.

Code: Select all

<cheat desc="max bullets up (test)">
    <script state="on">
        <action>maincpu.mb@bfc3 =   10</action> <!-- main shot -->
        <action>maincpu.mw@c36a = 7010</action> <!-- front pod shot -->
    </script>
    <script state="off">
        <action>maincpu.mb@bfc3 =   02</action>
        <action>maincpu.mw@c36a = 3007</action>
    </script>
</cheat>
Image
This code seems to work fine in case of no pod though...
jman
Posts: 865
Joined: Tue Dec 01, 2020 1:24 pm

[prehisle]+ Prehistoric Isle/Genshitou

Post by jman »

preshisle.xml

Code: Select all

<!-- Prehistoric Isle in 1930 (World) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- common -->
            <action>maincpu.md@126A0 = 0003E010        </action>
            <action>maincpu.mq@3E010 = 7E00B3FC000700F0</action>
            <action>maincpu.mq@3E018 = 671EB3FC00070630</action>
            <action>maincpu.mq@3E020 = 6716B3FC00070670</action>
            <action>maincpu.mq@3E028 = 670EB3FC00070BB0</action>
            <action>maincpu.mq@3E030 = 67064EB900012C3A</action>
            <action>maincpu.mq@3E038 = 4E75FFFFFFFFFFFF</action>
            <!--
            3E010 | 7E00           : moveq   #$0, D7
            3E012 | B3FC 0007 00F0 : cmpa.l  #$700f0, A1 // P1
            3E018 | 671E           : beq     $3e038
            3E01A | B3FC 0007 0630 : cmpa.l  #$70630, A1 // P1 pod
            3E020 | 6716           : beq     $3e038
            3E022 | B3FC 0007 0670 : cmpa.l  #$70670, A1 // P2
            3E028 | 670E           : beq     $3e038
            3E02A | B3FC 0007 0BB0 : cmpa.l  #$70bb0, A1 // P2 pod
            3E030 | 6706           : beq     $3e038
            3E032 | 4EB9 0001 2C3A : jsr     $12c3a.l    // call collision check
            3E038 | 4E75           : rts
            -->
            <action>maincpu.mb@04962 = 60</action> <!-- waterfall -->
            <action>maincpu.mb@0C174 = 60</action> <!-- background -->
            <action>maincpu.mb@0C18C = 60</action> <!-- background -->
            <action>maincpu.mb@0C1A6 = 60</action> <!-- background -->
            <action>maincpu.mb@0C1BC = 60</action> <!-- background -->
            <action>maincpu.mb@0FE3F = 02</action> <!-- catch hand (stage 3) -->
            <action>maincpu.mb@12775 = 02</action> <!-- bullet (P1) -->
            <action>maincpu.mb@1278B = 02</action> <!-- bullet (P2) -->
            <action>maincpu.mb@1279F = 02</action> <!-- bullet (P1 pod) -->
            <action>maincpu.mb@127B5 = 02</action> <!-- bullet (P2 pod) -->
            <action>maincpu.mb@133B8 = 60</action> <!-- gel (stage 4) -->
            <action>maincpu.mb@16826 = 60</action> <!-- human -->
            <action>maincpu.mb@16C9E = 60</action> <!-- human -->
            <action>maincpu.mb@193A8 = 60</action> <!-- allosaurus (boss 1-2) predation -->
            <action>maincpu.mb@19C3C = 60</action> <!-- rhamphorhynchus (boss 2) wind -->
            <action>maincpu.mb@1A958 = 60</action> <!-- brachiosaurus (boss 1-1) predation -->
            <action>maincpu.mb@1A9A4 = 60</action> <!-- brachiosaurus (boss 1-1) predation -->
            <action>maincpu.mb@1C925 = 02</action> <!-- ammonite (boss 4-2) predation -->
            <action>maincpu.mb@1CA7B = 02</action> <!-- ammonite (boss 4-2) predation -->
            <action>maincpu.mb@1DE8A = 60</action> <!-- brachiosaurus head (stage 4) -->
        </script>
        <script state="off">
            <action>maincpu.md@126A0 = 00012C3A        </action>
            <action>maincpu.mq@3E010 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E018 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E020 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E028 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E030 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E038 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@04962 = 67              </action>
            <action>maincpu.mb@0C174 = 67              </action>
            <action>maincpu.mb@0C18C = 67              </action>
            <action>maincpu.mb@0C1A6 = 67              </action>
            <action>maincpu.mb@0C1BC = 67              </action>
            <action>maincpu.mb@0FE3F = BC              </action>
            <action>maincpu.mb@12775 = A8              </action>
            <action>maincpu.mb@1278B = 92              </action>
            <action>maincpu.mb@1279F = 7E              </action>
            <action>maincpu.mb@127B5 = 68              </action>
            <action>maincpu.mb@133B8 = 66              </action>
            <action>maincpu.mb@16826 = 66              </action>
            <action>maincpu.mb@16C9E = 66              </action>
            <action>maincpu.mb@193A8 = 66              </action>
            <action>maincpu.mb@19C3C = 66              </action>
            <action>maincpu.mb@1A958 = 66              </action>
            <action>maincpu.mb@1A9A4 = 66              </action>
            <action>maincpu.mb@1C925 = BA              </action>
            <action>maincpu.mb@1CA7B = 26              </action>
            <action>maincpu.mb@1DE8A = 66              </action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@C303 = 01</action> <!-- main shot -->
            <action>maincpu.mb@C6B7 = 01</action> <!-- pod shot -->
        </script>
        <script state="off">
            <action>maincpu.mb@C303 = 20</action>
            <action>maincpu.mb@C6B7 = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0003">02       </item>
            <item value="0x0005">03       </item>
            <item value="0x0007">04       </item>
            <item value="0x0009">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@05822 = 0003E040        </action>
            <action>maincpu.mq@3E040 = 4EB84428343C0000</action>
            <action>maincpu.mq@3E048 = 4A4067066A024442</action>
            <action>maincpu.mq@3E050 = 3002343C00004A41</action>
            <action>maincpu.mq@3E058 = 67066A0244423202</action>
            <action>maincpu.mq@3E060 = 4E75FFFFFFFFFFFF</action>
            <!--
            3E040 | 4EB8 4428 : jsr     $4428.w
            3E044 | 343C xxxx : move.w  #$xx, D2 // x position
            3E048 | 4A40      : tst.w   D0
            3E04A | 6706      : beq     $3e052
            3E04C | 6A02      : bpl     $3e050
            3E04E | 4442      : neg.w   D2
            3E050 | 3002      : move.w  D2, D0
            3E052 | 343C xxxx : move.w  #$xx, D2 // y position
            3E056 | 4A41      : tst.w   D1
            3E058 | 6706      : beq     $3e060
            3E05A | 6A02      : bpl     $3e05e
            3E05C | 4442      : neg.w   D2
            3E05E | 3202      : move.w  D2, D1
            3E060 | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@3E046 = param</action>
            <action>maincpu.mw@3E054 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@05822 = 00004428        </action>
            <action>maincpu.mq@3E040 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E048 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E050 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E058 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E060 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="max bullets up (test)">
        <!-- pod can't fire except front shot and sometimes you lose the pod -->
        <script state="on">
            <action>maincpu.mw@C344 = 0010</action> <!-- main shot -->
            <action>maincpu.mw@C6EC = 7010</action> <!-- front pod shot -->
        </script>
        <script state="off">
            <action>maincpu.mw@C344 = 0002</action>
            <action>maincpu.mw@C6EC = 3007</action>
        </script>
    </cheat>

    <cheat desc="short hit mark - main shot">
        <script state="on">
            <action>maincpu.mb@C46B = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@C46B = 04</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.mq@02232 = 4EF90003E070303C</action>
            <action>maincpu.mq@3E070 = 41F90007100043F9</action>
            <action>maincpu.mq@3E078 = 000F007112001039</action>
            <action>maincpu.mq@3E080 = 000E0041B20067F4</action>
            <action>maincpu.mq@3E088 = 0C0000FB66025310</action>
            <action>maincpu.mq@3E090 = 0C0000F766025210</action>
            <action>maincpu.mq@3E098 = 0C0000FD66040410</action>
            <action>maincpu.mq@3E0A0 = 00100C0000FE6604</action>
            <action>maincpu.mq@3E0A8 = 061000100C0000EF</action>
            <action>maincpu.mq@3E0B0 = 660212900C0000DF</action>
            <action>maincpu.mq@3E0B8 = 6602421160BEFFFF</action>
            <!--
            3E070 | 41F9 0007 0100 : lea     $71000.l, A0 // sound code address
            3E076 | 43F9 000F 0071 : lea     $f0071.l, A1 // sound latch address
            3E07C | 1200           : move.b  D0, D1
            3E07E | 1039 000E 0041 : move.b  $e0041.l, D0 // read input
            3E084 | B200           : cmp.b   D0, D1
            3E086 | 67F4           : beq     $3e07c
            3E088 | 0C00 00FB      : cmpi.b  #-$5, D0
            3E08C | 6602           : bne     $3e090
            3E08E | 5310           : subq.b  #1, (A0)     // decrease code -01
            3E090 | 0C00 00F7      : cmpi.b  #-$9, D0
            3E094 | 6602           : bne     $3e098
            3E096 | 5210           : addq.b  #1, (A0)     // increase code +01
            3E098 | 0C00 00FD      : cmpi.b  #-$3, D0
            3E09C | 6604           : bne     $3e0a2
            3E09E | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            3E0A2 | 0C00 00FE      : cmpi.b  #-$2, D0
            3E0A6 | 6604           : bne     $3e0ac
            3E0A8 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            3E0AC | 0C00 00EF      : cmpi.b  #-$11, D0
            3E0B0 | 6602           : bne     $3e0b4
            3E0B2 | 1290           : move.b  (A0), (A1)   // play sound
            3E0B4 | 0C00 00DF      : cmpi.b  #-$21, D0
            3E0B8 | 6602           : bne     $3e0bc
            3E0BA | 4211           : clr.b   (A1)         // stop sound
            3E0BC | 60BE           : bra     $3e07c
            -->
            <action>audiocpu.md@08CB = 00BF50CD        </action>
            <action>audiocpu.mq@BF50 = 80D30F20A7F8003A</action>
            <action>audiocpu.mq@BF58 = CD80D3803E0091CD</action>
            <action>audiocpu.mq@BF60 = 32AF470000C30091</action>
            <action>audiocpu.mq@BF68 = 78F12832013EF116</action>
            <action>audiocpu.mq@BF70 = FFFFFFFFFFFFFFC9</action>
            <!--
            BF50 | 3A 00 F8 : ld   a,($F800) // read sound code from maincpu
            BF53 | A7       : and  a
            BF54 | 20 0F    : jr   nz,$BF65
            BF56 | D3 80    : out  ($80),a   // reset sample
            BF58 | CD 91 00 : call $0091
            BF5B | 3E 80    : ld   a,$80     // enable sample
            BF5D | D3 80    : out  ($80),a
            BF5F | CD 91 00 : call $0091
            BF62 | C3 00 00 : jp   $0000     // reset audiocpu
            BF65 | 47       : ld   b,a
            BF66 | AF       : xor  a         // initialize sound flags
            BF67 | 32 16 F1 : ld   ($F116),a
            BF6A | 3E 01    : ld   a,$01
            BF6C | 32 28 F1 : ld   ($F128),a
            BF6F | 78       : ld   a,b
            BF70 | C9       : ret
            -->
        </script>
        <script state="run">
            <output format="----- prehistoric isle 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 music"                        line="16" align="center" />
            <output format="----------------------------"                 line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"            line="19" align="center"  >
                <argument>maincpu.pb@71000</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mq@02232 = 427900070048303C</action>
            <action> maincpu.mq@3E070 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E078 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E080 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E088 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E090 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E098 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E0A0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E0A8 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E0B0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E0B8 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.md@008CB = 00F8003A        </action>
            <action>audiocpu.mq@0BF50 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@0BF58 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@0BF60 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@0BF68 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@0BF70 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action> maincpu.md@292C = 00002930</action>
            <action>audiocpu.mb@092F = DD      </action>
        </script>
        <script state="off">
            <action> maincpu.md@292C = 0001E268</action>
            <action>audiocpu.mb@092F = 80      </action>
        </script>
    </cheat>

</mamecheat>
prehisleu.xml

Code: Select all

<!-- Prehistoric Isle in 1930 (US) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- common -->
            <action>maincpu.md@132C0 = 0003F020        </action>
            <action>maincpu.mq@3F020 = 7E00B3FC000700F0</action>
            <action>maincpu.mq@3F028 = 671EB3FC00070630</action>
            <action>maincpu.mq@3F030 = 6716B3FC00070670</action>
            <action>maincpu.mq@3F038 = 670EB3FC00070BB0</action>
            <action>maincpu.mq@3F040 = 67064EB90001385A</action>
            <action>maincpu.mq@3F048 = 4E75FFFFFFFFFFFF</action>
            <!--
            3F020 | 7E00           : moveq   #$0, D7
            3F022 | B3FC 0007 00F0 : cmpa.l  #$700f0, A1 // P1
            3F028 | 671E           : beq     $3f048
            3F02A | B3FC 0007 0630 : cmpa.l  #$70630, A1 // P1 pod
            3F030 | 6716           : beq     $3f048
            3F032 | B3FC 0007 0670 : cmpa.l  #$70670, A1 // P2
            3F038 | 670E           : beq     $3f048
            3F03A | B3FC 0007 0BB0 : cmpa.l  #$70bb0, A1 // P2 pod
            3F040 | 6706           : beq     $3f048
            3F042 | 4EB9 0001 385A : jsr     $1385a.l    // call collision check
            3F048 | 4E75           : rts
            -->
            <action>maincpu.mb@0503C = 60</action> <!-- waterfall -->
            <action>maincpu.mb@0CD60 = 60</action> <!-- background -->
            <action>maincpu.mb@0CD78 = 60</action> <!-- background -->
            <action>maincpu.mb@0CD92 = 60</action> <!-- background -->
            <action>maincpu.mb@0CDA8 = 60</action> <!-- background -->
            <action>maincpu.mb@10A5F = 02</action> <!-- catch hand (stage 3) -->
            <action>maincpu.mb@13395 = 02</action> <!-- bullet (P1) -->
            <action>maincpu.mb@133AB = 02</action> <!-- bullet (P2) -->
            <action>maincpu.mb@133BF = 02</action> <!-- bullet (P1 pod) -->
            <action>maincpu.mb@133D5 = 02</action> <!-- bullet (P2 pod) -->
            <action>maincpu.mb@13FD8 = 60</action> <!-- gel (stage 4) -->
            <action>maincpu.mb@17446 = 60</action> <!-- human -->
            <action>maincpu.mb@178BE = 60</action> <!-- human -->
            <action>maincpu.mb@19FF2 = 60</action> <!-- allosaurus (boss 1-2) predation -->
            <action>maincpu.mb@1A886 = 60</action> <!-- rhamphorhynchus (boss 2) wind -->
            <action>maincpu.mb@1B5A2 = 60</action> <!-- brachiosaurus (boss 1-1) predation -->
            <action>maincpu.mb@1B5EE = 60</action> <!-- brachiosaurus (boss 1-1) predation -->
            <action>maincpu.mb@1D56F = 02</action> <!-- ammonite (boss 4-2) predation -->
            <action>maincpu.mb@1D6C5 = 02</action> <!-- ammonite (boss 4-2) predation -->
            <action>maincpu.mb@1EAD4 = 60</action> <!-- brachiosaurus head (stage 4) -->
        </script>
        <script state="off">
            <action>maincpu.md@132C0 = 0001385A        </action>
            <action>maincpu.mq@3F020 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F028 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F030 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F038 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F040 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F048 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@0503C = 67              </action>
            <action>maincpu.mb@0CD60 = 67              </action>
            <action>maincpu.mb@0CD78 = 67              </action>
            <action>maincpu.mb@0CD92 = 67              </action>
            <action>maincpu.mb@0CDA8 = 67              </action>
            <action>maincpu.mb@10A5F = BC              </action>
            <action>maincpu.mb@13395 = A8              </action>
            <action>maincpu.mb@133AB = 92              </action>
            <action>maincpu.mb@133BF = 7E              </action>
            <action>maincpu.mb@133D5 = 68              </action>
            <action>maincpu.mb@13FD8 = 66              </action>
            <action>maincpu.mb@17446 = 66              </action>
            <action>maincpu.mb@178BE = 66              </action>
            <action>maincpu.mb@19FF2 = 66              </action>
            <action>maincpu.mb@1A886 = 66              </action>
            <action>maincpu.mb@1B5A2 = 66              </action>
            <action>maincpu.mb@1B5EE = 66              </action>
            <action>maincpu.mb@1D56F = BA              </action>
            <action>maincpu.mb@1D6C5 = 26              </action>
            <action>maincpu.mb@1EAD4 = 66              </action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@CEEF = 01</action> <!-- main shot -->
            <action>maincpu.mb@D2A3 = 01</action> <!-- pod shot -->
        </script>
        <script state="off">
            <action>maincpu.mb@CEEF = 20</action>
            <action>maincpu.mb@D2A3 = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0003">02       </item>
            <item value="0x0005">03       </item>
            <item value="0x0007">04       </item>
            <item value="0x0009">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@06456 = 0003F050        </action>
            <action>maincpu.mq@3F050 = 4EB84B02343C0000</action>
            <action>maincpu.mq@3F058 = 4A4067066A024442</action>
            <action>maincpu.mq@3F060 = 3002343C00004A41</action>
            <action>maincpu.mq@3F068 = 67066A0244423202</action>
            <action>maincpu.mq@3F070 = 4E75FFFFFFFFFFFF</action>
            <!--
            3F050 | 4EB8 4B02 : jsr     $4b02.w
            3F054 | 343C xxxx : move.w  #$xx, D2 // x position
            3F058 | 4A40      : tst.w   D0
            3F05A | 6706      : beq     $3f062
            3F05C | 6A02      : bpl     $3f060
            3F05E | 4442      : neg.w   D2
            3F060 | 3002      : move.w  D2, D0
            3F062 | 343C xxxx : move.w  #$xx, D2 // y position
            3F066 | 4A41      : tst.w   D1
            3F068 | 6706      : beq     $3f070
            3F06A | 6A02      : bpl     $3f06e
            3F06C | 4442      : neg.w   D2
            3F06E | 3202      : move.w  D2, D1
            3F070 | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@3F056 = param</action>
            <action>maincpu.mw@3F064 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@06456 = 00004B02        </action>
            <action>maincpu.mq@3F050 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F058 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F060 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F068 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3F070 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="max bullets up (test)">
        <!-- pod can't fire except front shot and sometimes you lose the pod -->
        <script state="on">
            <action>maincpu.mw@CF30 = 0010</action> <!-- main shot -->
            <action>maincpu.mw@D2D8 = 7010</action> <!-- front pod shot -->
        </script>
        <script state="off">
            <action>maincpu.mw@CF30 = 0002</action>
            <action>maincpu.mw@D2D8 = 3007</action>
        </script>
    </cheat>

    <cheat desc="short hit mark - main shot">
        <script state="on">
            <action>maincpu.mb@D057 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@D057 = 04</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.mq@02466 = 4EF90003F080303C</action>
            <action>maincpu.mq@3F080 = 41F90007100043F9</action>
            <action>maincpu.mq@3F088 = 000F007112001039</action>
            <action>maincpu.mq@3F090 = 000E0041B20067F4</action>
            <action>maincpu.mq@3F098 = 0C0000FB66025310</action>
            <action>maincpu.mq@3F0A0 = 0C0000F766025210</action>
            <action>maincpu.mq@3F0A8 = 0C0000FD66040410</action>
            <action>maincpu.mq@3F0B0 = 00100C0000FE6604</action>
            <action>maincpu.mq@3F0B8 = 061000100C0000EF</action>
            <action>maincpu.mq@3F0C0 = 660212900C0000DF</action>
            <action>maincpu.mq@3F0C8 = 6602421160BEFFFF</action>
            <!--
            3F080 | 41F9 0007 0100 : lea     $71000.l, A0 // sound code address
            3F086 | 43F9 000F 0071 : lea     $f0071.l, A1 // sound latch address
            3F08C | 1200           : move.b  D0, D1
            3F08E | 1039 000E 0041 : move.b  $e0041.l, D0 // read input
            3F094 | B200           : cmp.b   D0, D1
            3F096 | 67F4           : beq     $3e07c
            3F098 | 0C00 00FB      : cmpi.b  #-$5, D0
            3F09C | 6602           : bne     $3e090
            3F09E | 5310           : subq.b  #1, (A0)     // decrease code -01
            3F0A0 | 0C00 00F7      : cmpi.b  #-$9, D0
            3F0A4 | 6602           : bne     $3e098
            3F0A6 | 5210           : addq.b  #1, (A0)     // increase code +01
            3F0A8 | 0C00 00FD      : cmpi.b  #-$3, D0
            3F0AC | 6604           : bne     $3e0a2
            3F0AE | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            3F0B2 | 0C00 00FE      : cmpi.b  #-$2, D0
            3F0B6 | 6604           : bne     $3e0ac
            3F0B8 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            3F0BC | 0C00 00EF      : cmpi.b  #-$11, D0
            3F0C0 | 6602           : bne     $3e0b4
            3F0C2 | 1290           : move.b  (A0), (A1)   // play sound
            3F0C4 | 0C00 00DF      : cmpi.b  #-$21, D0
            3F0C8 | 6602           : bne     $3e0bc
            3F0CA | 4211           : clr.b   (A1)         // stop sound
            3F0CC | 60BE           : bra     $3e07c
            -->
            <action>audiocpu.md@08CB = 00BF50CD        </action>
            <action>audiocpu.mq@BF50 = 80D30F20A7F8003A</action>
            <action>audiocpu.mq@BF58 = CD80D3803E0091CD</action>
            <action>audiocpu.mq@BF60 = 32AF470000C30091</action>
            <action>audiocpu.mq@BF68 = 78F12832013EF116</action>
            <action>audiocpu.mq@BF70 = FFFFFFFFFFFFFFC9</action>
            <!--
            BF50 | 3A 00 F8 : ld   a,($F800) // read sound code from maincpu
            BF53 | A7       : and  a
            BF54 | 20 0F    : jr   nz,$BF65
            BF56 | D3 80    : out  ($80),a   // reset sample
            BF58 | CD 91 00 : call $0091
            BF5B | 3E 80    : ld   a,$80     // enable sample
            BF5D | D3 80    : out  ($80),a
            BF5F | CD 91 00 : call $0091
            BF62 | C3 00 00 : jp   $0000     // reset audiocpu
            BF65 | 47       : ld   b,a
            BF66 | AF       : xor  a         // initialize sound flags
            BF67 | 32 16 F1 : ld   ($F116),a
            BF6A | 3E 01    : ld   a,$01
            BF6C | 32 28 F1 : ld   ($F128),a
            BF6F | 78       : ld   a,b
            BF70 | C9       : ret
            -->
        </script>
        <script state="run">
            <output format="----- prehistoric isle 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 music"                        line="16" align="center" />
            <output format="----------------------------"                 line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"            line="19" align="center"  >
                <argument>maincpu.pb@71000</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mq@02466 = 427900070048303C</action>
            <action> maincpu.mq@3F080 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3F088 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3F090 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3F098 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3F0A0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3F0A8 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3F0B0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3F0B8 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3F0C0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3F0C8 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.md@008CB = 00F8003A        </action>
            <action>audiocpu.mq@0BF50 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@0BF58 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@0BF60 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@0BF68 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@0BF70 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action> maincpu.md@2F62 = 00002F66</action>
            <action>audiocpu.mb@092F = DD      </action>
        </script>
        <script state="off">
            <action> maincpu.md@2F62 = 0001EEB2</action>
            <action>audiocpu.mb@092F = 80      </action>
        </script>
    </cheat>

</mamecheat>
prehislek.xml

Code: Select all

<!-- Wonsido 1930's (Korea) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- common -->
            <action>maincpu.md@12636 = 0003E010        </action>
            <action>maincpu.mq@3E010 = 7E00B3FC000700F0</action>
            <action>maincpu.mq@3E018 = 671EB3FC00070630</action>
            <action>maincpu.mq@3E020 = 6716B3FC00070670</action>
            <action>maincpu.mq@3E028 = 670EB3FC00070BB0</action>
            <action>maincpu.mq@3E030 = 67064EB900012BD0</action>
            <action>maincpu.mq@3E038 = 4E75FFFFFFFFFFFF</action>
            <!--
            3E010 | 7E00           : moveq   #$0, D7
            3E012 | B3FC 0007 00F0 : cmpa.l  #$700f0, A1 // P1
            3E018 | 671E           : beq     $3e038
            3E01A | B3FC 0007 0630 : cmpa.l  #$70630, A1 // P1 pod
            3E020 | 6716           : beq     $3e038
            3E022 | B3FC 0007 0670 : cmpa.l  #$70670, A1 // P2
            3E028 | 670E           : beq     $3e038
            3E02A | B3FC 0007 0BB0 : cmpa.l  #$70bb0, A1 // P2 pod
            3E030 | 6706           : beq     $3e038
            3E032 | 4EB9 0001 2BD0 : jsr     $12bd0.l    // call collision check
            3E038 | 4E75           : rts
            -->
            <action>maincpu.mb@0496C = 60</action> <!-- waterfall -->
            <action>maincpu.mb@0C10A = 60</action> <!-- background -->
            <action>maincpu.mb@0C122 = 60</action> <!-- background -->
            <action>maincpu.mb@0C13C = 60</action> <!-- background -->
            <action>maincpu.mb@0C152 = 60</action> <!-- background -->
            <action>maincpu.mb@0FDD5 = 02</action> <!-- catch hand (stage 3) -->
            <action>maincpu.mb@1270B = 02</action> <!-- bullet (P1) -->
            <action>maincpu.mb@12721 = 02</action> <!-- bullet (P2) -->
            <action>maincpu.mb@12735 = 02</action> <!-- bullet (P1 pod) -->
            <action>maincpu.mb@1274B = 02</action> <!-- bullet (P2 pod) -->
            <action>maincpu.mb@1334E = 60</action> <!-- gel (stage 4) -->
            <action>maincpu.mb@167BC = 60</action> <!-- human -->
            <action>maincpu.mb@16C34 = 60</action> <!-- human -->
            <action>maincpu.mb@1933E = 60</action> <!-- allosaurus (boss 1-2) predation -->
            <action>maincpu.mb@19BD2 = 60</action> <!-- rhamphorhynchus (boss 2) wind -->
            <action>maincpu.mb@1A8EE = 60</action> <!-- brachiosaurus (boss 1-1) predation -->
            <action>maincpu.mb@1A93A = 60</action> <!-- brachiosaurus (boss 1-1) predation -->
            <action>maincpu.mb@1C8BB = 02</action> <!-- ammonite (boss 4-2) predation -->
            <action>maincpu.mb@1CA11 = 02</action> <!-- ammonite (boss 4-2) predation -->
            <action>maincpu.mb@1DE20 = 60</action> <!-- brachiosaurus head (stage 4) -->
        </script>
        <script state="off">
            <action>maincpu.md@12636 = 00012BD0        </action>
            <action>maincpu.mq@3E010 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E018 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E020 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E028 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E030 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E038 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@0496C = 67              </action>
            <action>maincpu.mb@0C10A = 67              </action>
            <action>maincpu.mb@0C122 = 67              </action>
            <action>maincpu.mb@0C13C = 67              </action>
            <action>maincpu.mb@0C152 = 67              </action>
            <action>maincpu.mb@0FDD5 = BC              </action>
            <action>maincpu.mb@1270B = A8              </action>
            <action>maincpu.mb@12721 = 92              </action>
            <action>maincpu.mb@12735 = 7E              </action>
            <action>maincpu.mb@1274B = 68              </action>
            <action>maincpu.mb@1334E = 66              </action>
            <action>maincpu.mb@167BC = 66              </action>
            <action>maincpu.mb@16C34 = 66              </action>
            <action>maincpu.mb@1933E = 66              </action>
            <action>maincpu.mb@19BD2 = 66              </action>
            <action>maincpu.mb@1A8EE = 66              </action>
            <action>maincpu.mb@1A93A = 66              </action>
            <action>maincpu.mb@1C8BB = BA              </action>
            <action>maincpu.mb@1CA11 = 26              </action>
            <action>maincpu.mb@1DE20 = 66              </action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@C299 = 01</action> <!-- main shot -->
            <action>maincpu.mb@C64D = 01</action> <!-- pod shot -->
        </script>
        <script state="off">
            <action>maincpu.mb@C299 = 20</action>
            <action>maincpu.mb@C64D = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0003">02       </item>
            <item value="0x0005">03       </item>
            <item value="0x0007">04       </item>
            <item value="0x0009">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@0582C = 0003E040        </action>
            <action>maincpu.mq@3E040 = 4EB84432343C0000</action>
            <action>maincpu.mq@3E048 = 4A4067066A024442</action>
            <action>maincpu.mq@3E050 = 3002343C00004A41</action>
            <action>maincpu.mq@3E058 = 67066A0244423202</action>
            <action>maincpu.mq@3E060 = 4E75FFFFFFFFFFFF</action>
            <!--
            3E040 | 4EB8 4432 : jsr     $4432.w
            3E044 | 343C xxxx : move.w  #$xx, D2 // x position
            3E048 | 4A40      : tst.w   D0
            3E04A | 6706      : beq     $3e052
            3E04C | 6A02      : bpl     $3e050
            3E04E | 4442      : neg.w   D2
            3E050 | 3002      : move.w  D2, D0
            3E052 | 343C xxxx : move.w  #$xx, D2 // y position
            3E056 | 4A41      : tst.w   D1
            3E058 | 6706      : beq     $3e060
            3E05A | 6A02      : bpl     $3e05e
            3E05C | 4442      : neg.w   D2
            3E05E | 3202      : move.w  D2, D1
            3E060 | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@3E046 = param</action>
            <action>maincpu.mw@3E054 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@0582C = 00004432        </action>
            <action>maincpu.mq@3E040 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E048 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E050 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E058 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E060 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="max bullets up (test)">
        <!-- pod can't fire except front shot and sometimes you lose the pod -->
        <script state="on">
            <action>maincpu.mw@C2DA = 0010</action> <!-- main shot -->
            <action>maincpu.mw@C682 = 7010</action> <!-- front pod shot -->
        </script>
        <script state="off">
            <action>maincpu.mw@C2DA = 0002</action>
            <action>maincpu.mw@C682 = 3007</action>
        </script>
    </cheat>

    <cheat desc="short hit mark - main shot">
        <script state="on">
            <action>maincpu.mb@C401 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@C401 = 04</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.mq@0223E = 4EF90003E070303C</action>
            <action>maincpu.mq@3E070 = 41F90007100043F9</action>
            <action>maincpu.mq@3E078 = 000F007112001039</action>
            <action>maincpu.mq@3E080 = 000E0041B20067F4</action>
            <action>maincpu.mq@3E088 = 0C0000FB66025310</action>
            <action>maincpu.mq@3E090 = 0C0000F766025210</action>
            <action>maincpu.mq@3E098 = 0C0000FD66040410</action>
            <action>maincpu.mq@3E0A0 = 00100C0000FE6604</action>
            <action>maincpu.mq@3E0A8 = 061000100C0000EF</action>
            <action>maincpu.mq@3E0B0 = 660212900C0000DF</action>
            <action>maincpu.mq@3E0B8 = 6602421160BEFFFF</action>
            <!--
            3E070 | 41F9 0007 0100 : lea     $71000.l, A0 // sound code address
            3E076 | 43F9 000F 0071 : lea     $f0071.l, A1 // sound latch address
            3E07C | 1200           : move.b  D0, D1
            3E07E | 1039 000E 0041 : move.b  $e0041.l, D0 // read input
            3E084 | B200           : cmp.b   D0, D1
            3E086 | 67F4           : beq     $3e07c
            3E088 | 0C00 00FB      : cmpi.b  #-$5, D0
            3E08C | 6602           : bne     $3e090
            3E08E | 5310           : subq.b  #1, (A0)     // decrease code -01
            3E090 | 0C00 00F7      : cmpi.b  #-$9, D0
            3E094 | 6602           : bne     $3e098
            3E096 | 5210           : addq.b  #1, (A0)     // increase code +01
            3E098 | 0C00 00FD      : cmpi.b  #-$3, D0
            3E09C | 6604           : bne     $3e0a2
            3E09E | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            3E0A2 | 0C00 00FE      : cmpi.b  #-$2, D0
            3E0A6 | 6604           : bne     $3e0ac
            3E0A8 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            3E0AC | 0C00 00EF      : cmpi.b  #-$11, D0
            3E0B0 | 6602           : bne     $3e0b4
            3E0B2 | 1290           : move.b  (A0), (A1)   // play sound
            3E0B4 | 0C00 00DF      : cmpi.b  #-$21, D0
            3E0B8 | 6602           : bne     $3e0bc
            3E0BA | 4211           : clr.b   (A1)         // stop sound
            3E0BC | 60BE           : bra     $3e07c
            -->
            <action>audiocpu.md@08CB = 00BF50CD        </action>
            <action>audiocpu.mq@BF50 = 80D30F20A7F8003A</action>
            <action>audiocpu.mq@BF58 = CD80D3803E0091CD</action>
            <action>audiocpu.mq@BF60 = 32AF470000C30091</action>
            <action>audiocpu.mq@BF68 = 78F12832013EF116</action>
            <action>audiocpu.mq@BF70 = FFFFFFFFFFFFFFC9</action>
            <!--
            BF50 | 3A 00 F8 : ld   a,($F800) // read sound code from maincpu
            BF53 | A7       : and  a
            BF54 | 20 0F    : jr   nz,$BF65
            BF56 | D3 80    : out  ($80),a   // reset sample
            BF58 | CD 91 00 : call $0091
            BF5B | 3E 80    : ld   a,$80     // enable sample
            BF5D | D3 80    : out  ($80),a
            BF5F | CD 91 00 : call $0091
            BF62 | C3 00 00 : jp   $0000     // reset audiocpu
            BF65 | 47       : ld   b,a
            BF66 | AF       : xor  a         // initialize sound flags
            BF67 | 32 16 F1 : ld   ($F116),a
            BF6A | 3E 01    : ld   a,$01
            BF6C | 32 28 F1 : ld   ($F128),a
            BF6F | 78       : ld   a,b
            BF70 | C9       : ret
            -->
        </script>
        <script state="run">
            <output format="----- wonsido 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 music"               line="16" align="center" />
            <output format="----------------------------"        line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"   line="19" align="center"  >
                <argument>maincpu.pb@71000</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mq@0223E = 427900070048303C</action>
            <action> maincpu.mq@3E070 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E078 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E080 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E088 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E090 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E098 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E0A0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E0A8 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E0B0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E0B8 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.md@008CB = 00F8003A        </action>
            <action>audiocpu.mq@0BF50 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@0BF58 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@0BF60 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@0BF68 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@0BF70 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action> maincpu.md@2936 = 0000293A</action>
            <action>audiocpu.mb@092F = DD      </action>
        </script>
        <script state="off">
            <action> maincpu.md@2936 = 0001E1FE</action>
            <action>audiocpu.mb@092F = 80      </action>
        </script>
    </cheat>

</mamecheat>
gensitou.xml

Code: Select all

<!-- Genshitou 1930's -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- common -->
            <action>maincpu.md@1231E = 0003E010        </action>
            <action>maincpu.mq@3E010 = 7E00B3FC000700F0</action>
            <action>maincpu.mq@3E018 = 671EB3FC00070630</action>
            <action>maincpu.mq@3E020 = 6716B3FC00070670</action>
            <action>maincpu.mq@3E028 = 670EB3FC00070BB0</action>
            <action>maincpu.mq@3E030 = 67064EB9000128B8</action>
            <action>maincpu.mq@3E038 = 4E75FFFFFFFFFFFF</action>
            <!--
            3E010 | 7E00           : moveq   #$0, D7
            3E012 | B3FC 0007 00F0 : cmpa.l  #$700f0, A1 // P1
            3E018 | 671E           : beq     $3e038
            3E01A | B3FC 0007 0630 : cmpa.l  #$70630, A1 // P1 pod
            3E020 | 6716           : beq     $3e038
            3E022 | B3FC 0007 0670 : cmpa.l  #$70670, A1 // P2
            3E028 | 670E           : beq     $3e038
            3E02A | B3FC 0007 0BB0 : cmpa.l  #$70bb0, A1 // P2 pod
            3E030 | 6706           : beq     $3e038
            3E032 | 4EB9 0001 28B8 : jsr     $128b8.l    // call collision check
            3E038 | 4E75           : rts
            -->
            <action>maincpu.mb@04970 = 60</action> <!-- waterfall -->
            <action>maincpu.mb@0BDF2 = 60</action> <!-- background -->
            <action>maincpu.mb@0BE0A = 60</action> <!-- background -->
            <action>maincpu.mb@0BE24 = 60</action> <!-- background -->
            <action>maincpu.mb@0BE3A = 60</action> <!-- background -->
            <action>maincpu.mb@0FABD = 02</action> <!-- catch hand (stage 3) -->
            <action>maincpu.mb@123F3 = 02</action> <!-- bullet (P1) -->
            <action>maincpu.mb@12409 = 02</action> <!-- bullet (P2) -->
            <action>maincpu.mb@1241D = 02</action> <!-- bullet (P1 pod) -->
            <action>maincpu.mb@12433 = 02</action> <!-- bullet (P2 pod) -->
            <action>maincpu.mb@13036 = 60</action> <!-- gel (stage 4) -->
            <action>maincpu.mb@164A4 = 60</action> <!-- human -->
            <action>maincpu.mb@1691C = 60</action> <!-- human -->
            <action>maincpu.mb@19026 = 60</action> <!-- allosaurus (boss 1-2) predation -->
            <action>maincpu.mb@198BA = 60</action> <!-- rhamphorhynchus (boss 2) wind -->
            <action>maincpu.mb@1A5D6 = 60</action> <!-- brachiosaurus (boss 1-1) predation -->
            <action>maincpu.mb@1A622 = 60</action> <!-- brachiosaurus (boss 1-1) predation -->
            <action>maincpu.mb@1C5A3 = 02</action> <!-- ammonite (boss 4-2) predation -->
            <action>maincpu.mb@1C6F9 = 02</action> <!-- ammonite (boss 4-2) predation -->
            <action>maincpu.mb@1DB08 = 60</action> <!-- brachiosaurus head (stage 4) -->
        </script>
        <script state="off">
            <action>maincpu.md@1231E = 000128B8        </action>
            <action>maincpu.mq@3E010 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E018 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E020 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E028 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E030 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E038 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@04970 = 67              </action>
            <action>maincpu.mb@0BDF2 = 67              </action>
            <action>maincpu.mb@0BE0A = 67              </action>
            <action>maincpu.mb@0BE24 = 67              </action>
            <action>maincpu.mb@0BE3A = 67              </action>
            <action>maincpu.mb@0FABD = BC              </action>
            <action>maincpu.mb@123F3 = A8              </action>
            <action>maincpu.mb@12409 = 92              </action>
            <action>maincpu.mb@1241D = 7E              </action>
            <action>maincpu.mb@12433 = 68              </action>
            <action>maincpu.mb@13036 = 66              </action>
            <action>maincpu.mb@164A4 = 66              </action>
            <action>maincpu.mb@1691C = 66              </action>
            <action>maincpu.mb@19026 = 66              </action>
            <action>maincpu.mb@198BA = 66              </action>
            <action>maincpu.mb@1A5D6 = 66              </action>
            <action>maincpu.mb@1A622 = 66              </action>
            <action>maincpu.mb@1C5A3 = BA              </action>
            <action>maincpu.mb@1C6F9 = 26              </action>
            <action>maincpu.mb@1DB08 = 66              </action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@BF81 = 01</action> <!-- main shot -->
            <action>maincpu.mb@C335 = 01</action> <!-- pod shot -->
        </script>
        <script state="off">
            <action>maincpu.mb@BF81 = 20</action>
            <action>maincpu.mb@C335 = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0003">02       </item>
            <item value="0x0005">03       </item>
            <item value="0x0007">04       </item>
            <item value="0x0009">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@05830 = 0003E040        </action>
            <action>maincpu.mq@3E040 = 4EB84436343C0000</action>
            <action>maincpu.mq@3E048 = 4A4067066A024442</action>
            <action>maincpu.mq@3E050 = 3002343C00004A41</action>
            <action>maincpu.mq@3E058 = 67066A0244423202</action>
            <action>maincpu.mq@3E060 = 4E75FFFFFFFFFFFF</action>
            <!--
            3E040 | 4EB8 4436 : jsr     $4436.w
            3E044 | 343C xxxx : move.w  #$xx, D2 // x position
            3E048 | 4A40      : tst.w   D0
            3E04A | 6706      : beq     $3e052
            3E04C | 6A02      : bpl     $3e050
            3E04E | 4442      : neg.w   D2
            3E050 | 3002      : move.w  D2, D0
            3E052 | 343C xxxx : move.w  #$xx, D2 // y position
            3E056 | 4A41      : tst.w   D1
            3E058 | 6706      : beq     $3e060
            3E05A | 6A02      : bpl     $3e05e
            3E05C | 4442      : neg.w   D2
            3E05E | 3202      : move.w  D2, D1
            3E060 | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@3E046 = param</action>
            <action>maincpu.mw@3E054 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@05830 = 00004436        </action>
            <action>maincpu.mq@3E040 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E048 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E050 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E058 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E060 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="max bullets up (test)">
        <!-- pod can't fire except front shot and sometimes you lose the pod -->
        <script state="on">
            <action>maincpu.mw@BFC2 = 0010</action> <!-- main shot -->
            <action>maincpu.mw@C36A = 7010</action> <!-- front pod shot -->
        </script>
        <script state="off">
            <action>maincpu.mw@BFC2 = 0002</action>
            <action>maincpu.mw@C36A = 3007</action>
        </script>
    </cheat>

    <cheat desc="short hit mark - main shot">
        <script state="on">
            <action>maincpu.mb@C0E9 = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@C0E9 = 04</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.mq@02236 = 4EF90003E070303C</action>
            <action>maincpu.mq@3E070 = 41F90007100043F9</action>
            <action>maincpu.mq@3E078 = 000F007112001039</action>
            <action>maincpu.mq@3E080 = 000E0041B20067F4</action>
            <action>maincpu.mq@3E088 = 0C0000FB66025310</action>
            <action>maincpu.mq@3E090 = 0C0000F766025210</action>
            <action>maincpu.mq@3E098 = 0C0000FD66040410</action>
            <action>maincpu.mq@3E0A0 = 00100C0000FE6604</action>
            <action>maincpu.mq@3E0A8 = 061000100C0000EF</action>
            <action>maincpu.mq@3E0B0 = 660212900C0000DF</action>
            <action>maincpu.mq@3E0B8 = 6602421160BEFFFF</action>
            <!--
            3E070 | 41F9 0007 0100 : lea     $71000.l, A0 // sound code address
            3E076 | 43F9 000F 0071 : lea     $f0071.l, A1 // sound latch address
            3E07C | 1200           : move.b  D0, D1
            3E07E | 1039 000E 0041 : move.b  $e0041.l, D0 // read input
            3E084 | B200           : cmp.b   D0, D1
            3E086 | 67F4           : beq     $3e07c
            3E088 | 0C00 00FB      : cmpi.b  #-$5, D0
            3E08C | 6602           : bne     $3e090
            3E08E | 5310           : subq.b  #1, (A0)     // decrease code -01
            3E090 | 0C00 00F7      : cmpi.b  #-$9, D0
            3E094 | 6602           : bne     $3e098
            3E096 | 5210           : addq.b  #1, (A0)     // increase code +01
            3E098 | 0C00 00FD      : cmpi.b  #-$3, D0
            3E09C | 6604           : bne     $3e0a2
            3E09E | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            3E0A2 | 0C00 00FE      : cmpi.b  #-$2, D0
            3E0A6 | 6604           : bne     $3e0ac
            3E0A8 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            3E0AC | 0C00 00EF      : cmpi.b  #-$11, D0
            3E0B0 | 6602           : bne     $3e0b4
            3E0B2 | 1290           : move.b  (A0), (A1)   // play sound
            3E0B4 | 0C00 00DF      : cmpi.b  #-$21, D0
            3E0B8 | 6602           : bne     $3e0bc
            3E0BA | 4211           : clr.b   (A1)         // stop sound
            3E0BC | 60BE           : bra     $3e07c
            -->
            <action>audiocpu.md@08CB = 00BF50CD        </action>
            <action>audiocpu.mq@BF50 = 80D30F20A7F8003A</action>
            <action>audiocpu.mq@BF58 = CD80D3803E0091CD</action>
            <action>audiocpu.mq@BF60 = 32AF470000C30091</action>
            <action>audiocpu.mq@BF68 = 78F12832013EF116</action>
            <action>audiocpu.mq@BF70 = FFFFFFFFFFFFFFC9</action>
            <!--
            BF50 | 3A 00 F8 : ld   a,($F800) // read sound code from maincpu
            BF53 | A7       : and  a
            BF54 | 20 0F    : jr   nz,$BF65
            BF56 | D3 80    : out  ($80),a   // reset sample
            BF58 | CD 91 00 : call $0091
            BF5B | 3E 80    : ld   a,$80     // enable sample
            BF5D | D3 80    : out  ($80),a
            BF5F | CD 91 00 : call $0091
            BF62 | C3 00 00 : jp   $0000     // reset audiocpu
            BF65 | 47       : ld   b,a
            BF66 | AF       : xor  a         // initialize sound flags
            BF67 | 32 16 F1 : ld   ($F116),a
            BF6A | 3E 01    : ld   a,$01
            BF6C | 32 28 F1 : ld   ($F128),a
            BF6F | 78       : ld   a,b
            BF70 | C9       : ret
            -->
        </script>
        <script state="run">
            <output format="----- genshitou 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 music"                 line="16" align="center" />
            <output format="----------------------------"          line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"     line="19" align="center"  >
                <argument>maincpu.pb@71000</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mq@02236 = 427900070048303C</action>
            <action> maincpu.mq@3E070 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E078 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E080 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E088 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E090 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E098 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E0A0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E0A8 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E0B0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E0B8 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.md@008CB = 00F8003A        </action>
            <action>audiocpu.mq@0BF50 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@0BF58 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@0BF60 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@0BF68 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@0BF70 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action> maincpu.md@293A = 0000293E</action>
            <action>audiocpu.mb@092F = DD      </action>
        </script>
        <script state="off">
            <action> maincpu.md@293A = 0001DEE6</action>
            <action>audiocpu.mb@092F = 80      </action>
        </script>
    </cheat>

</mamecheat>
Last edited by jman on Wed May 01, 2024 1:25 am, edited 1 time in total.
jman
Posts: 865
Joined: Tue Dec 01, 2020 1:24 pm

[prehisle]+ Prehistoric Isle/Genshitou

Post by jman »

prehisleb.xml

Code: Select all

<!-- Prehistoric Isle in 1930 (World, bootleg) -->
<mamecheat version="1">

    <cheat desc="no hit">
        <script state="on">
            <!-- common -->
            <action>maincpu.md@126A0 = 0003E010        </action>
            <action>maincpu.mq@3E010 = 7E00B3FC000700F0</action>
            <action>maincpu.mq@3E018 = 671EB3FC00070630</action>
            <action>maincpu.mq@3E020 = 6716B3FC00070670</action>
            <action>maincpu.mq@3E028 = 670EB3FC00070BB0</action>
            <action>maincpu.mq@3E030 = 67064EB900012C3A</action>
            <action>maincpu.mq@3E038 = 4E75FFFFFFFFFFFF</action>
            <!--
            3E010 | 7E00           : moveq   #$0, D7
            3E012 | B3FC 0007 00F0 : cmpa.l  #$700f0, A1 // P1
            3E018 | 671E           : beq     $3e038
            3E01A | B3FC 0007 0630 : cmpa.l  #$70630, A1 // P1 pod
            3E020 | 6716           : beq     $3e038
            3E022 | B3FC 0007 0670 : cmpa.l  #$70670, A1 // P2
            3E028 | 670E           : beq     $3e038
            3E02A | B3FC 0007 0BB0 : cmpa.l  #$70bb0, A1 // P2 pod
            3E030 | 6706           : beq     $3e038
            3E032 | 4EB9 0001 2C3A : jsr     $12c3a.l    // call collision check
            3E038 | 4E75           : rts
            -->
            <action>maincpu.mb@04962 = 60</action> <!-- waterfall -->
            <action>maincpu.mb@0C174 = 60</action> <!-- background -->
            <action>maincpu.mb@0C18C = 60</action> <!-- background -->
            <action>maincpu.mb@0C1A6 = 60</action> <!-- background -->
            <action>maincpu.mb@0C1BC = 60</action> <!-- background -->
            <action>maincpu.mb@0FE3F = 02</action> <!-- catch hand (stage 3) -->
            <action>maincpu.mb@12775 = 02</action> <!-- bullet (P1) -->
            <action>maincpu.mb@1278B = 02</action> <!-- bullet (P2) -->
            <action>maincpu.mb@1279F = 02</action> <!-- bullet (P1 pod) -->
            <action>maincpu.mb@127B5 = 02</action> <!-- bullet (P2 pod) -->
            <action>maincpu.mb@133B8 = 60</action> <!-- gel (stage 4) -->
            <action>maincpu.mb@16826 = 60</action> <!-- human -->
            <action>maincpu.mb@16C9E = 60</action> <!-- human -->
            <action>maincpu.mb@193A8 = 60</action> <!-- allosaurus (boss 1-2) predation -->
            <action>maincpu.mb@19C3C = 60</action> <!-- rhamphorhynchus (boss 2) wind -->
            <action>maincpu.mb@1A958 = 60</action> <!-- brachiosaurus (boss 1-1) predation -->
            <action>maincpu.mb@1A9A4 = 60</action> <!-- brachiosaurus (boss 1-1) predation -->
            <action>maincpu.mb@1C925 = 02</action> <!-- ammonite (boss 4-2) predation -->
            <action>maincpu.mb@1CA7B = 02</action> <!-- ammonite (boss 4-2) predation -->
            <action>maincpu.mb@1DE8A = 60</action> <!-- brachiosaurus head (stage 4) -->
        </script>
        <script state="off">
            <action>maincpu.md@126A0 = 00012C3A        </action>
            <action>maincpu.mq@3E010 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E018 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E020 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E028 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E030 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E038 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mb@04962 = 67              </action>
            <action>maincpu.mb@0C174 = 67              </action>
            <action>maincpu.mb@0C18C = 67              </action>
            <action>maincpu.mb@0C1A6 = 67              </action>
            <action>maincpu.mb@0C1BC = 67              </action>
            <action>maincpu.mb@0FE3F = BC              </action>
            <action>maincpu.mb@12775 = A8              </action>
            <action>maincpu.mb@1278B = 92              </action>
            <action>maincpu.mb@1279F = 7E              </action>
            <action>maincpu.mb@127B5 = 68              </action>
            <action>maincpu.mb@133B8 = 66              </action>
            <action>maincpu.mb@16826 = 66              </action>
            <action>maincpu.mb@16C9E = 66              </action>
            <action>maincpu.mb@193A8 = 66              </action>
            <action>maincpu.mb@19C3C = 66              </action>
            <action>maincpu.mb@1A958 = 66              </action>
            <action>maincpu.mb@1A9A4 = 66              </action>
            <action>maincpu.mb@1C925 = BA              </action>
            <action>maincpu.mb@1CA7B = 26              </action>
            <action>maincpu.mb@1DE8A = 66              </action>
        </script>
    </cheat>

    <cheat desc="auto fire">
        <script state="on">
            <action>maincpu.mb@C303 = 01</action> <!-- main shot -->
            <action>maincpu.mb@C6B7 = 01</action> <!-- pod shot -->
        </script>
        <script state="off">
            <action>maincpu.mb@C303 = 20</action>
            <action>maincpu.mb@C6B7 = 20</action>
        </script>
    </cheat>

    <cheat desc="player speed">
        <parameter>
            <item value="0x0001">01 (slow)</item>
            <item value="0x0003">02       </item>
            <item value="0x0005">03       </item>
            <item value="0x0007">04       </item>
            <item value="0x0009">05 (fast)</item>
        </parameter>
        <script state="on">
            <action>maincpu.md@05822 = 0003E040        </action>
            <action>maincpu.mq@3E040 = 4EB84428343C0000</action>
            <action>maincpu.mq@3E048 = 4A4067066A024442</action>
            <action>maincpu.mq@3E050 = 3002343C00004A41</action>
            <action>maincpu.mq@3E058 = 67066A0244423202</action>
            <action>maincpu.mq@3E060 = 4E75FFFFFFFFFFFF</action>
            <!--
            3E040 | 4EB8 4428 : jsr     $4428.w
            3E044 | 343C xxxx : move.w  #$xx, D2 // x position
            3E048 | 4A40      : tst.w   D0
            3E04A | 6706      : beq     $3e052
            3E04C | 6A02      : bpl     $3e050
            3E04E | 4442      : neg.w   D2
            3E050 | 3002      : move.w  D2, D0
            3E052 | 343C xxxx : move.w  #$xx, D2 // y position
            3E056 | 4A41      : tst.w   D1
            3E058 | 6706      : beq     $3e060
            3E05A | 6A02      : bpl     $3e05e
            3E05C | 4442      : neg.w   D2
            3E05E | 3202      : move.w  D2, D1
            3E060 | 4E75      : rts
            -->
        </script>
        <script state="change">
            <action>maincpu.mw@3E046 = param</action>
            <action>maincpu.mw@3E054 = param</action>
        </script>
        <script state="off">
            <action>maincpu.md@05822 = 00004428        </action>
            <action>maincpu.mq@3E040 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E048 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E050 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E058 = FFFFFFFFFFFFFFFF</action>
            <action>maincpu.mq@3E060 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="max bullets up (test)">
        <!-- pod can't fire except front shot and sometimes you lose the pod -->
        <script state="on">
            <action>maincpu.mw@C344 = 0010</action> <!-- main shot -->
            <action>maincpu.mw@C6EC = 7010</action> <!-- front pod shot -->
        </script>
        <script state="off">
            <action>maincpu.mw@C344 = 0002</action>
            <action>maincpu.mw@C6EC = 3007</action>
        </script>
    </cheat>

    <cheat desc="short hit mark - main shot">
        <script state="on">
            <action>maincpu.mb@C46B = 00</action>
        </script>
        <script state="off">
            <action>maincpu.mb@C46B = 04</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.mq@02232 = 4EF90003E070303C</action>
            <action>maincpu.mq@3E070 = 41F90007100043F9</action>
            <action>maincpu.mq@3E078 = 000F007112001039</action>
            <action>maincpu.mq@3E080 = 000E0041B20067F4</action>
            <action>maincpu.mq@3E088 = 0C0000FB66025310</action>
            <action>maincpu.mq@3E090 = 0C0000F766025210</action>
            <action>maincpu.mq@3E098 = 0C0000FD66040410</action>
            <action>maincpu.mq@3E0A0 = 00100C0000FE6604</action>
            <action>maincpu.mq@3E0A8 = 061000100C0000EF</action>
            <action>maincpu.mq@3E0B0 = 660212900C0000DF</action>
            <action>maincpu.mq@3E0B8 = 6602421160BEFFFF</action>
            <!--
            3E070 | 41F9 0007 0100 : lea     $71000.l, A0 // sound code address
            3E076 | 43F9 000F 0071 : lea     $f0071.l, A1 // sound latch address
            3E07C | 1200           : move.b  D0, D1
            3E07E | 1039 000E 0041 : move.b  $e0041.l, D0 // read input
            3E084 | B200           : cmp.b   D0, D1
            3E086 | 67F4           : beq     $3e07c
            3E088 | 0C00 00FB      : cmpi.b  #-$5, D0
            3E08C | 6602           : bne     $3e090
            3E08E | 5310           : subq.b  #1, (A0)     // decrease code -01
            3E090 | 0C00 00F7      : cmpi.b  #-$9, D0
            3E094 | 6602           : bne     $3e098
            3E096 | 5210           : addq.b  #1, (A0)     // increase code +01
            3E098 | 0C00 00FD      : cmpi.b  #-$3, D0
            3E09C | 6604           : bne     $3e0a2
            3E09E | 0410 0010      : subi.b  #$10, (A0)   // decrease code -10
            3E0A2 | 0C00 00FE      : cmpi.b  #-$2, D0
            3E0A6 | 6604           : bne     $3e0ac
            3E0A8 | 0610 0010      : addi.b  #$10, (A0)   // increase code +10
            3E0AC | 0C00 00EF      : cmpi.b  #-$11, D0
            3E0B0 | 6602           : bne     $3e0b4
            3E0B2 | 1290           : move.b  (A0), (A1)   // play sound
            3E0B4 | 0C00 00DF      : cmpi.b  #-$21, D0
            3E0B8 | 6602           : bne     $3e0bc
            3E0BA | 4211           : clr.b   (A1)         // stop sound
            3E0BC | 60BE           : bra     $3e07c
            -->
            <action>audiocpu.md@08CB = 00BF50CD        </action>
            <action>audiocpu.mq@BF50 = 80D30F20A7F8003A</action>
            <action>audiocpu.mq@BF58 = CD80D3803E0091CD</action>
            <action>audiocpu.mq@BF60 = 32AF470000C30091</action>
            <action>audiocpu.mq@BF68 = 78F12832013EF116</action>
            <action>audiocpu.mq@BF70 = FFFFFFFFFFFFFFC9</action>
            <!--
            BF50 | 3A 00 F8 : ld   a,($F800) // read sound code from maincpu
            BF53 | A7       : and  a
            BF54 | 20 0F    : jr   nz,$BF65
            BF56 | D3 80    : out  ($80),a   // reset sample
            BF58 | CD 91 00 : call $0091
            BF5B | 3E 80    : ld   a,$80     // enable sample
            BF5D | D3 80    : out  ($80),a
            BF5F | CD 91 00 : call $0091
            BF62 | C3 00 00 : jp   $0000     // reset audiocpu
            BF65 | 47       : ld   b,a
            BF66 | AF       : xor  a         // initialize sound flags
            BF67 | 32 16 F1 : ld   ($F116),a
            BF6A | 3E 01    : ld   a,$01
            BF6C | 32 28 F1 : ld   ($F128),a
            BF6F | 78       : ld   a,b
            BF70 | C9       : ret
            -->
        </script>
        <script state="run">
            <output format="----- prehistoric isle 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 music"                        line="16" align="center" />
            <output format="----------------------------"                 line="17" align="center" />
            <output format="&lt;&lt; sound code %02X &gt;&gt;"            line="19" align="center"  >
                <argument>maincpu.pb@71000</argument>
            </output>
        </script>
        <script state="off">
            <action> maincpu.mq@02232 = 427900070048303C</action>
            <action> maincpu.mq@3E070 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E078 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E080 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E088 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E090 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E098 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E0A0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E0A8 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E0B0 = FFFFFFFFFFFFFFFF</action>
            <action> maincpu.mq@3E0B8 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.md@008CB = 00F8003A        </action>
            <action>audiocpu.mq@0BF50 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@0BF58 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@0BF60 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@0BF68 = FFFFFFFFFFFFFFFF</action>
            <action>audiocpu.mq@0BF70 = FFFFFFFFFFFFFFFF</action>
        </script>
    </cheat>

    <cheat desc="skip ram/rom check">
        <script state="on">
            <action> maincpu.md@292C = 00002930</action>
            <action>audiocpu.mb@092F = DD      </action>
        </script>
        <script state="off">
            <action> maincpu.md@292C = 0001E268</action>
            <action>audiocpu.mb@092F = 80      </action>
        </script>
    </cheat>

</mamecheat>
"sound test mode" : Fixed sfx and voice stop by sound stop button.
Post Reply