ZAPD Update (#2851)

* git subrepo clone --force --branch=rebase2 C:/ZeldaStuff/ZAPDTR ZAPDTR/

subrepo:
  subdir:   "ZAPDTR"
  merged:   "6aa54a551"
upstream:
  origin:   "C:/ZeldaStuff/ZAPDTR"
  branch:   "rebase2"
  commit:   "6aa54a551"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

* git subrepo clone --force --branch=rebase2 C:/ZeldaStuff/ZAPDTR ZAPDTR/

subrepo:
  subdir:   "ZAPDTR"
  merged:   "88b012240"
upstream:
  origin:   "C:/ZeldaStuff/ZAPDTR"
  branch:   "rebase2"
  commit:   "88b012240"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

* Update (its broken)

* fix the enum

* git subrepo push --remote=C:/ZeldaStuff/ZAPDTR/ ZAPDTR

subrepo:
  subdir:   "ZAPDTR"
  merged:   "b7b6e1c82"
upstream:
  origin:   "C:/ZeldaStuff/ZAPDTR/"
  branch:   "rebase2"
  commit:   "b7b6e1c82"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

* New names for LUS actions

* git subrepo push --remote=C:/ZeldaStuff/ZAPDTR/ ZAPDTR

subrepo:
  subdir:   "ZAPDTR"
  merged:   "c5cfebeee"
upstream:
  origin:   "C:/ZeldaStuff/ZAPDTR/"
  branch:   "rebase2"
  commit:   "c5cfebeee"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

* git subrepo clone (merge) --force --branch=rebase2 C:/ZeldaStuff/ZAPDTR ZAPDTR/

subrepo:
  subdir:   "ZAPDTR"
  merged:   "d5f4769b8"
upstream:
  origin:   "C:/ZeldaStuff/ZAPDTR"
  branch:   "rebase2"
  commit:   "d5f4769b8"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

* Fix missing commands in the exporter.

* Cleanups.

* git subrepo pull --force --remote=https://github.com/harbourmasters/ZAPDTR --branch=master ZAPDTR

subrepo:
  subdir:   "ZAPDTR"
  merged:   "d4c35b90a"
upstream:
  origin:   "https://github.com/harbourmasters/ZAPDTR"
  branch:   "master"
  commit:   "d4c35b90a"
git-subrepo:
  version:  "0.4.3"
  origin:   "???"
  commit:   "???"

* Add unordered_map include to fix MacOS

* fix string_view

* Update Main.cpp

* fix string view

* So close I can almost taste it

* So close

* Fix missed git marker.

* Fix surface types and

* Update ZFile.cpp

* Delete Jenkinsfile

---------

Co-authored-by: Christopher Leggett <chris@leggett.dev>
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
This commit is contained in:
louist103
2023-05-07 19:58:50 -04:00
committed by GitHub
parent 778f548b01
commit f31a841789
91 changed files with 4385 additions and 7506 deletions

View File

@@ -9,6 +9,7 @@ This document aims to be a small reference of how to create a compatible xml fil
- [Basic XML](#basic-xml)
- [Resources types](#resources-types)
- [File](#file)
- [ExternalFile](#externalfile)
- [Texture](#texture)
- [Background](#background)
- [Blob](#blob)
@@ -33,6 +34,7 @@ This document aims to be a small reference of how to create a compatible xml fil
- [Array](#array)
- [Path](#path)
- [PlayerAnimationData](#playeranimationdata)
- [Pointer](#pointer)
## Basic XML
@@ -147,12 +149,15 @@ u64 gCraterSmokeConeTex[] = {
- Attributes:
- `Name`: Required. Suxffixed by `Tex`, unless it is a palette, in that case it is suffixed by `TLUT`.
- `Name`: Required. Suffixed by `Tex`, unless it is a palette, in that case it is suffixed by `TLUT`.
- `OutName`: Required. The filename of the extracted `.png` file.
- `Format`: Required. The format of the image. Valid values: `rgba32`, `rgba16`, `i4`, `i8`, `ia4`, `ia8`, `ia16`, `ci4` and `ci8`.
- `Width`: Required. Width in pixels of the image.
- `Height`: Required. Height in pixels of the image.
- `TlutOffset`: Optional. Specifies the tlut's offset used by this texture. This attribute is only valid if `Format` is either `ci4` or `ci8`, otherwise an exception would be thrown.
- `ExternalTlut`: Optional. Specifies that the texture's tlut is in a different file. Takes the filename of the file that contains the tlut.
- `ExternalTlutOffset`: Optional. Specifies the offset in the `ExternalTlut` of the tlut for the given texture.
- `SplitTlut`: Optional. Specifies that the given texture should take from the upper half of the tlut. Takes a bool, i.e. one of `true`, `false`, `1`, `0`.
The following is a list of the texture formats the Nintendo 64 supports, with their gfxdis names and ZAPD format names.
@@ -183,7 +188,7 @@ If you want to know more about this formats, you can check [`gsDPLoadTextureBloc
- Attributes:
- `Name`: Required. Suxffixed by `Background`.
- `Name`: Required. Suffixed by `Background`.
- `OutName`: Required. The filename of the extracted `.jpg` file.
※ Explicit use of this tag isn't often necesary because it would probably be extracted automatically by another extracted element. You can use this to name them if you don't like the autogenerated name.
@@ -211,7 +216,7 @@ u8 gFireTempleBlob_00CCC0[] = {
- Attributes:
- `Name`: Required. Suxffixed by `Blob`.
- `Name`: Required. Suffixed by `Blob`.
- `Size`: Required. Amount of bytes to extract. Hex.
※ We usually use blobs when we can't figure out the content's type of chunk of data.
@@ -230,7 +235,7 @@ A.k.a. Display list, or Gfx.
- Attributes:
- `Name`: Required. Suxffixed by `DL`.
- `Name`: Required. Suffixed by `DL`.
-------------------------
@@ -244,7 +249,7 @@ A data type exclusive to Majora's Mask, that has scrolling, color changing, and
- Attributes:
- `Name`: Required. Suxffixed by `TexAnim`.
- `Name`: Required. Suffixed by `TexAnim`.
-------------------------
@@ -304,7 +309,7 @@ Like `Scene`s and `Room`s, `AltHeader`s is special too. It should always be decl
- Attributes:
- `Name`: Required. Suxffixed by `AltHeader`.
- `Name`: Required. Suffixed by `AltHeader`.
-------------------------
@@ -318,7 +323,7 @@ Like `Scene`s and `Room`s, `AltHeader`s is special too. It should always be decl
- Attributes:
- `Name`: Required. Suxffixed by `Anim`.
- `Name`: Required. Suffixed by `Anim`.
-------------------------
@@ -332,7 +337,7 @@ Like `Scene`s and `Room`s, `AltHeader`s is special too. It should always be decl
- Attributes:
- `Name`: Required. Suxffixed by `Anim`.
- `Name`: Required. Suffixed by `Anim`.
-------------------------
@@ -346,7 +351,7 @@ Like `Scene`s and `Room`s, `AltHeader`s is special too. It should always be decl
- Attributes:
- `Name`: Required. Suxffixed by `Anim`.
- `Name`: Required. Suffixed by `Anim`.
- `SkelOffset`: Required. Offset of the `CurveSkeleton` (I.e. a [`Skeleton`](#skeleton) resource with `Type="Curve"`) related to this animation.
-------------------------
@@ -363,7 +368,7 @@ Useful only for the unused `object_human`'s animation data.
- Attributes:
- `Name`: Required. Suxffixed by `Anim`.
- `Name`: Required. Suffixed by `Anim`.
-------------------------
@@ -377,9 +382,16 @@ Useful only for the unused `object_human`'s animation data.
- Attributes:
- `Name`: Required. Suxffixed by `Skel`.
- `Name`: Required. Suffixed by `Skel`.
- `Type`: Required. Valid values: `Normal`, `Flex` and `Curve`.
- `LimbType`: Required. Valid values: `Standard`, `LOD`, `Skin`, `Curve` and `Legacy`.
- `EnumName`: Optional. The name of `typedef`'d limb enum.
- `LimbNone`: Optional. The name of the limb with index zero in the limb enum.
- `LimbMax`: Optional. The name of the max limb index in the limb enum.
ZAPD is able to generate a limb enum by itself only if all the required data is provided. Providing some but not all the required data would trigger an error and the execution will halt.
The required data is providing the `EnumName`, `LimbNone` and `LimbMax` attributes in the `Skeleton` or `LimbTable` node and the `EnumName` attribute in every `Limb` of this skeleton.
※ There are no restrictions in the `Type` and `LimbType` attributes besides the valid values, so any skeleton type can be combined with any limb type.
@@ -395,9 +407,14 @@ Useful only for the unused `object_human`'s animation data.
- Attributes:
- `Name`: Required. Suxffixed by `Skel`.
- `Name`: Required. Suffixed by `Skel`.
- `LimbType`: Required. Valid values: `Standard`, `LOD`, `Skin`, `Curve` and `Legacy`.
- `Count`: Required. Amount of limbs. Integer.
- `EnumName`: Optional. The name of `typedef`'d limb enum.
- `LimbNone`: Optional. The name of the limb with index zero in the limb enum.
- `LimbMax`: Optional. The name of the max limb index in the limb enum.
See [Skeleton](#skeleton) for info on the limb enum generation.
-------------------------
@@ -411,8 +428,11 @@ Useful only for the unused `object_human`'s animation data.
- Attributes:
- `Name`: Required. Suxffixed by `Limb`.
- `Name`: Required. Suffixed by `Limb`.
- `LimbType`: Required. Valid values: `Standard`, `LOD`, `Skin`, `Curve` and `Legacy`.
- `EnumName`: Optional. The name used for this limb in the limbs enum. It must be either present in every limb or in none.
See [Skeleton](#skeleton) for info on the limb enum generation.
-------------------------
@@ -451,7 +471,7 @@ extern u8 gJsjutanShadowTex[2048];
- Attributes:
- `Name`: Required. Suxffixed by `Col`.
- `Name`: Required. Suffixed by `Col`.
-------------------------
@@ -473,7 +493,7 @@ u64 pad34F8 = { 0 };
- Attributes:
- `Name`: Required. Suxffixed by ~~`TBD`~~.
- `Name`: Required. Suffixed by ~~`TBD`~~.
- `Type`: Required. Valid values: `s8`, `u8`, `x8`, `s16`, `u16`, `x16`, `s32`, `u32`, `x32`, `s64`, `u64`, `x64`, `f32` and `f64`.
※ Can be wrapped in an [`Array`](#array) tag.
@@ -527,7 +547,7 @@ Vec3s gLinkPauseChildDekuShieldJointTable[24] = {
- Attributes:
- `Name`: Required. Suxffixed by ~~`TBD`~~.
- `Name`: Required. Suffixed by ~~`TBD`~~.
- `Type`: Required. Specifies the vector's type (`Vec3s`, `Vec3i` and `Vec3f`). Valid values: `s16`, `s32` and `f32`.
- `Dimensions`: Required. The amount of dimensions of the vector. Valid values: `3`.
@@ -547,7 +567,7 @@ Vec3s gLinkPauseChildDekuShieldJointTable[24] = {
- Attributes:
- `Name`: Required. Suxffixed by `Vtx`.
- `Name`: Required. Suffixed by `Vtx`.
※ Can be wrapped in an [`Array`](#array) tag.
@@ -563,7 +583,7 @@ Vec3s gLinkPauseChildDekuShieldJointTable[24] = {
- Attributes:
- `Name`: Required. Suxffixed by `Mtx`.
- `Name`: Required. Suffixed by `Mtx`.
※ Explicit use of this tag isn't often necesary because it would probably be extracted automatically by another extracted element.
@@ -579,7 +599,7 @@ Vec3s gLinkPauseChildDekuShieldJointTable[24] = {
- Attributes:
- `Name`: Required. Suxffixed by `Cs`.
- `Name`: Required. Suffixed by `Cs`.
※ Explicit use of this tag isn't often necesary because it would probably be extracted automatically by another extracted element.
@@ -589,7 +609,7 @@ Vec3s gLinkPauseChildDekuShieldJointTable[24] = {
The `Array` element is special, because it needs an inner element to work. It will declare an array of its inner element.
Currently, only [`Scalar`](#scalar), [`Vector`](#vector) and [`Vtx`](#vtx) support being wrapped in an array.
Currently, only [`Pointer`](#pointer), [`Scalar`](#scalar), [`Vector`](#vector) and [`Vtx`](#vtx) support being wrapped in an array.
- Example:
@@ -616,7 +636,7 @@ Currently, only [`Scalar`](#scalar), [`Vector`](#vector) and [`Vtx`](#vtx) suppo
- Attributes:
- `Name`: Required. Suxffixed by `Path`.
- `Name`: Required. Suffixed by `Path`.
- `NumPaths`: Optional. The amount of paths contained in the array. It must be a positive integer.
-------------------------
@@ -633,7 +653,28 @@ Allows the extraction of the specific data of the player animations which are fo
- Attributes:
- `Name`: Required. Suxffixed by `AnimData`.
- `Name`: Required. Suffixed by `AnimData`.
- `FrameCount`: Required. The length of the animation in frames. It must be a positive integer.
-------------------------
### Pointer
Allows the extraction of a variable that contains a pointer
- Example:
```xml
<Array Name="object_hanareyama_obj_DLArray_004638" Count="54" Offset="0x4638">
<Pointer Type="Gfx"/>
</Array>
```
- Attributes:
- `Name`: Required.
- `Type`: Required. The type of the extracted pointer.
※ Can be wrapped in an [`Array`](#array) tag.
-------------------------