Sonic 3 uses an earlier and apparently buggier version of the Sonic engine than what would wind up in S&K. If Sega were smarter, they would have taken their time and used the opportunity to release a properly improved Sega Genesis in 1993 instead of making this unfinished game and developing the crappy 32X. Oh well.
Code: Select all
<cheat desc="Enable Level Select">
<script state="run">
<action>maincpu.pb@FFFFD0=01</action>
</script>
</cheat>
<cheat desc="Enable Debug Mode">
<script state="run">
<action>maincpu.pb@FFFFD1=01</action>
</script>
</cheat>
<cheat desc="Have All Emeralds">
<script state="run">
<action>maincpu.pb@FFFFB0=07</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">Enable</item>
</parameter>
<script state="change">
<action>maincpu.pb@FFFFFC=param</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>
</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==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>
</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="Character Select">
<parameter>
<item value="00">Sonic and Tails</item>
<item value="01">Tails</item>
<item value="02">#Knuckles</item>
</parameter>
<script state="run">
<action>maincpu.pb@FFFFDA=param</action>
</script>
</cheat>
<cheat desc="Sprite Select NOW!"><comment>Can be buggy. Push Enter to select.</comment>
<parameter>
<item value="0x15">Sonic</item>
<item value="0x16">Tails</item>
<item value="0x17">Super Sonic</item>
</parameter>
<script state="change">
<action>maincpu.pb@FFFFFD=param</action>
<action condition="param==15 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB000=00011BB8</action>
<action condition="param==15 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB00B=80</action>
<action condition="param==15 and maincpu.pb@FFB00A==06 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=0FE0</action>
<action condition="param==15">maincpu.pb@FFFE19=00</action>
<action condition="param==16 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB000=000143B2</action>
<action condition="param==16 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB00B=A0</action>
<action condition="param==16 and maincpu.pb@FFB00A==06 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=3488</action>
<action condition="param==17 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB000=00011BB8</action>
<action condition="param==17 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB00B=80</action>
<action condition="param==17 and maincpu.pb@FFB00A==06 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=1194</action>
<action condition="param==17">maincpu.pb@FFFE19=01</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==15 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB000=00011BB8</action>
<action condition="maincpu.pb@FFFFFD==15 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB00B=80</action>
<action condition="maincpu.pb@FFFFFD==15 and maincpu.pb@FFB00A==06 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=0FE0</action>
<action condition="maincpu.pb@FFFFFD==15">maincpu.pb@FFFE19=00</action>
<action condition="maincpu.pb@FFFFFD==16 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB000=000143B2</action>
<action condition="maincpu.pb@FFFFFD==16 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB00B=A0</action>
<action condition="maincpu.pb@FFFFFD==16 and maincpu.pb@FFB00A==06 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=3488</action>
<action condition="maincpu.pb@FFFFFD==17 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB000=00011BB8</action>
<action condition="maincpu.pb@FFFFFD==17 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB00B=80</action>
<action condition="maincpu.pb@FFFFFD==17 and maincpu.pb@FFB00A==06 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB00E=1194</action>
<action condition="maincpu.pb@FFFFFD==17">maincpu.pb@FFFE19=01</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="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="Character Select">
<parameter>
<item value="00">Sonic and Tails</item>
<item value="01">Tails</item>
<item value="02">Knuckles</item>
</parameter>
<script state="run">
<action>maincpu.pb@FFFFDB=param</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="0x11">Tails</item>
<item value="0x10">#Sonic</item>
<item value="0x13">#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==10 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB04A=00011BB8</action>
<action condition="param==10 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB055=80</action>
<action condition="param==10 and maincpu.pb@FFB00A==06 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB058=0FE0</action>
<action condition="param==11 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB04A=000143B2</action>
<action condition="param==11 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB055=A0</action>
<action condition="param==11 and maincpu.pb@FFB00A==06 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB058=3488</action>
<action condition="param==13 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB04A=00011BB8</action>
<action condition="param==13 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB055=80</action>
<action condition="param==13 and maincpu.pb@FFB00A==06 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB058=1194</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==10 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB04A=00011BB8</action>
<action condition="maincpu.pb@FFFFFE==10 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB055=80</action>
<action condition="maincpu.pb@FFFFFE==10 and maincpu.pb@FFB00A==06 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB058=0FE0</action>
<action condition="maincpu.pb@FFFFFE==11 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB04A=000143B2</action>
<action condition="maincpu.pb@FFFFFE==11 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB055=A0</action>
<action condition="maincpu.pb@FFFFFE==11 and maincpu.pb@FFB00A==06 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB058=3488</action>
<action condition="maincpu.pb@FFFFFE==13 and maincpu.pw@FFB020 GT 0000">maincpu.pd@FFB04A=00011BB8</action>
<action condition="maincpu.pb@FFFFFE==13 and maincpu.pw@FFB020 GT 0000">maincpu.pb@FFB055=80</action>
<action condition="maincpu.pb@FFFFFE==13 and maincpu.pb@FFB00A==06 and maincpu.pw@FFB020 GT 0000">maincpu.pw@FFB058=1194</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>