#                                     #
# Street fighter II CE driver         #
#                                     #
# Driver by D.W. Raingeard            #
# cinati@caramail.com                 #

#                      #
# The name of the game #
#                      #
[general]

GAMENAME    " Street Fighter II - Champion Edition  "
DIRECTORY   SF2CE
CPSTYPE     CPS1
DATE		1992

#                 #
# The memory map  #
#                 #
[programRegions]

0x000000  0x1FFFFF  MAINROM
0x900000  0x901fff  PALETTERAM 
0x920000  0x920800  ROWSCROLLRAM
0x900000  0x92ffff  VIDEORAM
0xff0000  0xfFFFFF  MAINRAM

[dataReadByteRegions]

0x000000  0x1FFFFF  MAINROM
0x800000  0x800001  INPUTPORT2
0x800010  0x800011  INPUTPORT2
0x800018  0x80001f  INPUTPORT1
0x800176  0x800177  INPUTPORT5
0x8001fc  0x8001fd  INPUTPORT5
0x800100  0x8001ff  VIDEOPORTS
0x900000  0x901fff  PALETTERAM 
0x920000  0x920800  ROWSCROLLRAM
0x900000  0x92ffff  VIDEORAM
0xf1c006  0xf1c007  EEPROM
0xff0000  0xfFFFFF  MAINRAM
0x860000  0x8603ff  EXTRARAM  1
0x900000  0x92ffff  EXTRARAM  3
0x915800  0x930000  EXTRARAM  2

[dataReadWordRegions]

0x000000  0x1FFFFF  MAINROM
0x800000  0x800001  INPUTPORT2
0x800010  0x800011  INPUTPORT2
0x800018  0x80001f  INPUTPORT1
0x800176  0x800177  INPUTPORT5
0x8001fc  0x8001fd  INPUTPORT5
0x800100  0x8001ff  VIDEOPORTS
0x900000  0x901fff  PALETTERAM 
0x920000  0x920800  ROWSCROLLRAM
0x900000  0x92ffff  VIDEORAM
0xf1c006  0xf1c007  EEPROM
0xff0000  0xfFFFFF  MAINRAM
0x860000  0x8603ff  EXTRARAM  1
0x900000  0x92ffff  EXTRARAM  3
0x915800  0x930000  EXTRARAM  2

[dataWriteByteRegions]

0x800100  0x8001ff  VIDEOPORTS
0x900000  0x901fff  PALETTERAM 
0x920000  0x920800  ROWSCROLLRAM
0x900000  0x92ffff  VIDEORAM
0xf1c006  0xf1c007  EEPROM
0xff0000  0xfFFFFF  MAINRAM
0x860000  0x8603ff  EXTRARAM 1
0x900000  0x92ffff  EXTRARAM  3
0x915800  0x930000  EXTRARAM 2

[dataWriteWordRegions]

0x800100  0x8001ff  VIDEOPORTS
0x900000  0x901fff  PALETTERAM 
0x920000  0x920800  ROWSCROLLRAM
0x900000  0x92ffff  VIDEORAM
0xf1c006  0xf1c007  EEPROM
0xff0000  0xfFFFFF  MAINRAM
0x860000  0x8603ff  EXTRARAM 1
0x900000  0x92ffff  EXTRARAM  3
0x915800  0x930000  EXTRARAM 2

#                                         #
# Protection                              #
#                                         #
[protection]

# If port(PORT) is read, returns (VALUE) #
PORT    0xff
VALUE   0xffff
MULTIPLY 0x40 0x42 0x44 0x46

#                      #
# Graphics information #
#                      #
[graphics]

# the total size of the graphics roms #
TOTAL 0x600000

# Path                     Size    Where  #
LOAD8 sf2.02 0x80000 0x000000
LOAD8 sf2.06 0x80000 0x080000
LOAD8 sf2.11 0x80000 0x100000
LOAD8 sf2.01 0x80000 0x180000
LOAD8 sf2.05 0x80000 0x200000
LOAD8 sf2.10 0x80000 0x280000
LOAD8 sf2.04 0x80000 0x300000
LOAD8 sf2.08 0x80000 0x380000
LOAD8 sf2.13 0x80000 0x400000
LOAD8 sf2.03 0x80000 0x480000
LOAD8 sf2.07 0x80000 0x500000
LOAD8 sf2.12 0x80000 0x580000


#               Number of tiles Base addr   Decode info #
DECODECHARS     0x1000          0x140000    0x300000
DECODESPRITES   0xa000          0x000000    0x300000 0x180000
DECODESCROLL2   0x4000          0x100000    0x300000 0x180000
DECODESCROLL3   0x0400          0x120000    0x300000 0x180000 


#                     #
# program information #
#                     #
[program]
ROMSIZE 0x180000

# Type of load path 1                    path 2                       Size    where #
LOADROM16SWAP  sf2ce.23 0x80000 0x000000
LOADROM16SWAP  sf2ce.22 0x80000 0x080000
LOADROM16SWAP  sf2ce.21 0x80000 0x100000



#                        #
# The game configuration #
#                        #
[configuration]

LAYERCONTROL    0x66                # Layer control port                     #
SCROLL1BASECODE 0x0000              # scroll1 tile base                      #
SCROLL1CODEMASK 0x1000              # scroll1 tile mask(=number of tiles)    #
SCROLL2BASECODE 0x0000              # scroll2 tile base                      #
SCROLL2CODEMASK 0x8000              # scroll2 tile mask(=number of tiles)    #
SCROLL3BASECODE 0x0000              # scroll3 tile base                      #
SCROLL3CODEMASK 0x0400              # scroll3 tile mask(=number of tiles)    #
PRIORITYMASKS   0x68 0x6a 0x6c 0x6e # the ports where to read the priorities #
LAYERENABLE 0x02 0x04 0x08 0x00
FORCESCROLLPRIORITY 0xff            # Hack to fix some priority problems btw #
                                    # scroll2 and 3. The folowing values are #
                                    # valid:                                 #
                                    # 0xff: no hack                          #
                                    # 0x01: scroll3 first. Scroll2 after.    #
                                    # 0x00: scroll2 first  Scroll3 after.    #
FORCESCROLL2ON 1                    # 0=no 1=yes #

[z80]
TOTAL 0x10000
LOAD8 sf2.09 0x10000 0x000000 # main rom and banks #

[samples]
TOTAL 0x40000
LOAD8 sf2.18  0x20000 0x00000
LOAD8 sf2.19  0x20000 0x20000


[End]
[verifyRoms]
sf2.02	0xcdb5f027
sf2.06	0x21e3f87d
sf2.11	0xd6ec9a0a
sf2.01	0x03b0d852
sf2.05	0xba8a2761
sf2.10	0x960687d5
sf2.04	0xe2799472
sf2.08	0xbefc47df
sf2.13	0xed2c67f6
sf2.03	0x840289ec
sf2.07	0xe584bfb5
sf2.12	0x978ecd18
sf2ce.23	0x3f846b74
sf2ce.22	0x99f1cca4
sf2ce.21	0x925a7877
[End]
