Super Street Fighter II: The New Challengers (Genesis)/ROM map

From Data Crystal
Jump to navigation Jump to search

Work in Progress

Stages are indentified by a byte :

  • 0x00 : Ryu stage
  • 0x01 : E. Honda stage
  • 0x02 : Blanka stage
  • 0x03 : Guile stage
  • 0x04 : Ken stage
  • 0x05 : Chun Li stage
  • 0x06 : Zangief stage
  • 0x07 : Dhalsim stage
  • 0x08 : Dictator stage
  • 0x09 : Sagat stage
  • 0x0A : Boxer stage
  • 0x0B : Claw stage
  • 0x0C : Cammy stage
  • 0x0D : T. Hawk stage
  • 0x0E : Fei Long stage
  • 0x0F : Deejay stage
  • 0x10 : Bonus 1 (car) stage
  • 0x11 : Bonus 2 (bricks) stage
  • 0x12 : Bonus 3 (barrels) stage

Tilesets loaders are stored as a list terminated by a 0 :

  • 1 word : number of bytes to load (0 = end of list)
  • 1 long : source address of the data in ROM
  • 1 word : dest address in VRAM

Stage Objects Lists are lists of elements that can be :

  • 0x80 : unknown
  • 0xFF : end of list
  • 7 bytes defining an object :
    • 1 byte : object type
    • 1 byte : object subtype
    • 1 byte : object subsubtype ?
    • 1 word : x position
    • 1 word : y position

Sprites Definitions

  • 1 word : number of hard sprites - 1
  • then, for each hard sprite :
    • 1 word : delta x (signed)
    • 1 word : delta y (signed)
    • 1 byte : delta tile (offset between the needed tile and the field base_tile in the Object struct)
    • 1 byte : flags. Format: Svh? HHVV where :
      • if S = 1, then field 0x14 of the Object struct is or'ed to the delta tile (mainly for palettes)
      • v and h : flip flags
      • HH, VV : horizontal and vertical sizes

Characters Animations Table

They all start by offsets to actual animation data. For example, Ryu Animation Table starts at 0x6a58c, and first value (0x57e) is the offset from 0x6a58c, so first animation starts at 0x6a58c + 0x57e = 0x6adda.

The data is a list of 4 bytes :

  • 1 byte : number of frames of the animation step
  • 1 byte : flags. Bit 7 means this step is the last of the animation
  • 1 byte : frame_id of the animation step
  • 1 byte : boxes_id. This refers to an array of group of rects (see further).

When the last animation is met (bit 7 of flags field), then the next word is an offset to the looping step

ROM offset Size Description
0x000000 0x100 68000 Interruptions Vectors
0x000100 0x100 Megadrive Header
0x3352 4 * 0x71 Addresses of objects update functions
0x003AAA code Entry Point
0x003B52 24 Initial VDP registers values
0x003B6E 38 Z80 Sound driver code
0x003D4E code Wait VInt
0x003EEA code VInt
0x004072 code HInt
0x014862 4*19 List of addresses to stage palettes

2 palettes by stage (see stage identifiers)

0x0148C0 2*19 Offsets to stages tilesets loaders (*)
0x0148E6 Ryu Stage Tileset Loader
0x014900 E. Honda Stage Tileset Loader
0x01491A Blanka Stage Tileset Loader
0x01492C Guile Stage Tileset Loader
0x014946 Ken Stage Tileset Loader
0x014960 Chun Li Stage Tileset Loader
0x01497A Zangief Stage Tileset Loader
0x014994 Dhalsim Stage Tileset Loader
0x0149A6 Dictator Stage Tileset Loader
0x0149C0 Sagat Stage Tileset Loader
0x0149D2 Boxer Stage Tileset Loader
0x0149EC Claw Stage Tileset Loader
0x0149FE Cammy Stage Tileset Loader
0x014A18 T. Hawk Stage Tileset Loader
0x014A3A Fei Long Stage Tileset Loader
0x014A54 Deejay Stage Tileset Loader
0x014A76 Bonus Stage 1 Tileset Loader
0x014AA0 Bonus Stage 2 Tileset Loader
0x014AC2 Bonus Stage 3 Tileset Loader
0x0169AE code Ryu / Ken specific code (6)
0x016A1A code Sagat specific code (5)
0x016A24 code Ryu / Ken specific code (5)
0x016A4E code Ryu / Ken specific code (2)
0x016BFA code Ryu / Ken specific code (1)
0x016CBC code Ryu / Ken specific code (3)
0x017142 code Ryu / Ken specific code (7)
0x01729E code Sagat specific code (2)
0x0172BE code Sagat specific code (1)
0x017374 code Sagat specific code (3)
0x01766C code Sagat specific code (6)
0x176EE code E. Honda specific code (5)
0x01773C code E. Honda specific code (7)
0x17744 code E. Honda specific code (4)
0x017780 code E. Honda specific code (2)
0x0178FA code E. Honda specific code (1)
0x0179B0 code E. Honda specific code (3)
0x017E10 code E. Honda specific code (6)
0x017F94 code Blanka specific code (5)
0x017FD6 code Blanka specific code (2)
0x01814A code Blanka specific code (1)
0x018248 code Blanka specific code (3)
0x01882C code Blanka specific code (6)
0x01894A code Guile specific code (5)
0x0189EE code Guile specific code (4)
0x018A52 code Guile specific code (1)
0x018ACC code Guile specific code (2)
0x018EF0 code Dhalsim specific code (3)
0x01900A code Guile specific code (6)
0x0190E6 code Guile specific code (7)
0x019142 code Chun Li specific code (5)
0x01918E code Chun Li specific code (4)
0x019218 code Chun Li specific code (2)
0x0195C2 code Chun-Li specific code (1)
0x01966C code Chun-Li specific code (3)
0x019BDE code Chun-Li specific code (6)
0x019C88 code Chun-Li specific code (6)
0x19D90 code Dhalsim specific code (5)
0x19DD2 code Dhalsim specific code (1)
0x019F9E code Dhalsim specific code (4)
0x019FEC code Dhalsim specific code (2)
0x01A28C code Dhalsim specific code (3)
0x01A4E0 code Dhalsim specific code (6)
0x01A612 code Dhalsim specific code (7)
0x1A65A code Dictator specific code (5)
0x1A6BA code Dictator specific code (2)
0x1A7E4 code Dictator specific code (1)
0x1A8E4 code Dictator specific code (3)
0x1B0FC code Dictator specific code (6)
0x01BA9E 16*4 Offsets to char specific codes (2)
0x01BB04 16*4 Offsets to char specific codes (3)
0x01D15E 16*4 Offsets to char specific codes (1)
0x01D1B2 16*4 Offsets to char specific codes (4)
0x01D758 16*4 Offsets to char specific codes (5)
0x1D7FC code Ryu / Ken, E. Blanka, Dictator, Sagat, Boxer and Fei Long specific code (4)
0x01D806 code Blanka, Dictator, Sagat, Boxer, Fei Long specific code (7)
0x01DA9E code Guile specific code (3)
0x01E4E6 16*2 Offsets to char specific codes (6)
0x01EBAE 16*2 Offsets to char specific codes (7)
0x01F58A code Zangief specific code (5)
0x01F5F8 code Zangief specific code (4)
0x01F768 code Zangief specific code (1)
0x01FBC6 code Zangief specific code (2)
0x020058 code Zangief specific code (3)
0x020816 code Zangief specific code (6)
0x020850 code Zangief specific code (7)
0x02090C code Boxer specific code (5)
0x020946 code Boxer specific code (2)
0x0209DA code Boxer specific code (1)
0x020BA8 code Boxer specific code (3)
0x020EB4 code Boxer specific code (6)
0x020F5C code Claw specific code (4)
0x020FC4 code Claw specific code (4)
0x02102E code Claw specific code (6)
0x02106A code Claw specific code (2)
0x0211FE code Claw specific code (1)
0x02138A code Claw specific code (3)
0x021BF4 code Claw specific code (7)
0x021C4C code Cammy specific code (5)
0x021C96 code Cammy specific code (4)
0x021CA2 code Cammy specific code (7)
0x021D30 code Cammy specific code (6)
0x021D6E code Cammy specific code (2)
0x02219C code Cammy specific code (1)
0x022238 code Cammy specific code (3)
0x022858 code T. Hawk specific code (4)
0x022864 code T. Hawk specific code (7)
0x0228AE code T. Hawk specific code (5)
0x022904 code T. Hawk specific code (6)
0x02293E code T. Hawk specific code (2)
0x022B38 code T. Hawk specific code (1)
0x022DB2 code T. Hawk specific code (3)
0x023364 code Fei Long Specific code (5)
0x0233C0 code Fei Long Specific code (1)
0x023422 code Fei Long Specific code (2)
0x02384A code Fei Long Specific code (3)
0x023CC4 code Fei Long Specific code (6)
0x023D20 code DeeJay specific code (5)
0x023D4C code DeeJay specific code (4)
0x023D94 code DeeJay specific code (1)
0x023E44 code DeeJay specific code (2)
0x02404E code DeeJay specific code (3)
0x024412 code DeeJay specific code (6)
0x0244C2 code DeeJay specific code (7)
0x028434 2*19 Offsets to stages objects lists
0x02845A Ryu Stage objects list (see note)
0x028478 E. Honda Stage objects list (see note)
0x02849D Blanka Stage objects list (see note)
0x0284A6 Guile Stage objects list (see note)
0x0284BD Ken Stage objects list (see note)
0x0284DB Chun-Li Stage objects list (see note)
0x0284F2 Zangief Stage objects list (see note)
0x028509 Dhalsim Stage objects list (see note)
0x02850A Dictator Stage objects list (see note)
0x028521 Sagat Stage objects list (see note)
0x02852A Boxer Stage objects list (see note)
0x028541 Claw Stage objects list (see note)
0x028551 Cammy Stage objects list (see note)
0x02856F T. Hawk Stage objects list (see note)
0x02857F Fei Long Stage objects list (see note)
0x0285A3 Deejay Stage objects list (see note)
0x0285AB Bonus Stage 1 objects list (see note)
0x0285C8 Bonus Stage 2 objects list (see note)
0x028608 Bonus Stage 3 objects list (see note)
0x032948 4*16 List of pointers to characters animations tables
0x06a85c 140*2 Ryu animations table offsets (see note)
0x06a976 Ryu animations data (up to 0x06b3a7)
0x06c0d8 154*2 E. Honda animations table (see note)
0x06c20c E. Honda animations data (up to 0x06ca9f)
0x06d6a0 169*2 Blanka animations table (see note)
0x06d7f2 Blanka animations data (up to 0x06e139)
0x06ebda Guile animations table (see note)
0x06ece4 133*2 Guile animations data (up to 0x06f4e5)
0x070226 140*2 Ken animations table (see note)
0x07033e Ken animations data (up to 0x070c6d)
0x0719be 173*2 Chun-Li animations table (see note)
0x071b18 Chun-Li animations data (up to 0x072571)
0x073302 141*2 Zangief animations table (see note)
0x07341c Zangief animations data (up to 0x073d8f)
0x074a60 137*2 Dhalsim animations table (see note)
0x074b72 Dhalsim animations data (up to 0x075677)
0x0760c8 159*2 Dictator animations table (see note)
0x076206 Dictator animations data (up to 0x076ee3)
0x077964 133*2 Sagat animations table (see note)
0x077a6e Sagat animations data (up to 0x0782eb)
0x078d8c 134*2 Boxer animations table (see note)
0x078e98 Boxer animations data (up to 0x0796c1)
0x07ba48 141*2 Claw animations table (see note)
0x07bb62 Claw animations data (up to 0x07c3f7)
0x079f22 137*2 Cammy animations table (see note)
0x07a034 Cammy animations data (up to 0x07aff7)
0x07cd88 134*2 T. Hawk animations table (see note)
0x07ce94 T. Hawk animations data (up to 0x07d599)
0x07e17a 136*2 Fei Long animations table (see note)
0x07e28a Fei Long animations data (up to 0x07ec43)
0x07f9e4 142*2 Deejay animations table (see note)
0x7fb00 Deejay animations data (up to 0x080547)
0x090000 1 Numbers of BGMs (59)
0x090002 59*4 Pointers to each BGM data
0x0900ee Start of BGM datas
0x09f000 32*? FM Instruments data (32 bytes per instrument)
0x028AEA code Objects update functions (up to 0x0309F8)
0x2CA344 Objects Sprites Definitions (see notes) (up to 0x2CE4AC)
0x3B6200 Ryu Stage tileset 3 data
0x3B6320 E. Honda Stage tileset 3 data
0x3B6760 Guile Stage tileset 3 data
0x3B7560 Ken Stage tileset 3 data
0x3B8600 Chun Li Stage tileset 3 data
0x3B9600 Zangief Stage tileset 3 data
0x3B9CA0 Dictator Stage tileset 3 data
0x3BBCA0 Boxer Stage tileset 3 data
0x3BCD60 Cammy Stage tileset 3 data
0x3BD640 T. Hawk Stage tileset 3 data
0x4BD760 Fei Long Stage tileset 3 data
0x3BD8E0 Deejay Stage tileset 3 data
0x3BDAE0 Bonus Stage 1 tileset 3 data
0x3BE960 Bonus Stage 1 tileset 3' data
0x3BECE0 Bonus Stage 3 tileset 3 data
0x3BFEE0 Bonus Stage 2 tileset 3 data
0x3EB100 Ryu Stage tileset 1 data
0x3EFFC0 E. Honda Stage tileset 1 data
0x3F5DC0 Blanka Stage tileset 1 data
0x3FC5C0 Guile Stage tileset 1 data
0x4024A0 Ken Stage tileset 1 data

(also used for Bonus Stage 1)

0x408C40 Chun Li Stage tileset 1 data
0x40EBE0 Zangief Stage tileset 1 data

(also used for Bonus Stage 2)

0x414CA0 Dhalsim Stage tileset 1 data
0x41A5A0 Dictator Stage tileset 1 data

(also used for Bonus Stage 3)

0x41F4A0 Sagat Stage tileset 1 data
0x4252C0 Boxer Stage tileset 1 data
0x42B600 Claw Stage tileset 1 data
0x431BA0 Cammy Stage tileset 1 data
0x4383A0 T. Hawk Stage tileset 1 data
0x43F3A0 T. Hawk Stage tileset 1' data
0x43F860 Fei Long Stage tileset 1 data
0x445460 Deejay Stage tileset 1 data
0x44C460 Deejay Stage tileset 1' data
0x44C9A0 Bonus Stage 1 tileset 1' data
0x44F9A0 Bonus Stage 2 tileset 1' data
0x450240 Bonus Stage 3 tileset 1' data
0x4534A0 Ryu Stage tileset 2 data
0x4554A0 E. Honda Stage tileset 2 data
0x4574A0 Blanka Stage tileset 2 data
0x4594A0 Guile Stage tileset 2 data
0x45B4A0 Ken Stage tileset 2 data
0x45D4A0 Chun Li Stage tileset 2 data
0x45F4A0 Zangief Stage tileset 2 data
0x4614A0 Dhalsim Stage tileset 2 data
0x4634A0 Dictator Stage tileset 2 data
0x4654A0 Sagat Stage tileset 2 data
0x4674A0 Boxer Stage tileset 2 data
0x4694A0 Claw Stage tileset 2 data
0x46B4A0 Cammy Stage tileset 2 data
0x46D4A0 T. Hawk Stage tileset 2 data
0x46F4A0 Fei Long Stage tileset 2 data
0x4714A0 Deejay Stage tileset 2 data
0x4734A0 Bonus Stage 1 tileset 2 data
0x4754A0 Bonus Stage 2 tileset 2 data
0x4764A0 Bonus Stage 3 tileset 2 data
0x4774A0 32*2 Ryu Stage palettes 0 and 1
0x4774E0 32*2 E.Honda Stage palettes 0 and 1 + color cycles
0x477520 80*2 Blanka Stage palettes 0 and 1
0x4775C0 32*2 Guile Stage palettes 0 and 1
0x477600 32*2 Ken Stage palettes 0 and 1
0x477640 32*2 Chun Li Stage palettes 0 and 1
0x477680 32*2 Zangief Stage palettes 0 and 1
0x4776C0 32*2 Dhalsim Stage palettes 0 and 1
0x477700 32*2 Dictator Stage palettes 0 and 1
0x477740 32*2 Sagat Stage palettes 0 and 1
0x477780 192*2 Boxer Stage palettes 0 and 1 + color cycles
0x477900 80*2 Claw Stage palettes 0 and 1 + color cycles
0x4779A0 288*2 Cammy Stage palettes 0 and 1
0x477BE0 32*2 T. Hawk Stage palettes 0 and 1
0x477C20 32*2 Fei Long Stage palettes 0 and 1
0x477C60 32*2 Deejay Stage palettes 0 and 1
0x477CA0 32*2 Bonus Stage 1 palettes 0 and 1
0x477CE0 32*2 Bonus Stage 2 palettes 0 and 1
0x477D20 32*2 Bonus Stage 3 palettes 0 and 1