Introduction

This appendix explains file formats that originate from VPW Studio.

Notes


Table of Contents

  1. VPW Studio Palette Format
  2. LocationFile Format
  3. FileTableDB Format
  4. Stable Definition Format
  5. Wrestler Definition Format
  6. Project File Format

VPW Studio Palette Format

The VPW Studio Palette format (henceforth "VPWSPal", based on its file extension: .vpwspal) is a modification of the text-based JASC Paint Shop Pro palette format. This format was created to handle transparency and "sub-palettes" in a relatively simple manner.

The first line of the file must be VPWStudio-PAL. This is what identifies the palette as VPWSPal format, in comparison to the JASC format.

Below that is a four digit number. The first two digits must be 01, but the two digits after that determine how many sub-palettes are defined. This is currently only used for 16-color palette files. For 256-color palette files, set the last two digits to 00.

The third line represents the number of colors in the palette, and must be 16 (targeting Ci4Palette) or 256 (targeting Ci8Palette). Ignore the number of entries added by the existence of sub-palettes.

All remaining lines define the colors in the palette. The order is: red green blue alpha

Where red, green, and blue have values between 0 and 255 (inclusive). alpha must either be 0 (representing transparent) or 255 (representing opaque).

All colors will be converted from 8 bits (0-255) to 5 bits (0-31), for hardware compatibility purposes. It is recommended to use multiples of 8 when choosing palette colors during the design phase.

If the VPWSPal file contains any sub-palettes, their palette entries continue after the first set of colors.

Example Files

16 colors, no sub-palettes:

VPWStudio-PAL
0100
16
0 0 0 0
16 16 16 255
66 57 66 255
111 65 61 255
99 90 99 255
144 57 78 255
144 83 32 255
150 86 75 255
193 118 85 255
206 148 123 255
210 168 71 255
255 248 96 255
0 0 0 255
0 0 0 255
0 0 0 255
0 0 0 255

Comparison between JASC PSP Palette and VPWSPal

In case you'd prefer to see the differences visually, here are some side-by-side comparisons of JASC Paint Shop Pro palette format and the VPW Studio palette format.

16 colors, no sub-palettes
JASC PSP VPW Studio Palette
JASC-PAL
0100
16
0 0 0
16 16 16
66 57 66
111 65 61
99 90 99
144 57 78
144 83 32
150 86 75
193 118 85
206 148 123
210 168 71
255 248 96
0 0 0
0 0 0
0 0 0
0 0 0
VPWStudio-PAL
0100
16
0 0 0 0
16 16 16 255
66 57 66 255
111 65 61 255
99 90 99 255
144 57 78 255
144 83 32 255
150 86 75 255
193 118 85 255
206 148 123 255
210 168 71 255
255 248 96 255
0 0 0 255
0 0 0 255
0 0 0 255
0 0 0 255

LocationFile Format

The LocationFile format is a plain text database defining locations in ROM and RAM to be used by VPW Studio. Each non-comment line consists of a entry in the LocationFile.

Lines starting with the # character are comments, and will be ignored by the LocationFile loader.

Breakdown

LocationType:Location,Size;Comment

LocationType

Location type can be one of three values:

Location

The location for this entry, specified in hex. If this is a RAM entry, it must begin with 80. Do not use 81 if you are converting a GameShark code to a LocationFile entry; the size is handled in the next section.

For File Table ID entries, this is a four digit hex number representing an index into the File Table.

Size

The size of this entry, in decimal. For a normal entry, this is how many bytes to read/write.

When handling a Code Change entry (see below), the Size value represents the number of bytes between the first and second change.

In some games, the $WRESTLERDEFS size is set to 1. This is often the case when the wrestler definitions are a list of pointers. VPW Studio manually handles the "list of pointers" case in the code (which is admittedly not the best option).

All FTID entry types have this value set to 1. It is currently ignored by the program.

Comment

The comment section is typically used to provide a note about the location, but comments starting with special characters have different meanings.

Special characters currently handled:

Special location strings are mapped in the program, so you can't make things up and expect VPW Studio to understand them. The current list of handled special location strings:

Data Locations VPW64 Costume Definitions Introduction Sequence Locations

WCW/nWo Revenge and later only. Ending sequences use the same formats, but are not yet handled.

Facial Hair, Facepaint, and Face Accessories

"Might be shared between WM2K, VPW2, No Mercy"

WrestleMania 2000 and VPW2 Story Mode Moveset and Parameters Bit Packing/Unpacking Currently Ungrouped Code Changes

FileTableDB Format

The FileTableDB format is a plain text database mapping File IDs to types and notes.

Lines starting with the # character are comments, and will be ignored by the FileTableDB loader.

Breakdown

FileID=Type;Notes|Settings

FileID

The ID file for this entry. Entries are in hex and should have 4 digits. Entries start from 0001, as 0000 is used as a "no file" index.

Type

(This is the challenging part.)

Currently supported values:

Notes

A note displayed in the FileTable dialog. If you are not adding any Settings to this item, you do not need to do anything special, aside from avoiding the "|" character in your description.

Settings

Settings (also known as "ExtraData") are optional, but are recommended for some file types. The beginning of the Settings string is denoted by a "|" at the end of the Note.

Currently supported values:

Currently unsupported values:


Stable Definition Format

The Stable Definition file is a text file following a specific pattern. Each game in the series defines Stable data differently, requiring the creation of an intermediate format.

Generally, the format consists of:

The stable number is decimal. Most other values are hexadecimal, with the exception of "Number of Championships" for World Tour and VPW64, which is decimal.
"Max Wrestlers in Stable" assumes that the wrestler select screen(s) have not been hacked to display more wrestlers.

WCW vs. nWo World Tour

Stable Number@Wrestler pointer list location={wrestler pointers},Championship text pointer,Number of Championships

Example stable definition: 0@80037068={80036444,80036498,800364EC,80036558,800365C8,80036624,80036688,800366E8,8003674C,800367B4,80036818,80036878,800368E8},80037278,3

Virtual Pro-Wrestling 64

Stable Number@Wrestler pointer list location={wrestler pointers},Championship text pointer,Number of Championships

Example stable definition: 0@80048920={80047298,800473A4,8004828C,80048308,8004742C,800474B4,80048380,80048410,80048494,80048520,80048070,80045B2C},80048C8C,1

WCW/nWo Revenge

Stable Number@Wrestler pointer list location={wrestler pointers},Stable graphic File ID

Example stable definition: 0@8003A1EC={80039390,80038EBC,800395E4,8003945C,800395A4,8003949C,80039628,800394E4,80039524},00BE

WWF WrestleMania 2000

Stable Number@Wrestler ID2 list pointer={wrestlers},Stable Name pointer

Example stable definition: 0@8004115C={01,02,07,11,06,17,10,00},8004AC20

Virtual Pro-Wrestling 2

Stable Number@Wrestler ID2 list pointer={wrestlers},Stable Name text index

Example stable definition: 0@8003FA0C={01,02,03,04,05,06,07,00},00E6

WWF No Mercy

Stable Number@Wrestler ID2 list pointer={wrestlers},Stable Name text index

Example stable definition: 0@80047150={01,0A,02,03,04,06,12,13,0E},0126


Wrestler Definition Format

The Wrestler Definition file is a text file that stores game-specific information about wrestler definitions. If this sounds similar to the Stable Definition format, that's because it is. Much like stables, each game stores wrestler data differently.

The format consists of:

All values are hexadecimal.

WCW vs. nWo World Tour

Game IdentifierWorldTour

Wrestler ID4/Wrestler ID2=unknown1,flags1,unknown2,namePointer,profilePointer,heightPointer,weightPointer

(todo)

Virtual Pro-Wrestling 64

Game IdentifierVPW64

Wrestler ID4/Wrestler ID2=unknown1,flags1,unknown2,namePointer,profilePointer,heightPointer,weightPointer

(todo)

WCW/nWo Revenge

Game IdentifierRevenge

Wrestler ID4/Wrestler ID2=unknown1,unknown2,unknown3,namePointer,heightPointer,weightPointer,unknown4,managerID2,unknown5,unknown6

(todo)

WWF WrestleMania 2000

Game IdentifierWM2K

Wrestler ID4/Wrestler ID2=namePointer,height,weight,movesetIndex,paramsIndex,theme,video,unknown,costumePointer1,costumePointer2,costumePointer3,costumePointer4

(todo)

Virtual Pro-Wrestling 2

Game IdentifierVPW2

Wrestler ID4/Wrestler ID2=theme,namecall,height,weight,voiceA,voiceB,movesetIndex,paramsIndex,appearanceIndex,profileIndex

Example wrestler definition: 0001/01=02,02,23,2D,01,00,02EE,02ED,0000,0002

WWF No Mercy

Game IdentifierNoMercy

Wrestler ID4/Wrestler ID2=theme,video,height,unknown,weight,movesetIndex,paramsIndex,appearanceIndex,profileIndex

Example wrestler definition: 0001/01=25,1D,11,00,00AF,01FA,01F9,0000,0003


Project File Format

.vpwsproj is an XML file.

(todo: this is perpetually changing and is not worth documenting until it's reached a stable state.)