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."
run:
#Menu Screen Script#
if (dpeek($108006)==$029E)
   poke $F2F3 $94 #Restore control#
   poke $F309 $9A
   poke $3C3C9 $44 #Resore HP function#
   poke $3C45F $54
   poke $574BF $30
 #Shift original text and add own text in menu#
   dpoke $1902E $71FF #Shift original text#
   dpoke $19068 $71FF
   dpoke $190A2 $71FF
   dpoke $1904A $71FF
   dpoke $19084 $71FF
   dpoke $190BE $71FF
    dpoke $3C0000 $71F6 # address
	dpoke $3c0004 $20   # modulo
    dpoke $3C0002 $3347 # value
    dpoke $3C0002 $3341
    dpoke $3C0002 $334D
    dpoke $3C0002 $3345
    dpoke $3C0002 $3320
    dpoke $3C0002 $3353
    dpoke $3C0002 $3354
    dpoke $3C0002 $3341
    dpoke $3C0002 $3352
    dpoke $3C0002 $3354
    dpoke $3C0000 $7217 # address
	dpoke $3c0004 $20   # modulo
    dpoke $3C0002 $3356 # value
    dpoke $3C0002 $3353
    dpoke $3C0002 $3320
    dpoke $3C0002 $3320
    dpoke $3C0002 $334D
    dpoke $3C0002 $334F
    dpoke $3C0002 $3344
    dpoke $3C0002 $3345
    dpoke $3C0000 $71F8 # address
	dpoke $3c0004 $20   # modulo
    dpoke $3C0002 $3320 # value
    dpoke $3C0002 $3350
    dpoke $3C0002 $3352
    dpoke $3C0002 $3341
    dpoke $3C0002 $3343
    dpoke $3C0002 $3354
    dpoke $3C0002 $3349
    dpoke $3C0002 $3343
    dpoke $3C0002 $3345
    dpoke $3C0000 $7239 # address
	dpoke $3c0004 $20   # modulo
    dpoke $3C0002 $334F # value
    dpoke $3C0002 $3350
    dpoke $3C0002 $3354
    dpoke $3C0002 $3349
    dpoke $3C0002 $334F
    dpoke $3C0002 $334E
 #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 $70
   endif
   if (dpeek($10FFF0)==$0100)and((peek($10FD95)==$02)or(peek($10FD9B)==$02))
      dpoke $10FFF0 $02FF
      poke $320000 $70
   endif
   if (dpeek($10FFF0)==$0200)and((peek($10FD95)==$02)or(peek($10FD9B)==$02))
      dpoke $10FFF0 $03FF
      poke $320000 $70
   endif
   if (dpeek($10FFF0)==$0300)and((peek($10FD95)==$02)or(peek($10FD9B)==$02))
      dpoke $10FFF0 $00FF
      poke $320000 $70
   endif
   if (dpeek($10FFF0)==$0000)and((peek($10FD95)==$01)or(peek($10FD9B)==$01))
      dpoke $10FFF0 $03FF
      poke $320000 $70
   endif
   if (dpeek($10FFF0)==$0300)and((peek($10FD95)==$01)or(peek($10FD9B)==$01))
      dpoke $10FFF0 $02FF
      poke $320000 $70
   endif
   if (dpeek($10FFF0)==$0200)and((peek($10FD95)==$01)or(peek($10FD9B)==$01))
      dpoke $10FFF0 $01FF
      poke $320000 $70
   endif
   if (dpeek($10FFF0)==$0100)and((peek($10FD95)==$01)or(peek($10FD9B)==$01))
      dpoke $10FFF0 $00FF
      poke $320000 $70
   endif
 #Hightlighted mode display#
   if (peek($10FFF0)==$00) #Arcade#
      dpoke $108034 $0000 #Game Start#
      poke $380000 peek($380000)&$8F #Restore memory card#
      if (peek($10FD9F)>=$03)
         dpoke $3C0000 $71F6 # address
	     dpoke $3c0004 $20   # modulo
         dpoke $3C0002 $5347 # value
         dpoke $3C0002 $5341
         dpoke $3C0002 $534D
         dpoke $3C0002 $5345
         dpoke $3C0002 $5320
         dpoke $3C0002 $5353
         dpoke $3C0002 $5354
         dpoke $3C0002 $5341
         dpoke $3C0002 $5352
         dpoke $3C0002 $5354
      endif
   endif
   if (peek($10FFF0)==$01) #VS#
      dpoke $108034 $0000 #Game Start#
      poke $380000 peek($380000)|$70 #Disable memory card#
      if (peek($10FD9F)>=$03)
         dpoke $3C0000 $7217 # address
	     dpoke $3c0004 $20   # modulo
         dpoke $3C0002 $5356 # value
         dpoke $3C0002 $5353
         dpoke $3C0002 $5320
         dpoke $3C0002 $5320
         dpoke $3C0002 $534D
         dpoke $3C0002 $534F
         dpoke $3C0002 $5344
         dpoke $3C0002 $5345
      endif
   endif
   if (peek($10FFF0)==$02) #Practice#
      dpoke $108034 $0000 #Game Start#
      poke $380000 peek($380000)|$70 #Disable memory card#
      if (peek($10FD9F)>=$03)
         dpoke $3C0000 $71F8 # address
	     dpoke $3c0004 $20   # modulo
         dpoke $3C0002 $5320 # value
         dpoke $3C0002 $5350
         dpoke $3C0002 $5352
         dpoke $3C0002 $5341
         dpoke $3C0002 $5343
         dpoke $3C0002 $5354
         dpoke $3C0002 $5349
         dpoke $3C0002 $5343
         dpoke $3C0002 $5345
      endif
   endif
   if (peek($10FFF0)==$03) #Option#
      dpoke $108034 $FFFF #Option#
      if (peek($10FD9F)>=$03)
         dpoke $3C0000 $7239 # address
	     dpoke $3c0004 $20   # modulo
         dpoke $3C0002 $534F # value
         dpoke $3C0002 $5350
         dpoke $3C0002 $5354
         dpoke $3C0002 $5349
         dpoke $3C0002 $534F
         dpoke $3C0002 $534E
      endif
   endif
endif
#Restore rom when leaving menu#
if (dpeek($108006)==$16DA)
   dpoke $1902E $71F6 #Restore original text#
   dpoke $19068 $71F6
   dpoke $190A2 $71F6
   dpoke $1904A $71F8
   dpoke $19084 $71F8
   dpoke $190BE $71F8
endif
#VS Mode Script#
if (peek($10FFF0)==$01)
   if (dpeek($108006)==$055A)
      dpoke $10FDB6 $0101 #Prevent push start text#
   endif
   if (dpeek($108006)==$05F6)
      dpoke $1002C2 $0000 #Prevent continue text#
      dpoke $1002C8 $0000
      dpoke $1002E2 $0000
      dpoke $1002E8 $0000
      poke $1080CC $03 #Activate players#
      poke $1080CF $03
      dpoke $108320 $FFFF #Human control for 1P&2P#
      dpoke $10FDB6 $0101
    endif
   if (dpeek($108006)==$0D7E) #Prevent continue text#
      dpoke $1002C2 $0000
      dpoke $1002C8 $0000
      dpoke $1002E2 $0000
      dpoke $1002E8 $0000
   endif
   if (dpeek($108006)==$0ED4)
      poke $1080D0 $00 #Deselect characters#
      dpoke $10FDB6 $0101 #Prevent push start text#
      dpoke $108006 $057A #Return to Char. Screen#
   endif
endif
#Practice Mode Script#
if (peek($10FFF0)==$02)
   if (dpeek($108006)==$055A)
      dpoke $10FDB6 $0101 #Prevent push start text#
   endif
   if (dpeek($108006)==$05F6)
      poke $1080CC $03 #Activate players#
      poke $1080CF $03
      dpoke $108320 $FFFF #Human control for 1P&2P#
      if (peek($1080D0)==$01)or(peek($1080D0)==$02)
         poke $F2F3 $9A #Switch control#
         poke $F309 $94
      endif
      if (peek($1080D0)==$03)
         poke $F2F3 $94 #Restore control#
         poke $F309 $9A
      endif
    endif
   if (dpeek($108006)>=$0BB0)and(dpeek($108006)<=$0C1C)
      poke $10E016 $FF #Infinite time#
      if (peek($10FFF2)==$01) #Infinite Power#
         poke $10844E $40
         poke $10865E $40
      endif
      poke $3C3C9 $E0 #Change HP function#
      poke $3C45F $F0
      poke $574BF $CC
    #P2 HP Recovery#
      if (dpeek($1086F0)>$FF00)
         dpoke $1086F0 $0000 #Set HP to 0 when it is -ve#
      endif
      if ((dpeek($1086F0)==$0000)and(peek($10862B)==$00))or(peek($10FDAC)==$01)
         dpoke $108666 $007D #HP recovery#
      endif
      if (dpeek($1086F0)>$007D)and(dpeek($1086F0)<$FF00) #When over-recover#
         dpoke $108666 $0000 #Stop recovering#
         dpoke $1086F0 $007D #Back to normal full HP#
      endif
    #P1 HP Recovery#
      if (dpeek($1084E0)>$FF00)
         dpoke $1084E0 $0000 #Set HP to 0 when it is -ve#
      endif
      if ((dpeek($1084E0)==$0000)and(peek($10841B)==$00))or(peek($10FDAC)==$04)
         dpoke $108456 $007D #HP recovery#
      endif
      if (dpeek($1084E0)>$007D)and(dpeek($1084E0)<$FF00) #When over-recover#
         dpoke $108456 $0000 #Stop recovering#
         dpoke $1084E0 $007D #Back to normal full HP#
      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($108006)>=$0BB0)and(dpeek($108006)<=$0C1C)and(peek($10830E)==$80)
   poke $10FFF4 $01
 #To character select#
   if (peek($10FDAC)==$01)or(peek($10FDAC)==$04)
      poke $10830E $00
      poke $1080D0 $00
      dpoke $108006 $057A
      poke $10FFF4 $00
      poke $3C3C9 $44 #Resore HP function#
      poke $3C45F $54
      poke $574BF $30
   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 $70
   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 $70
   endif
 #Add text#
   if (peek($10FFF2)==$00) #Normal#
      dpoke $3C0000 $723C # address
          dpoke $3c0004 $20   # modulo
      dpoke $3C0002 $334E # value
      dpoke $3C0002 $334F
      dpoke $3C0002 $3352
      dpoke $3C0002 $334D
      dpoke $3C0002 $3341
      dpoke $3C0002 $334C
   endif
   if (peek($10FFF2)==$01) #Max#
      dpoke $3C0000 $723C # address
          dpoke $3c0004 $20   # modulo
      dpoke $3C0002 $3320 # value
      dpoke $3C0002 $3320
      dpoke $3C0002 $334D
      dpoke $3C0002 $3341
      dpoke $3C0002 $3358
      dpoke $3C0002 $3320
   endif
endif
off:
   poke $F2F3 $94 #Restore control#
   poke $F309 $9A
   poke $3C3C9 $44 #Resore HP function#
   poke $3C45F $54
   poke $574BF $30
   dpoke $1902E $71F6 #Restore original text#
   dpoke $19068 $71F6
   dpoke $190A2 $71F6
   dpoke $1904A $71F8
   dpoke $19084 $71F8
   dpoke $190BE $71F8

script "Infinite Time"
run:
    poke $10836B $3C
script "Finish this Round Now!" \
 "comm:Disable Infinite Time before activating this cheat"
on:
    poke $10836B $00
script "Select Starting Stage" \
 "comm:Only by killing Mizuki will you see the true ending. 06 = Amakusa, 07 = Zankuro, 08 = Gaoh, 09 = Mizuki" \
 inter=1,10,1
run:
    if (peek($10836C)==$00)
      poke $10836C (param-$1)
    endif
script " "
script "P1 Infinite Energy"
run:
    poke $108445 $7D
script "P1 Drain All Energy Now!"
on:
    poke $108445 $00
script "P1 Always have Maximum Power"
run:
    poke $10844E $40
script "P1 Always have Minimum Power"
run:
    poke $10844E $00
script "P1 Always have Maximum Sword Power"
run:
    poke $1085F8 $78
script "P1 Always have Minimum Sword Power"
run:
    poke $1085F8 $00
script "P1 Blue Energy Gauge Length"
run:
    poke $1085FE $7C
script "P1 Longer Sword Power Gauge"
run:
    poke $108554 $82
script "P1 Select Character" \
 "0x00/Haohmaru"\
 "0x01/Nakoruru"\
 "0x02/Rimururu"\
 "0x03/Hanzo"\
 "0x04/Galford"\
 "0x05/Senryu Kyoshiro"\
 "0x06/Ukyo"\
 "0x07/Genjuro"\
 "0x08/Basara"\
 "0x09/Shizumaru"\
 "0x0A/Gaira"\
 "0x0B/Yumeji *"\
 "0x0C/Jubei"\
 "0x0D/Sankuro *"\
 "0x0E/Charlotte"\
 "0x0F/Tam Tam"\
 "0x10/Kazuki"\
 "0x11/Sogetsu"\
 "0x12/Rasetsumaru"\
 "0x13/Rera"\
 "0x14/Enja"\
 "0x15/Suija"\
 "0x16/Yoshitora"\
 "0x17/Yunfei"\
 "0x18/Mina"\
 "0x19/Kusare-Gedou"\
 "0x1A/Gaoh Kyougoku *"\
 "0x1B/Poppy **"
run:
    poke $108322 param
script " "
script "P2 Infinite Energy"
run:
    poke $108655 $7D
script "P2 Drain All Energy Now!"
on:
    poke $108655 $00
script "P2 Always have Maximum Power"
run:
    poke $10865E $40
script "P2 Always have Minimum Power"
run:
    poke $10865E $00
script "P2 Always have Maximum Sword Power"
run:
    poke $108808 $78
script "P2 Always have Minimum Sword Power"
run:
    poke $108808 $00
script "P2 Blue Energy Gauge Length"
run:
    poke $10880E $7C
script "P2 Longer Sword Power Gauge"
run:
    poke $108764 $82
script "P2 Select Character" \
 "0x00/Haohmaru"\
 "0x01/Nakoruru"\
 "0x02/Rimururu"\
 "0x03/Hanzo"\
 "0x04/Galford"\
 "0x05/Senryu Kyoshiro"\
 "0x06/Ukyo"\
 "0x07/Genjuro"\
 "0x08/Basara"\
 "0x09/Shizumaru"\
 "0x0A/Gaira"\
 "0x0B/Yumeji *"\
 "0x0C/Jubei"\
 "0x0D/Sankuro *"\
 "0x0E/Charlotte"\
 "0x0F/Tam Tam"\
 "0x10/Kazuki"\
 "0x11/Sogetsu"\
 "0x12/Rasetsumaru"\
 "0x13/Rera"\
 "0x14/Enja"\
 "0x15/Suija"\
 "0x16/Yoshitora"\
 "0x17/Yunfei"\
 "0x18/Mina"\
 "0x19/Kusare-Gedou"\
 "0x1A/Gaoh Kyougoku *"\
 "0x1B/Poppy **"
run:
    poke $108323 param
script " "
script "Hide Background" \
 "comm:Activate before match start"
on:
    temp0=dpeek($0048E2)
    dpoke $0048E2 $4E71
    temp1=dpeek($0048EE)
    dpoke $0048EE $4E71
    temp2=lpeek($0048F4)
    lpoke $0048F4 $4E714E71
    temp3=lpeek($03C2D2)
    lpoke $03C2D2 $60464E71
run:
    if dpeek($1080C4)==$B
      dpoke $108314 $0000
      poke $10921B $02
      lpoke $109222 $8F8F8F8F
    endif
off:
    dpoke $0048E2 temp0
    dpoke $0048EE temp1
    lpoke $0048F4 temp2
    lpoke $03C2D2 temp3
script "No Background Music"
run:
    cpu audio
    poke $FD89 $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
