Assets system: reconcile xml versions using implicit and relative offsets (#2614)

* Assets system: reconcile xml versions using implicit offsets

* simplify

* remove other object_mag xmls

* Introduce relative offsets: `Offset=".+0x421"`, more sizable `ResourceDesc`s, update spec

* fix

* reconcile object_mo xml

* reconcile object_tw xml

* reconcile object_xc xml (and add Tlut="gNameTLUT" to Texture resources)

* reconcile object_fd xml

* reconcile object_kingdodongo xml

* bss

* reconcile gameplay_keep.xml
This commit is contained in:
Dragorn421
2026-05-09 22:36:05 +02:00
committed by GitHub
parent 9b795e46de
commit 4b742bf3cf
40 changed files with 1745 additions and 4663 deletions
+199 -191
View File
@@ -1,184 +1,27 @@
<Root>
<File Name="object_mo" Segment="6">
<!-- Morpha's Title Card -->
<Texture Name="gMorphaTitleCardTex" Format="ia8" Width="128" Height="80" Offset="0x1010"/>
<Texture Name="object_mo_000000_Tex" Format="ia8" Width="16" Height="16" Offset="0x0"/>
<!-- Vertices and DLists for Morpha's Core -->
<Array Name="gMorphaCoreMembraneVtx" Count="15" Offset="0x5120">
<Vtx/>
</Array>
<Array Name="gMorphaCoreNucleusVtx" Count="15" Offset="0x5210">
<Vtx/>
</Array>
<DList Name="gMorphaCoreMembraneDL" Offset="0x5300"/>
<DList Name="gMorphaCoreNucleusDL" Offset="0x5438"/>
<!-- Vertices for Morpha's tentacle segments -->
<Array Name="gMorphaTentaclePart1Vtx" Count="14" Offset="0x5618">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart2Vtx" Count="7" Offset="0x56F8">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart3Vtx" Count="7" Offset="0x5768">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart4Vtx" Count="7" Offset="0x57D8">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart5Vtx" Count="7" Offset="0x5848">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart6Vtx" Count="7" Offset="0x58B8">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart7Vtx" Count="7" Offset="0x5928">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart8Vtx" Count="7" Offset="0x5998">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart9Vtx" Count="7" Offset="0x5A08">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart10Vtx" Count="7" Offset="0x5A78">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart11Vtx" Count="7" Offset="0x5AE8">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart12Vtx" Count="7" Offset="0x5B58">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart13Vtx" Count="7" Offset="0x5BC8">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart14Vtx" Count="7" Offset="0x5C38">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart15Vtx" Count="7" Offset="0x5CA8">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart16Vtx" Count="7" Offset="0x5D18">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart17Vtx" Count="7" Offset="0x5D88">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart18Vtx" Count="7" Offset="0x5DF8">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart19Vtx" Count="7" Offset="0x5E68">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart20Vtx" Count="7" Offset="0x5ED8">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart21Vtx" Count="7" Offset="0x5F48">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart22Vtx" Count="7" Offset="0x5FB8">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart23Vtx" Count="7" Offset="0x6028">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart24Vtx" Count="7" Offset="0x6098">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart25Vtx" Count="7" Offset="0x6108">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart26Vtx" Count="7" Offset="0x6178">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart27Vtx" Count="7" Offset="0x61E8">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart28Vtx" Count="7" Offset="0x6258">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart29Vtx" Count="7" Offset="0x62C8">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart30Vtx" Count="7" Offset="0x6338">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart31Vtx" Count="7" Offset="0x63A8">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart32Vtx" Count="7" Offset="0x6418">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart33Vtx" Count="7" Offset="0x6488">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart34Vtx" Count="7" Offset="0x64F8">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart35Vtx" Count="7" Offset="0x6568">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart36Vtx" Count="7" Offset="0x65D8">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart37Vtx" Count="7" Offset="0x6648">
<Vtx/>
</Array>
<Array Name="gMorphaTentacleVtx" Count="20" Offset="0x66B8">
<Vtx/>
</Array>
<!-- DLists for Morpha's tentacle segments -->
<DList Name="gMorphaTentacleBaseDL" Offset="0x6800"/>
<DList Name="gMorphaTentaclePart0DL" Offset="0x6878"/>
<DList Name="gMorphaTentaclePart1DL" Offset="0x6938"/>
<DList Name="gMorphaTentaclePart2DL" Offset="0x6988"/>
<DList Name="gMorphaTentaclePart3DL" Offset="0x69D0"/>
<DList Name="gMorphaTentaclePart4DL" Offset="0x6A18"/>
<DList Name="gMorphaTentaclePart5DL" Offset="0x6A60"/>
<DList Name="gMorphaTentaclePart6DL" Offset="0x6AA8"/>
<DList Name="gMorphaTentaclePart7DL" Offset="0x6AF0"/>
<DList Name="gMorphaTentaclePart8DL" Offset="0x6B38"/>
<DList Name="gMorphaTentaclePart9DL" Offset="0x6B80"/>
<DList Name="gMorphaTentaclePart10DL" Offset="0x6BC8"/>
<DList Name="gMorphaTentaclePart11DL" Offset="0x6C10"/>
<DList Name="gMorphaTentaclePart12DL" Offset="0x6C58"/>
<DList Name="gMorphaTentaclePart13DL" Offset="0x6CA0"/>
<DList Name="gMorphaTentaclePart14DL" Offset="0x6CE8"/>
<DList Name="gMorphaTentaclePart15DL" Offset="0x6D30"/>
<DList Name="gMorphaTentaclePart16DL" Offset="0x6D78"/>
<DList Name="gMorphaTentaclePart17DL" Offset="0x6DC0"/>
<DList Name="gMorphaTentaclePart18DL" Offset="0x6E08"/>
<DList Name="gMorphaTentaclePart19DL" Offset="0x6E50"/>
<DList Name="gMorphaTentaclePart20DL" Offset="0x6E98"/>
<DList Name="gMorphaTentaclePart21DL" Offset="0x6EE0"/>
<DList Name="gMorphaTentaclePart22DL" Offset="0x6F28"/>
<DList Name="gMorphaTentaclePart23DL" Offset="0x6F70"/>
<DList Name="gMorphaTentaclePart24DL" Offset="0x6FB8"/>
<DList Name="gMorphaTentaclePart25DL" Offset="0x7000"/>
<DList Name="gMorphaTentaclePart26DL" Offset="0x7048"/>
<DList Name="gMorphaTentaclePart27DL" Offset="0x7090"/>
<DList Name="gMorphaTentaclePart28DL" Offset="0x70D8"/>
<DList Name="gMorphaTentaclePart29DL" Offset="0x7120"/>
<DList Name="gMorphaTentaclePart30DL" Offset="0x7168"/>
<DList Name="gMorphaTentaclePart31DL" Offset="0x71B0"/>
<DList Name="gMorphaTentaclePart32DL" Offset="0x71F8"/>
<DList Name="gMorphaTentaclePart33DL" Offset="0x7240"/>
<DList Name="gMorphaTentaclePart34DL" Offset="0x7288"/>
<DList Name="gMorphaTentaclePart35DL" Offset="0x72D0"/>
<DList Name="gMorphaTentaclePart36DL" Offset="0x7318"/>
<DList Name="gMorphaTentaclePart37DL" Offset="0x7360"/>
<DList Name="gMorphaTentaclePart38DL" Offset="0x73A8"/>
<DList Name="gMorphaTentaclePart39DL" Offset="0x73F0"/>
<DList Name="gMorphaTentaclePart40DL" Offset="0x7438"/>
<Texture Name="gMorphaWaterTex" Format="rgba16" Width="32" Height="32" Offset="0x7470"/>
<!-- DLists for Morpha's particles -->
<!-- Vertices and DLists for Morpha's particles 1 -->
<Array Name="gMorphaBubbleVtx" Count="4" Offset="0x100">
<Vtx/>
</Array>
<DList Name="gMorphaBubbleDL" Offset="0x140"/>
<Array Name="object_mo_Vtx_0001B0" Count="58" Offset="0x1B0">
<Vtx/>
</Array>
<DList Name="gMorphaDL_000550" Offset="0x550"/> <!-- This is the dlist for EnVbBall for some reason. -->
<Texture Name="object_mo_000680_Tex" Format="rgba16" Width="32" Height="32" Offset="0x680"/>
<Array Name="object_mo_Vtx_000E80" Count="4" Offset="0xE80">
<Vtx/>
</Array>
<DList Name="gMorphaDL_000EC0" Offset="0xEC0"/>
<DList Name="gMorphaDL_000EF8" Offset="0xEF8"/>
<!-- Vertices and DLists for Morpha's particles 2 -->
<DList Name="gMorphaDropletMaterialDL" Offset="0xF20"/>
<DList Name="gMorphaDropletModelDL" Offset="0xF70"/>
<Array Name="gMorphaDropletModelVtx" Count="4" Offset="0xF88">
@@ -189,35 +32,200 @@
<Vtx/>
</Array>
<!-- Morpha's Title Card -->
<Version Pattern="ntsc-.*|gc-jp.*|gc-us.*|ique-cn">
<Texture Name="gMorphaTitleCardTex" Format="ia8" Width="128" Height="80" Offset="0x1010"/>
</Version>
<Version Pattern="pal-.*|gc-eu.*">
<Texture Name="gMorphaTitleCardTex" Format="ia8" Width="128" Height="120" Offset="0x1010"/>
</Version>
<!-- Vertices and DList for the water in the room and in front of the camera -->
<Array Name="gMorphaWaterVtx" Count="4" Offset="0x3810">
<Array Name="gMorphaWaterVtx" Count="4">
<Vtx/>
</Array>
<DList Name="gMorphaWaterDL" Offset="0x3850"/>
<DList Name="gMorphaWaterDL" Length="25"/>
<!-- Unused content -->
<Texture Name="object_mo_003920_Tex" Format="ia16" Width="32" Height="32" Offset=".+0x8"/>
<Texture Name="object_mo_004120_Tex" Format="ia16" Width="32" Height="32"/>
<Texture Name="object_mo_004920_Tex" Format="ia16" Width="32" Height="32"/>
<!-- This is the dlist for EnVbBall for some reason. -->
<Array Name="object_mo_Vtx_0001B0" Count="58" Offset="0x1B0">
<!-- Vertices and DLists for Morpha's Core -->
<Array Name="gMorphaCoreMembraneVtx" Count="15">
<Vtx/>
</Array>
<DList Name="gMorphaDL_000550" Offset="0x550"/>
<Array Name="object_mo_Vtx_000E80" Count="4" Offset="0xE80">
<Array Name="gMorphaCoreNucleusVtx" Count="15">
<Vtx/>
</Array>
<DList Name="gMorphaDL_000EC0" Offset="0xEC0"/>
<DList Name="gMorphaDL_000EF8" Offset="0xEF8"/>
<DList Name="gMorphaDL_007BF8" Offset="0x67F8"/>
<DList Name="gMorphaCoreMembraneDL" Length="39"/>
<DList Name="gMorphaCoreNucleusDL" Length="32"/>
<Array Name="gMorphaVtx_006938" Count="14" Offset="0x5538">
<Array Name="gMorphaVtx_006938" Count="14">
<Vtx/>
</Array>
<Texture Name="object_mo_000000_Tex" Format="ia8" Width="16" Height="16" Offset="0x0"/>
<Texture Name="object_mo_000680_Tex" Format="rgba16" Width="32" Height="32" Offset="0x680"/>
<Texture Name="object_mo_003920_Tex" Format="ia16" Width="32" Height="32" Offset="0x3920"/>
<Texture Name="object_mo_004120_Tex" Format="ia16" Width="32" Height="32" Offset="0x4120"/>
<Texture Name="object_mo_004920_Tex" Format="ia16" Width="32" Height="32" Offset="0x4920"/>
<!-- Vertices for Morpha's tentacle segments -->
<Array Name="gMorphaTentaclePart1Vtx" Count="14">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart2Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart3Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart4Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart5Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart6Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart7Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart8Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart9Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart10Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart11Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart12Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart13Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart14Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart15Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart16Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart17Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart18Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart19Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart20Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart21Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart22Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart23Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart24Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart25Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart26Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart27Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart28Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart29Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart30Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart31Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart32Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart33Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart34Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart35Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart36Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentaclePart37Vtx" Count="7">
<Vtx/>
</Array>
<Array Name="gMorphaTentacleVtx" Count="20">
<Vtx/>
</Array>
<DList Name="gMorphaDL_007BF8" Length="1"/>
<!-- DLists for Morpha's tentacle segments -->
<DList Name="gMorphaTentacleBaseDL" Length="15"/>
<DList Name="gMorphaTentaclePart0DL" Length="24"/>
<DList Name="gMorphaTentaclePart1DL" Length="10"/>
<DList Name="gMorphaTentaclePart2DL" Length="9"/>
<DList Name="gMorphaTentaclePart3DL" Length="9"/>
<DList Name="gMorphaTentaclePart4DL" Length="9"/>
<DList Name="gMorphaTentaclePart5DL" Length="9"/>
<DList Name="gMorphaTentaclePart6DL" Length="9"/>
<DList Name="gMorphaTentaclePart7DL" Length="9"/>
<DList Name="gMorphaTentaclePart8DL" Length="9"/>
<DList Name="gMorphaTentaclePart9DL" Length="9"/>
<DList Name="gMorphaTentaclePart10DL" Length="9"/>
<DList Name="gMorphaTentaclePart11DL" Length="9"/>
<DList Name="gMorphaTentaclePart12DL" Length="9"/>
<DList Name="gMorphaTentaclePart13DL" Length="9"/>
<DList Name="gMorphaTentaclePart14DL" Length="9"/>
<DList Name="gMorphaTentaclePart15DL" Length="9"/>
<DList Name="gMorphaTentaclePart16DL" Length="9"/>
<DList Name="gMorphaTentaclePart17DL" Length="9"/>
<DList Name="gMorphaTentaclePart18DL" Length="9"/>
<DList Name="gMorphaTentaclePart19DL" Length="9"/>
<DList Name="gMorphaTentaclePart20DL" Length="9"/>
<DList Name="gMorphaTentaclePart21DL" Length="9"/>
<DList Name="gMorphaTentaclePart22DL" Length="9"/>
<DList Name="gMorphaTentaclePart23DL" Length="9"/>
<DList Name="gMorphaTentaclePart24DL" Length="9"/>
<DList Name="gMorphaTentaclePart25DL" Length="9"/>
<DList Name="gMorphaTentaclePart26DL" Length="9"/>
<DList Name="gMorphaTentaclePart27DL" Length="9"/>
<DList Name="gMorphaTentaclePart28DL" Length="9"/>
<DList Name="gMorphaTentaclePart29DL" Length="9"/>
<DList Name="gMorphaTentaclePart30DL" Length="9"/>
<DList Name="gMorphaTentaclePart31DL" Length="9"/>
<DList Name="gMorphaTentaclePart32DL" Length="9"/>
<DList Name="gMorphaTentaclePart33DL" Length="9"/>
<DList Name="gMorphaTentaclePart34DL" Length="9"/>
<DList Name="gMorphaTentaclePart35DL" Length="9"/>
<DList Name="gMorphaTentaclePart36DL" Length="9"/>
<DList Name="gMorphaTentaclePart37DL" Length="9"/>
<DList Name="gMorphaTentaclePart38DL" Length="9"/>
<DList Name="gMorphaTentaclePart39DL" Length="9"/>
<DList Name="gMorphaTentaclePart40DL" Length="6"/>
<Texture Name="gMorphaWaterTex" Format="rgba16" Width="32" Height="32" Offset=".+0x8"/>
</File>
</Root>