script "Console Mode Plus" \
"comm:On the Game Select screen, press left or right to select modes.
In practice mode, pause the game then press start to change character."
run:
#Menu part#
if (dpeek($108586)==$B0BA)
   poke $32C8D $30
   poke $32C93 $34
   poke $37137 $00
   poke $37155 $07
   if (dpeek($C1852C)==$1A39) #For Unibios#
      poke $C1852F $34
      poke $C18537 $30
      poke $C1854B $34
      poke $C18553 $30
   endif
   if (dpeek($C16F46)==$1A39) #For Japan AES#
      poke $C16F49 $34
      poke $C16F51 $30
      poke $C16F65 $34
      poke $C16F6D $30
   endif
   if (dpeek($C16BFA)==$1A39) #For Asia AES#
      poke $C16BFD $34
      poke $C16C05 $30
      poke $C16C19 $34
      poke $C16C21 $30
   endif
  if (peek($1000A1)==$FF)and((peek($10FD95)==$00)and(peek($10FD9B)==$00))
    poke $1000A1 $00
  endif
   if (dpeek($1000A0)==$0000)and((peek($10FD95)==$08)or(peek($10FD9B)==$08))
    dpoke $1000A0 $01FF
    poke $320000 $60
   endif
   if (dpeek($1000A0)==$0100)and((peek($10FD95)==$08)or(peek($10FD9B)==$08))
    dpoke $1000A0 $02FF
    poke $320000 $60
   endif
   if (dpeek($1000A0)==$0200)and((peek($10FD95)==$08)or(peek($10FD9B)==$08))
    dpoke $1000A0 $00FF
    poke $320000 $60
   endif
   if (dpeek($1000A0)==$0200)and((peek($10FD95)==$04)or(peek($10FD9B)==$04))
    dpoke $1000A0 $01FF
    poke $320000 $60
   endif
   if (dpeek($1000A0)==$0100)and((peek($10FD95)==$04)or(peek($10FD9B)==$04))
    dpoke $1000A0 $00FF
    poke $320000 $60
   endif
   if (dpeek($1000A0)==$0000)and((peek($10FD95)==$04)or(peek($10FD9B)==$04))
    dpoke $1000A0 $02FF
    poke $320000 $60
   endif
   if (dpeek($1000A0)==$00FF)
    poke $541C4 $6C
    poke $541C6 "TEAM PLAY"
    poke $541D3 "SINGLE PLAY"
    poke $3B1AB $02 #Cursor back#
    dpoke $108586 $B06E
   endif
   if (dpeek($1000A0)==$01FF)
    poke $541C4 $6C
    poke $541C6 " TEAM VS "
    poke $541D3 " SINGLE VS "
    poke $3B1AB $02 #Cursor back#
    dpoke $108586 $B06E
   endif
   if (dpeek($1000A0)==$02FF)
    poke $541C4 $8C
    poke $541C6 "PRACTICE "
    poke $541D3 "           "
    poke $3B1AB $FF #Cursor hidden#
    dpoke $108586 $B06E
   endif
endif
if (dpeek($108586)==$B15E)and((peek($1000A0)==$01)or(peek($1000A0)==$02)) #Skip level select & Restore rom#
   poke $3B1AB $02
   poke $541C4 $6C
   poke $541C6 "TEAM PLAY"
   poke $541D3 "SINGLE PLAY"
   if (peek($1000A0)>=$01) #Activate players#
      poke $108230 $81
      poke $108430 $82
      dpoke $1087EC $B9CA
      dpoke $1087F0 $B9E0
      poke $1087E5 $03
      dpoke $10FDB6 $0101
      poke $380000 peek($380000)|$70 #Disable memory card#
   endif
   if (peek($1000A0)==$02)
      poke $108837 $00 #Single mode#
   endif
   dpoke $108586 $B46C
endif
if (dpeek($108586)==$1558)
   poke $380000 peek($380000)&$8F #Restore memory card#
endif
#VS Mode Script for normal rom#
if (peek($1000A0)==$01)and(dpeek($2B90BC)==$0000)
   if (peek($1087E6)==$0C) #Save characters#
      poke $1000B0 peek($1081C0)
      poke $1000B1 peek($1083C0)
   endif
    if (dpeek($108586)==$42D8)
      poke $1087E6 $03 #Deselect characters#
      poke $37137 peek($1000B0) #Load previous characters#
      poke $37155 peek($1000B1)
    endif
    if (peek($10FDB6)==$02)or(peek($10FDB7)==$02) #No continue text and activate players#
       poke $108230 $81
       poke $108430 $82
       dpoke $1087EC $B9CA
       dpoke $1087F0 $B9E0
       poke $1087E5 $03
       poke $10881C $00
       poke $10880C $00
    endif
   if (dpeek($108586)==$7046)and(peek($1087E6)==$03)
      poke $37137 $00 #Restore rom#
      poke $37155 $07
   endif
   if (dpeek($108586)==$51EE) #Fix for Rugal's 2nd form music#
      if (peek($1087DE)==$08)and(dpeek($1087A0)==$7438)
         poke $320000 $2B
      endif
   endif
endif
#Practice Mode Script for normal rom#
if (peek($1000A0)==$02)and(dpeek($2B90BC)==$0000)
   if ((peek($1087E6)==$06)or(peek($1087E6)==$1E))and(peek($10FD96)==$00) #1P controls 2P#
     poke $32C93 $30
     poke $1000C0 $00 #P1 as main player#
   endif
   if ((peek($1087E6)==$09)or(peek($1087E6)==$2D))and(peek($10FD9C)==$00) #2P controls 1P#
     poke $32C8D $34
     poke $1000C0 $01 #P2 as main player#
   endif
   if (peek($1087E6)==$0C)
     poke $32C8D $30 #Restore control#
     poke $32C93 $34
     poke $1000B0 peek($1081C0) #Save characters#
     poke $1000B1 peek($1083C0)
   endif
   if (peek($1087E6)==$3C) #Restore control#
     poke $32C8D $30
     poke $32C93 $34
   endif
   poke $10882E $60 #Timer#
   if (peek($1000C0)==$00) #1P red blood#
    poke $108221 $3F
    poke $108421 $CF
   endif
   if (peek($1000C0)==$01) #2P red blood#
    poke $108221 $CF
    poke $108421 $3F
   endif
   if (peek($108786)==$80)and((peek($10FDAC)==$01)or(peek($10FDAC)==$04)) #Return to char. screen#
      poke $108786 $00 #Resume from pause#
      poke $1087E6 $03 #Deselect characters#
      poke $37137 peek($1000B0) #Load previous characters#
      poke $37155 peek($1000B1)
      dpoke $108586 $6E66
   endif
   if (dpeek($108586)==$7046)and(peek($1087E6)==$03)
      poke $37137 $00 #Restore rom#
      poke $37155 $07
   endif
   if (dpeek($108586)==$51EE) #Fix for Rugal's 2nd form music#
      if (peek($1087DE)==$08)and(dpeek($1087A0)==$7438)
         poke $320000 $2B
      endif
   endif
endif
#VS Mode Script for Team Edit Hack#
if (peek($1000A0)==$01)and(dpeek($2B90BC)==$4EB9)
    if (dpeek($108586)==$42D8)
      poke $1087E6 $03 #Deselect characters#
    endif
    if (peek($10FDB6)==$02)or(peek($10FDB7)==$02) #No continue text and activate players#
       poke $108230 $81
       poke $108430 $82
       dpoke $1087EC $B9CA
       dpoke $1087F0 $B9E0
       poke $1087E5 $03
       dpoke $10FDB6 $0101
       poke $10881C $00
       poke $10880C $00
    endif
endif
#Practice Mode Script for Team Edit Hack#
if (peek($1000A0)==$02)and(dpeek($2B90BC)==$4EB9)
   #Switch control in part 1#
   if (dpeek($108586)==$7046)
      if (peek($10E832)==$01)and(peek($10E8D2)==$00) #P1 as main players#
         poke $1000C0 $00
         poke $1000D0 $01 #Go to switch control routine#
      endif
      if (peek($10E832)==$00)and(peek($10E8D2)==$01) #P2 as main players#
         poke $1000C0 $01
         poke $1000D0 $01 #Go to switch control routine#
      endif
      if (peek($1000D0)==$01)and(peek($10FD96)==$00)and(peek($10FD9C)==$00)
        if (dpeek($C1852C)==$1A39) #For Unibios#
           poke $C1852F $30
           poke $C18537 $34
           poke $C1854B $30
           poke $C18553 $34
        endif
        if (dpeek($C16F46)==$1A39) #For Japan AES#
           poke $C16F49 $30
           poke $C16F51 $34
           poke $C16F65 $30
           poke $C16F6D $34
        endif
        if (dpeek($C16BFA)==$1A39) #For Asia AES#
           poke $C16BFD $30
           poke $C16C05 $34
           poke $C16C19 $30
           poke $C16C21 $34
        endif
      endif
   endif
   if (peek($1087E6)==$0C) #Restore#
        poke $1000D0 $00
        if (dpeek($C1852C)==$1A39) #For Unibios#
           poke $C1852F $34
           poke $C18537 $30
           poke $C1854B $34
           poke $C18553 $30
        endif
        if (dpeek($C16F46)==$1A39) #For Japan AES#
           poke $C16F49 $34
           poke $C16F51 $30
           poke $C16F65 $34
           poke $C16F6D $30
        endif
        if (dpeek($C16BFA)==$1A39) #For Asia AES#
           poke $C16BFD $34
           poke $C16C05 $30
           poke $C16C19 $34
           poke $C16C21 $30
        endif
   endif
   #Switch control in part 2#
   if ((peek($1087E6)==$1E)or(peek($1087E6)==$2D))and(peek($10FD96)==$00)and(peek($10FD9C)==$00)
      poke $32C93 $30
      poke $32C8D $34
   endif
   if (peek($1087E6)==$3C) #Restore#
      poke $32C93 $34
      poke $32C8D $30
   endif
   poke $10882E $60 #Timer#
   if (peek($1000C0)==$00) #1P red blood#
    poke $108221 $3F
    poke $108421 $CF
   endif
   if (peek($1000C0)==$01) #2P red blood#
    poke $108221 $CF
    poke $108421 $3F
   endif
   if (peek($108786)==$80)and((peek($10FDAC)==$01)or(peek($10FDAC)==$04)) #Return to char. screen#
      poke $108786 $00 #Resume from pause#
      poke $1087E6 $03 #Deselect characters#
      dpoke $108586 $6E66
   endif
   #Stage/Music select script#
   if (dpeek($108586)==$7F38)
      if (peek($1000C0)==$00)
         poke $1000E0 peek($108432) #Get value of palyer 2 1st char.#
      endif
      if (peek($1000C0)==$01)
         poke $1000E0 peek($108232) #Get value of palyer 1 1st char.#
      endif
      if (peek($1000E0)>=$00)and(peek($1000E0)<=$02)
         poke $1087DE $00 #Brazil#
      endif
      if (peek($1000E0)>=$03)and(peek($1000E0)<=$05)
         poke $1087DE $01 #China#
      endif
      if (peek($1000E0)>=$06)and(peek($1000E0)<=$08)
         poke $1087DE $02 #Japan#
      endif
      if (peek($1000E0)>=$09)and(peek($1000E0)<=$0B)
         poke $1087DE $03 #USA#
      endif
      if (peek($1000E0)>=$0C)and(peek($1000E0)<=$0E)
         poke $1087DE $04 #Korea#
      endif
      if (peek($1000E0)>=$0F)and(peek($1000E0)<=$11)
         poke $1087DE $05 #Italy#
      endif
      if (peek($1000E0)>=$12)and(peek($1000E0)<=$14)
         poke $1087DE $06 #Mexico#
      endif
      if (peek($1000E0)>=$15)and(peek($1000E0)<=$17)
         poke $1087DE $07 #England#
      endif
      if (peek($1000E0)>=$18)
         poke $1087DE $08 #Rugal#
      endif
   endif
   if (dpeek($108586)==$51EE) #Fix for Rugal's 2nd form music#
      if (peek($1087DE)==$08)and(dpeek($1087A0)==$7438)
         poke $320000 $2B
      endif
   endif
endif

script "Enable Rugal"
run:
   if (dpeek($108586)==$7046)and(peek($100000)!=$08)
      poke $100000 $08
   endif
   if (dpeek($108586)==$7EDC)
      poke $100000 $00
   endif

script "Infinite Time"
on:
    temp0=peek($10882E)
run:
    if (frame%120==$0)and(peek($10882E)!=temp0)
      poke $10882E $60
    endif
script "Finish Round Now!"
on:
    poke $10882E $00
script "Select Mai's Boobs" \
 "0x00/Always Bounce"\
 "0x01/Never Bounce"
run:
    poke $10C6E2 param
script "Always Enable Special Move" \
 "comm:It is enabled even with maximum energy and no power."
on:
    temp0=peek($004C24)
    temp1=peek($00B1BE)
    temp2=peek($00B1EA)
    temp3=peek($00B22E)
run:
    poke $004C24 $60
    poke $00B1BE $60
    poke $00B1EA $60
    poke $00B22E $60
off:
    poke $004C24 temp0
    poke $00B1BE temp1
    poke $00B1EA temp2
    poke $00B22E temp3
script "Invincibility [Master Code]"
on:
    temp0=lpeek($002B5E)
    temp1=dpeek($002B62)
    temp2=lpeek($0FF040)
    temp3=lpeek($0FF044)
    temp4=lpeek($0FF048)
    temp5=lpeek($0FF04C)
    temp6=lpeek($0FF050)
    temp7=dpeek($0FF054)
    temp8=lpeek($00A3BE)
    temp9=dpeek($00A3C2)
    temp10=lpeek($0FF056)
    temp11=lpeek($0FF05A)
    temp12=lpeek($0FF05E)
    temp13=lpeek($0FF062)
    temp14=lpeek($0FF066)
    temp15=lpeek($00DD72)
    temp16=lpeek($00DD76)
    temp17=lpeek($00F548)
    temp18=lpeek($00F54C)
    temp19=lpeek($010736)
    temp20=lpeek($01073A)
    temp21=lpeek($010F94)
    temp22=lpeek($010F98)
    temp23=lpeek($0188D2)
    temp24=lpeek($0188D6)
    temp25=lpeek($019590)
    temp26=lpeek($019594)
    temp27=lpeek($019F00)
    temp28=lpeek($019F04)
    temp29=lpeek($029174)
    temp30=lpeek($029178)
    temp31=lpeek($02AD22)
    temp32=lpeek($02AD26)
    temp33=lpeek($0FF06A)
    temp34=dpeek($0FF06E)
    temp35=lpeek($0FF070)
    temp36=lpeek($0FF074)
    temp37=dpeek($0FF078)
    temp38=lpeek($0FF07A)
    temp39=lpeek($01874A)
    temp40=lpeek($01874E)
    temp41=lpeek($0FF07E)
    temp42=dpeek($0FF082)
    temp43=lpeek($0FF084)
    temp44=lpeek($0FF088)
    temp45=dpeek($0FF08C)
    temp46=lpeek($0FF08E)
run:
    lpoke $002B5E $4EB9000F
    dpoke $002B62 $F040
    lpoke $0FF040 $660C4A2E
    lpoke $0FF044 $01F06606
    lpoke $0FF048 $2C6D0792
    lpoke $0FF04C $4E75046F
    lpoke $0FF050 $00760002
    dpoke $0FF054 $4E75
    lpoke $00A3BE $4EB9000F
    dpoke $00A3C2 $F056
    lpoke $0FF056 $48411210
    lpoke $0FF05A $4A2B01F0
    lpoke $0FF05E $6604C207
    lpoke $0FF062 $4E75323C
    lpoke $0FF066 $00004E75
    lpoke $00DD72 $4EB9000F
    lpoke $00DD76 $F06A4E71
    lpoke $00F548 $4EB9000F
    lpoke $00F54C $F06A4E71
    lpoke $010736 $4EB9000F
    lpoke $01073A $F06A4E71
    lpoke $010F94 $4EB9000F
    lpoke $010F98 $F06A4E71
    lpoke $0188D2 $4EB9000F
    lpoke $0188D6 $F06A4E71
    lpoke $019590 $4EB9000F
    lpoke $019594 $F06A4E71
    lpoke $019F00 $4EB9000F
    lpoke $019F04 $F06A4E71
    lpoke $029174 $4EB9000F
    lpoke $029178 $F06A4E71
    lpoke $02AD22 $4EB9000F
    lpoke $02AD26 $F06A4E71
    lpoke $0FF06A $4A2B01F0
    dpoke $0FF06E $660A
    lpoke $0FF070 $302C0018
    lpoke $0FF074 $906B0018
    dpoke $0FF078 $4E75
    lpoke $0FF07A $707F4E75
    lpoke $01874A $4EB9000F
    lpoke $01874E $F07E4E71
    lpoke $0FF07E $4A2B01F0
    dpoke $0FF082 $660A
    lpoke $0FF084 $302B00E0
    lpoke $0FF088 $08000000
    dpoke $0FF08C $4E75
    lpoke $0FF08E $707F4E75
off:
    lpoke $002B5E temp0
    dpoke $002B62 temp1
    lpoke $0FF040 temp2
    lpoke $0FF044 temp3
    lpoke $0FF048 temp4
    lpoke $0FF04C temp5
    lpoke $0FF050 temp6
    dpoke $0FF054 temp7
    lpoke $00A3BE temp8
    dpoke $00A3C2 temp9
    lpoke $0FF056 temp10
    lpoke $0FF05A temp11
    lpoke $0FF05E temp12
    lpoke $0FF062 temp13
    lpoke $0FF066 temp14
    lpoke $00DD72 temp15
    lpoke $00DD76 temp16
    lpoke $00F548 temp17
    lpoke $00F54C temp18
    lpoke $010736 temp19
    lpoke $01073A temp20
    lpoke $010F94 temp21
    lpoke $010F98 temp22
    lpoke $0188D2 temp23
    lpoke $0188D6 temp24
    lpoke $019590 temp25
    lpoke $019594 temp26
    lpoke $019F00 temp27
    lpoke $019F04 temp28
    lpoke $029174 temp29
    lpoke $029178 temp30
    lpoke $02AD22 temp31
    lpoke $02AD26 temp32
    lpoke $0FF06A temp33
    dpoke $0FF06E temp34
    lpoke $0FF070 temp35
    lpoke $0FF074 temp36
    dpoke $0FF078 temp37
    lpoke $0FF07A temp38
    lpoke $01874A temp39
    lpoke $01874E temp40
    lpoke $0FF07E temp41
    dpoke $0FF082 temp42
    lpoke $0FF084 temp43
    lpoke $0FF088 temp44
    dpoke $0FF08C temp45
    lpoke $0FF08E temp46
script "Hit Anywhere (Both Players)"
on:
    temp0=dpeek($002B5E)
run:
    dpoke $002B5E $4E71
off:
    dpoke $002B5E temp0
script " "
script "P1 Infinite Energy"
run:
    poke $108221 $CF
script "P1 Drain all Energy Now!"
on:
    poke $108221 $00
script "P1 Always have Max POW"
run:
    poke $108219 $7F
script "P1 Get Max POW Now!"
on:
    poke $108219 $7F
script "P1 Invincibility" \
 "comm:Works after you've enabled 'Invincibility [Master Code]'"
on:
    temp0=peek($1082F0)
run:
    poke $1082F0 $01
off:
    poke $1082F0 temp0
script "P1 Play with Rugal" \
 "comm:Use these on the character selection screen"
on:
    poke $108231 $08
script " "
script "P2 Infinite Energy"
run:
    poke $108421 $CF
script "P2 Drain all Energy Now!"
on:
    poke $108421 $00
script "P2 Always have Max POW"
run:
    poke $108419 $7F
script "P2 Get Max POW Now!"
on:
    poke $108419 $7F
script "P2 Invincibility" \
 "comm:Works after you've enabled 'Invincibility [Master Code]'"
on:
    temp0=peek($1084F0)
run:
    poke $1084F0 $01
off:
    poke $1084F0 temp0
script "P2 Play with Rugal" \
 "comm:Use these on the character selection screen"
on:
    poke $108431 $08
script " "
script "No Background Music"
run:
    cpu audio
    poke $FE2D $00
    cpu main
script "Hide Background" \
 "comm:Activate before match start"
on:
    temp0=peek($108785)
    temp1=lpeek($0009B6)
    temp2=lpeek($009218)
    temp3=dpeek($0093E6)
    temp4=dpeek($0340F4)
    temp5=dpeek($02F126)
    temp6=dpeek($00C39E)
run:
    poke $108785 temp0|20
    poke $10968E $0
    lpoke $0009B6 $60244E71
    lpoke $009218 $4E714E71
    dpoke $0093E6 $6006
    dpoke $0340F4 $6000
    dpoke $02F126 $4E71
    dpoke $00C39E $4E71
    dpoke $10B8BA $8F8F
off:
    poke $108785 temp0
    lpoke $0009B6 temp1
    lpoke $009218 temp2
    dpoke $0093E6 temp3
    dpoke $0340F4 temp4
    dpoke $02F126 temp5
    dpoke $00C39E temp6
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
