script "Console Mode Plus" \
"comm:In practice mode, start button can restore HP, during pause, press up/down to select power option or press start to select character.
With some minor boss fix."
on:
   dpoke $22EC4 $0000 #Fix boss's selection box#
run:
#Menu Screen Script#
if ((dpeek($102144)==$10A8)or(dpeek($102144)==$1136)or(dpeek($102144)==$11CE))and(peek($10FDAE)==$02) #At opening#
   poke $FBF $96 #Restore rom#
   poke $FD5 $9C
   poke $22CA1 $0B
   poke $22CAF $2B
   dpoke $5A62 $B26E #Restore HP function#
   poke $10FDAF $03 #Prevent proceed normally#
   if (peek($10FDAC)>$00) #When pressing start#
      dpoke $2F73C $71FF #Shift SNK logo#
      dpoke $2F740 $71FF
      dpoke $2F744 $71FF
      dpoke $2F748 $71FF #Shift company text#
      dpoke $2F5C2 $71FF #Shift time text#
      dpoke $2F5E8 $71FF #Shift timer text#
      dpoke $2FA1E $71FF #Shift press start text#
      dpoke $2F74E $71FF #Shift SNK logo US#
      dpoke $2F752 $71FF
      dpoke $2F756 $71FF
      dpoke $2F75A $71FF #Shift company text US#
      poke $10FDAE $03 #Prepare to jump to MVS title screen#
      dpoke $102144 $0122 #Jump#
   endif
endif
if (dpeek($102140)==$7C26)and(dpeek($10FDAE)==$0301) #At MVS title screen#
 #Add New Text#
   dpoke $3C0000 $71F8 # address
       dpoke $3c0004 $20   # modulo
   dpoke $3C0002 $1347 # value
   dpoke $3C0002 $1341
   dpoke $3C0002 $134D
   dpoke $3C0002 $1345
   dpoke $3C0002 $1320
   dpoke $3C0002 $1353
   dpoke $3C0002 $1354
   dpoke $3C0002 $1341
   dpoke $3C0002 $1352
   dpoke $3C0002 $1354
   dpoke $3C0000 $71FA # address
       dpoke $3c0004 $20   # modulo
   dpoke $3C0002 $1356 # value
   dpoke $3C0002 $1353
   dpoke $3C0002 $1320
   dpoke $3C0002 $134D
   dpoke $3C0002 $134F
   dpoke $3C0002 $1344
   dpoke $3C0002 $1345
   dpoke $3C0000 $71FC # address
       dpoke $3c0004 $20   # modulo
   dpoke $3C0002 $1350 # value
   dpoke $3C0002 $1352
   dpoke $3C0002 $1341
   dpoke $3C0002 $1343
   dpoke $3C0002 $1354
   dpoke $3C0002 $1349
   dpoke $3C0002 $1343
   dpoke $3C0002 $1345
 #Control in menu#
   if (peek($10FFF1)==$FF)and((peek($10FD95)==$00)and(peek($10FD9B)==$00))
      poke $10FFF1 $00
   endif
   if (dpeek($10FFF0)==$0000)and((peek($10FD95)==$02)or(peek($10FD9B)==$02))
      dpoke $10FFF0 $01FF
      poke $320000 $62
   endif
   if (dpeek($10FFF0)==$0100)and((peek($10FD95)==$02)or(peek($10FD9B)==$02))
      dpoke $10FFF0 $02FF
      poke $320000 $62
   endif
   if (dpeek($10FFF0)==$0200)and((peek($10FD95)==$02)or(peek($10FD9B)==$02))
      dpoke $10FFF0 $00FF
      poke $320000 $62
   endif
   if (dpeek($10FFF0)==$0000)and((peek($10FD95)==$01)or(peek($10FD9B)==$01))
      dpoke $10FFF0 $02FF
      poke $320000 $62
   endif
   if (dpeek($10FFF0)==$0200)and((peek($10FD95)==$01)or(peek($10FD9B)==$01))
      dpoke $10FFF0 $01FF
      poke $320000 $62
   endif
   if (dpeek($10FFF0)==$0100)and((peek($10FD95)==$01)or(peek($10FD9B)==$01))
      dpoke $10FFF0 $00FF
      poke $320000 $62
   endif
 #Arrow display for highlighted mode#
   if (peek($10FFF0)==$00) #Arcade#
      poke $380000 peek($380000)&$8F #Restore memory card#
      dpoke $3C0000 $71DA
      dpoke $3C0002 $1320
      dpoke $3C0000 $71DC
      dpoke $3C0002 $1320
      dpoke $3C0000 $71D8
      dpoke $3C0002 $133E
   endif
   if (peek($10FFF0)==$01) #VS#
      poke $380000 peek($380000)|$70 #Disable memory card#
      dpoke $3C0000 $71D8
      dpoke $3C0002 $1320
      dpoke $3C0000 $71DC
      dpoke $3C0002 $1320
      dpoke $3C0000 $71DA
      dpoke $3C0002 $133E
   endif
   if (peek($10FFF0)==$02) #Practice#
      poke $380000 peek($380000)|$70 #Disable memory card#
      dpoke $3C0000 $71D8
      dpoke $3C0002 $1320
      dpoke $3C0000 $71DA
      dpoke $3C0002 $1320
      dpoke $3C0000 $71DC
      dpoke $3C0002 $133E
   endif
endif
if (dpeek($102144)==$121A)and(dpeek($10FDAE)==$0302) #After selected a mode#
   poke $320000 $61 #Sound effec#
   if (peek($10FFF0)>=$01) #For non-arcade modes#
      dpoke $102144 $132A #Skip level select#
   endif
   if (peek($10FFF0)==$00) #For arcade modes#
      dpoke $102144 $12EA #Prevent sound cut#
   endif
   poke $10FDAE $02 #Restore value#
   dpoke $2F73C $707A #Restore rom for text in MVS mode#
   dpoke $2F740 $707B
   dpoke $2F744 $707C
   dpoke $2F748 $71BC
   dpoke $2F5C2 $725A
   dpoke $2F5E8 $727B
   dpoke $2FA1E $70F8
   dpoke $2F74E $7079 
   dpoke $2F752 $707A
   dpoke $2F756 $707B
   dpoke $2F75A $70BC
endif
#Skip cutscene for boss in story mode#
if (peek($10FFF0)==$00)
   if (dpeek($102144)==$1750)and(peek($100A93)<$0C)
      poke $100AA7 $00
   endif
endif
#VS Mode Script#
if (peek($10FFF0)==$01)
   if (dpeek($102144)==$136C)
      poke $10100A $01 #Activate players#
      poke $10102A $01
      dpoke $100008 $9999 #Prevent hi-score screen for time#
      lpoke $10000A $99999999
      lpoke $10000E $99999999 #Prevent highest score#
      lpoke $10001E $99999999
      lpoke $10002E $99999999
      lpoke $10003E $99999999
      lpoke $10004E $99999999
   endif
   if (dpeek($102144)==$13B8)
      if (peek($10100D)==$01)and(peek($10102D)==$00)
         poke $22CA1 $2B #Stage from P2#
      endif
      if (peek($10100D)==$00)and(peek($10102D)==$01)
         poke $22CAF $0B #Stage from P1#
      endif
   endif
   if (dpeek($102144)==$17C2)
      poke $22CA1 $0B #Restore rom#
      poke $22CAF $2B
      poke $10100D $00 #Deselect characters#
      poke $10102D $00
   endif
   if (dpeek($102144)!=$1312)
      poke $10100A $01 #Activate players#
      poke $10102A $01
      dpoke $10FDB6 $0101
   endif
endif
#Practice Mode Script#
if (peek($10FFF0)==$02)
   if (dpeek($102144)==$136C)
      poke $10100A $01 #Activate players#
      poke $10102A $01
   endif
   if (dpeek($102144)==$13B8)
      if ((peek($10100D))!=(peek($10102D)))and(peek($10FD96)==$00)and(peek($10FD9C)==$00) #Control interchange#
         poke $FBF $9C
         poke $FD5 $96
      endif
      if (peek($10100D)==$01)and(peek($10102D)==$00)
         poke $22CA1 $2B #Stage from P2#
      endif
      if (peek($10100D)==$00)and(peek($10102D)==$01)
         poke $22CAF $0B #Stage from P1#
      endif
      if (peek($10100D)==$01)and(peek($10102D)==$01)
         poke $FBF $96 #Restore control#
         poke $FD5 $9C
      endif
   endif
   if (dpeek($102144)==$17C2)
      poke $22CA1 $0B #Restore rom#
      poke $22CAF $2B
   endif
   if (dpeek($102144)==$1844)
      dpoke $100A08 $0055 #Infinite time#
      if (peek($10FFF2)==$01) #Infinite Power#
         poke ((lpeek($100A0A))+$CD) $20
         poke ((lpeek($100A0E))+$CD) $20
      endif
      dpoke $5A62 $4E75 #No death#
    #P2 HP recovery#
      if ((peek(((lpeek($100A0E))+$A5))==$00)and(dpeek(((lpeek($100A0E))+$A8))==$0000))or(peek($10FDAC)==$01)
         poke ((lpeek($100A0E))+$A7) $80 #HP recovery#
      endif
      if (peek(((lpeek($100A0E))+$A5))==$80)
         dpoke ((lpeek($100A0E))+$A6) $0000 #Stop recovery if HP is full#
      endif
    #P1 HP recovery#
      if ((peek(((lpeek($100A0A))+$A5))==$00)and(dpeek(((lpeek($100A0A))+$A8))==$0000))or(peek($10FDAC)==$04)
         poke ((lpeek($100A0A))+$A7) $80 #HP recovery#
      endif
      if (peek(((lpeek($100A0A))+$A5))==$80)
         dpoke ((lpeek($100A0A))+$A6) $0000 #Stop recovery if HP is full#
      endif
    #Remove menu text when resume#
      if (peek($10FFF4)==$01)
         dpoke $3C0000 $723C # address
             dpoke $3c0004 $20   # modulo
         for i=0 i<=$5 i=i+$1 dpoke $3C0002 $5320
         poke $10FFF4 $00
      endif
   endif
endif
#Practice Menu Script#
if (peek($10FFF0)==$02)and(dpeek($102144)==$1844)and(dpeek($10214A)==$FFFF)
   poke $10FFF4 $01
 #To character select#
   if (peek($10FDAC)==$01)or(peek($10FDAC)==$04)
      poke $100A85 $00
      dpoke $10214A $0000
      poke $10100D $00 #Deselect characters#
      poke $10102D $00
      dpoke $102144 $19A0 #Return#
      poke $10FFF4 $00
   endif
 #Control in menu#
   if (peek($10FFF3)==$FF)and((peek($10FD95)==$00)and(peek($10FD9B)==$00))
      poke $10FFF3 $00
   endif
   if (dpeek($10FFF2)==$0000)and((peek($10FD95)==$02)or(peek($10FD9B)==$02)or(peek($10FD95)==$01)or(peek($10FD9B)==$01))
      dpoke $10FFF2 $01FF
      poke $320000 $62
   endif
   if (dpeek($10FFF2)==$0100)and((peek($10FD95)==$02)or(peek($10FD9B)==$02)or(peek($10FD95)==$01)or(peek($10FD9B)==$01))
      dpoke $10FFF2 $00FF
      poke $320000 $62
   endif
 #Add text#
   if (peek($10FFF2)==$00) #Normal#
      dpoke $3C0000 $723C # address
          dpoke $3c0004 $20   # modulo
      dpoke $3C0002 $034E # value
      dpoke $3C0002 $034F
      dpoke $3C0002 $0352
      dpoke $3C0002 $034D
      dpoke $3C0002 $0341
      dpoke $3C0002 $034C
   endif
   if (peek($10FFF2)==$01) #Max#
      dpoke $3C0000 $723C # address
          dpoke $3c0004 $20   # modulo
      dpoke $3C0002 $0320 # value
      dpoke $3C0002 $0320
      dpoke $3C0002 $034D
      dpoke $3C0002 $0341
      dpoke $3C0002 $0358
      dpoke $3C0002 $0320
   endif
endif
off:
   poke $FBF $96 #Restore rom#
   poke $FD5 $9C
   poke $22CA1 $0B
   poke $22CAF $2B
   dpoke $5A62 $B26E #Restore HP function#
   dpoke $2F73C $707A #Restore rom for text in MVS mode#
   dpoke $2F740 $707B
   dpoke $2F744 $707C
   dpoke $2F748 $71BC
   dpoke $2F5C2 $725A
   dpoke $2F5E8 $727B
   dpoke $2FA1E $70F8
   dpoke $2F74E $7079 
   dpoke $2F752 $707A
   dpoke $2F756 $707B
   dpoke $2F75A $70BC

script "Infinite Time"
run:
    poke $100A09 $63
script "Finish this Round Now!" \
 "comm:Disable Infinite Time before activating this cheat"
on:
    poke $100A09 $00
script "Goto Boss Fight Screen Now!" \
 "comm:The Goto Boss Fight Screen should be activated on the character selection screen. If you activate it during any fight however you will see the ENDING after you win that match!"
on:
    poke $100A93 $0C
script "Hit Anywhere (Both Players)"
on:
    temp0=dpeek($0071A8)
run:
    dpoke $0071A8 $6002
off:
    dpoke $0071A8 temp0
script " "
script "P1 Infinite Energy"
run:
    poke ((lpeek($100A0A))+$A5) $80
script "P1 Drain All Energy Now!"
on:
    poke ((lpeek($100A0A))+$A5) $00
script "P1 Select Character" \
 "comm:Free player selection. Activate between rounds or just after selection." \
 "0x00/Haohmaru"\
 "0x01/Nakoruru"\
 "0x02/Hanzo"\
 "0x03/Galford"\
 "0x04/Wang-Fu"\
 "0x05/Ukyo"\
 "0x06/Kyoshiro"\
 "0x07/Gen-An"\
 "0x08/Earthquake"\
 "0x09/Jubei"\
 "0x0A/Tamtam"\
 "0x0B/Charlotte"\
 "0x0C/Amakusa"
run:
    poke $10100B param
script " "
script "P2 Infinite Energy"
run:
    poke ((lpeek($100A0E))+$A5) $80
script "P2 Drain All Energy Now!"
on:
    poke ((lpeek($100A0E))+$A5) $00
script "P2 Select Character" \
 "comm:Free player selection. Activate between rounds or just after selection." \
 "0x00/Haohmaru"\
 "0x01/Nakoruru"\
 "0x02/Hanzo"\
 "0x03/Galford"\
 "0x04/Wang-Fu"\
 "0x05/Ukyo"\
 "0x06/Kyoshiro"\
 "0x07/Gen-An"\
 "0x08/Earthquake"\
 "0x09/Jubei"\
 "0x0A/Tamtam"\
 "0x0B/Charlotte"\
 "0x0C/Amakusa"
run:
    poke $10102B param
script " "
script "No Background Music"
run:
    cpu audio
    poke $FE2D $00
    cpu main
script "Select Cartridge/NeoGeo Type" \
 "comm:Use in conjunction with the 'Skip RAM/ROM Checks' cheat for the best effect, then enable it and reset. The Home (NEOGEO) setting may open up other aspects of the game or it may even make the game unplayable." \
 "0x80/Arcade (MVS)"\
 "0x00/Home (NEOGEO)"
run:
    poke $10FD82 param
script "Skip RAM/ROM Checks" \
 "comm:Also allows a quicker start-up without the green screens."
on:
    temp0=lpeek($C1315C)
    temp1=lpeek($C1314E)
    temp2=lpeek($C131E8)
    temp3=lpeek($C13184)
    temp4=lpeek($C1212E)
    temp5=lpeek($C134FA)
run:
    if (lpeek($C1315C)==$51CFFFF2)
      lpoke $C1315C $6000EB08
    endif
    if (lpeek($C1314E)==$51CFFFF2)
      lpoke $C1314E $6000EB16
    endif
    if (lpeek($C131E8)==$51CFFFF2)
      lpoke $C131E8 $6000EA52
    endif
    if (lpeek($C13184)==$51CFFFF2)
      lpoke $C13184 $6000EAB6
    endif
    if (lpeek($C1212E)==$51CFFFF2)
      lpoke $C1212E $6000EB36
    endif
    if (lpeek($C134FA)==$51CFFFF2)
      lpoke $C134FA $6000E892
    endif
off:
    lpoke $C1315C temp0
    lpoke $C1314E temp1
    lpoke $C131E8 temp2
    lpoke $C13184 temp3
    lpoke $C1212E temp4
    lpoke $C134FA temp5
script "Infinite Credits" \
 "comm:Alternatively just set Free Play to ON in the Dip Switches menu"
run:
    poke $D00034 $99
