Vagrant Story/MPD files: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
Map Data
Map Data


  $0 4 ptrGraphicSection
  MPD_HEADER =======================================
$4 4 lenGraphicSection
$0 4 ptrRoomSection
$8 4 ptrClearedSection
$4 4 lenRoomSection
$C 4 lenClearedSection
$8 4 ptrClearedSection
$10 4 ptrScriptSection
$C 4 lenClearedSection
$14 4 lenScriptSection
$10 4 ptrScriptSection
$18 4 ptrDoorSection
$14 4 lenScriptSection
$1C 4 lenDoorSection
$18 4 ptrDoorSection
$20 4 ptrEnemySection
$1C 4 lenDoorSection
$24 4 lenEnemySection
$20 4 ptrEnemySection
$28 4 ptrTreasureSection
$24 4 lenEnemySection
$2C 4 lenTreasureSection
$28 4 ptrTreasureSection
  + [GraphicSection]
$2C 4 lenTreasureSection
  + [ClearedSection]
   
  + [ScriptSection]
+ RoomSection ====================================
+RoomHeader
+$00 4 lenGeometrySection
+$04 4 lenCollisionSection
+$08 4 lenSubSection03
+$0C 4 lenDoorSection
+$10 4 lenLightingSection
  +$14 4 lenSubSection06
  +$18 4 lenSubSection07
+$1C 4 lenSubSection08
+$20 4 lenSubSection09
+$24 4 lenSubSection0A
  +$28 4 lenSubSection0B
  +$2C 4 lenTextureEffectsSection (Fire, SavePoints, ExitArrows etc)
+$30 4 lenSubSection0D
+$34 4 lenSubSection0E
+$38 4 lenSubSection0F
+$3C 4 lenSubSection10
+$40 4 lenSubSection11
+$44 4 lenSubSection12
+$48 4 lenSubSection13
+$4C 4 lenAKAOSubSection (Audio)
+$50 4 lenSubSection15
+$54 4 lenSubSection16
+$58 4 lenSubSection17
+$5C 4 lenSubSection18
+ GeometrySection (Polygon groups)
+$00 4 numGroups
for (numGroups)
+$00 $40 GroupHeaderStructure
for (numGroups)
+$00 4 numPoly3gts
+$04 4 numPoly4gts
for (numPoly3gts)
+$00 2 p1x
+$02 2 p1y
+$04 2 p1z
+$06 1 p2x
+$07 1 p2y
+$08 1 p2z
+$09 1 p3x
+$0A 1 p3y
+$0B 1 p3z
+$0C 1 r1
+$0D 1 g1
+$0E 1 b1
+$0F 1 unknown
+$10 1 r2
+$11 1 g2
+$12 1 b2
+$13 1 u1
+$14 1 r3
+$15 1 g3
+$16 1 b3
+$17 1 v1
+$18 1 v2
+$19 1 v3
+$1A 2 texelMask
+$1C 1 u2
+$1D 1 u3
+$1E 2 idTexture
for (numPoly4gts)
+$00 2 p1x
+$02 2 p1y
+$04 2 p1z
+$06 1 p2x
+$07 1 p2y
+$08 1 p2z
+$09 1 p3x
+$0A 1 p3y
+$0B 1 p3z
+$0C 1 r1
+$0D 1 g1
+$0E 1 b1
+$0F 1 unknown
+$10 1 r2
+$11 1 g2
+$12 1 b2
+$13 1 u1
+$14 1 r3
+$15 1 g3
+$16 1 b3
+$17 1 v1
+$18 1 v2
+$19 1 v3
+$1A 2 texelMask
+$1C 1 u2
+$1D 1 u3
+$1E 2 idTexture
+$20 1 p4x
+$21 1 p4y
+$22 1 p4z
+$23 1 u4
+$24 1 r4
+$25 1 g4
+$26 1 b4
+$27 1 v4
+ CollisionSection
+$00 2 TyleWidth
+$02 2 TyleHeight
+$04 4 unknown
for (TyleWidth*TyleHeight) // West to East, South to North
+$00 1 FloorHeight
for (TyleWidth*TyleHeight) // West to East, South to North
+$00 1 CeilingHeight
for (TyleWidth*TyleHeight/2) // appears to be nibble based
+$00 1/2? Incline (angle of the floor tyle)
+$00 ? unknown (some form of bitmask one bit per tyle)
+ SubSection03
+ DoorSection
for (numDoors) // numDoors = lenDoorSection/0x0C
+$00 1 destZone
+$01 1 destRoom
+$02 6 unknown
+$08 4 idCurrentDoor
+ LightingSection
  + SubSection06
  + SubSection07
+ SubSection08
+ SubSection09
+ SubSection0A
  + SubSection0B
  + TextureEffectsSection (Fire, SavePoints, ExitArrows etc)
+ SubSection0D
+ SubSection0E
+ SubSection0F
+ SubSection10
+ SubSection11
+ SubSection12
+ SubSection13
+ AKAOSubSection (Audio)
+ SubSection15
+ SubSection16
+ SubSection17
+ SubSection18
  + ClearedSection ====================================
  + ScriptSection =====================================
         +$00 2 lenScriptSection
         +$00 2 lenScriptSection
         +$02 2 ptrDialogText
         +$02 2 ptrDialogText
Line 37: Line 173:
                 +$00 2 Unknown data
                 +$00 2 Unknown data
   
   
  + [DoorSection]
  + DoorSection ====================================
  + [EnemySection]
  + EnemySection ===================================
  + TreasureSection ================================
  + TreasureSection
         +$000 weapon blade
         +$000 weapon blade
               +$0    $4    ? unknown (always 3 if item exists 0 otherwise)
               +$0    $4    ? unknown (always 3 if item exists 0 otherwise)

Revision as of 06:59, 26 October 2010

Map Data

MPD_HEADER =======================================
	$0	4	ptrRoomSection
	$4	4	lenRoomSection
	$8	4	ptrClearedSection
	$C	4	lenClearedSection
	$10	4	ptrScriptSection
	$14	4	lenScriptSection
	$18	4	ptrDoorSection
	$1C	4	lenDoorSection
	$20	4	ptrEnemySection
	$24	4	lenEnemySection
	$28	4	ptrTreasureSection
	$2C	4	lenTreasureSection

+ RoomSection ====================================
	+RoomHeader
		+$00	4	lenGeometrySection
		+$04	4	lenCollisionSection
		+$08	4	lenSubSection03
		+$0C	4	lenDoorSection
		+$10	4	lenLightingSection
 		+$14	4	lenSubSection06
 		+$18	4	lenSubSection07
		+$1C	4	lenSubSection08
		+$20	4	lenSubSection09
		+$24	4	lenSubSection0A
 		+$28	4	lenSubSection0B
  		+$2C	4	lenTextureEffectsSection (Fire, SavePoints, ExitArrows etc)
		+$30	4	lenSubSection0D
		+$34	4	lenSubSection0E
		+$38	4	lenSubSection0F
		+$3C	4	lenSubSection10
		+$40	4	lenSubSection11
		+$44	4	lenSubSection12
		+$48	4	lenSubSection13
		+$4C	4	lenAKAOSubSection (Audio)
		+$50	4	lenSubSection15
		+$54	4	lenSubSection16
		+$58	4	lenSubSection17
		+$5C	4	lenSubSection18
	+ GeometrySection (Polygon groups)
		+$00	4	numGroups
		for (numGroups)
			+$00	$40	GroupHeaderStructure
		for (numGroups)
			+$00	4	numPoly3gts
			+$04	4	numPoly4gts
			for (numPoly3gts)
				+$00	2	p1x
				+$02	2	p1y
				+$04	2	p1z
				+$06	1	p2x
				+$07	1	p2y
				+$08	1	p2z
				+$09	1	p3x
				+$0A	1	p3y
				+$0B	1	p3z
				+$0C	1	r1
				+$0D	1	g1
				+$0E	1	b1
				+$0F	1	unknown
				+$10	1	r2
				+$11	1	g2
				+$12	1	b2
				+$13	1	u1
				+$14	1	r3
				+$15	1	g3
				+$16	1	b3
				+$17	1	v1
				+$18	1	v2
				+$19	1	v3
				+$1A	2	texelMask
				+$1C	1	u2
				+$1D	1	u3
				+$1E	2	idTexture
			for (numPoly4gts)
				+$00	2	p1x
				+$02	2	p1y
				+$04	2	p1z
				+$06	1	p2x
				+$07	1	p2y
				+$08	1	p2z
				+$09	1	p3x
				+$0A	1	p3y
				+$0B	1	p3z
				+$0C	1	r1
				+$0D	1	g1
				+$0E	1	b1
				+$0F	1	unknown
				+$10	1	r2
				+$11	1	g2
				+$12	1	b2
				+$13	1	u1
				+$14	1	r3
				+$15	1	g3
				+$16	1	b3
				+$17	1	v1
				+$18	1	v2
				+$19	1	v3
				+$1A	2	texelMask
				+$1C	1	u2
				+$1D	1	u3
				+$1E	2	idTexture
				+$20	1	p4x
				+$21	1	p4y
				+$22	1	p4z
				+$23	1	u4
				+$24	1	r4
				+$25	1	g4
				+$26	1	b4
				+$27	1	v4
	+ CollisionSection
		+$00	2	TyleWidth
		+$02	2	TyleHeight
		+$04	4	unknown
		for (TyleWidth*TyleHeight) // West to East, South to North
			+$00	1	FloorHeight
		for (TyleWidth*TyleHeight) // West to East, South to North
			+$00	1	CeilingHeight
		for (TyleWidth*TyleHeight/2) // appears to be nibble based
			+$00	1/2?	Incline (angle of the floor tyle)
		+$00	?	unknown (some form of bitmask one bit per tyle)
	+ SubSection03
	+ DoorSection
		for (numDoors) // numDoors = lenDoorSection/0x0C
			+$00	1	destZone
			+$01	1	destRoom
			+$02	6	unknown
			+$08	4	idCurrentDoor
	+ LightingSection
 	+ SubSection06
 	+ SubSection07
	+ SubSection08
	+ SubSection09
	+ SubSection0A
 	+ SubSection0B
  	+ TextureEffectsSection (Fire, SavePoints, ExitArrows etc)
	+ SubSection0D
	+ SubSection0E
	+ SubSection0F
	+ SubSection10
	+ SubSection11
	+ SubSection12
	+ SubSection13
	+ AKAOSubSection (Audio)
	+ SubSection15
	+ SubSection16
	+ SubSection17
	+ SubSection18
+ ClearedSection ====================================
+ ScriptSection =====================================
       +$00	2	lenScriptSection
       +$02	2	ptrDialogText
       +$04	2	ptrUnknown1
       +$06	2	ptrUnknown2
       +$08	2	Unknown1 (Always == 0?)
       +$0A	2	Unknown2 (Always == 0?)
       +$0C	2	Unknown3 (Always == 0?)
       +$0E	2	Unknown4 (Always == 0?)
       +$10 ScriptOpcodes
               +$00	?	Opcodes (as per Script Opcodes)
       +(ptrDialogText) DialogText
               +$00	2	numDialogs/ptrDialogText[0]
               for (numDialogs-1)
                       +$00	2	ptrDialogText
               for (numDialogs-1)
                       +$00	$	Dialog Text (as per VS Character Set)
       +(ptrUnknown1) Unknown1
               +$00	?	Unknown data
       +(ptrUnknown2) Unknown2
               +$00	2	Unknown data

+ DoorSection ====================================
+ EnemySection ===================================
+ TreasureSection ================================
       +$000 weapon blade
             +$0    $4    ? unknown (always 3 if item exists 0 otherwise)
             +$4    $1    itemnames list
             +$5    $1    items list
             +$6    $1    WEP files
             +$7    $1    item categories
             +$8    $2    DPmax*100
             +$A    $2    PPmax
             +$C    $2    DPcurrent*100
             +$E    $2    PPcurrent
             +$10   $1    STR
             +$11   $1    INT
             +$12   $1    AGL
             +$13   $1    cost value
             +$14   $1    bits 0+1 = damage type bits 3 and above = stat affected
             +$15   $3    ? unknown (always zero)
             +$18   $4    range
             +$1C   $8    classes
             +$24   $8    affinities
             +$2C   $2    [[Vagrant Story:materials list[material]]
             +$2E   $2    ? unknown (always zero)
       +$030 weapon grip
             +$0    $2    itemnames list
             +$2    $1    items list
             +$3    $1    item categories
             +$4    $1    number of gem slots
             +$5    $1    STR
             +$6    $1    INT
             +$7    $1    AGL
             +$8    $4    types
             +$C    $4    ? unknown (always zero)
       +$040 weapon gem slot 1
             +$0    $2    itemnames list
             +$2    $1    items list
             +$3    $1    ? unknown (always zero)
             +$4    $1    ? unknown (most likely this is special effect)
             +$5    $1    STR
             +$6    $1    INT
             +$7    $1    AGL
             +$8    $8    classes
             +$10   $8    affinities
             +$18   $4    ? unknown (always zero)
       +$05C weapon gem slot 2
             +$0    $2    itemnames list
             +$2    $1    items list
             +$3    $1    ? unknown (always zero)
             +$4    $1    ? unknown (most likely this is special effect)
             +$5    $1    STR
             +$6    $1    INT
             +$7    $1    AGL
             +$8    $8    classes
             +$10   $8    affinities
             +$18   $4    ? unknown (always zero)
       +$078 weapon gem slot 3
             +$0    $2    itemnames list
             +$2    $1    items list
             +$3    $1    ? unknown (always zero)
             +$4    $1    ? unknown (most likely this is special effect)
             +$5    $1    STR
             +$6    $1    INT
             +$7    $1    AGL
             +$8    $8    classes
             +$10   $8    affinities
             +$18   $4    ? unknown (always zero)
       +$094 weapon name
             +00    $18   $18str weapon name
       +$0AC blade
             +$0    $4    ? unknown (always 3 if item exists 0 otherwise)
             +$4    $1    itemnames list
             +$5    $1    items list
             +$6    $1    WEP files
             +$7    $1    item categories
             +$8    $2    DPmax*100
             +$A    $2    PPmax
             +$C    $2    DPcurrent*100
             +$E    $2    PPcurrent
             +$10   $1    STR
             +$11   $1    INT
             +$12   $1    AGL
             +$13   $1    cost value
             +$14   $1    bits 0+1 = damage type bits 3 and above = stat affected
             +$15   $3    ? unknown (always zero)
             +$18   $4    range
             +$1C   $8    classes
             +$24   $8    affinities
             +$2C   $2    [[Vagrant Story:materials list[material]]
             +$2E   $2    ? unknown (always zero)
       +$0CC grip
             +$0    $4    unknown (always 3 if item exists 0 otherwise)
             +$4    $2    itemnames list
             +$6    $1    items list
             +$7    $1    item categories
             +$8    $1    number of gem slots
             +$9    $1    STR
             +$A    $1    INT
             +$B    $1    AGL
             +$C    $4    types
             +$10   $4    ? unknown (always zero)
       +$0DC sheild
             +$0    $4    unknown (always 3 if item exists 0 otherwise)
             +$4    $1    itemnames list
             +$5    $1    items list
             +$6    $1    WEP files
             +$7    $1    item categories
             +$8    $2    DPmax*100
             +$A    $2    PPmax
             +$C    $2    DPcurrent*100
             +$E    $2    PPcurrent
             +$10   $1    number of gem slots
             +$11   $1    STR
             +$12   $1    INT
             +$13   $1    AGL
             +$18   $4    types
             +$1C   $8    classes
             +$24   $8    affinities
             +$2C   $2    [[Vagrant Story:materials list[material]]
             +$2E   $2    ? unknown (always zero)
       +$11C sheild gem slot 1
             +$0    $2    itemnames list
             +$2    $1    items list
             +$3    $1    ? unknown (always zero)
             +$4    $1    ? unknown (most likely this is special effect)
             +$5    $1    STR
             +$6    $1    INT
             +$7    $1    AGL
             +$8    $8    classes
             +$10   $8    affinities
             +$18   $4    ? unknown (always zero)
       +$138 sheild gem slot 2
             +$0    $2    itemnames list
             +$2    $1    items list
             +$3    $1    ? unknown (always zero)
             +$4    $1    ? unknown (most likely this is special effect)
             +$5    $1    STR
             +$6    $1    INT
             +$7    $1    AGL
             +$8    $8    classes
             +$10   $8    affinities
             +$18   $4    ? unknown (always zero)
       +$154 sheild gem slot 3
             +$0    $2    itemnames list
             +$2    $1    items list
             +$3    $1    ? unknown (always zero)
             +$4    $1    ? unknown (most likely this is special effect)
             +$5    $1    STR
             +$6    $1    INT
             +$7    $1    AGL
             +$8    $8    classes
             +$10   $8    affinities
             +$18   $4    ? unknown (always zero)
       +$170 armour 1
             +$0    $4    unknown (always 3 if item exists 0 otherwise)
             +$4    $1    itemnames list
             +$5    $1    items list
             +$6    $1    ? unknown (always zero)
             +$7    $1    item categories
             +$8    $2    DPmax*100
             +$A    $2    PPmax (always zero)
             +$C    $2    DPcurrent*100
             +$E    $2    PPcurrent (always zero)
             +$10   $1    ? unknown (always zero)
             +$11   $1    STR
             +$12   $1    INT
             +$13   $1    AGL
             +$18   $4    types
             +$1C   $8    classes
             +$24   $8    affinities
             +$2C   $2    [[Vagrant Story:materials list[material]]
             +$2E   $2    ? unknown (always zero)
       +$1A0 armour 2
             +$0    $4    unknown (always 3 if item exists 0 otherwise)
             +$4    $1    itemnames list
             +$5    $1    items list
             +$6    $1    ? unknown (always zero)
             +$7    $1    item categories
             +$8    $2    DPmax*100
             +$A    $2    PPmax (always zero)
             +$C    $2    DPcurrent*100
             +$E    $2    PPcurrent (always zero)
             +$10   $1    ? unknown (always zero)
             +$11   $1    STR
             +$12   $1    INT
             +$13   $1    AGL
             +$18   $4    types
             +$1C   $8    classes
             +$24   $8    affinities
             +$2C   $2    [[Vagrant Story:materials list[material]]
             +$2E   $2    ? unknown (always zero)
       +$1D0 accessory
             +$0    $4    unknown (always 3 if item exists 0 otherwise)
             +$4    $1    itemnames list
             +$5    $1    items list
             +$6    $1    ? unknown (always zero)
             +$7    $1    item categories
             +$8    $2    DPmax*100 (always zero)
             +$A    $2    PPmax (always zero)
             +$C    $2    DPcurrent*100 (always zero)
             +$E    $2    PPcurrent (always zero)
             +$10   $1    ? unknown (always zero)
             +$11   $1    STR
             +$12   $1    INT
             +$13   $1    AGL
             +$18   $4    types
             +$1C   $8    classes
             +$24   $8    affinities
             +$2C   $4    ? unknown (always zero)
       +$200 gem
             +$0    $4    unknown (always 3 if item exists 0 otherwise)
             +$4    $2    itemnames list
             +$6    $1    items list
             +$7    $1    ? unknown (always zero)
             +$8    $1    ? unknown (most likely this is special effect)
             +$9    $1    STR
             +$A    $1    INT
             +$B    $1    AGL
             +$C    $8    classes
             +$14   $8    affinities
             +$1C   $4    ? unknown (always zero)
       +$220 misc items
             for 4 misc items
                    +$0    $2    itemnames list
                    +$2    $1    ? unknown (always 3 if item exists 0 otherwise)
                    +$3    $1    quantity