luascript "Console Mode [lua]" \
 "comm:On the title screen, press up or down to select modes. 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(0xFF4C75)==0x00) then
    dpoke(0xFF4C7C,0x0109) -- 1 coin 9 credit --
    poke(0x54D0,"PRESS START")
    poke(0xDB5,0x2B) -- Restore initial value --
    poke(0xDC5,0x2D)
    poke(0xDBD,0x2A)
    poke(0xDDB,0x2C)
    lpoke(0xD9A,0x1B40CC2E) -- Restore start button --
    dpoke(0xD48,0x13FC) -- Restore music code --
    if (peek(0x804020)==0xFE) or (peek(0x804020)==0xFD) then -- Start button start --
      poke(0xFF0010,0x01)
    end
    if (peek(0x804020)==0xFF) and (peek(0xFF0010)==0x01) then -- Start button start cont. --
      poke(0xFF0010,0x00)
      poke(0xFF4C75,0x09) -- Max Credit --
    end
end
-- Menu in the Title screen --
if (peek(0xFF4C80)==0xFF) and (dpeek(0xFF4900)==0x0000) and (peek(0xFF4C75)>0x00) then
   if (peek(0xFF1002)==0x00) then
      lpoke(0xD9A,0x00000000) -- Disable original start button --
      poke(0xFF4C75,0x09) -- Max Credit --
   end
   if (lpeek(0xD9A)==0x00000000) and (peek(0xFF1002)==0x00) then
      if (peek(0x804020)==0xFD) or (peek(0x804020)==0xFE) then
         poke(0x618001,0x00) -- sound effect --
         poke(0x618003,0x80)
         poke(0x61801F,0x00)
         poke(0xFF1002,0x01)
      end
   end
   if (peek(0xFF1002)==0x01) and (peek(0x804020)==0xFF) then
      region=peek(0xFF4C8F)
      poke(0xFF1002,0x02)
   end
   if (peek(0xFF1002)>=0x01) then
      poke(0xFFFBBA,0x00) -- Remove original text --
      poke(0xFF4C3F,0x60) -- Text on top layer --
      lpoke(0x9144A0,0xF429FFFF) -- Text Colour 1 --
      lpoke(0x9144A4,0xFFD7FFEA)
      lpoke(0x9144A8,0xFFEAFFD7)
      lpoke(0x9144AC,0xFF64FF41)
      lpoke(0x9144C0,0xF028FFFF) -- Text Color 2 --
      lpoke(0x9144C4,0xFFFFFDDD)
      lpoke(0x9144C8,0xFCCCFBBB)
      lpoke(0x9144CC,0xFAAAF999)
       lpoke(0x908D64,0x00200000+peek(0xFF1020)) -- Arcade Mode --
       lpoke(0x908DE4,0x00410000+peek(0xFF1020))
       lpoke(0x908E64,0x00520000+peek(0xFF1020))
       lpoke(0x908EE4,0x00430000+peek(0xFF1020))
       lpoke(0x908F64,0x00410000+peek(0xFF1020))
       lpoke(0x908FE4,0x00440000+peek(0xFF1020))
       lpoke(0x909064,0x00450000+peek(0xFF1020))
       lpoke(0x9090E4,0x00200000+peek(0xFF1020))
       lpoke(0x909164,0x004D0000+peek(0xFF1020))
       lpoke(0x9091E4,0x004F0000+peek(0xFF1020))
       lpoke(0x909264,0x00440000+peek(0xFF1020))
       lpoke(0x9092E4,0x00450000+peek(0xFF1020))
       lpoke(0x909364,0x00200000+peek(0xFF1020))
       lpoke(0x908D68,0x00200000+peek(0xFF1021)) -- VS Mode --
       lpoke(0x908DE8,0x00560000+peek(0xFF1021))
       lpoke(0x908E68,0x00450000+peek(0xFF1021))
       lpoke(0x908EE8,0x00520000+peek(0xFF1021))
       lpoke(0x908F68,0x00530000+peek(0xFF1021))
       lpoke(0x908FE8,0x00550000+peek(0xFF1021))
       lpoke(0x909068,0x00530000+peek(0xFF1021))
       lpoke(0x9090E8,0x00200000+peek(0xFF1021))
       lpoke(0x909168,0x004D0000+peek(0xFF1021))
       lpoke(0x9091E8,0x004F0000+peek(0xFF1021))
       lpoke(0x909268,0x00440000+peek(0xFF1021))
       lpoke(0x9092E8,0x00450000+peek(0xFF1021))
       lpoke(0x909368,0x00200000+peek(0xFF1021))
       lpoke(0x908D6C,0x00540000+peek(0xFF1022)) -- Training Mode --
       lpoke(0x908DEC,0x00520000+peek(0xFF1022))
       lpoke(0x908E6C,0x00410000+peek(0xFF1022))
       lpoke(0x908EEC,0x00490000+peek(0xFF1022))
       lpoke(0x908F6C,0x004E0000+peek(0xFF1022))
       lpoke(0x908FEC,0x00490000+peek(0xFF1022))
       lpoke(0x90906C,0x004E0000+peek(0xFF1022))
       lpoke(0x9090EC,0x00470000+peek(0xFF1022))
       lpoke(0x90916C,0x00200000+peek(0xFF1022))
       lpoke(0x9091EC,0x004D0000+peek(0xFF1022))
       lpoke(0x90926C,0x004F0000+peek(0xFF1022))
       lpoke(0x9092EC,0x00440000+peek(0xFF1022))
       lpoke(0x90936C,0x00450000+peek(0xFF1022))
       lpoke(0x908D70,0x00200000+peek(0xFF1023)) -- Option Mode --
       lpoke(0x908DF0,0x004F0000+peek(0xFF1023))
       lpoke(0x908E70,0x00500000+peek(0xFF1023))
       lpoke(0x908EF0,0x00540000+peek(0xFF1023))
       lpoke(0x908F70,0x00490000+peek(0xFF1023))
       lpoke(0x908FF0,0x004F0000+peek(0xFF1023))
       lpoke(0x909070,0x004E0000+peek(0xFF1023))
       lpoke(0x9090F0,0x00200000+peek(0xFF1023))
       lpoke(0x909170,0x004D0000+peek(0xFF1023))
       lpoke(0x9091F0,0x004F0000+peek(0xFF1023))
       lpoke(0x909270,0x00440000+peek(0xFF1023))
       lpoke(0x9092F0,0x00450000+peek(0xFF1023))
       lpoke(0x909370,0x00200000+peek(0xFF1023))
         if (peek(0xFF1000)==0x00) then -- Arcade Mode Pointer --
            poke(0xFF1020,0x06)
            poke(0xFF1021,0x05)
            poke(0xFF1022,0x05)
            poke(0xFF1023,0x05)
         elseif (peek(0xFF1000)==0x01) then -- Versus Mode Pointer --
            poke(0xFF1020,0x05)
            poke(0xFF1021,0x06)
            poke(0xFF1022,0x05)
            poke(0xFF1023,0x05)
         elseif (peek(0xFF1000)==0x02) then -- Training Mode Pointer --
            poke(0xFF1020,0x05)
            poke(0xFF1021,0x05)
            poke(0xFF1022,0x06)
            poke(0xFF1023,0x05)
         elseif (peek(0xFF1000)==0x03) then -- Option Mode Pointer --
            poke(0xFF1020,0x05)
            poke(0xFF1021,0x05)
            poke(0xFF1022,0x05)
            poke(0xFF1023,0x06)
         end
   end
   if (peek(0xFF1002)==0x02) then
       if ((peek(0xFF4C2B)==0x00) and (peek(0xFF4C2D)==0x00)) and (peek(0xFF1001)==0xFF) then
         poke(0xFF1001,0x00)
         poke(0xFF1024,0x00) -- Act as music 'stopper' --
       end
       if (peek(0xFF4C2B)==0x04) or (peek(0xFF4C2D)==0x04) then
          if peek(0xFF1024)==0x00 then -- Sound effect --
             poke(0x618001,0x00)
             poke(0x618003,0x84)
             poke(0x61801F,0x00)
             poke(0xFF1024,0xFF)
          end
          if (dpeek(0xFF1000)==0x0000) then
            dpoke(0xFF1000,0x01FF)
          elseif (dpeek(0xFF1000)==0x0100) then
            dpoke(0xFF1000,0x02FF)
          elseif (dpeek(0xFF1000)==0x0200) then
            dpoke(0xFF1000,0x03FF)
          elseif (dpeek(0xFF1000)==0x0300) then
            dpoke(0xFF1000,0x00FF)
          end
       end
       if (peek(0xFF4C2B)==0x08) or (peek(0xFF4C2D)==0x08) then
          if peek(0xFF1024)==0x00 then -- Sound effect --
             poke(0x618001,0x00)
             poke(0x618003,0x84)
             poke(0x61801F,0x00)
             poke(0xFF1024,0xFF)
          end
          if (dpeek(0xFF1000)==0x0000) then
            dpoke(0xFF1000,0x03FF)
          elseif (dpeek(0xFF1000)==0x0300) then
            dpoke(0xFF1000,0x02FF)
          elseif (dpeek(0xFF1000)==0x0200) then
            dpoke(0xFF1000,0x01FF)
          elseif (dpeek(0xFF1000)==0x0100) then
            dpoke(0xFF1000,0x00FF)
          end
       end
       if (peek(0x804020)==0xFD) or (peek(0x804020)==0xFE) then
          dpoke(0xD48,0x0000) -- Disable music code --
          if (peek(0xFF1000)~=0x03) then
             poke(0x618001,0x00) -- sound effect 1 --
             poke(0x618003,0x91)
             poke(0x61801F,0x00)
          end
          if (peek(0xFF1000)==0x03) then
             poke(0x618001,0x00) -- sound effect --
             poke(0x618003,0x83)
             poke(0x61801F,0x00)
          end
          poke(0xFF1002,0x03)
          lpoke(0xD9A,0x1B40CC2E) -- Restore start button --
       end
   end
   if (peek(0x618003)==0x4F) and (peek(0xFF1000)==0x03) then -- When return from option --
      dpoke(0xD48,0x0000) -- Disable music code --
   end
end
if (peek(0xFF4900)==0x01) and (peek(0xFF1002)==0x03) then
   poke(0xFF1002,0x00)
   if (peek(0xFF1000)~=0x03) then
      dpoke(0xD48,0x13FC) -- Restore music code --
      poke(0x618001,0x00) -- sound effect 2 --
      poke(0x618003,0x83)
      poke(0x61801F,0x00)
   end
end
-- Infinity Credits --
if (peek(0xFF4905)==0x04) then
    poke(0xFF4C75,0x09)
end
-- Versus Mode Script --
if (peek(0xFF1000)==0x01) then
    if (peek(0xFF4905)==0x04) and (peek(0xFF4901)>0x00) then -- Activate 1P & 2P --
     poke(0xFF4901,0x03)
      poke(0xFF4924,0x03)
      poke(0xFF3803,0x01)
      poke(0xFF3C03,0x01)
      if (peek(0xFF4980)==0x0A) and (peek(0xFF49A0)<0x0A) then -- Stage music --
         poke(0xFF4903,0x02)
      end
      if (peek(0xFF49A0)==0x0A) and (peek(0xFF4980)<0x0A) then
         poke(0xFF4903,0x01)
      end
    end
    if (peek(0xFF4905)>=0x0A) then -- Prevent cont. text & preparation --
      poke(0xFF4901,0x03)
      poke(0xFF4924,0x03)
      poke(0xFF3A90,0x00)
      poke(0xFF3E90,0x00)
      poke(0xFF3803,0x01)
      poke(0xFF3C03,0x01)
      poke(0xFF1003,0x01)
    end
    if (peek(0xFF4905)==0x10) then -- For draw game case --
       poke(0xFF4901,0x03)
       poke(0xFF4905,0x00)
    end
    if (peek(0xFF4905)==0x04) and (peek(0xFF1003)==0x01) then -- Return to char screen --
      poke(0xFF4905,0x00)
      poke(0xFF1003,0x00)
      poke(0xFF4903,0x00)
    end
end
-- Training Mode Script --
if (peek(0xFF1000)==0x02) then
    if (peek(0xFF4905)==0x04) and (peek(0xFF4901)>0x00) then -- Activate 1P & 2P --
    poke(0xFF4901,0x03)
    poke(0xFF4924,0x03)
    poke(0xFF3803,0x01)
    poke(0xFF3C03,0x01)
    end
    if (peek(0xFF4905)==0x04) then
      if ((peek(0xFF4980)==0x09) and (peek(0xFF49A0)<0x09)) or ((peek(0xFF49A0)==0x09) and (peek(0xFF4980)<0x09)) then -- Switching control --
      poke(0xDB5,0x2D)
      poke(0xDC5,0x2B)
      poke(0xDBD,0x2C)
      poke(0xDDB,0x2A)
      end
      if (peek(0xFF4980)==0x0A) and (peek(0xFF49A0)==0x0A) then -- Restoring control --
      poke(0xDB5,0x2B)
      poke(0xDC5,0x2D)
      poke(0xDBD,0x2A)
      poke(0xDDB,0x2C)
      end
      if (peek(0xFF4980)==0x0A) and (peek(0xFF49A0)<0x0A) then
      poke(0xFF4903,0x02)
      end
      if (peek(0xFF49A0)==0x0A) and (peek(0xFF4980)<0x0A) then
      poke(0xFF4903,0x01)
      end
    end
   if (peek(0xFF4800)>=0x02) then
      poke(0xFF4809,0x28) -- Other battle parameters --
      poke(0xFF3A54,0x03)
      poke(0xFF4254,0x03)
      poke(0xFF3E54,0x03)
      poke(0xFF4654,0x03)
   end
   if (peek(0xFF4800)==0x08) and (peek(0xFF4807)>0x30) then
      poke(0xFF3A51,0xFF) -- Increase HP before start --
      poke(0xFF3E51,0xFF)
      poke(0xFF4251,0xFF)
      poke(0xFF4651,0xFF)
      lpoke(0xFF1040,0x00000000) -- Restore value --
   end
   if (peek(0xFF4800)==0x08) then
   -- HP recovery for 1P 1st character --
      poke(0xFFFD9B,peek(0xFF3A51)-0x71)
      if (peek(0xFF3A51)<0x71) then
         dpoke(0xFFFD9A,0x0000)
         poke(0xFF3A5B,0x01)
         poke(0xFF1040,0x01)
      end
      if (peek(0x804020)==0xFD) and (peek(0xFF3A51)~=0xFF) then
         poke(0xFF1040,0x02)
      end
      if ((peek(0xFF1040)==0x01) and (peek(0xFF3A51)<0xFF) and (peek(0xFF3807)==0x00)) or (peek(0xFF1040)==0x02) then
         poke(0xFF3A51,peek(0xFF3A51)+0x1)
      end
      if (peek(0xFF3A51)==0xFF) then
         poke(0xFF1040,0x00)
         poke(0xFF3A5B,0x90)
      end
   -- HP recovery for 2P 1st character --
      poke(0xFFFE3B,peek(0xFF3E51)-0x71)
      if (peek(0xFF3E51)<0x71) then
         dpoke(0xFFFE3A,0x0000)
         poke(0xFF3E5B,0x01)
         poke(0xFF1041,0x01)
      end
      if (peek(0x804020)==0xFE) and (peek(0xFF3E51)~=0xFF) then
         poke(0xFF1041,0x02)
      end
      if ((peek(0xFF1041)==0x01) and (peek(0xFF3E51)<0xFF) and (peek(0xFF3C07)==0x00)) or (peek(0xFF1041)==0x02) then
         poke(0xFF3E51,peek(0xFF3E51)+0x1)
      end
      if (peek(0xFF3E51)==0xFF) then
         poke(0xFF1041,0x00)
         poke(0xFF3E5B,0x90)
      end
   -- HP recovery for 1P 2nd character --
      poke(0xFFFDEB,peek(0xFF4251)-0x71)
      if (peek(0xFF4251)<0x71) then
         dpoke(0xFFFDEA,0x0000)
         poke(0xFF425B,0x01)
         poke(0xFF1042,0x01)
      end
      if (peek(0x804020)==0xFD) and (peek(0xFF4251)~=0xFF) then
         poke(0xFF1042,0x02)
      end
      if ((peek(0xFF1042)==0x01) and (peek(0xFF4251)<0xFF) and (peek(0xFF4007)==0x00)) or (peek(0xFF1042)==0x02) then
         poke(0xFF4251,peek(0xFF4251)+0x1)
      end
      if (peek(0xFF4251)==0xFF) then
         poke(0xFF1042,0x00)
         poke(0xFF425B,0x90)
      end
   -- HP recovery for 2P 2nd character --
      poke(0xFFFE8B,peek(0xFF4651)-0x71)
      if (peek(0xFF4651)<0x71) then
         dpoke(0xFFFE8A,0x0000)
         poke(0xFF465B,0x01)
         poke(0xFF1043,0x01)
      end
      if (peek(0x804020)==0xFE) and (peek(0xFF4651)~=0xFF) then
         poke(0xFF1043,0x02)
      end
      if ((peek(0xFF1043)==0x01) and (peek(0xFF4651)<0xFF) and (peek(0xFF4407)==0x00)) or (peek(0xFF1043)==0x02) then
         poke(0xFF4651,peek(0xFF4651)+0x1)
      end
      if (peek(0xFF4651)==0xFF) then
         poke(0xFF1043,0x00)
         poke(0xFF465B,0x90)
      end
   -- HP recovery when switching character --
      if (dpeek(0xFFFDAA)==0xFFFE) then -- P1 switching --
         poke(0xFF3A51,0xFF)
         poke(0xFF4251,0xFF)
      end
      if (dpeek(0xFFFE4A)==0xFFFE) then -- P2 switching --
         poke(0xFF3E51,0xFF)
         poke(0xFF4651,0xFF)
      end
   -- Return to char screen --
      if (peek(0xFF4906)==0x10) and ((peek(0xFF4C2E)==0x01) or (peek(0xFF4C2E)==0x02)) then
         poke(0xFF4906,0x00)
         poke(0xFF4905,0x00)
         poke(0xFF4903,0x00)
      end
   end
end
-- Option Mode Script --
if (peek(0xFF1000)==0x03) then
   if (peek(0xFF4901)>0x00) then
      poke(0xFF4C2F,0xFF)
      poke(0xFF4C8F,0x02) -- English menu --
      poke(0xFF1003,0x01)
   end
   if (peek(0xFF4C80)~=0xFF) and (dpeek(0xFF4900)==0x0000) and (peek(0xFF1003)==0x01) then -- Restart --
      poke(0xFF4C75,0x09) -- Increase credit --
      poke(0xFF042B,0x00) -- Shorten wait time --
      poke(0xFF082B,0x00)
      poke(0xFF0C2B,0x00)
      poke(0xFF4C52,0x00) -- Hide text --
      poke(0xFF4C8F,region)
   end
   if (peek(0xFF4C80)==0xFF) and (dpeek(0xFF4900)==0x0000) and (peek(0xFF1003)==0x01) then -- Restore --
      poke(0xFF4C52,0x06)
      poke(0xFF1003,0x02)
      poke(0xFF1002,0x02) -- Menu screen --
      lpoke(0xD9A,0x00000000) -- Disable original start button --
   end
end
-- Pause Function Script --
    if (peek(0xFF4800)==0x08) and (peek(0xFF4901)>0x00) then
       if (peek(0xFF4C2E)==0x00) then
       poke(0xFF1002,0x00)
       end
       if (peek(0xFF4906)==0x00) and ((peek(0xFF4C2E)==0x10) or (peek(0xFF4C2E)==0x20)) and (peek(0xFF1002)==0x00) then
       poke(0xFF4906,0x10)
       poke(0xFF1002,0xFF)
       end
       if (peek(0xFF4906)==0x10) and ((peek(0xFF4C2E)==0x10) or (peek(0xFF4C2E)==0x20)) and (peek(0xFF1002)==0x00) then
       poke(0xFF4906,0x00)
       poke(0xFF1002,0xFF)
       end
    end
off:
    poke(0x54D0,"INSERT COIN")
    poke(0xDB5,0x2B)
    poke(0xDC5,0x2D)
    poke(0xDBD,0x2A)
    poke(0xDDB,0x2C)
    lpoke(0xD9A,0x1B40CC2E) -- Restore start button --
    dpoke(0xD48,0x13FC) -- Restore music code --

luascript "Enable Hidden Characters [lua]" \
 "comm:Hack like PS ver. Press start once or twice on Akuma to select bosses. 
Press start on some of the characters to select hidden characters."
run:
if (peek(0xFF4905)==0x04) then
  poke(0xCD,0x01) -- Enable Norimaro --
  if (peek(0xDB5)==0x2B) then -- For normal case --
    if (peek(0xFF4C2E)==0x01) or (peek(0xFF4C2E)==0x03) then -- P1 press start? --
      poke(0xFF1010,0x01)
    end
    if (peek(0xFF4C2E)==0x00) or (peek(0xFF4C2E)==0x02) then -- P1 Button resumer --
      dpoke(0xFF1010,0x0000)
    end
    if (peek(0xFF4C2E)==0x02) or (peek(0xFF4C2E)==0x03) then -- P2 press start? --
      poke(0xFF1012,0x01)
    end
    if (peek(0xFF4C2E)==0x00) or (peek(0xFF4C2E)==0x01) then -- P2 Button resumer --
      dpoke(0xFF1012,0x0000)
    end
  end
  if (peek(0xDB5)==0x2D) then -- For practice mode, when control is switched --
    if (peek(0xFF4C2E)==0x01) or (peek(0xFF4C2E)==0x03) then -- P1 press start? --
      poke(0xFF1012,0x01)
    end
    if (peek(0xFF4C2E)==0x00) or (peek(0xFF4C2E)==0x02) then -- P1 Button resumer --
      dpoke(0xFF1012,0x0000)
    end
    if (peek(0xFF4C2E)==0x02) or (peek(0xFF4C2E)==0x03) then -- P2 press start? --
      poke(0xFF1010,0x01)
    end
    if (peek(0xFF4C2E)==0x00) or (peek(0xFF4C2E)==0x01) then -- P2 Button resumer --
      dpoke(0xFF1010,0x0000)
    end
  end
  if (peek(0xFF4980)==0x01) then -- P1 1st char --
    if (peek(0xFF3853)==0x1E) and (dpeek(0xFF1010)==0x0100) then -- P1 Mech-Akuma --
      poke(0xFF3853,0x26)
      poke(0xFF1011,0xFF)
    end
    if (peek(0xFF3853)==0x26) and (dpeek(0xFF1010)==0x0100) then -- P1 Apocalypse --
      poke(0xFF3853,0x00)
      poke(0xFF1011,0xFF)
    end
    if (peek(0xFF3853)==0x00) and (dpeek(0xFF1010)==0x0100) then -- P1 Akuma Return --
      poke(0xFF3853,0x1E)
      poke(0xFF1011,0xFF)
    end
    if (peek(0xFF3853)==0x10) and (peek(0xFF1010)==0x01) then -- P1 1st Mech-Zangief --
      poke(0xFF3853,0x28)
    end
    if (peek(0xFF3853)==0x28) and (peek(0xFF1010)==0x00) then -- P1 1st Blackheart Return --
      poke(0xFF3853,0x10)
    end
    if (peek(0xFF3853)==0x06) and (peek(0xFF1010)==0x01) then -- P1 1st Sunburned Sakura --
      poke(0xFF3853,0x2A)
    end
    if (peek(0xFF3853)==0x2A) and (peek(0xFF1010)==0x00) then -- P1 1st Hulk Return --
      poke(0xFF3853,0x06)
    end
    if (peek(0xFF3853)==0x18) and (peek(0xFF1010)==0x01) then -- P1 1st Shadow --
      poke(0xFF3853,0x2C)
    end
    if (peek(0xFF3853)==0x2C) and (peek(0xFF1010)==0x00) then -- P1 1st Dhalsim Return --
      poke(0xFF3853,0x18)
    end
    if (peek(0xFF3853)==0x1C) and (peek(0xFF1010)==0x01) then -- P1 1st US Agent --
      poke(0xFF3853,0x2E)
    end
    if (peek(0xFF3853)==0x2E) and (peek(0xFF1010)==0x00) then -- P1 1st Bison Return --
      poke(0xFF3853,0x1C)
    end
    if (peek(0xFF3853)==0x0C) and (peek(0xFF1010)==0x01) then -- P1 1st Mephisto --
      poke(0xFF3853,0x30)
    end
    if (peek(0xFF3853)==0x30) and (peek(0xFF1010)==0x00) then -- P1 1st Omega Red Return --
      poke(0xFF3853,0x0C)
    end
    if (peek(0xFF3853)==0x0E) and (peek(0xFF1010)==0x01) then -- P1 1st Armor Spider Man --
      poke(0xFF3853,0x32)
    end
    if (peek(0xFF3853)==0x32) and (peek(0xFF1010)==0x00) then -- P1 1st Spider Man Return --
      poke(0xFF3853,0x0E)
    end
  end
  if (peek(0xFF4980)==0x02) and (peek(0xFF3853)==0x26) then -- P1 Automatic 2nd place for Cyber-Akuma --
    poke(0xFF4053,0x26)
    poke(0xFF48B3,0x26)
    poke(0xFF4985,0x06)
  end
  if (peek(0xFF4980)>=0x02) and (peek(0xFF3853)==0x26) then -- P1 Cyber-Akuma, fix change in colour after select --
    if (peek(0xFF3A57)==0x00) then -- Normal colour --
       lpoke(0x914340,0xF000FFFF)
       lpoke(0x914344,0xF9EDF6CC)
       lpoke(0x914348,0xF5ADF48C)
       lpoke(0x91434C,0xF45AF348)
       lpoke(0x914350,0xF236F123)
       lpoke(0x914354,0xFF99FD53)
       lpoke(0x914358,0xFC00F900)
       lpoke(0x91435C,0xF500F002)
    end
    if (peek(0xFF3A57)==0x01) then -- Alt. colour --
       lpoke(0x914340,0xF000FFFF)
       lpoke(0x914344,0xFDDDFCBB)
       lpoke(0x914348,0xFA9AF878)
       lpoke(0x91434C,0xF756F533)
       lpoke(0x914350,0xF312F201)
       lpoke(0x914354,0xF49DF37A)
       lpoke(0x914358,0xF258F245)
       lpoke(0x91435C,0xF123F005)
    end
  end
  if (peek(0xFF3853)==0x26) and (peek(0xFF3A57)==0x01) then -- P1 Automatic color for 2nd Cyber-Akuma --
    poke(0xFF4257,0x01)
  end
  if (peek(0xFF4980)==0x02) and (peek(0xFF3853)==0x00) then -- P1 Automatic 2nd place for Apocalypse --
    poke(0xFF4053,0x00)
    poke(0xFF48B3,0x00)
    poke(0xFF4985,0x06)
  end
  if (peek(0xFF4980)==0x03) then -- P1 2nd char --
    if (peek(0xFF4053)==0x10) and (peek(0xFF1010)==0x01) then -- P1 2nd Mech-Zangief --
      poke(0xFF4053,0x28)
    end
    if (peek(0xFF4053)==0x28) and (peek(0xFF1010)==0x00) then -- P1 2nd Blackheart Return --
      poke(0xFF4053,0x10)
    end
    if (peek(0xFF4053)==0x06) and (peek(0xFF1010)==0x01) then -- P1 2nd Sunburned Sakura --
      poke(0xFF4053,0x2A)
    end
    if (peek(0xFF4053)==0x2A) and (peek(0xFF1010)==0x00) then -- P1 2nd Hulk Return --
      poke(0xFF4053,0x06)
    end
    if (peek(0xFF4053)==0x18) and (peek(0xFF1010)==0x01) then -- P1 2nd Shadow --
      poke(0xFF4053,0x2C)
    end
    if (peek(0xFF4053)==0x2C) and (peek(0xFF1010)==0x00) then -- P1 2nd Dhalsim Return --
      poke(0xFF4053,0x18)
    end
    if (peek(0xFF4053)==0x1C) and (peek(0xFF1010)==0x01) then -- P1 2nd US Agent --
      poke(0xFF4053,0x2E)
    end
    if (peek(0xFF4053)==0x2E) and (peek(0xFF1010)==0x00) then -- P1 2nd Bison Return --
      poke(0xFF4053,0x1C)
    end
    if (peek(0xFF4053)==0x0C) and (peek(0xFF1010)==0x01) then -- P1 2nd Mephisto --
      poke(0xFF4053,0x30)
    end
    if (peek(0xFF4053)==0x30) and (peek(0xFF1010)==0x00) then -- P1 2nd Omega Red Return --
      poke(0xFF4053,0x0C)
    end
    if (peek(0xFF4053)==0x0E) and (peek(0xFF1010)==0x01) then -- P1 2nd Armor Spider Man --
      poke(0xFF4053,0x32)
    end
    if (peek(0xFF4053)==0x32) and (peek(0xFF1010)==0x00) then -- P1 2nd Spider Man Return --
      poke(0xFF4053,0x0E)
    end
  end
  if (peek(0xFF49A0)==0x01) then -- P2 1st char --
    if (peek(0xFF3C53)==0x1E) and (dpeek(0xFF1012)==0x0100) then -- P2 Mech-Akuma --
      poke(0xFF3C53,0x26)
      poke(0xFF1013,0xFF)
    end
    if (peek(0xFF3C53)==0x26) and (dpeek(0xFF1012)==0x0100) then -- P2 Apocalypse --
      poke(0xFF3C53,0x00)
      poke(0xFF1013,0xFF)
    end
    if (peek(0xFF3C53)==0x00) and (dpeek(0xFF1012)==0x0100) then -- P2 Akuma Return --
      poke(0xFF3C53,0x1E)
      poke(0xFF1013,0xFF)
    end
    if (peek(0xFF3C53)==0x10) and (peek(0xFF1012)==0x01) then -- P2 1st Mech-Zangief --
      poke(0xFF3C53,0x28)
    end
    if (peek(0xFF3C53)==0x28) and (peek(0xFF1012)==0x00) then -- P2 1st Blackheart Return --
      poke(0xFF3C53,0x10)
    end
    if (peek(0xFF3C53)==0x06) and (peek(0xFF1012)==0x01) then -- P2 1st Sunburned Sakura --
      poke(0xFF3C53,0x2A)
    end
    if (peek(0xFF3C53)==0x2A) and (peek(0xFF1012)==0x00) then -- P2 1st Hulk Return --
      poke(0xFF3C53,0x06)
    end
    if (peek(0xFF3C53)==0x18) and (peek(0xFF1012)==0x01) then -- P2 1st Shadow --
      poke(0xFF3C53,0x2C)
    end
    if (peek(0xFF3C53)==0x2C) and (peek(0xFF1012)==0x00) then -- P2 1st Dhalsim Return --
      poke(0xFF3C53,0x18)
    end
    if (peek(0xFF3C53)==0x1C) and (peek(0xFF1012)==0x01) then -- P1 US Agent --
      poke(0xFF3C53,0x2E)
    end
    if (peek(0xFF3C53)==0x2E) and (peek(0xFF1012)==0x00) then -- P2 1st Bison Return --
      poke(0xFF3C53,0x1C)
    end
    if (peek(0xFF3C53)==0x0C) and (peek(0xFF1012)==0x01) then -- P2 1st Mephisto --
      poke(0xFF3C53,0x30)
    end
    if (peek(0xFF3C53)==0x30) and (peek(0xFF1012)==0x00) then -- P2 1st Omega Red Return --
      poke(0xFF3C53,0x0C)
    end
    if (peek(0xFF3C53)==0x0E) and (peek(0xFF1012)==0x01) then -- P2 1st Armor Spider Man --
      poke(0xFF3C53,0x32)
    end
    if (peek(0xFF3C53)==0x32) and (peek(0xFF1012)==0x00) then -- P2 1st Spider Man Return --
      poke(0xFF3C53,0x0E)
    end
  end
  if (peek(0xFF49A0)==0x02) and (peek(0xFF3C53)==0x26) then -- P2 Automatic 2nd place for Cyber-Akuma --
    poke(0xFF4453,0x26)
    poke(0xFF48B7,0x26)
    poke(0xFF49A5,0x06)
  end
  if (peek(0xFF49A0)>=0x02) and (peek(0xFF3C53)==0x26) then -- P2 Cyber-Akuma, fix change in colour after select --
    if (peek(0xFF3E57)==0x00) then -- Normal colour --
       lpoke(0x9143C0,0xF000FFFF)
       lpoke(0x9143C4,0xF9EDF6CC)
       lpoke(0x9143C8,0xF5ADF48C)
       lpoke(0x9143CC,0xF45AF348)
       lpoke(0x9143D0,0xF236F123)
       lpoke(0x9143D4,0xFF99FD53)
       lpoke(0x9143D8,0xFC00F900)
       lpoke(0x9143DC,0xF500F002)
    end
    if (peek(0xFF3E57)==0x01) then -- Alt. colour --
       lpoke(0x9143C0,0xF000FFFF)
       lpoke(0x9143C4,0xFDDDFCBB)
       lpoke(0x9143C8,0xFA9AF878)
       lpoke(0x9143CC,0xF756F533)
       lpoke(0x9143D0,0xF312F201)
       lpoke(0x9143D4,0xF49DF37A)
       lpoke(0x9143D8,0xF258F245)
       lpoke(0x9143DC,0xF123F005)
    end
  end
  if (peek(0xFF3C53)==0x26) and (peek(0xFF3E57)==0x01) then -- P2 Automatic color for 2nd Cyber-Akuma --
    poke(0xFF4657,0x01)
  end
  if (peek(0xFF49A0)==0x02) and (peek(0xFF3C53)==0x00) then -- P2 Automatic 2nd place for Apocalypse --
    poke(0xFF4453,0x00)
    poke(0xFF48B7,0x00)
    poke(0xFF49A5,0x06)
  end
  if (peek(0xFF49A0)==0x03) then -- P2 2nd char --
    if (peek(0xFF4453)==0x10) and (peek(0xFF1012)==0x01) then -- P2 2nd Mech-Zangief --
      poke(0xFF4453,0x28)
    end
    if (peek(0xFF4453)==0x28) and (peek(0xFF1012)==0x00) then -- P2 2nd Blackheart Return --
      poke(0xFF4453,0x10)
    end
    if (peek(0xFF4453)==0x06) and (peek(0xFF1012)==0x01) then -- P2 2nd Sunburned Sakura --
      poke(0xFF4453,0x2A)
    end
    if (peek(0xFF4453)==0x2A) and (peek(0xFF1012)==0x00) then -- P2 2nd Hulk Return --
      poke(0xFF4453,0x06)
    end
    if (peek(0xFF4453)==0x18) and (peek(0xFF1012)==0x01) then -- P2 2nd Shadow --
      poke(0xFF4453,0x2C)
    end
    if (peek(0xFF4453)==0x2C) and (peek(0xFF1012)==0x00) then -- P2 2nd Dhalsim Return --
      poke(0xFF4453,0x18)
    end
    if (peek(0xFF4453)==0x1C) and (peek(0xFF1012)==0x01) then -- P1 US Agent --
      poke(0xFF4453,0x2E)
    end
    if (peek(0xFF4453)==0x2E) and (peek(0xFF1012)==0x00) then -- P2 2nd Bison Return --
      poke(0xFF4453,0x1C)
    end
    if (peek(0xFF4453)==0x0C) and (peek(0xFF1012)==0x01) then -- P2 2nd Mephisto --
      poke(0xFF4453,0x30)
    end
    if (peek(0xFF4453)==0x30) and (peek(0xFF1012)==0x00) then -- P2 2nd Omega Red Return --
      poke(0xFF4453,0x0C)
    end
    if (peek(0xFF4453)==0x0E) and (peek(0xFF1012)==0x01) then -- P2 2nd Armor Spider Man --
      poke(0xFF4453,0x32)
    end
    if (peek(0xFF4453)==0x32) and (peek(0xFF1012)==0x00) then -- P2 2nd Spider Man Return --
      poke(0xFF4453,0x0E)
    end
  end
  -- Apocalypse Stage --
    if (peek(0xFF4053)==0x00) or (peek(0xFF4453)==0x00) then
       poke(0xFF4913,0x00)
    end
end
-- Selection box fix --
if (peek(0x94FF4)~=0x4A) then
    poke(0x94FF4,0x4A)
    poke(0x94FF7,0x0C)
    lpoke(0x94FF8,0x67000CE4)
    poke(0x94FFF,0x26)
    dpoke(0x95163,0x0C4A)
    lpoke(0x95166,0x67000B76)
    poke(0x9516D,0x26)
    poke(0xBD5BD,0x0E)
    lpoke(0xBD5E2,0x000E000A)
    lpoke(0xBD5E6,0x00200018)
    lpoke(0xBD5EA,0x000C0022)
end
-- Fix in Arcade Mode for Apocalypse play --
if (peek(0xFF1000)==0x00) then
   poke(0x99C5,0x00) -- Fix for Apocalypse's progression and join-in case --
   poke(0x99D7,0x00)
   poke(0x99E9,0x00)
   poke(0x99FB,0x00)
   if (peek(0xFF4905)==0x04) then -- Fix 2nd char. selection box for Apocalypse after gameover --
      if (peek(0xFF3853)~=0x00) and (peek(0xFF4053)==0x00) then
         poke(0xFF48B3,0x14)
      end
      if (peek(0xFF3C53)~=0x00) and (peek(0xFF4453)==0x00) then
         poke(0xFF48B7,0x04)
      end
   end
    if (dpeek(0xFF4800)==0x1201) then -- Fix for Apocalypse's Ending --
       if ((peek(0xFF4901)==0x01) and (peek(0xFF3853)==0x00)) or ((peek(0xFF4901)==0x02) and (peek(0xFF3C53)==0x00)) then
          poke(0xFF491A,0x13)
       end
    end
    if (peek(0xFF4881)==0x07) then -- Fix for Apocalypse vs Cyber-Akuma --
       if ((peek(0xFF3853)==0x00) and (peek(0xFF3C53)==0x26)) or ((peek(0xFF3853)==0x26) and (peek(0xFF3C53)==0x00)) then
          poke(0xFF4883,0x00)
       else
          poke(0xFF4883,0xFF)
       end
    end
    if (peek(0xFF4881)>=0x06) and (peek(0xFF4905)==0x04) then -- Fix for color of double Cyber-Akuma --
       lpoke(0x581DA,0x0000)
       lpoke(0x581DE,0x0000)
    end
    poke(0x20D3F,0x26) -- Memorize 1st char. selection box for Cyber-Akuma after gameover --
    poke(0x20D7B,0x26)
-- Stage picture fix --
   if ((peek(0xFF4053)==0x00) and (peek(0xFF4980)==0x05)) or ((peek(0xFF4453)==0x00) and (peek(0xFF49A0)==0x05)) then -- Stage 1 --
      poke(0xFF4882,0x20)
   end
   if (peek(0xFF4905)==0x0C) and (((peek(0xFF4053)==0x00) and (peek(0xFF4901)==0x01)) or ((peek(0xFF4453)==0x00) and (peek(0xFF4901)==0x02))) then -- Stage 2 & onward --
      poke(0xFF4882,0x20)
   end
end
-- Fix for Apocalypse Object Colour --
if (peek(0xFF4905)==0x08) and (peek(0xFF4800)==0x08) then
   if (peek(0xFF3853)==0x00) then -- 1P --
      lpoke(0x914240,0xFFFBFEE9) -- Flying object --
      lpoke(0x914244,0xFCC7FBB6)
      lpoke(0x914248,0xFAA5F994)
      lpoke(0x91424C,0xF773F662)
      lpoke(0x914250,0xF441F220)
      lpoke(0x914254,0xFFFFFEEE)
      lpoke(0x914258,0xFCCCF999)
      lpoke(0x91425C,0xF555F006)
   end
   if (peek(0xFF3C53)==0x00) then -- 2P --
      lpoke(0x9142A0,0xFFFBFEE9) -- Flying object --
      lpoke(0x9142A4,0xFCC7FBB6)
      lpoke(0x9142A8,0xFAA5F994)
      lpoke(0x9142AC,0xF773F662)
      lpoke(0x9142B0,0xF441F220)
      lpoke(0x9142B4,0xFFFFFEEE)
      lpoke(0x9142B8,0xFCCCF999)
      lpoke(0x9142BC,0xF555F006)
      lpoke(0x914260,0xFFFEFEED) -- Hand screw --
      lpoke(0x914264,0xFDDCFCCB)
      lpoke(0x914268,0xFAA9F998)
      lpoke(0x91426C,0xF887F776)
      lpoke(0x914270,0xF665F554)
      lpoke(0x914274,0xF443F332)
      lpoke(0x914278,0xF221F110)
   end
end
-- Music fix for Apocalypse play --
if (peek(0xFF4913)==0x00) and (peek(0xFF4800)==0x08) and (peek(0xFF4881)~=0x06) then
-- Play the character music --
   if (peek(0xFF3A51)==0x00) then -- P1 1st character lose --
      if (peek(0xFF3800)==0x01) then
         poke(0xFF1030,peek(0xFF4053))
      end
      if (dpeek(0xFF3A5C)==0x012C) then
         poke(0x618001,0x00)
         poke(0x618003,peek(0xFF1031))
         poke(0x61801F,0x00)
         dpoke(0xFF3A5C,0x0000)
      end
   end
   if (peek(0xFF4251)==0x00) then -- P1 2nd character lose --
      if (peek(0xFF4000)==0x01) then
         poke(0xFF1030,peek(0xFF3853))
      end
      if (dpeek(0xFF425C)==0x012C) then
         poke(0x618001,0x00)
         poke(0x618003,peek(0xFF1031))
         poke(0x61801F,0x00)
         dpoke(0xFF425C,0x0000)
      end
   end
   if (peek(0xFF3E51)==0x00) then -- P2 1st character lose --
      if (peek(0xFF3C00)==0x01) then
         poke(0xFF1030,peek(0xFF4453))
      end
      if (dpeek(0xFF3E5C)==0x012C) then
         poke(0x618001,0x00)
         poke(0x618003,peek(0xFF1031))
         poke(0x61801F,0x00)
         dpoke(0xFF3E5C,0x0000)
      end
   end
   if (peek(0xFF4651)==0x00) then -- P2 2nd character lose --
      if (peek(0xFF4400)==0x01) then
         poke(0xFF1030,peek(0xFF3C53))
      end
      if (dpeek(0xFF465C)==0x012C) then
         poke(0x618001,0x00)
         poke(0x618003,peek(0xFF1031))
         poke(0x61801F,0x00)
         dpoke(0xFF465C,0x0000)
      end
   end
-- Get music code number --
   if (peek(0xFF1030)>=0x02) or (peek(0xFF1030)<=0x24) then -- Normal Characters --
      poke(0xFF1031,(peek(0xFF1030))/2+0x0C)
   end
   if peek(0xFF1030)>=0x26 then -- Hidden Characters --
      poke(0xFF1031,0x31)
   end
end
-- For Practice Mode --
    if (peek(0xFF4C2E)==0x01) or (peek(0xFF4C2E)==0x02) then -- P1 P2 press start? --
      poke(0xFF1010,0x01)
      poke(0xFF1012,0x01)
    end
    if (peek(0xFF4C2E)==0x00) then -- P1 P2 Button resumer --
      dpoke(0xFF1010,0x0000)
      dpoke(0xFF1012,0x0000)
    end
-- Moving from Ex Characters fix --
if peek(0xBD5F1)~=0x1C then
    poke(0xBD5F1,0x1C) -- Apocalypse --
    poke(0xBD5F3,0x12)
    poke(0xBD5F5,0x20)
    poke(0xBD5F7,0x16)
    poke(0xBD689,0x1C) -- Cyber-Akuma --
    poke(0xBD68B,0x12)
    poke(0xBD68D,0x20)
    poke(0xBD68F,0x16)
    poke(0xBD691,0x10) -- Mech-Zangief --
    poke(0xBD693,0x10)
    poke(0xBD695,0x10)
    poke(0xBD697,0x10)
    poke(0xBD699,0x06) -- Ex-sakura --
    poke(0xBD69B,0x06)
    poke(0xBD69D,0x06)
    poke(0xBD69F,0x06)
    poke(0xBD6A1,0x18) -- Shadow --
    poke(0xBD6A3,0x18)
    poke(0xBD6A5,0x18)
    poke(0xBD6A7,0x18)
    poke(0xBD6A9,0x1C) -- US agent --
    poke(0xBD6AB,0x1C)
    poke(0xBD6AD,0x1C)
    poke(0xBD6AF,0x1C)
    poke(0xBD6B1,0x0C) -- Mephisto --
    poke(0xBD6B3,0x0C) 
    poke(0xBD6B5,0x0C) 
    poke(0xBD6B7,0x0C)
    poke(0xBD6B9,0x0E) -- Ex-Sprider Man --
    poke(0xBD6BB,0x0E)
    poke(0xBD6BD,0x0E)
    poke(0xBD6BF,0x0E)
end

script "Allow same characters"  
on:
   poke $ABF2 $60
off:
   poke $ABF2 $66

script "Infinite Time"  
run:
    poke $FF4808 $99
script "Finish this Round Now!" \
 "comm:Disable Infinite Time before activating this cheat"  
on:
    poke $FF4808 $00
script "Go to Final Stage Next"  
on:
    poke $FF4881 $08
script "Hit Anywhere (Both Players)"  
on:
    temp0=dpeek($0B0B08)
    temp1=dpeek($0B0B38)
run:
    dpoke $0B0B08 $4E71
    dpoke $0B0B38 $4E71
off:
    dpoke $0B0B08 temp0
    dpoke $0B0B38 temp1
script " "  
script "P1 Infinite Energy (1st Character)"  
run:
    poke $FF3A51 $90
    poke $FF3A5B $90
script "P1 Drain All Energy (1st Character) Now!"  
on:
    poke $FF3A51 $00
    poke $FF3A5B $00
script "P1 Infinite Energy (2nd Character)"  
run:
    poke $FF4251 $90
    poke $FF425B $90
script "P1 Drain All Energy (2nd Character) Now!"  
on:
    poke $FF4251 $00
    poke $FF425B $00
script "P1 Always Max Power"  
run:
    poke $FF3A54 $03
    poke $FF4254 $03
script "P1 Play with Apocalypse"  
run:
    poke $FF3853 $00
    poke $FF4053 $00
    poke $FF48B1 $00
    poke $FF48B3 $00
    poke $FF4913 $00
script "P1 Select 1st Character" \
 "comm:Enable this on the Character selection screen." \
 "0x02/Cyclops"\
 "0x04/Captain America"\
 "0x06/Hulk"\
 "0x08/Wolverine"\
 "0x0A/Shuma Gorath"\
 "0x0C/Omega Red"\
 "0x0E/Spider-Man"\
 "0x10/Blackheart"\
 "0x12/Ryu"\
 "0x14/Ken"\
 "0x16/Chun-Li"\
 "0x18/Dhalsim"\
 "0x1A/Zangief"\
 "0x1C/Bison"\
 "0x1E/Akuma"\
 "0x20/Sakura"\
 "0x24/Dan"\
 "0x22/#Norimaro#"\
 "0x26/#Mech-Akuma#"\
 "0x28/#Mech-Zangief#"\
 "0x2A/#Sunburned Sakura#"\
 "0x2C/#Shadow#"\
 "0x2E/#U.S.Agent#"\
 "0x30/#Mephisto#"\
 "0x32/#Armor Spider-Man#" 
run:
    poke $FF3853 param
script "P1 Select 2nd Character" \
 "comm:Enable this on the Character selection screen." \
 "0x02/Cyclops"\
 "0x04/Captain America"\
 "0x06/Hulk"\
 "0x08/Wolverine"\
 "0x0A/Shuma Gorath"\
 "0x0C/Omega Red"\
 "0x0E/Spider-Man"\
 "0x10/Blackheart"\
 "0x12/Ryu"\
 "0x14/Ken"\
 "0x16/Chun-Li"\
 "0x18/Dhalsim"\
 "0x1A/Zangief"\
 "0x1C/Bison"\
 "0x1E/Akuma"\
 "0x20/Sakura"\
 "0x24/Dan"\
 "0x22/#Norimaro#"\
 "0x26/#Mech-Akuma#"\
 "0x28/#Mech-Zangief#"\
 "0x2A/#Sunburned Sakura#"\
 "0x2C/#Shadow#"\
 "0x2E/#U.S.Agent#"\
 "0x30/#Mephisto#"\
 "0x32/#Armor Spider-Man#" 
run:
    poke $FF4053 param
script " "  
script "P2 Infinite Energy (1st Character)"  
run:
    poke $FF3E51 $90
    poke $FF3E5B $90
script "P2 Drain All Energy (1st Character) Now!"  
on:
    poke $FF3E51 $00
    poke $FF3E5B $00
script "P2 Infinite Energy (2nd Character)"  
run:
    poke $FF4651 $90
    poke $FF465B $90
script "P2 Drain All Energy (2nd Character) Now!"  
on:
    poke $FF4651 $00
    poke $FF465B $00
script "P2 Always Max Power"  
run:
    poke $FF3E54 $03
    poke $FF4654 $03
script "P2 Play with Apocalypse"  
run:
    poke $FF3C53 $00
    poke $FF4453 $00
    poke $FF48B5 $00
    poke $FF48B7 $00
    poke $FF4913 $00
script "P2 Select 1st Character" \
 "comm:Enable this on the Character selection screen." \
 "0x02/Cyclops"\
 "0x04/Captain America"\
 "0x06/Hulk"\
 "0x08/Wolverine"\
 "0x0A/Shuma Gorath"\
 "0x0C/Omega Red"\
 "0x0E/Spider-Man"\
 "0x10/Blackheart"\
 "0x12/Ryu"\
 "0x14/Ken"\
 "0x16/Chun-Li"\
 "0x18/Dhalsim"\
 "0x1A/Zangief"\
 "0x1C/Bison"\
 "0x1E/Akuma"\
 "0x20/Sakura"\
 "0x24/Dan"\
 "0x22/#Norimaro#"\
 "0x26/#Mech-Akuma#"\
 "0x28/#Mech-Zangief#"\
 "0x2A/#Sunburned Sakura#"\
 "0x2C/#Shadow#"\
 "0x2E/#U.S.Agent#"\
 "0x30/#Mephisto#"\
 "0x32/#Armor Spider-Man#" 
run:
    poke $FF3C53 param
script "P2 Select 2nd Character" \
 "comm:Enable this on the Character selection screen." \
 "0x02/Cyclops"\
 "0x04/Captain America"\
 "0x06/Hulk"\
 "0x08/Wolverine"\
 "0x0A/Shuma Gorath"\
 "0x0C/Omega Red"\
 "0x0E/Spider-Man"\
 "0x10/Blackheart"\
 "0x12/Ryu"\
 "0x14/Ken"\
 "0x16/Chun-Li"\
 "0x18/Dhalsim"\
 "0x1A/Zangief"\
 "0x1C/Bison"\
 "0x1E/Akuma"\
 "0x20/Sakura"\
 "0x24/Dan"\
 "0x22/#Norimaro#"\
 "0x26/#Mech-Akuma#"\
 "0x28/#Mech-Zangief#"\
 "0x2A/#Sunburned Sakura#"\
 "0x2C/#Shadow#"\
 "0x2E/#U.S.Agent#"\
 "0x30/#Mephisto#"\
 "0x32/#Armor Spider-Man#" 
run:
    poke $FF4453 param
script " "  
script "No Background Music"  
run:
    cpu audio
    dpoke $F026 $0000
    cpu main
script "Hide Background"  
on:
    temp0=dpeek($FF4C50)
    temp1=dpeek($FF4C52)
    temp2=dpeek($FF4C54)
    temp3=dpeek($FFFBB8)
    temp4=dpeek($FFFBBA)
    temp5=dpeek($FFFBBC)
run:
    if (dpeek($FF4800)==$0800)
      dpoke $FF4C50 $0
      dpoke $FF4C52 $0
      dpoke $FF4C54 $0
      dpoke $FFFBB8 $0
      dpoke $FFFBBA $0
      dpoke $FFFBBC $0
      lpoke $FFDE20 $0
    endif
off:
    dpoke $FF4C50 temp0
    dpoke $FF4C52 temp1
    dpoke $FF4C54 temp2
    dpoke $FFFBB8 temp3
    dpoke $FFFBBA temp4
    dpoke $FFFBBC temp5
