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(0x1D9A0,"PRESS START")
    poke(0x1B0B2,0x05) -- Restore initial value --
    poke(0x1B0C0,0x09)
    poke(0x3A4C,0x01)
    lpoke(0x147E,0x2B400064)
    lpoke(0x1496,0x1B400064)
    dpoke(0xDF76,0x3B40)
    dpoke(0x3102,0x13F4)
    lpoke(0x1474,0x2B400060)
    lpoke(0x148A,0x1B410060)
    poke(0xB8F73,0x28) -- Restore original HP function --
    poke(0xB9081,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)==0x2E94) and (peek(0xFF8001)==0x04) and (peek(0xFF8076)>0x00) and (peek(0xFF2020)==0x00) then
    poke(0xFF2000,0x00) -- Set Arcade Mode as default --
    lpoke(0x1474,0x00000000) -- Disable original start button --
    lpoke(0x148A,0x00000000)
    poke(0xFF2020,0x02)
end
-- Menu in the Title screen --
if (dpeek(0xFFBC9E)==0x2E94) 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(0x7082E6+i,0x001F) -- Text color --
    end
    for i=0,0x70,0x8 do
       dpoke(0x7082E2+i,0x20CC) -- Text y-location --
    end
    if (peek(0xFF2000)==0x00) then -- Arcade --
       for i=0,0x28,0x8 do
          dpoke(0x708308+i,0xE0E8+i) -- Text x-location --
       end
       for i=0,0x70,0x8 do
          dpoke(0x7082E4+i,0x6EA0) -- Remove Previous Text --
       end
       dpoke(0x70830C,0x6EC1)
       dpoke(0x708314,0x6ED2)
       dpoke(0x70831C,0x6EC3)
       dpoke(0x708324,0x6EC1)
       dpoke(0x70832C,0x6EC4)
       dpoke(0x708334,0x6EC5)
       lpoke(0x708358,0x00008000) -- For Gameover reutrn, set the end pointer for graphic ram --
    elseif (peek(0xFF2000)==0x01) then -- Versus --
       for i=0,0x28,0x8 do
          dpoke(0x708308+i,0xE0E8+i) -- Text x-location --
       end
       for i=0,0x70,0x8 do
          dpoke(0x7082E4+i,0x6EA0) -- Remove Previous Text --
       end
       dpoke(0x70830C,0x6ED6)
       dpoke(0x708314,0x6EC5)
       dpoke(0x70831C,0x6ED2)
       dpoke(0x708324,0x6ED3)
       dpoke(0x70832C,0x6ED5)
       dpoke(0x708334,0x6ED3)
    elseif (peek(0xFF2000)==0x02) then -- Training --
       for i=0,0x38,0x8 do
          dpoke(0x708300+i,0xE0E0+i) -- Text x-location --
       end
       for i=0,0x70,0x8 do
          dpoke(0x7082E4+i,0x6EA0) -- Remove Previous Text --
       end
       dpoke(0x708304,0x6ED4)
       dpoke(0x70830C,0x6ED2)
       dpoke(0x708314,0x6EC1)
       dpoke(0x70831C,0x6EC9)
       dpoke(0x708324,0x6ECE)
       dpoke(0x70832C,0x6EC9)
       dpoke(0x708334,0x6ECE)
       dpoke(0x70833C,0x6EC7)
    elseif (peek(0xFF2000)==0x03) then -- Survival --
       for i=0,0x38,0x8 do
          dpoke(0x708300+i,0xE0E0+i) -- Text x-location --
       end
       for i=0,0x70,0x8 do
          dpoke(0x7082E4+i,0x6EA0) -- Remove Previous Text --
       end
       dpoke(0x708304,0x6ED3)
       dpoke(0x70830C,0x6ED5)
       dpoke(0x708314,0x6ED2)
       dpoke(0x70831C,0x6ED6)
       dpoke(0x708324,0x6EC9)
       dpoke(0x70832C,0x6ED6)
       dpoke(0x708334,0x6EC1)
       dpoke(0x70833C,0x6ECC)
    elseif (peek(0xFF2000)==0x04) then -- Final Battle --
       for i=0,0x58,0x8 do
          dpoke(0x7082F0+i,0xE0D0+i) -- Text x-location --
       end
       dpoke(0x7082E4,0x6EA0)
       dpoke(0x7082EC,0x6EA0)
       dpoke(0x7082F4,0x6EC6)
       dpoke(0x7082FC,0x6EC9)
       dpoke(0x708304,0x6ECE)
       dpoke(0x70830C,0x6EC1)
       dpoke(0x708314,0x6ECC)
       dpoke(0x70831C,0x6EA0)
       dpoke(0x708324,0x6EC2)
       dpoke(0x70832C,0x6EC1)
       dpoke(0x708334,0x6ED4)
       dpoke(0x70833C,0x6ED4)
       dpoke(0x708344,0x6ECC)
       dpoke(0x70834C,0x6EC5)
       dpoke(0x708354,0x6EA0)
    elseif (peek(0xFF2000)==0x05) then -- Dramatic Battle --
       for i=0,0x70,0x8 do
          dpoke(0x7082E0+i,0xE0C0+i) -- Text x-location --
       end
       dpoke(0x7082E4,0x6EC4)
       dpoke(0x7082EC,0x6ED2)
       dpoke(0x7082F4,0x6EC1)
       dpoke(0x7082FC,0x6ECD)
       dpoke(0x708304,0x6EC1)
       dpoke(0x70830C,0x6ED4)
       dpoke(0x708314,0x6EC9)
       dpoke(0x70831C,0x6EC3)
       dpoke(0x708324,0x6EA0)
       dpoke(0x70832C,0x6EC2)
       dpoke(0x708334,0x6EC1)
       dpoke(0x70833C,0x6ED4)
       dpoke(0x708344,0x6ED4)
       dpoke(0x70834C,0x6ECC)
       dpoke(0x708354,0x6EC5)
    elseif (peek(0xFF2000)==0x06) then -- Option --
       for i=0,0x28,0x8 do
          dpoke(0x708308+i,0xE0E8+i) -- Text x-location --
       end
       for i=0,0x70,0x8 do
          dpoke(0x7082E4+i,0x6EA0) -- Remove Previous Text --
       end
       dpoke(0x70830C,0x6ECF)
       dpoke(0x708314,0x6ED0)
       dpoke(0x70831C,0x6ED4)
       dpoke(0x708324,0x6EC9)
       dpoke(0x70832C,0x6ECF)
       dpoke(0x708334,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(0x1474,0x2B400060)
    lpoke(0x148A,0x1B410060)
    if peek(0xFF2000)~=0x06 then
       dpoke(0x3102,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)==0x2E94) and (peek(0xFF80A8)>0x00) then -- Auto activate P1 & P2 --
       poke(0xFF80A8,0x03)
    end
    if (dpeek(0xFFBCE2)==0xB4EC) then
       if (peek(0xFF855B)==0x07) and (peek(0xFF895B)<0x07) then -- P1 finished selection first --
         poke(0x3A4C,0x05) -- Play music from P2 --
       end
       if (peek(0xFF895B)==0x07) and (peek(0xFF855B)<0x07) then -- P2 finished selection first --
         poke(0x3A4C,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)==0xB4EC) 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)==0x2E94) and (peek(0xFF80A8)>0x00) then -- Auto activate P1 & P2 --
       poke(0xFF80A8,0x03)
    end
    if (dpeek(0xFFBCE2)==0xB4EC) then
       if (peek(0xFF855B)==0x07) and (peek(0xFF895B)<0x07) then -- P1 as main player --
         poke(0x1B0B2,0x09) -- Switch control --
         poke(0x1B0C0,0x05)
         poke(0x3A4C,0x05) -- Play music from P2 --
       end
       if (peek(0xFF895B)==0x07) and (peek(0xFF855B)<0x07) then -- P2 as main player --
         poke(0x1B0B2,0x09) -- Switch control --
         poke(0x1B0C0,0x05)
         poke(0x3A4C,0x01) -- Play music from P1 --
       end
       if (peek(0xFF855B)==0x07) and (peek(0xFF895B)==0x07) then
         poke(0x1B0B2,0x05) -- Restore control --
         poke(0x1B0C0,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(0xB8F73,0x20) -- Disable original HP function --
       poke(0xB9081,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(0xB8F73,0x28) -- Restore original HP function --
         poke(0xB9081,0x2C)
         dpoke(0xFF2030,0x0000)
         poke(0x618001,0xFF) -- Remove sound --
         poke(0x618003,0x00)
         poke(0x61801F,0x00)
       end
    end
    if (dpeek(0xFFBCE2)==0xB4EC) 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)==0x2E94) 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(0x3102,0x0000) -- Disable some sound code --
       lpoke(0x147E,0x00000000) -- Disable original test button --
       lpoke(0x1496,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(0x147E,0x2B400064) -- Restore value --
       lpoke(0x1496,0x1B400064)
       poke(0xFF8064,0x00)
       poke(0xFF8091,0x02) -- English menu --
       dpoke(0xDF76,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)==0x2E94) and (peek(0xFF2004)==0x02) then
       poke(0xFF8091,region)
       lpoke(0x1474,0x00000000) -- Re-disable original start button --
       lpoke(0x148A,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(0x1D9A0,"INSERT COIN")
    poke(0x1B0B2,0x05)
    poke(0x1B0C0,0x09)
    poke(0x3A4C,0x01)
    lpoke(0x147E,0x2B400064)
    lpoke(0x1496,0x1B400064)
    dpoke(0xDF76,0x3B40)
    dpoke(0x3102,0x13F4)
    lpoke(0x1474,0x2B400060)
    lpoke(0x148A,0x1B410060)
    poke(0xB8F73,0x28) -- Restore original HP function --
    poke(0xB9081,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)==0xB4EC) 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)==0x2E94) 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(0x3A4C)==0x05) and (peek(0xFF2013)==0x01)) or ((peek(0x3A4C)==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($00B9E0)
run:
    poke $00B9E0 param
off:
    poke $00B9E0 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($00B9E1)
run:
    poke $00B9E1 param
off:
    poke $00B9E1 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($00B9E2)
run:
    poke $00B9E2 param
off:
    poke $00B9E2 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($00B9E3)
run:
    poke $00B9E3 param
off:
    poke $00B9E3 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($00B9E8)
run:
    poke $00B9E8 param
off:
    poke $00B9E8 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($00B9E9)
run:
    poke $00B9E9 param
off:
    poke $00B9E9 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 "Select Normal and Survival Mode cheats on the Character Selection"
script "Screen. Select Final Battle Mode cheat after ISM Selection Screen."
script "They may work for different players configs."
script " "
script "P1 Select Mode" \
 "0x00/Normal Mode"\
 "0xFF/Survival Mode"\
 "0x01/Final Battle Mode"
change:
    if (param==$00)or(param==$FF)
      poke $FF854B param
    endif
    if (param==$01)
      poke $FF8111 param
      lpoke $FF8540 $FFFFFFFF
      poke $FF8549 $FF
    endif
script "P2 Select Mode" \
 "0x00/Normal Mode"\
 "0xFF/Survival Mode"\
 "0x01/Final Battle Mode"
change:
    if (param==$00)or(param==$FF)
      poke $FF894B param
    endif
    if (param==$01)
      poke $FF8111 param
      lpoke $FF8940 $FFFFFFFF
      poke $FF8949 $FF
    endif
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 $F026 $0000
    cpu main
script "Hide Background"
on:
    temp0=peek($FF8033)
    temp1=dpeek($00958C)
    temp2=lpeek($00958E)
run:
    poke $FF8033 temp0
    dpoke $00958C temp1
    lpoke $00958E temp2
    if (dpeek($FF8109)!=$0andlpeek($FF810C)==$0)
      poke $FF8033 $0
      dpoke $FFD600 $0
      dpoke $FFD800 $0
      dpoke $FFDA00 $0
      dpoke $FFDC00 $0
      dpoke $FFF1C0 $0
      dpoke $00958C $4E71
      lpoke $00958E $4E714E71
    endif
off:
    poke $FF8033 temp0
    dpoke $00958C temp1
    lpoke $00958E temp2
