Page 1 of 1

[nes, smb+] code simplification

Posted: Sat Jun 10, 2017 12:03 pm
by einstein95
Just took some existing cheats and made them more simple to use

Code: Select all

  <cheat desc="Start on World X">
    <parameter min="1" max="8" step="1"/>
    <script state="on">
      <action>temp0 =maincpu.rb@9087</action>
      <action>temp1 =maincpu.rb@9089</action>
      <action>temp2 =maincpu.rb@908A</action>
    </script>
    <script state="run">
      <action>maincpu.rb@9087=param-1</action>
      <action>maincpu.rb@9089=5F</action>
      <action>maincpu.rb@908A=07</action>
    </script>
    <script state="off">
      <action>maincpu.rb@9087=temp0 </action>
      <action>maincpu.rb@9089=temp1 </action>
      <action>maincpu.rb@908A=temp2 </action>
    </script>
  </cheat>

  <cheat desc="Always Big/Fire Mario">
    <parameter>
      <item value="0x01">Big</item>
      <item value="0x02">Fire</item>
    </parameter>
    <script state="run">
      <action>maincpu.pb@0754=00</action>
    </script>
  </cheat>
Additionally, "Infinite Time (Alt)" can be removed as it only sets the time to 1 less compared to "Infinite Time".

Re: [nes, smb+] code simplification

Posted: Wed Jun 14, 2017 11:48 pm
by Pugsy
Thanks, the problem with the NES cheats are that they are straight conversions of GG codes.....so there will always be little issues as the GG codes can be a bit hit and miss. A lot of the NES GG codes didn't include the checkbyte which is essential with paging or you can experience crashes later in the game.

There is a lot of duplication as well as various hackers made GG codes with slightly different descriptions (there are a number of lives and time cheats for smb for example), but when you look at some of the changes its obvious they didn't understand what they were doing. I know of one GG hacker who said they took a working GG code and then just changed characters in the code willy nilly until they could see an effect....ala monkeys and typewriters. best of it was they still didn't understand what they were doing was nonsense....changing 6502 assembler when you had no understanding of assembler is a recipe for disaster or just crap codes.

I've converted the starting world cheat into a RAM cheat because of the lack of a checkbyte....there is also a enable level select cheat which does the same thing (but again no checkbyte)

Code: Select all

  <cheat desc="Select Starting World">
    <parameter min="1" max="8" step="1"/>
    <script state="run">
      <action condition="(maincpu.pb@075F==00)">maincpu.pb@075F=(param-1)</action>
    </script>
  </cheat> 
You forgot the "maincpu.pb@0756=param" so the other cheat doesn't work.....I think you meant this:-

Code: Select all

  <cheat desc="Select Mario type">
    <parameter>
      <item value="0x01">Big</item>
      <item value="0x02">Fiery</item>
    </parameter>
    <script state="run">
      <action>maincpu.pb@0754=00, maincpu.pb@0756=param</action>
    </script>
  </cheat>  

Re: [nes, smb+] code simplification

Posted: Sun Jun 18, 2017 1:08 pm
by einstein95
Ah, whoops, serves me right for late-night cheating. And yeah, that's a bessing and a curse with the Game Genie, every man and his dog could make a code.