Articles |     home
Game Authoring Template   |   Verge Neverending Story   |   Verge Vs Everything Else   |   Verge Versions   |   Intro to Verge 2.5   |   Bad Game Design   |   Bad Game Design 2   |   RPG Menus   |   Medeval Demographics   |   V2k Info   |   Resources for the Verge Community   |   RPG Development   |   Map Technical Specs   |   Avoiding Spagetti   |   Hicolor or Locolor   |   Making Maps to the Verge Pallet   |   Final Fantasy Bouncy Digits   |   The Laws of Final Fantasy   |   Final Fantasy Case of the Invisible Person   |   Grand List of RPG Cliches
Map Technical Specs
This is a technical specification on the MAP format (the revised one). I don't
really know why you'd want to see it, but since I figured I mainly wrote this
out for myself so I'd know exactly what I needed. :)

Offset    | Length      | Desc
==========================================================================
0         | byte (1)    | Version number. Should be 3.
1         | 13          | VSP filename (8+4+null)
14        | 13          | Music filename (should be all caps)
27        | byte (1)    | Parallaxing controls. Legend:
          |             | 0: No parallax. Characters drawn inbetween layers.
          |             | 1: No parallax. Characters drawn ontop of all layers.
          |             | 2: Parallax. Characters drawn ontop of all layers.
          |             | 3: Parallax. Characters drawn inbetween layers.
28        | byte (1)    | Parallax multiplier
29        | byte (1)    | Parallax divisor
30        | 30          | Map name (29+null).
60        | byte (1)    | Show mapname on map start. 0=No/1=Yes
61        | byte (1)    | Able to save in this map. 0=No/1=Yes
62        | word (2)    | X coordinate starting position.
64        | word (2)    | Y coordinate starting position.
66        | byte (1)    | Able to Hide in this map. 0=No/1=Yes
67        | byte (1)    | Map is Warpable. 0=No/1=Yes
68        | word (2)    | Width of map (X)
70        | word (2)    | Height of map (Y)
72        | byte (1)    | Compression (Should always be 0 for now)
73        | 27          | Unused (buffer for upward compatiblity)
==========|=============|=================================================
100       | X*Y*2       | Background layer
          | X*Y*2       | Foreground layer
          | X*Y         | Obstruction / Zone info:
          |             | Bit 1 is simply on/off for obstruction
          |             | Bits 2 through 8 are zone indexes 0 thru 127
==========|=============|=================================================
          | 52*128      | 128 52-byte Zone Data records. Format of rec:
          |             | {  char zonename[15];
          |             |    unsigned short int callevent;
          |             |    unsigned char percent;
          |             |    unsigned char delay;
          |             |    unsigned char aaa;
          |             |    char savedesc[30];   }
==========|=============|=================================================
          | word (2)    | Number of events

The rest of the format is too unstable to describe. I would venture that
even parts of this are at risk, but this format would be easier to write
a conversion program for than the previous format. :)

Here is the technical specification for the new VSP format:

Offset    | Length      | Desc
==========================================================================
0         | word (2)    | Version number. Should be 2.
2         | 768         | Palette data. Values should range 0-63 (r,g,b)
770       | word (2)    | Number of tiles in this VSP
772       | Numtiles*256| Tile data
==========|=============|=================================================
          | 8 * 10      | Tile animation data. Format of this record is:
          |         (2) | Start tile index
          |         (2) | End tile index
          |         (4) | Delay

Pretty simple, eh?