Speaking of which, those cheats are quite complicated and that's why they work in the manner that they do. You absolutely do not want to switch the sprite select to a run cheat. The game will be extremely unhappy with the sudden PLC changes.
Code: Select all
<cheat desc="Level Select Enabled">
<script state="run">
<action>maincpu.pw@FFFFE0=0101</action>
</script>
</cheat>
<cheat desc="Debug Mode Enabled">
<script state="run">
<action>maincpu.pb@FFFFDA=01</action>
</script>
</cheat>
<cheat desc="Have All Emeralds">
<script state="run">
<action>maincpu.pw@FFFFB0=0707</action>
</script>
</cheat>
<cheat desc="Infinite Time">
<script state="run">
<action>maincpu.pw@FFFE24=0000</action>
</script>
</cheat>
<cheat desc="1 Sphere To Finish Bonus Stage">
<script state="run">
<action condition="maincpu.pb@FFE439 GT 1">maincpu.pb@FFE439=01</action>
</script>
</cheat>
<cheat desc="-- Sonic --"/>
<cheat desc="Infinite Lives">
<script state="run">
<action>maincpu.pb@FFFE12=63</action>
</script>
</cheat>
<cheat desc="Infinite Rings">
<script state="run">
<action>maincpu.pw@FFFE20=03E7</action>
</script>
</cheat>
<cheat desc="Speed Select">
<parameter>
<item value="0x06">Default</item>
<item value="0x08">Super Knuckles</item>
<item value="0x0A">Super Sonic</item>
<item value="0x0C">Shoes</item>
<item value="0x0F">Blazing Fast</item>
</parameter>
<script state="run">
<action>maincpu.pb@FFF760=param</action>
</script>
</cheat>
<cheat desc="Acceleration Select">
<parameter>
<item value="0x0C">Default</item>
<item value="0x18">Shoes / Super Knuckles</item>
<item value="0x30">Super Sonic</item>
<item value="0x50">Blazing Fast</item>
<item value="0xFF">Instant</item>
</parameter>
<script state="run">
<action>maincpu.pb@FFF763=param</action>
</script>
</cheat>
<cheat desc="Cannot be Hit">
<script state="run">
<action condition="maincpu.pb@FFB001==01">maincpu.pb@FFB034=3F</action>
</script>
</cheat>
<cheat desc="Never Drown">
<script state="run">
<action>maincpu.pb@FFB02C=1E</action>
</script>
</cheat>
<cheat desc="Super Glow">
<parameter>
<item value="00">Disabled</item>
<item value="01">Enabled</item>
</parameter>
<script state="run">
<action condition="param==01">maincpu.pb@FFF65F=FF</action>
<action condition="param==00">maincpu.pb@FFF65F=00</action>
</script>
</cheat>
<cheat desc="Become Super Mode NOW!"><comment>Sprite and stats only.</comment>
<parameter>
<item value="0x99">Disable</item>
<item value="0x11">Super</item>
<item value="0x13">Hyper</item>
</parameter>
<script state="change">
<action>maincpu.pb@FFFFFC=param</action>
<action condition="param==99">maincpu.pb@FFFE19=00</action>
<action condition="param==99 and maincpu.pd@FFB000==00010A94 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=6629</action>
<action condition="param==99 and maincpu.pd@FFB000==00011BB8 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=0FE0</action>
<action condition="param==13">maincpu.pb@FFFE19=FF</action>
<action condition="param==11">maincpu.pb@FFFE19=01</action>
<action condition="param==11 and maincpu.pd@FFB000==00010A94 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=6816</action>
<action condition="param==11 and maincpu.pd@FFB000==00011BB8 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=1194</action>
<action condition="param==13 and maincpu.pd@FFB000==00010A94 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=6816</action>
<action condition="param==13 and maincpu.pd@FFB000==00011BB8 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=1194</action>
<action condition="param==13 and maincpu.pd@FFB000==00010A94 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFCD7C=000193CA</action>
</script>
</cheat>
<cheat desc="... Make Cheat Permanent"><comment>Enable First. Must redo prior cheat on reset.</comment>
<script state="run">
<action condition="maincpu.pb@FFFFFC==99">maincpu.pb@FFFE19=00</action>
<action condition="maincpu.pb@FFFFFC==99 and maincpu.pd@FFB000==00010A94 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=6629</action>
<action condition="maincpu.pb@FFFFFC==99 and maincpu.pd@FFB000==00011BB8 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=0FE0</action>
<action condition="maincpu.pb@FFFFFC==11">maincpu.pb@FFFE19=01</action>
<action condition="maincpu.pb@FFFFFC==13">maincpu.pb@FFFE19=FF</action>
<action condition="maincpu.pb@FFFFFC==11 and maincpu.pd@FFB000==00010A94 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=6816</action>
<action condition="maincpu.pb@FFFFFC==11 and maincpu.pd@FFB000==00011BB8 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=1194</action>
<action condition="maincpu.pb@FFFFFC==13 and maincpu.pd@FFB000==00010A94 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=6816</action>
<action condition="maincpu.pb@FFFFFC==13 and maincpu.pd@FFB000==00011BB8 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=1194</action>
<action condition="maincpu.pb@FFFFFC==13 and maincpu.pd@FFB000==00010A94 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFCD7C=000193CA</action>
</script>
</cheat>
<cheat desc="Infinite Double Jumps As Sonic">
<script state="run">
<action condition="maincpu.pd@FFB000==00010A94">maincpu.pb@FFB02F=00</action>
<action condition="maincpu.pd@FFB000==00011BB8">maincpu.pb@FFB02F=00</action>
<action condition="maincpu.pd@FFB000==00010A94">maincpu.pb@FFB040=01</action>
<action condition="maincpu.pd@FFB000==00011BB8">maincpu.pb@FFB040=01</action>
</script>
</cheat>
<cheat desc="Infinite Flight As Tails">
<script state="run">
<action condition="maincpu.pb@FFB025 GT 0 and maincpu.pd@FFB000==0001365C">maincpu.pb@FFB025=FF</action>
<action condition="maincpu.pb@FFB025 GT 0 and maincpu.pd@FFB000==000143B2">maincpu.pb@FFB025=FF</action>
</script>
</cheat>
<cheat desc="Team Select"><comment>Determines primary palette</comment>
<parameter>
<item value="00">Sonic and Tails</item>
<item value="01">Sonic</item>
<item value="02">Tails</item>
<item value="03">Knuckles</item>
<item value="04">#Blue Knuckles</item>
</parameter>
<script state="run">
<action>maincpu.pb@FFFF0B=param</action>
</script>
</cheat>
<cheat desc="Character Select"><comment>Determines character(s) loaded and super palette</comment>
<parameter>
<item value="00">Sonic and Tails</item>
<item value="01">Sonic</item>
<item value="02">Tails</item>
<item value="03">Knuckles</item>
<item value="04">#Blue Knuckles</item>
</parameter>
<script state="run">
<action>maincpu.pb@FFFF09=param</action>
</script>
</cheat>
<cheat desc="Sprite Select NOW!"><comment>Can be buggy. Push Enter to select.</comment>
<parameter>
<item value="0x10">Sonic</item>
<item value="0x11">Tails</item>
<item value="0x12">Knuckles</item>
<item value="0x13">Super Sonic</item>
<item value="0x14">Hyper Sonic</item>
</parameter>
<script state="change">
<action>maincpu.pb@FFFFFD=param</action>
<action condition="param==10 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB000=00010A94</action>
<action condition="param==10 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB00B=80</action>
<action condition="param==10 and maincpu.pb@FFB00A==06 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=6620</action>
<action condition="param==10">maincpu.pb@FFFE19=00</action>
<action condition="param==11 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB000=0001365C</action>
<action condition="param==11 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB00B=A0</action>
<action condition="param==11 and maincpu.pb@FFB00A==06 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=8EB8</action>
<action condition="param==12 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB000=00016444</action>
<action condition="param==12 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB00B=80</action>
<action condition="param==12 and maincpu.pb@FFB00A==06 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=A8D6</action>
<action condition="param==13 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB000=00010A94</action>
<action condition="param==13 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB00B=80</action>
<action condition="param==13 and maincpu.pb@FFB00A==06 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=6816</action>
<action condition="param==13">maincpu.pb@FFFE19=01</action>
<action condition="param==14 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB000=00010A94</action>
<action condition="param==14 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB00B=80</action>
<action condition="param==14 and maincpu.pb@FFB00A==06 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=6816</action>
<action condition="param==14">maincpu.pb@FFFE19=FF</action>
</script>
</cheat>
<cheat desc="... Make Cheat Permanent"><comment>Enable First. Redo prior cheat on reset.</comment>
<script state="run">
<action condition="maincpu.pb@FFFFFD==10 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB000=00010A94</action>
<action condition="maincpu.pb@FFFFFD==10 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB00B=80</action>
<action condition="maincpu.pb@FFFFFD==10 and maincpu.pb@FFB00A==06 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=6620</action>
<action condition="maincpu.pb@FFFFFD==10">maincpu.pb@FFFE19=00</action>
<action condition="maincpu.pb@FFFFFD==11 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB000=0001365C</action>
<action condition="maincpu.pb@FFFFFD==11 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB00B=A0</action>
<action condition="maincpu.pb@FFFFFD==11 and maincpu.pb@FFB00A==06 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=8EB8</action>
<action condition="maincpu.pb@FFFFFD==12 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB000=00016444</action>
<action condition="maincpu.pb@FFFFFD==12 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB00B=80</action>
<action condition="maincpu.pb@FFFFFD==12 and maincpu.pb@FFB00A==06 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=A8D6</action>
<action condition="maincpu.pb@FFFFFD==13 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB000=00010A94</action>
<action condition="maincpu.pb@FFFFFD==13 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB00B=80</action>
<action condition="maincpu.pb@FFFFFD==13 and maincpu.pb@FFB00A==06 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=6816</action>
<action condition="maincpu.pb@FFFFFD==13">maincpu.pb@FFFE19=01</action>
<action condition="maincpu.pb@FFFFFD==14 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB000=00010A94</action>
<action condition="maincpu.pb@FFFFFD==14 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB00B=80</action>
<action condition="maincpu.pb@FFFFFD==14 and maincpu.pb@FFB00A==06 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=6816</action>
<action condition="maincpu.pb@FFFFFD==14">maincpu.pb@FFFE19=FF</action>
</script>
</cheat>
<cheat desc="Shield Dips - Can Combine Effects!"/>
<cheat desc="Generic Shield">
<parameter>
<item value="00">Disabled</item>
<item value="01">Enabled</item>
</parameter>
<script state="run">
<action condition="param==01">maincpu.pb@FFB02B=01|(maincpu.pb@FFB02B BAND ~01)</action>
<action condition="param==00">maincpu.pb@FFB02B=00|(maincpu.pb@FFB02B BAND ~01)</action>
</script>
</cheat>
<cheat desc="Invincibility">
<parameter>
<item value="00">Disabled</item>
<item value="01">Enabled</item>
</parameter>
<script state="run">
<action condition="param==01">maincpu.pb@FFB02B=02|(maincpu.pb@FFB02B BAND ~02)</action>
<action condition="param==00">maincpu.pb@FFB02B=00|(maincpu.pb@FFB02B BAND ~02)</action>
</script>
</cheat>
<cheat desc="Fire Dash">
<parameter>
<item value="00">Disabled</item>
<item value="01">Enabled</item>
</parameter>
<script state="run">
<action condition="param==01">maincpu.pb@FFB02B=10|(maincpu.pb@FFB02B BAND ~10)</action>
<action condition="param==00">maincpu.pb@FFB02B=00|(maincpu.pb@FFB02B BAND ~10)</action>
</script>
</cheat>
<cheat desc="Magnet + Double Jump">
<parameter>
<item value="00">Disabled</item>
<item value="01">Enabled</item>
</parameter>
<script state="run">
<action condition="param==01">maincpu.pb@FFB02B=20|(maincpu.pb@FFB02B BAND ~20)</action>
<action condition="param==00">maincpu.pb@FFB02B=00|(maincpu.pb@FFB02B BAND ~20)</action>
</script>
</cheat>
<cheat desc="Bubble Bounce">
<parameter>
<item value="00">Disabled</item>
<item value="01">Enabled</item>
</parameter>
<script state="run">
<action condition="param==01">maincpu.pb@FFB02B=40|(maincpu.pb@FFB02B BAND ~40)</action>
<action condition="param==00">maincpu.pb@FFB02B=00|(maincpu.pb@FFB02B BAND ~40)</action>
</script>
</cheat>
<cheat desc="-- Tails --"/>
<cheat desc="Infinite Lives">
<script state="run">
<action>maincpu.pb@FFFEC6=63</action>
</script>
</cheat>
<cheat desc="Infinite Rings">
<script state="run">
<action>maincpu.pw@FFFED0=03E7</action>
</script>
</cheat>
<cheat desc="Speed Select">
<parameter>
<item value="0x06">Default</item>
<item value="0x08">Super Knuckles</item>
<item value="0x0A">Super Sonic</item>
<item value="0x0C">Shoes</item>
<item value="0x0F">Blazing Fast</item>
</parameter>
<script state="run">
<action>maincpu.pb@FFFEC0=param</action>
</script>
</cheat>
<cheat desc="Acceleration Select">
<parameter>
<item value="0x0C">Default</item>
<item value="0x18">Shoes / Super Knuckles</item>
<item value="0x30">Super Sonic</item>
<item value="0x50">Blazing Fast</item>
<item value="0xFF">Instant</item>
</parameter>
<script state="run">
<action>maincpu.pb@FFFEC3=param</action>
</script>
</cheat>
<cheat desc="Cannot be Hit">
<script state="run">
<action>maincpu.pb@FFB07E=3F</action>
</script>
</cheat>
<cheat desc="Never Drown">
<script state="run">
<action>maincpu.pb@FFB076=1E</action>
</script>
</cheat>
<cheat desc="Super Tails">
<script state="run">
<action>maincpu.pb@FFF667=01</action>
</script>
</cheat>
<cheat desc="Infinite Flight As Tails">
<script state="run">
<action condition="maincpu.pb@FFB06F GT 0 and maincpu.pd@FFB04A==0001365C">maincpu.pb@FFB06F=FF</action>
<action condition="maincpu.pb@FFB06F GT 0 and maincpu.pd@FFB04A==000143B2">maincpu.pb@FFB06F=FF</action>
</script>
</cheat>
<cheat desc="Infinite Double Jumps As Sonic">
<script state="run">
<action condition="maincpu.pd@FFB04A==00010A94">maincpu.pb@FFB079=00</action>
<action condition="maincpu.pd@FFB04A==00011BB8">maincpu.pb@FFB079=00</action>
<action condition="maincpu.pd@FFB04A==00010A94">maincpu.pb@FFB08A=01</action>
<action condition="maincpu.pd@FFB04A==00011BB8">maincpu.pb@FFB08A=01</action>
</script>
</cheat>
<cheat desc="Change Companion NOW!"><comment>Can be buggy. Push enter to select.</comment>
<parameter>
<item value="0x98">Disabled</item>
<item value="0x99">None</item>
<item value="0x21">Tails</item>
<item value="0x20">#Sonic</item>
<item value="0x22">#Knuckles</item>
<item value="0x23">#Super Sonic</item>
</parameter>
<script state="change">
<action>maincpu.pb@FFFFFE=param</action>
<action condition="param==99 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB04A=00000000</action>
<action condition="param==99 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB055=00</action>
<action condition="param==99 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB058=0000</action>
<action condition="param==20 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB04A=00010A94</action>
<action condition="param==20 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB055=80</action>
<action condition="param==20 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB058=6620</action>
<action condition="param==21 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB04A=0001365C</action>
<action condition="param==21 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB055=A0</action>
<action condition="param==21 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB058=8EB8</action>
<action condition="param==22 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB04A=00016444</action>
<action condition="param==22 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB055=80</action>
<action condition="param==22 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB058=A8D6</action>
<action condition="param==23 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB04A=00010A94</action>
<action condition="param==23 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB055=80</action>
<action condition="param==23 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB058=6816</action>
</script>
</cheat>
<cheat desc="... Make Cheat Permanent"><comment>Enable First. Redo prior cheat on reset.</comment>
<script state="run">
<action condition="maincpu.pb@FFFFFE==99 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB04A=00000000</action>
<action condition="maincpu.pb@FFFFFE==99 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB055=00</action>
<action condition="maincpu.pb@FFFFFE==99 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB058=0000</action>
<action condition="maincpu.pb@FFFFFE==20 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB04A=00010A94</action>
<action condition="maincpu.pb@FFFFFE==20 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB055=80</action>
<action condition="maincpu.pb@FFFFFE==20 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB058=6620</action>
<action condition="maincpu.pb@FFFFFE==21 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB04A=0001365C</action>
<action condition="maincpu.pb@FFFFFE==21 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB055=A0</action>
<action condition="maincpu.pb@FFFFFE==21 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB058=8EB8</action>
<action condition="maincpu.pb@FFFFFE==22 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB04A=00016444</action>
<action condition="maincpu.pb@FFFFFE==22 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB055=80</action>
<action condition="maincpu.pb@FFFFFE==22 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB058=A8D6</action>
<action condition="maincpu.pb@FFFFFE==23 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB04A=00010A94</action>
<action condition="maincpu.pb@FFFFFE==23 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB055=80</action>
<action condition="maincpu.pb@FFFFFE==23 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB058=6816</action>
</script>
</cheat>
<cheat desc="Shield Dips - Can Combine Effects!"/>
<cheat desc="Generic Shield">
<parameter>
<item value="00">Disabled</item>
<item value="01">Enabled</item>
</parameter>
<script state="run">
<action condition="param==01">maincpu.pb@FFB075=01|(maincpu.pb@FFB075 BAND ~01)</action>
<action condition="param==00">maincpu.pb@FFB075=00|(maincpu.pb@FFB075 BAND ~01)</action>
</script>
</cheat>
<cheat desc="Invincibility">
<parameter>
<item value="00">Disabled</item>
<item value="01">Enabled</item>
</parameter>
<script state="run">
<action condition="param==01">maincpu.pb@FFB075=02|(maincpu.pb@FFB075 BAND ~02)</action>
<action condition="param==00">maincpu.pb@FFB075=00|(maincpu.pb@FFB075 BAND ~02)</action>
</script>
</cheat>
<cheat desc="Fire Dash">
<parameter>
<item value="00">Disabled</item>
<item value="01">Enabled</item>
</parameter>
<script state="run">
<action condition="param==01">maincpu.pb@FFB075=10|(maincpu.pb@FFB075 BAND ~10)</action>
<action condition="param==00">maincpu.pb@FFB075=00|(maincpu.pb@FFB075 BAND ~10)</action>
</script>
</cheat>
<cheat desc="Magnet + Double Jump">
<parameter>
<item value="00">Disabled</item>
<item value="01">Enabled</item>
</parameter>
<script state="run">
<action condition="param==01">maincpu.pb@FFB075=20|(maincpu.pb@FFB075 BAND ~20)</action>
<action condition="param==00">maincpu.pb@FFB075=00|(maincpu.pb@FFB075 BAND ~20)</action>
</script>
</cheat>
<cheat desc="Bubble Bounce">
<parameter>
<item value="00">Disabled</item>
<item value="01">Enabled</item>
</parameter>
<script state="run">
<action condition="param==01">maincpu.pb@FFB075=40|(maincpu.pb@FFB075 BAND ~40)</action>
<action condition="param==00">maincpu.pb@FFB075=00|(maincpu.pb@FFB075 BAND ~40)</action>
</script>
</cheat>