If you are still using the old URL (datacrystal.romhacking.net), please update your bookmarks! The old URL may stop working soon.
The current URL is datacrystal.tcrf.net.
The current URL is datacrystal.tcrf.net.
Vagrant Story/MPD files: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
Map Data | Map Data | ||
$0 4 | 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 | +$00 2 lenScriptSection | ||
+$02 2 ptrDialogText | +$02 2 ptrDialogText | ||
Line 37: | Line 173: | ||
+$00 2 Unknown data | +$00 2 Unknown data | ||
+ | + DoorSection ==================================== | ||
+ | + 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