luascript "Console Mode [lua]" \
 "comm:Coin button is used for pause. In training mode, start button can restore HP, pause the game and then press start to select character."
run:
-- Start-up --
if (peek(0xFF8076)==0x00) and (peek(0xFF2000)~=0x06) then
    dpoke(0xFF8072,0x0109) -- 1 coin 9 credits --
    poke(0x1D7D8,"PRESS START")
    poke(0x1B044,0x05) -- Restore initial value --
    poke(0x1B052,0x09)
    poke(0x3A48,0x01)
    lpoke(0x147A,0x2B400064)
    lpoke(0x1492,0x1B400064)
    dpoke(0xDF10,0x3B40)
    dpoke(0x30FE,0x13F4)
    lpoke(0x1470,0x2B400060)
    lpoke(0x1486,0x1B410060)
    poke(0xB8D43,0x28) -- Restore original HP function --
    poke(0xB8E51,0x2C)
    if (peek(0xFF8001)>=0x0C) and (peek(0xFF8060)>0x00) then -- Start button start --
      poke(0x618001,0x00) -- Sound effect --
      poke(0x618003,0x81)
      poke(0x61801F,0x00)
      poke(0xFF8076,0x09) -- Max credit --
    end
end
-- Title screen --
if (dpeek(0xFFBC9E)==0x2E64) and (peek(0xFF8001)==0x04) and (peek(0xFF8076)>0x00) and (peek(0xFF2020)==0x00) then
    poke(0xFF2000,0x00) -- Set Arcade Mode as default --
    lpoke(0x1470,0x00000000) -- Disable original start button --
    lpoke(0x1486,0x00000000)
    poke(0xFF2020,0x02)
end
-- Menu in the Title screen --
if (dpeek(0xFFBC9E)==0x2E64) and (peek(0xFF2020)==0x02) then
    if ((peek(0xFF8059)==0x00) and (peek(0xFF805D)==0x00)) and (peek(0xFF2001)==0xFF) then
      poke(0xFF2001,0x00) -- Act as button 'stopper' --
      poke(0xFF2021,0x00) -- Act as music 'stopper' --
    end
    if (peek(0xFF8059)==0x04) or (peek(0xFF805D)==0x04) then
       if (peek(0xFF2021)==0x00) then -- Sound effect --
         poke(0x618001,0x00)
         poke(0x618003,0xC0)
         poke(0x61801F,0x00)
         poke(0xFF2021,0xFF)
       end
       if (dpeek(0xFF2000)==0x0000) then
         dpoke(0xFF2000,0x01FF)
       elseif (dpeek(0xFF2000)==0x0100) then
         dpoke(0xFF2000,0x02FF)
       elseif (dpeek(0xFF2000)==0x0200) then
         dpoke(0xFF2000,0x03FF)
       elseif (dpeek(0xFF2000)==0x0300) then
         dpoke(0xFF2000,0x04FF)
       elseif (dpeek(0xFF2000)==0x0400) then
         dpoke(0xFF2000,0x05FF)
       elseif (dpeek(0xFF2000)==0x0500) then
         dpoke(0xFF2000,0x06FF)
       elseif (dpeek(0xFF2000)==0x0600) then
         dpoke(0xFF2000,0x00FF)
       end
    end
    if (peek(0xFF8059)==0x08) or (peek(0xFF805D)==0x08) then
       if (peek(0xFF2021)==0x00) then -- Sound effect --
         poke(0x618001,0x00)
         poke(0x618003,0xC0)
         poke(0x61801F,0x00)
         poke(0xFF2021,0xFF)
       end
       if (dpeek(0xFF2000)==0x0000) then
         dpoke(0xFF2000,0x06FF)
       elseif (dpeek(0xFF2000)==0x0600) then
         dpoke(0xFF2000,0x05FF)
       elseif (dpeek(0xFF2000)==0x0500) then
         dpoke(0xFF2000,0x04FF)
       elseif (dpeek(0xFF2000)==0x0400) then
         dpoke(0xFF2000,0x03FF)
       elseif (dpeek(0xFF2000)==0x0300) then
         dpoke(0xFF2000,0x02FF)
       elseif (dpeek(0xFF2000)==0x0200) then
         dpoke(0xFF2000,0x01FF)
       elseif (dpeek(0xFF2000)==0x0100) then
         dpoke(0xFF2000,0x00FF)
       end
    end
    -- Menu Text setting --
    poke(0xFFDC14,0x00) -- Remove original text --
    for i=0,0x70,0x8 do
       dpoke(0x7083A6+i,0x001F) -- Text color --
    end
    for i=0,0x70,0x8 do
       dpoke(0x7083A2+i,0x20CC) -- Text y-location --
    end
    if (peek(0xFF2000)==0x00) then -- Arcade --
       for i=0,0x28,0x8 do
          dpoke(0x7083C8+i,0xE0E8+i) -- Text x-location --
       end
       for i=0,0x70,0x8 do
          dpoke(0x7083A4+i,0x6EA0) -- Remove Previous Text --
       end
       dpoke(0x7083CC,0x6EC1)
       dpoke(0x7083D4,0x6ED2)
       dpoke(0x7083DC,0x6EC3)
       dpoke(0x7083E4,0x6EC1)
       dpoke(0x7083EC,0x6EC4)
       dpoke(0x7083F4,0x6EC5)
       lpoke(0x708418,0x00008000) -- For Gameover reutrn, set the end pointer for graphic ram --
    elseif (peek(0xFF2000)==0x01) then -- Versus --
       for i=0,0x28,0x8 do
          dpoke(0x7083C8+i,0xE0E8+i) -- Text x-location --
       end
       for i=0,0x70,0x8 do
          dpoke(0x7083A4+i,0x6EA0) -- Remove Previous Text --
       end
       dpoke(0x7083CC,0x6ED6)
       dpoke(0x7083D4,0x6EC5)
       dpoke(0x7083DC,0x6ED2)
       dpoke(0x7083E4,0x6ED3)
       dpoke(0x7083EC,0x6ED5)
       dpoke(0x7083F4,0x6ED3)
    elseif (peek(0xFF2000)==0x02) then -- Training --
       for i=0,0x38,0x8 do
          dpoke(0x7083C0+i,0xE0E0+i) -- Text x-location --
       end
       for i=0,0x70,0x8 do
          dpoke(0x7083A4+i,0x6EA0) -- Remove Previous Text --
       end
       dpoke(0x7083C4,0x6ED4)
       dpoke(0x7083CC,0x6ED2)
       dpoke(0x7083D4,0x6EC1)
       dpoke(0x7083DC,0x6EC9)
       dpoke(0x7083E4,0x6ECE)
       dpoke(0x7083EC,0x6EC9)
       dpoke(0x7083F4,0x6ECE)
       dpoke(0x7083FC,0x6EC7)
    elseif (peek(0xFF2000)==0x03) then -- Survival --
       for i=0,0x38,0x8 do
          dpoke(0x7083C0+i,0xE0E0+i) -- Text x-location --
       end
       for i=0,0x70,0x8 do
          dpoke(0x7083A4+i,0x6EA0) -- Remove Previous Text --
       end
       dpoke(0x7083C4,0x6ED3)
       dpoke(0x7083CC,0x6ED5)
       dpoke(0x7083D4,0x6ED2)
       dpoke(0x7083DC,0x6ED6)
       dpoke(0x7083E4,0x6EC9)
       dpoke(0x7083EC,0x6ED6)
       dpoke(0x7083F4,0x6EC1)
       dpoke(0x7083FC,0x6ECC)
    elseif (peek(0xFF2000)==0x04) then -- Final Battle --
       for i=0,0x58,0x8 do
          dpoke(0x7083B0+i,0xE0D0+i) -- Text x-location --
       end
       dpoke(0x7083A4,0x6EA0)
       dpoke(0x7083AC,0x6EA0)
       dpoke(0x7083B4,0x6EC6)
       dpoke(0x7083BC,0x6EC9)
       dpoke(0x7083C4,0x6ECE)
       dpoke(0x7083CC,0x6EC1)
       dpoke(0x7083D4,0x6ECC)
       dpoke(0x7083DC,0x6EA0)
       dpoke(0x7083E4,0x6EC2)
       dpoke(0x7083EC,0x6EC1)
       dpoke(0x7083F4,0x6ED4)
       dpoke(0x7083FC,0x6ED4)
       dpoke(0x708404,0x6ECC)
       dpoke(0x70840C,0x6EC5)
       dpoke(0x708414,0x6EA0)
    elseif (peek(0xFF2000)==0x05) then -- Dramatic Battle --
       for i=0,0x70,0x8 do
          dpoke(0x7083A0+i,0xE0C0+i) -- Text x-location --
       end
       dpoke(0x7083A4,0x6EC4)
       dpoke(0x7083AC,0x6ED2)
       dpoke(0x7083B4,0x6EC1)
       dpoke(0x7083BC,0x6ECD)
       dpoke(0x7083C4,0x6EC1)
       dpoke(0x7083CC,0x6ED4)
       dpoke(0x7083D4,0x6EC9)
       dpoke(0x7083DC,0x6EC3)
       dpoke(0x7083E4,0x6EA0)
       dpoke(0x7083EC,0x6EC2)
       dpoke(0x7083F4,0x6EC1)
       dpoke(0x7083FC,0x6ED4)
       dpoke(0x708404,0x6ED4)
       dpoke(0x70840C,0x6ECC)
       dpoke(0x708414,0x6EC5)
    elseif (peek(0xFF2000)==0x06) then -- Option --
       for i=0,0x28,0x8 do
          dpoke(0x7083C8+i,0xE0E8+i) -- Text x-location --
       end
       for i=0,0x70,0x8 do
          dpoke(0x7083A4+i,0x6EA0) -- Remove Previous Text --
       end
       dpoke(0x7083CC,0x6ECF)
       dpoke(0x7083D4,0x6ED0)
       dpoke(0x7083DC,0x6ED4)
       dpoke(0x7083E4,0x6EC9)
       dpoke(0x7083EC,0x6ECF)
       dpoke(0x7083F4,0x6ECE)
    end
    if (peek(0xFF8058)>0x00) then -- P1 start game --
       poke(0x618001,0x00) -- Sound effect --
       poke(0x618003,0xC1)
       poke(0x61801F,0x00)
       poke(0xFF8060,0x01)
       poke(0xFF2020,0x03)
    end
    if (peek(0xFF805C)>0x00) then -- P2 start game --
       poke(0x618001,0x00) -- Sound effect --
       poke(0x618003,0xC1)
       poke(0x61801F,0x00)
       poke(0xFF8060,0x02)
       poke(0xFF2020,0x03)
    end
end
-- Restore value --
if (peek(0xFF8001)==0x02) and (peek(0xFF2020)==0x03) then
    lpoke(0x1470,0x2B400060)
    lpoke(0x1486,0x1B410060)
    if peek(0xFF2000)~=0x06 then
       dpoke(0x30FE,0x13F4)
    end
    poke(0xFF2020,0x00)
end
-- Infinity credit Script --
if (peek(0xFF8076)>0x00) then
    poke(0xFF8076,0x09)
end
-- VS Mode Script --
if (peek(0xFF2000)==0x01) then
    if (dpeek(0xFFBC9E)==0x2E64) and (peek(0xFF80A8)>0x00) then -- Auto activate P1 & P2 --
       poke(0xFF80A8,0x03)
    end
    if (dpeek(0xFFBCE2)==0xB47E) then
       if (peek(0xFF855B)==0x07) and (peek(0xFF895B)<0x07) then -- P1 finished selection first --
         poke(0x3A48,0x05) -- Play music from P2 --
       end
       if (peek(0xFF895B)==0x07) and (peek(0xFF855B)<0x07) then -- P2 finished selection first --
         poke(0x3A48,0x01) -- Play music from P1 --
       end
    end
    if (peek(0xFF8005)==0x04) and (peek(0xFF8009)==0x04) then
      poke(0xFF8101,peek(0xFF8173)) -- Select stage of later selected side --
      p1char=peek(0xFF8502) -- Memorizes characters --
      p2char=peek(0xFF8902)
      p1ism=peek(0xFF8532)
      p2ism=peek(0xFF8932)
    end
    if (peek(0xFF850E)==0x01) or (peek(0xFF890E)==0x01) then -- Prevent continue? text --
       poke(0xFF8500,0xFF)
       poke(0xFF8900,0xFF)
    end
    if (peek(0xFF800D)==0x0C) then
       poke(0xFF2003,0x01)
    end
    if (peek(0xFF2003)==0x01) and (peek(0xFF8015)==0x02) then -- Return to char screen --
       poke(0xFF8005,0x00)
       poke(0xFF8009,0x00)
       poke(0xFF8001,0x00)
       poke(0xFF2003,0x00)
       dpoke(0xFF2012,0x0000) -- Deselect Final Bison/Vega --
       poke(0xFF2005,0x01)
    end
    if (dpeek(0xFFBCE2)==0xB47E) and (peek(0xFF2005)==0x01) then -- Re-load last round characters --
       poke(0xFF8502,p1char)
       if (peek(0xFF8502)==0x15) or (peek(0xFF8502)==0x1E) or (peek(0xFF8502)==0x1F) then
         poke(0xFF8502,0x0A)
       end
       poke(0xFF8902,p2char)
       if (peek(0xFF8902)==0x15) or (peek(0xFF8902)==0x1E) or (peek(0xFF8902)==0x1F) then
         poke(0xFF8902,0x0A)
       end
       poke(0xFF8532,p1ism)
       poke(0xFF8932,p2ism)
       poke(0xFF2005,0x00)
    end
end
-- Training Mode Script --
if (peek(0xFF2000)==0x02) then
    if (dpeek(0xFFBC9E)==0x2E64) and (peek(0xFF80A8)>0x00) then -- Auto activate P1 & P2 --
       poke(0xFF80A8,0x03)
    end
    if (dpeek(0xFFBCE2)==0xB47E) then
       if (peek(0xFF855B)==0x07) and (peek(0xFF895B)<0x07) then -- P1 as main player --
         poke(0x1B044,0x09) -- Switch control --
         poke(0x1B052,0x05)
         poke(0x3A48,0x05) -- Play music from P2 --
       end
       if (peek(0xFF895B)==0x07) and (peek(0xFF855B)<0x07) then -- P2 as main player --
         poke(0x1B044,0x09) -- Switch control --
         poke(0x1B052,0x05)
         poke(0x3A48,0x01) -- Play music from P1 --
       end
       if (peek(0xFF855B)==0x07) and (peek(0xFF895B)==0x07) then
         poke(0x1B044,0x05) -- Restore control --
         poke(0x1B052,0x09)
         p1char=peek(0xFF8502) -- Memorizes characters --
         p2char=peek(0xFF8902)
         p1ism=peek(0xFF8532)
         p2ism=peek(0xFF8932)
       end
    end
    if (peek(0xFF8005)==0x04) and (peek(0xFF8009)==0x04) then -- Select stage of later selected side --
      poke(0xFF8101,peek(0xFF8173))
    end
    if (peek(0xFF8009)==0x06) and (peek(0xFF800D)==0x04) then -- Before battle start --
       poke(0xB8D43,0x20) -- Disable original HP function --
       poke(0xB8E51,0x20)
       poke(0xFF8451,0xFF) -- Increase --
       poke(0xFF8851,0xFF)
    end
    if (peek(0xFF8009)==0x06) and (peek(0xFF800D)>=0x04) then
    -- P1 HP recovery --
       if (peek(0xFF8451)>=0x6F) then -- HP bar display --
          poke(0xFFDC29,peek(0xFF8451)-0x6F)
       end
       if (peek(0xFF8451)<0x6F) then -- When HP bar rearch 0 --
          poke(0xFF8451,0x6F)
          poke(0xFF2030,0x01)
       end
       if (peek(0x804020)==0xFD) then -- Start button retore HP --
          poke(0xFF2030,0x01)
       end
       if (peek(0xFF8451)<0xFF) and (peek(0xFF8405)==0x00) and (peek(0xFF2030)==0x01) then -- Restore HP --
          poke(0xFF8451,peek(0xFF8451)+0x1)
       end
       if (peek(0xFF8451)==0xFF) then
          poke(0xFF2030,0x00)
       end
   -- P2 HP recovery --
       if (peek(0xFF8851)>=0x6F) then -- HP bar display --
          poke(0xFFDC2D,peek(0xFF8851)-0x6F)
       end
       if (peek(0xFF8851)<0x6F) then -- When HP bar rearch 0 --
          poke(0xFF8851,0x6F)
          poke(0xFF2031,0x01)
       end
       if (peek(0x804020)==0xFE) then -- Start button retore HP --
          poke(0xFF2031,0x01)
       end
       if (peek(0xFF8851)<0xFF) and (peek(0xFF8805)==0x00) and (peek(0xFF2031)==0x01) then -- Restore HP --
          poke(0xFF8851,peek(0xFF8851)+0x1)
       end
       if (peek(0xFF8851)==0xFF) then
          poke(0xFF2031,0x00)
       end
   -- Other battle parameter --
       poke(0xFF810A,0x28) -- Timer --
       poke(0xFF851F,0x90) -- P1 Power --
       poke(0xFF891F,0x90) -- P2 Power --
   -- Return to char screen --
       if (peek(0xFF8005)==0x03) and ((peek(0xFF8060)==0x01) or (peek(0xFF8060)==0x02)) then
         poke(0xFF8009,0x00)
         poke(0xFF800D,0x00)
         poke(0xFF8001,0x00)
         poke(0xFF8005,0x00)
         dpoke(0xFF2012,0x0000) -- Deselect Final Bison/Vega --
         poke(0xFF2005,0x01)
         poke(0xB8D43,0x28) -- Restore original HP function --
         poke(0xB8E51,0x2C)
         dpoke(0xFF2030,0x0000)
         poke(0x618001,0xFF) -- Remove sound --
         poke(0x618003,0x00)
         poke(0x61801F,0x00)
       end
    end
    if (dpeek(0xFFBCE2)==0xB47E) and (peek(0xFF2005)==0x01) then -- Re-load last round characters --
       poke(0xFF8502,p1char)
       if (peek(0xFF8502)==0x15) or (peek(0xFF8502)==0x1E) or (peek(0xFF8502)==0x1F) then
         poke(0xFF8502,0x0A)
       end
       poke(0xFF8902,p2char)
       if (peek(0xFF8902)==0x15) or (peek(0xFF8902)==0x1E) or (peek(0xFF8902)==0x1F) then
         poke(0xFF8902,0x0A)
       end
       poke(0xFF8532,p1ism)
       poke(0xFF8932,p2ism)
       poke(0xFF2005,0x00)
    end
end
-- Survival Mode Script --
if (peek(0xFF2000)==0x03) then
    if (peek(0xFF80A8)==0x01) then -- For P1 Game --
      poke(0xFF854B,0xFF)
    end
    if (peek(0xFF80A8)==0x02) then -- For P2 Game --
      poke(0xFF894B,0xFF)
    end
end
-- Final Battle Mode Script --
if (peek(0xFF2000)==0x04) then
    if (peek(0xFF80A8)==0x01) then -- For P1 Game --
      lpoke(0xFF8540,0xFFFFFFFF)
      poke(0xFF8549,0xFF)
    end
    if (peek(0xFF80A8)==0x02) then -- For P2 Game --
      lpoke(0xFF8940,0xFFFFFFFF)
      poke(0xFF8949,0xFF)
    end
end
-- Dramatic Battle Battle Mode Script --
if (peek(0xFF2000)==0x05) then
    poke(0xFF8168,0x01)
    poke(0xFF8076,0x09) -- Infinity Credits --
end
-- Option Mode Script --
if (peek(0xFF2000)==0x06) then
    if (dpeek(0xFFBC9E)==0x2E64) and ((peek(0xFF8058)>0x00) or (peek(0xFF805C)>0x00)) and (peek(0xFF2004)==0x00) then -- Step 1 - entering --
       poke(0xFF8060,0x00) -- Remove value of start button --
       dpoke(0x30FE,0x0000) -- Disable some sound code --
       lpoke(0x147A,0x00000000) -- Disable original test button --
       lpoke(0x1492,0x00000000)
       poke(0xFF8064,0x02)
       region=peek(0xFF8091)
       poke(0xFF2004,0x01)
    end
    if (peek(0xFF8001)==0x02) and (peek(0xFF2004)==0x01) then -- Step 2 - Restore value --
       lpoke(0x147A,0x2B400064) -- Restore value --
       lpoke(0x1492,0x1B400064)
       poke(0xFF8064,0x00)
       poke(0xFF8091,0x02) -- English menu --
       dpoke(0xDF10,0x0000) -- For fast restart --
       poke(0xFF2004,0x02)
    end
    if (peek(0xFF8000)==0x00) and (peek(0xFF2004)==0x02) then -- Step 3 - Leaving --
       poke(0xFF8076,0x09) -- Max credit --
       if peek(0xFF8003)>=10 then -- For fast restart --
         poke(0xFF8003,0x01)
         poke(0xFF8024,0x00)
       end
       poke(0xFF2020,0x02) -- To menu screen --
    end
    if (dpeek(0xFFBC9E)==0x2E64) and (peek(0xFF2004)==0x02) then
       poke(0xFF8091,region)
       lpoke(0x1470,0x00000000) -- Re-disable original start button --
       lpoke(0x1486,0x00000000)
       poke(0xFF2004,0x00)
    end
end
-- Pause Function Script --
    if (peek(0xFF8009)==0x06) and (peek(0xFF800D)==0x06) then
       if (peek(0xFF8060)==0x00) then
       poke(0xFF2002,0x00)
       end
       if (peek(0xFF8005)==0x04) and ((peek(0xFF8060)==0x10) or (peek(0xFF8060)==0x20)) and (peek(0xFF2002)==0x00) then
       poke(0xFF8005,0x03)
       poke(0xFF2002,0xFF)
       end
       if (peek(0xFF8005)==0x03) and ((peek(0xFF8060)==0x10) or (peek(0xFF8060)==0x20)) and (peek(0xFF2002)==0x00) then
       poke(0xFF8005,0x04)
       poke(0xFF2002,0xFF)
       end
    end
off:
    poke(0x1D7D8,"INSERT COIN")
    poke(0x1B044,0x05)
    poke(0x1B052,0x09)
    poke(0x3A48,0x01)
    lpoke(0x147A,0x2B400064)
    lpoke(0x1492,0x1B400064)
    dpoke(0xDF10,0x3B40)
    dpoke(0x30FE,0x13F4)
    lpoke(0x1470,0x2B400060)
    lpoke(0x1486,0x1B410060)
    poke(0xB8D43,0x28) -- Restore original HP function --
    poke(0xB8E51,0x2C)

luascript "Enable Bosses [lua]" \
 "comm:Hold start button on Bison/Vega to select his final form.
For other hidden characters, hold start, up or backward (directional) button on the upper ? box."
run:
-- Character Screen part --
if (dpeek(0xFFBCE2)==0xB47E) then
    if (peek(0xFF8404)==0x00) and (peek(0xFF8411)==0x01) and (peek(0xFF8415)==0x01) and (peek(0xFF851B)==0x00) then -- P1 --
      poke(0xFF2010,0x01)
    end
    if (peek(0xFF8411)~=0x01) or (peek(0xFF8415)~=0x01) or (peek(0xFF8404)~=0x00) then -- P1 --
      poke(0xFF2010,0x00)
    end
    if (peek(0xFF2010)==0x01) then
      if (peek(0xFF851B)==0x02) then -- P1 Juni --
        poke(0xFF8502,0x1F)
        poke(0xFF843F,0x00)
      end
      if (peek(0xFF851B)==0x08) then
        poke(0xFF8502,0x1E) -- P1 Juli --
        poke(0xFF843F,0x00)
      end
      if (peek(0xFF851A)==0x80) then
        poke(0xFF8502,0x15) -- P1 Barlog/M.Bison --
        poke(0xFF843F,0x00)
      end
      if (peek(0xFF8405)==0x02) and (dpeek(0xFF851A)==0x0000) then
        poke(0xFF843F,0x20) -- Restore p1 random box --
      end
    end
    if (peek(0xFF8804)==0x00) and (peek(0xFF8811)==0x05) and (peek(0xFF8815)==0x01) and (peek(0xFF891B)==0x00) then -- P2 --
      poke(0xFF2011,0x01)
    end
    if (peek(0xFF8811)~=0x05) or (peek(0xFF8815)~=0x01) or (peek(0xFF8804)~=0x00) then -- P2 --
      poke(0xFF2011,0x00)
    end
    if (peek(0xFF2011)==0x01) then
      if (peek(0xFF891B)==0x01) then -- P2 Juni --
        poke(0xFF8902,0x1F)
        poke(0xFF883F,0x00)
      end
      if (peek(0xFF891B)==0x08) then
        poke(0xFF8902,0x1E) -- P2 Juli --
        poke(0xFF883F,0x00)
      end
      if (peek(0xFF891A)==0x80) then
        poke(0xFF8902,0x15) -- P2 Barlog/M.Bison --
        poke(0xFF883F,0x00)
      end
      if (peek(0xFF8805)==0x02) and (dpeek(0xFF891A)==0x0000) then
        poke(0xFF883F,0x22) -- Restore p2 random box --
      end
    end
    if (peek(0xFF8502)==0x0A) and (peek(0xFF8404)==0x00) and (peek(0xFF851A)==0x80) then -- P1 Final Bison/Vega --
       poke(0xFF2012,0x01)
    end
    if (peek(0xFF8902)==0x0A) and (peek(0xFF8804)==0x00) and (peek(0xFF891A)==0x80) then -- P2 Final Bison/Vega --
       poke(0xFF2013,0x01)
    end
end
if (peek(0xFF2012)==0x01) then -- P1 Final Bison/Vega part 2 --
    if (peek(0xFF8001)==0x02) and (peek(0xFF8009)~=0x06) then
       dpoke(0xFF8524,0x0101)
    end
    if (peek(0xFF8009)==0x06) and (peek(0xFF800D)>=0x04) then
      poke(0xFF8525,0x00)
    end
end
if (peek(0xFF2013)==0x01) then -- P2 Final Bison/Vega part 2 --
    if (peek(0xFF8001)==0x02) and (peek(0xFF8009)~=0x06) then
       dpoke(0xFF8924,0x0101)
    end
    if (peek(0xFF8009)==0x06) and (peek(0xFF800D)>=0x04) then
      poke(0xFF8925,0x00)
    end
end
-- Lose or Gameover --
if (dpeek(0xFFBCE2)==0xFFE0) or (dpeek(0xFFBC9E)==0x2E64) then
    if (peek(0xFF2012)==0x01) then -- P1 --
       poke(0xFF2012,0x00)
    end
    if (peek(0xFF2013)==0x01) then -- P2 --
       poke(0xFF2013,0x00)
    end
end
-- Final Bison/Vega music in VS & Training Mode --
if (peek(0xFF2000)~=0x00) and (((peek(0x618001)==0x00) and (peek(0x618003)==0x13)) or ((peek(0x618001)==0xFF) and (peek(0x618003)==0x00))) and (peek(0xFF800D)~=0x00) then
    if ((peek(0x3A48)==0x05) and (peek(0xFF2013)==0x01)) or ((peek(0x3A48)==0x01) and (peek(0xFF2012)==0x01)) then
       poke(0x618001,0x00)
       poke(0x618003,0x20)
       poke(0x61801F,0x00)
    end
end

script "Infinite Time"  
run:
    poke $FF8109 $63
script "Finish this Round Now!" \
 "comm:Disable Infinite Time before activating this cheat"  
on:
    poke $FF8109 $00
script "Select Colour Unlock" \
 "comm:Select it before inserting coin(s). (NOTE - the colour refers to the background colour after you've inserted a credit)" \
 "0x00/Cream (Default)"\
 "0x01/Red (Unlocks Classical Mode)"\
 "0x02/Green (Unlocks Balrog, Juli, and Juni)"\
 "0x03/Blue (Unlocks Mazi Mode and Saikyou Mode)"\
 "0x04/Light Blue (Unlocks Survival, Dramatic and Final Battle Mode)" 
change:
    poke $FF80EE param
script "Select Backdrop" \
 "0x00/Japan (Sunset)"\
 "0x02/USA (Hotel)"\
 "0x04/Japan (Cave)"\
 "0x06/USA (Hangar)"\
 "0x08/China"\
 "0x0A/Thailand (Temple)"\
 "0x0C/USA (Japanese)"\
 "0x0E/USA (Metro City)"\
 "0x10/England"\
 "0x12/Italy"\
 "0x14/Point 48106 (Night)"\
 "0x16/Thailand (Statue)"\
 "0x18/Japan (Swings)"\
 "0x1A/Japan (Market at Day)"\
 "0x1C/USA (Military)"\
 "0x1E/India"\
 "0x20/Russia"\
 "0x22/Hong Kong"\
 "0x2A/Point 48106 (Day)"\
 "0x2C/Greece"\
 "0x30/Japan (Sumo Ring)"\
 "0x32/Brazil"\
 "0x34/Japan (Seaside)"\
 "0x36/USA (Prison)"\
 "0x38/Spain"\
 "0x3A/Japan (Market at Night)" 
run:
    poke $FF8101 param
script "Skip Character Intros"  
run:
    poke $FF8431 $00
script "Skip Map Screen" \
 "comm:Normal and Dramatic Modes only"  
run:
    poke $FF8111 $FF
script "Select Dramatic Battle Adversary 1" \
 "comm:Select a different character for each adversary as cloned characters will be skipped" \
 "0x00/Ryu"\
 "0x01/Ken"\
 "0x02/Akuma"\
 "0x03/Charlie"\
 "0x04/Chun-Li"\
 "0x05/Adon"\
 "0x06/Sodom"\
 "0x07/Guy"\
 "0x08/Birdie"\
 "0x09/Rose"\
 "0x0A/M. Bison"\
 "0x0B/Sagat"\
 "0x0C/Dan"\
 "0x0D/Sakura"\
 "0x0E/Rolento"\
 "0x0F/Dhalsim"\
 "0x10/Zangief"\
 "0x11/Gen"\
 "0x15/Balrog"\
 "0x16/Cammy"\
 "0x18/E. Honda"\
 "0x19/Blanka"\
 "0x1A/R. Mika"\
 "0x1B/Cody"\
 "0x1C/Vega"\
 "0x1D/Karin"\
 "0x1E/#Juli"\
 "0x1F/#Juni" 
on:
    temp0=peek($00B97A)
run:
    poke $00B97A param
off:
    poke $00B97A temp0
script "Select Dramatic Battle Adversary 2" \
 "comm:Select a different character for each adversary as cloned characters will be skipped" \
 "0x00/Ryu"\
 "0x01/Ken"\
 "0x02/Akuma"\
 "0x03/Charlie"\
 "0x04/Chun-Li"\
 "0x05/Adon"\
 "0x06/Sodom"\
 "0x07/Guy"\
 "0x08/Birdie"\
 "0x09/Rose"\
 "0x0A/M. Bison"\
 "0x0B/Sagat"\
 "0x0C/Dan"\
 "0x0D/Sakura"\
 "0x0E/Rolento"\
 "0x0F/Dhalsim"\
 "0x10/Zangief"\
 "0x11/Gen"\
 "0x15/Balrog"\
 "0x16/Cammy"\
 "0x18/E. Honda"\
 "0x19/Blanka"\
 "0x1A/R. Mika"\
 "0x1B/Cody"\
 "0x1C/Vega"\
 "0x1D/Karin"\
 "0x1E/#Juli"\
 "0x1F/#Juni" 
on:
    temp0=peek($00B97B)
run:
    poke $00B97B param
off:
    poke $00B97B temp0
script "Select Dramatic Battle Adversary 3" \
 "comm:Select a different character for each adversary as cloned characters will be skipped" \
 "0x00/Ryu"\
 "0x01/Ken"\
 "0x02/Akuma"\
 "0x03/Charlie"\
 "0x04/Chun-Li"\
 "0x05/Adon"\
 "0x06/Sodom"\
 "0x07/Guy"\
 "0x08/Birdie"\
 "0x09/Rose"\
 "0x0A/M. Bison"\
 "0x0B/Sagat"\
 "0x0C/Dan"\
 "0x0D/Sakura"\
 "0x0E/Rolento"\
 "0x0F/Dhalsim"\
 "0x10/Zangief"\
 "0x11/Gen"\
 "0x15/Balrog"\
 "0x16/Cammy"\
 "0x18/E. Honda"\
 "0x19/Blanka"\
 "0x1A/R. Mika"\
 "0x1B/Cody"\
 "0x1C/Vega"\
 "0x1D/Karin"\
 "0x1E/#Juli"\
 "0x1F/#Juni" 
on:
    temp0=peek($00B97C)
run:
    poke $00B97C param
off:
    poke $00B97C temp0
script "Select Dramatic Battle Adversary 4" \
 "comm:Select a different character for each adversary as cloned characters will be skipped" \
 "0x00/Ryu"\
 "0x01/Ken"\
 "0x02/Akuma"\
 "0x03/Charlie"\
 "0x04/Chun-Li"\
 "0x05/Adon"\
 "0x06/Sodom"\
 "0x07/Guy"\
 "0x08/Birdie"\
 "0x09/Rose"\
 "0x0A/M. Bison"\
 "0x0B/Sagat"\
 "0x0C/Dan"\
 "0x0D/Sakura"\
 "0x0E/Rolento"\
 "0x0F/Dhalsim"\
 "0x10/Zangief"\
 "0x11/Gen"\
 "0x15/Balrog"\
 "0x16/Cammy"\
 "0x18/E. Honda"\
 "0x19/Blanka"\
 "0x1A/R. Mika"\
 "0x1B/Cody"\
 "0x1C/Vega"\
 "0x1D/Karin"\
 "0x1E/#Juli"\
 "0x1F/#Juni" 
on:
    temp0=peek($00B97D)
run:
    poke $00B97D param
off:
    poke $00B97D temp0
script "Select Dramatic Battle Adversary 5" \
 "comm:Select a different character for each adversary as cloned characters will be skipped" \
 "0x00/Ryu"\
 "0x01/Ken"\
 "0x02/Akuma"\
 "0x03/Charlie"\
 "0x04/Chun-Li"\
 "0x05/Adon"\
 "0x06/Sodom"\
 "0x07/Guy"\
 "0x08/Birdie"\
 "0x09/Rose"\
 "0x0A/M. Bison"\
 "0x0B/Sagat"\
 "0x0C/Dan"\
 "0x0D/Sakura"\
 "0x0E/Rolento"\
 "0x0F/Dhalsim"\
 "0x10/Zangief"\
 "0x11/Gen"\
 "0x15/Balrog"\
 "0x16/Cammy"\
 "0x18/E. Honda"\
 "0x19/Blanka"\
 "0x1A/R. Mika"\
 "0x1B/Cody"\
 "0x1C/Vega"\
 "0x1D/Karin"\
 "0x1E/#Juli"\
 "0x1F/#Juni" 
on:
    temp0=peek($00B982)
run:
    poke $00B982 param
off:
    poke $00B982 temp0
script "Select Dramatic Battle Adversary 6" \
 "comm:Select a different character for each adversary as cloned characters will be skipped" \
 "0x00/Ryu"\
 "0x01/Ken"\
 "0x02/Akuma"\
 "0x03/Charlie"\
 "0x04/Chun-Li"\
 "0x05/Adon"\
 "0x06/Sodom"\
 "0x07/Guy"\
 "0x08/Birdie"\
 "0x09/Rose"\
 "0x0A/M. Bison"\
 "0x0B/Sagat"\
 "0x0C/Dan"\
 "0x0D/Sakura"\
 "0x0E/Rolento"\
 "0x0F/Dhalsim"\
 "0x10/Zangief"\
 "0x11/Gen"\
 "0x15/Balrog"\
 "0x16/Cammy"\
 "0x18/E. Honda"\
 "0x19/Blanka"\
 "0x1A/R. Mika"\
 "0x1B/Cody"\
 "0x1C/Vega"\
 "0x1D/Karin"\
 "0x1E/#Juli"\
 "0x1F/#Juni" 
on:
    temp0=peek($00B983)
run:
    poke $00B983 param
off:
    poke $00B983 temp0
script " "  
script "P1 Skip Story" \
 "comm:Normal Mode only"  
run:
    poke $FF8549 $FF
script "P2 Skip Story" \
 "comm:Normal mode only"  
run:
    poke $FF8949 $FF
script " "  
script "Enable these Mode cheats on the Character Selection"  
script "Screen. They may work for different players configs."  
script " "  
script "P1 Select Mode" \
 "0x00/Normal Mode"\
 "0xFF/Survival Mode" 
run:
    poke $FF854B param
script "P2 Select Mode" \
 "0x00/Normal Mode"\
 "0xFF/Survival Mode" 
run:
    poke $FF894B param
script "P1+P2 Dramatic Battle Mode"  
run:
    poke $FF8168 $01
script " "  
script "P1 Infinite Energy"  
run:
    lpoke $FF8450 $00900090
script "P1 Drain All Energy Now!"  
on:
    lpoke $FF8450 $00000000
script "P1 Infinite Power"  
run:
    poke $FF851F $90
script "P1 No Power"  
run:
    poke $FF851F $00
script "P1 Refill Power Now!"  
on:
    poke $FF851F $90
script "P1 Drain Power Now!"  
on:
    poke $FF851F $00
script "P1 Never Get Dizzied"  
run:
    dpoke $FF86CC $0028
script "P1 Always Get Dizzied When Hit"  
run:
    dpoke $FF86CC $FAFA
script "P1 Never Get Guard Crushed"  
run:
    dpoke $FF864C $7000
script "P1 Always Get Guard Crushed When Blocking"  
run:
    dpoke $FF864C $1010
script "P1 Infinite Fireballs"  
run:
    poke $FF8638 $00
script "P1 Never have use of Fireballs"  
run:
    poke $FF8638 $01
script "P1 Infinite Taunts"  
run:
    poke $FF84BC $01
script "P1 Infinite Air Special/Super moves"  
run:
    poke $FF8431 $00
script "P1 Recalculate Damage When Hit"  
run:
    dpoke $FF865A $0303
script "P1 Always Be in Original Combo" \
 "comm:Activate only during an Original combo to get the afterimages!"  
on:
    temp0=peek($FF84B9)
run:
    poke $FF84B9 $01
off:
    poke $FF84B9 temp0
script "P1 Infinite Time for Original Combo"  
run:
    poke $FF84BB $9A
script "P1 Select Original Combo Afterimage Type" \
 "0x000F0005/LP+LK Combo"\
 "0x00300010/MP+MK Combo"\
 "0x0051001B/HP+HK Combo" 
run:
    lpoke $FF86A6 param
script "P1 Select Control" \
 "comm:Disable this cheat if you use the Boss mode cheat below" \
 "0x00/User"\
 "0x01/CPU" 
run:
    poke $FF8525 param
script "P1 Boss Mode" \
 "comm:Final Bison, etc"  
run:
    poke $FF8524 $01
    if peek($FF8559)==$01
      poke $FF8525 $01
    endif
    if peek($FF8559)==$00
      poke $FF8525 $00
    endif
script " "  
script "Enable these Mode cheats on the Character Selection Screen."  
script " "  
script "P1 Enable Classical Mode Now!" \
 "comm:Alternative Ism. No gauges, air blocks, taunts etc."  
on:
    poke $FF855E $01
script "P1 Enable Mazi Mode Now!" \
 "comm:Greater damage inflicted, greater damage done. Only lose one round to lose."  
on:
    poke $FF855A $01
script "P1 Enable Saikyou Mode Now!" \
 "comm:Easy to get dizzy, slightly less damage done, rubbish!"  
on:
    poke $FF8531 $01
script " "  
script "P1 Select ISM" \
 "comm:Enable only after selecting your ISM on the Character Selection screen" \
 "0x01/A-ISM"\
 "0x02/V-ISM"\
 "0x03/X-ISM"\
 "0x04/S-ISM" 
run:
    if (param==$01)
      poke $FF8523 $00
      poke $FF8532 $00
    endif
    if (param==$02)
      poke $FF8523 $01
      poke $FF8532 $01
    endif
    if (param==$03)
      poke $FF8523 $FF
      poke $FF8532 $FF
    endif
    if (param==$04)
      poke $FF8523 $02
      poke $FF8532 $00
    endif
script "P1 Select Character" \
 "comm:Free player selection - Use on the level VS screen." \
 "0x00/Ryu"\
 "0x01/Ken Masters"\
 "0x02/Akuma"\
 "0x03/Charlie"\
 "0x04/Chun-Li"\
 "0x05/Adon"\
 "0x06/Sodom"\
 "0x07/Guy"\
 "0x08/Birdie"\
 "0x09/Rose"\
 "0x0A/M. Bison"\
 "0x0B/Sagat"\
 "0x0C/Dan Hibiki"\
 "0x0D/Sakura Kasugano"\
 "0x0E/Rolento Schugerg"\
 "0x0F/Dhalsim"\
 "0x10/Zangief"\
 "0x11/Gen (Sou-ryuu stance)"\
 "0x13/#Gen (Ki-ryuu stance)"\
 "0x15/#Balrog"\
 "0x16/Cammy"\
 "0x18/Edmund Honda"\
 "0x19/Blanka"\
 "0x1A/Rainbow Mika Nanakawa"\
 "0x1B/Cody"\
 "0x1C/Vega"\
 "0x1D/Karin Kanzuki"\
 "0x1E/#Juli"\
 "0x1F/#Juni" 
run:
    poke $FF8502 param
script " "  
script "P2 Infinite Energy"  
run:
    lpoke $FF8850 $00900090
script "P2 Drain All Energy Now!"  
on:
    lpoke $FF8850 $00000000
script "P2 Infinite Power"  
run:
    poke $FF891F $90
script "P2 No Power"  
run:
    poke $FF891F $00
script "P2 Refill Power Now!"  
on:
    poke $FF891F $90
script "P2 Drain Power Now!"  
on:
    poke $FF891F $00
script "P2 Never Get Dizzied"  
run:
    dpoke $FF8ACC $0028
script "P2 Always Get Dizzied When Hit"  
run:
    dpoke $FF8ACC $FAFA
script "P2 Never Get Guard Crushed"  
run:
    dpoke $FF8A4C $7000
script "P2 Always Get Guard Crushed When Blocking"  
run:
    dpoke $FF8A4C $1010
script "P2 Infinite Fireballs"  
run:
    poke $FF8A38 $00
script "P2 Never have use of Fireballs"  
run:
    poke $FF8A38 $01
script "P2 Infinite Taunts"  
run:
    poke $FF88BC $01
script "P2 Infinite Air Special/Super moves"  
run:
    poke $FF8831 $00
script "P2 Recalculate Damage When Hit"  
run:
    dpoke $FF8A5A $0303
script "P2 Always Be in Original Combo" \
 "comm:Activate only during an Original combo to get the afterimages!"  
on:
    temp0=peek($FF88B9)
run:
    poke $FF88B9 $01
off:
    poke $FF88B9 temp0
script "P2 Infinite Time for Original Combo"  
run:
    poke $FF88BB $9A
script "P2 Select Original Combo Afterimage Type" \
 "0x000F0005/LP+LK Combo"\
 "0x00300010/MP+MK Combo"\
 "0x0051001B/HP+HK Combo" 
run:
    lpoke $FF8AA6 param
script "P2 Select Control" \
 "comm:Disable this cheat if you use the Boss mode cheat below" \
 "0x00/User"\
 "0x01/CPU" 
run:
    poke $FF8925 param
script "P2 Boss Mode" \
 "comm:Final Bison, etc"  
run:
    poke $FF8924 $01
    if peek($FF8959)==$01
      poke $FF8925 $01
    endif
    if peek($FF8959)==$00
      poke $FF8925 $00
    endif
script " "  
script "Enable these Mode cheats on the Character Selection Screen."  
script " "  
script "P2 Enable Classical Mode Now!" \
 "comm:Alternative Ism. No gauges, air blocks, taunts etc."  
on:
    poke $FF895E $01
script "P2 Enable Mazi Mode Now!" \
 "comm:Greater damage inflicted, greater damage done. Only lose one round to lose."  
on:
    poke $FF895A $01
script "P2 Enable Saikyou Mode Now!" \
 "comm:Easy to get dizzy, slightly less damage done, rubbish!"  
on:
    poke $FF8931 $01
script " "  
script "P2 Select ISM" \
 "comm:Enable only after selecting your ISM on the Character Selection screen" \
 "0x01/A-ISM"\
 "0x02/V-ISM"\
 "0x03/X-ISM"\
 "0x04/S-ISM" 
run:
    if (param==$01)
      poke $FF8923 $00
      poke $FF8932 $00
    endif
    if (param==$02)
      poke $FF8923 $01
      poke $FF8932 $01
    endif
    if (param==$03)
      poke $FF8923 $FF
      poke $FF8932 $FF
    endif
    if (param==$04)
      poke $FF8923 $02
      poke $FF8932 $00
    endif
script "P2 Select Character" \
 "comm:Free player selection - Use on the level VS screen." \
 "0x00/Ryu"\
 "0x01/Ken Masters"\
 "0x02/Akuma"\
 "0x03/Charlie"\
 "0x04/Chun-Li"\
 "0x05/Adon"\
 "0x06/Sodom"\
 "0x07/Guy"\
 "0x08/Birdie"\
 "0x09/Rose"\
 "0x0A/M. Bison"\
 "0x0B/Sagat"\
 "0x0C/Dan Hibiki"\
 "0x0D/Sakura Kasugano"\
 "0x0E/Rolento Schugerg"\
 "0x0F/Dhalsim"\
 "0x10/Zangief"\
 "0x11/Gen (Sou-ryuu stance)"\
 "0x13/#Gen (Ki-ryuu stance)"\
 "0x15/#Balrog"\
 "0x16/Cammy"\
 "0x18/Edmund Honda"\
 "0x19/Blanka"\
 "0x1A/Rainbow Mika Nanakawa"\
 "0x1B/Cody"\
 "0x1C/Vega"\
 "0x1D/Karin Kanzuki"\
 "0x1E/#Juli"\
 "0x1F/#Juni" 
run:
    poke $FF8902 param
script " "  
script "P3 Infinite Energy"  
run:
    lpoke $FF8C50 $00900090
script "P3 Drain All Energy Now!"  
on:
    lpoke $FF8C50 $00000000
script "P3 Infinite Power"  
run:
    poke $FF8D1F $90
script "P3 No Power"  
run:
    poke $FF8D1F $00
script "P3 Refill Power Now!"  
on:
    poke $FF8D1F $90
script "P3 Drain Power Now!"  
on:
    poke $FF8D1F $00
script "P3 Never Get Dizzied"  
run:
    dpoke $FF8ECC $0028
script "P3 Always Get Dizzied When Hit"  
run:
    dpoke $FF8ECC $FAFA
script "P3 Never Get Guard Crushed"  
run:
    dpoke $FF8E4C $7000
script "P3 Always Get Guard Crushed When Blocking"  
run:
    dpoke $FF8E4C $1010
script "P3 Infinite Fireballs"  
run:
    poke $FF8E38 $00
script "P3 Never have use of Fireballs"  
run:
    poke $FF8E38 $01
script "P3 Infinite Taunts"  
run:
    poke $FF8CBC $01
script "P3 Infinite Air Special/Super moves"  
run:
    poke $FF8C31 $00
script "P3 Recalculate Damage When Hit"  
run:
    dpoke $FF8E5A $0303
script "P3 Always Be in Original Combo" \
 "comm:Activate only during an Original combo to get the afterimages!"  
on:
    temp0=peek($FF8CB9)
run:
    poke $FF8CB9 $01
off:
    poke $FF8CB9 temp0
script "P3 Infinite Time for Original Combo"  
run:
    poke $FF8CBB $9A
script "P3 Select Original Combo Afterimage Type" \
 "0x000F0005/LP+LK Combo"\
 "0x00300010/MP+MK Combo"\
 "0x0051001B/HP+HK Combo" 
run:
    lpoke $FF8EA6 param
script "P3 Select Control" \
 "comm:Disable this cheat if you use the Boss mode cheat below" \
 "0x00/User"\
 "0x01/CPU" 
run:
    poke $FF8D25 param
script "P3 Boss Mode" \
 "comm:Final Bison, etc"  
run:
    poke $FF8D24 $01
    if peek($FF8D59)==$01
      poke $FF8D25 $01
    endif
    if peek($FF8D59)==$00
      poke $FF8D25 $00
    endif
script " "  
script "Enable these Mode cheats on the Character Selection Screen."  
script " "  
script "P3 Enable Classical Mode Now!" \
 "comm:Alternative Ism. No gauges, air blocks, taunts etc."  
on:
    poke $FF8D5E $01
script "P3 Enable Mazi Mode Now!" \
 "comm:Greater damage inflicted, greater damage done. Only lose one round to lose."  
on:
    poke $FF8D5A $01
script "P3 Enable Saikyou Mode Now!" \
 "comm:Easy to get dizzy, slightly less damage done, rubbish!"  
on:
    poke $FF8D31 $01
script " "  
script "P3 Select ISM" \
 "comm:Enable only after selecting your ISM on the Character Selection screen" \
 "0x01/A-ISM"\
 "0x02/V-ISM"\
 "0x03/X-ISM"\
 "0x04/S-ISM" 
run:
    if (param==$01)
      poke $FF8D23 $00
      poke $FF8D32 $00
    endif
    if (param==$02)
      poke $FF8D23 $01
      poke $FF8D32 $01
    endif
    if (param==$03)
      poke $FF8D23 $FF
      poke $FF8D32 $FF
    endif
    if (param==$04)
      poke $FF8D23 $02
      poke $FF8D32 $00
    endif
script "P3 Select Character" \
 "comm:Free player selection - Use on the level VS screen." \
 "0x00/Ryu"\
 "0x01/Ken Masters"\
 "0x02/Akuma"\
 "0x03/Charlie"\
 "0x04/Chun-Li"\
 "0x05/Adon"\
 "0x06/Sodom"\
 "0x07/Guy"\
 "0x08/Birdie"\
 "0x09/Rose"\
 "0x0A/M. Bison"\
 "0x0B/Sagat"\
 "0x0C/Dan Hibiki"\
 "0x0D/Sakura Kasugano"\
 "0x0E/Rolento Schugerg"\
 "0x0F/Dhalsim"\
 "0x10/Zangief"\
 "0x11/Gen (Sou-ryuu stance)"\
 "0x13/#Gen (Ki-ryuu stance)"\
 "0x15/#Balrog"\
 "0x16/Cammy"\
 "0x18/Edmund Honda"\
 "0x19/Blanka"\
 "0x1A/Rainbow Mika Nanakawa"\
 "0x1B/Cody"\
 "0x1C/Vega"\
 "0x1D/Karin Kanzuki"\
 "0x1E/#Juli"\
 "0x1F/#Juni" 
run:
    poke $FF8D02 param
script " "  
script "P4 Infinite Energy"  
run:
    lpoke $FF9050 $00900090
script "P4 Drain All Energy Now!"  
on:
    lpoke $FF9050 $00000000
script "P4 Infinite Power"  
run:
    poke $FF911F $90
script "P4 No Power"  
run:
    poke $FF911F $00
script "P4 Refill Power Now!"  
on:
    poke $FF911F $90
script "P4 Drain Power Now!"  
on:
    poke $FF911F $00
script "P4 Never Get Dizzied"  
run:
    dpoke $FF92CC $0028
script "P4 Always Get Dizzied When Hit"  
run:
    dpoke $FF92CC $FAFA
script "P4 Never Get Guard Crushed"  
run:
    dpoke $FF924C $7000
script "P4 Always Get Guard Crushed When Blocking"  
run:
    dpoke $FF924C $1010
script "P4 Infinite Fireballs"  
run:
    poke $FF9238 $00
script "P4 Never have use of Fireballs"  
run:
    poke $FF9238 $01
script "P4 Infinite Taunts"  
run:
    poke $FF90BC $01
script "P4 Infinite Air Special/Super moves"  
run:
    poke $FF9031 $00
script "P4 Recalculate Damage When Hit"  
run:
    dpoke $FF925A $0303
script "P4 Always Be in Original Combo" \
 "comm:Activate only during an Original combo to get the afterimages!"  
on:
    temp0=peek($FF90B9)
run:
    poke $FF90B9 $01
off:
    poke $FF90B9 temp0
script "P4 Infinite Time for Original Combo"  
run:
    poke $FF90BB $9A
script "P4 Select Original Combo Afterimage Type" \
 "0x000F0005/LP+LK Combo"\
 "0x00300010/MP+MK Combo"\
 "0x0051001B/HP+HK Combo" 
run:
    lpoke $FF92A6 param
script "P4 Select Control" \
 "comm:Disable this cheat if you use the Boss mode cheat below" \
 "0x00/User"\
 "0x01/CPU" 
run:
    poke $FF9125 param
script "P4 Boss Mode" \
 "comm:Final Bison, etc"  
run:
    poke $FF9124 $01
    if peek($FF9159)==$01
      poke $FF9125 $01
    endif
    if peek($FF9159)==$00
      poke $FF9125 $00
    endif
script " "  
script "Enable these Mode cheats on the Character Selection Screen."  
script " "  
script "P4 Enable Classical Mode Now!" \
 "comm:Alternative Ism. No gauges, air blocks, taunts etc."  
on:
    poke $FF915E $01
script "P4 Enable Mazi Mode Now!" \
 "comm:Greater damage inflicted, greater damage done. Only lose one round to lose."  
on:
    poke $FF915A $01
script "P4 Enable Saikyou Mode Now!" \
 "comm:Easy to get dizzy, slightly less damage done, rubbish!"  
on:
    poke $FF9131 $01
script " "  
script "P4 Select ISM" \
 "comm:Enable only after selecting your ISM on the Character Selection screen" \
 "0x01/A-ISM"\
 "0x02/V-ISM"\
 "0x03/X-ISM"\
 "0x04/S-ISM" 
run:
    if (param==$01)
      poke $FF9123 $00
      poke $FF9132 $00
    endif
    if (param==$02)
      poke $FF9123 $01
      poke $FF9132 $01
    endif
    if (param==$03)
      poke $FF9123 $FF
      poke $FF9132 $FF
    endif
    if (param==$04)
      poke $FF9123 $02
      poke $FF9132 $00
    endif
script "P4 Select Character" \
 "comm:Free player selection - Use on the level VS screen." \
 "0x00/Ryu"\
 "0x01/Ken Masters"\
 "0x02/Akuma"\
 "0x03/Charlie"\
 "0x04/Chun-Li"\
 "0x05/Adon"\
 "0x06/Sodom"\
 "0x07/Guy"\
 "0x08/Birdie"\
 "0x09/Rose"\
 "0x0A/M. Bison"\
 "0x0B/Sagat"\
 "0x0C/Dan Hibiki"\
 "0x0D/Sakura Kasugano"\
 "0x0E/Rolento Schugerg"\
 "0x0F/Dhalsim"\
 "0x10/Zangief"\
 "0x11/Gen (Sou-ryuu stance)"\
 "0x13/#Gen (Ki-ryuu stance)"\
 "0x15/#Balrog"\
 "0x16/Cammy"\
 "0x18/Edmund Honda"\
 "0x19/Blanka"\
 "0x1A/Rainbow Mika Nanakawa"\
 "0x1B/Cody"\
 "0x1C/Vega"\
 "0x1D/Karin Kanzuki"\
 "0x1E/#Juli"\
 "0x1F/#Juni" 
run:
    poke $FF9102 param
script " "  
script "No Background Music"  
run:
    cpu audio
    dpoke $F018 $0000
    cpu main
script "Select Region" \
 "comm:This cheat sets the machine region - the effectiveness may vary! You have to enable this ASAP - ON or before the ROM check screen! Or enable + RESET" \
 "0x00/Japan"\
 "0x02/USA"\
 "0x04/Hispanic"\
 "0x06/Oceania"\
 "0x08/Asia"\
 "0x0A/Euro"\
 "0x0C/Brazil" 
run:
    poke $FF8091 param
