mirror of
https://github.com/HackerN64/HackerOoT.git
synced 2026-01-21 10:37:37 -08:00
Merge pull request #82 from Yanis42/v2
HackerOoT v2.0 - Refactors & new features!
This commit is contained in:
@@ -23,4 +23,4 @@ AllowShortEnumsOnASingleLine: false
|
||||
AlignEscapedNewlines: Left
|
||||
AlignTrailingComments: true
|
||||
SortIncludes: false
|
||||
TypenameMacros: ['BAD_RETURN']
|
||||
TypenameMacros: ['BAD_RETURN', 'ALIGNED']
|
||||
|
||||
4
.gdbinit
Normal file
4
.gdbinit
Normal file
@@ -0,0 +1,4 @@
|
||||
set remote noack-packet on
|
||||
define target hookpost-remote
|
||||
source tools/gdb_load_ovl.py
|
||||
end
|
||||
9
.gitignore
vendored
9
.gitignore
vendored
@@ -19,15 +19,23 @@ notes/
|
||||
baserom/
|
||||
baseroms/*/segments/
|
||||
docs/doxygen/
|
||||
build/*/cache/
|
||||
*.elf
|
||||
*.ram
|
||||
*.sav
|
||||
*.sra
|
||||
*.srm
|
||||
*.z64
|
||||
*.n64
|
||||
*.v64
|
||||
*.map
|
||||
*.dump
|
||||
*.wad
|
||||
out.txt
|
||||
*.ram
|
||||
*.bin
|
||||
F3DEX3/*.code
|
||||
F3DEX3/*.data
|
||||
|
||||
# Tool artifacts
|
||||
tools/mipspro7.2_compiler/
|
||||
@@ -51,6 +59,7 @@ graphs/
|
||||
*.fbx
|
||||
!*_custom*
|
||||
.extracted-assets.json
|
||||
extracted/
|
||||
|
||||
# Docs
|
||||
!docs/tutorial/
|
||||
|
||||
BIN
F3DEX3/F3DEX3.code.bps
Normal file
BIN
F3DEX3/F3DEX3.code.bps
Normal file
Binary file not shown.
BIN
F3DEX3/F3DEX3.data.bps
Normal file
BIN
F3DEX3/F3DEX3.data.bps
Normal file
Binary file not shown.
109
INSTALLATION.md
Normal file
109
INSTALLATION.md
Normal file
@@ -0,0 +1,109 @@
|
||||
# Installation
|
||||
|
||||
We recommend using WSL on Windows, or native Linux, which the rest of this readme describes. We currently have instructions for
|
||||
|
||||
* [Windows](#Windows), with and without WSL
|
||||
* [macOS](docs/BUILDING_MACOS.md)
|
||||
* [Linux](#Linux-Native-or-under-WSL--VM), natively or using WSL / VM
|
||||
* [Docker](docs/BUILDING_DOCKER.md)
|
||||
|
||||
(These will also depend on the Linux instructions.)
|
||||
Some of these may also be out of date or unmaintained; usually our contributors use WSL, Linux, and macOS, so these instructions should be up to date.
|
||||
|
||||
### Windows
|
||||
|
||||
For Windows 10 or 11, install WSL and a distribution by following this
|
||||
[WSL Installation Guide](https://docs.microsoft.com/en-us/windows/wsl/install).
|
||||
We recommend using Ubuntu 20.04 as the Linux distribution.
|
||||
|
||||
For older versions of Windows, install a Linux VM or refer to either [Cygwin](docs/BUILDING_CYGWIN.md) or [Docker](docs/BUILDING_DOCKER.md) instructions.
|
||||
|
||||
|
||||
### Linux (Native or under WSL / VM)
|
||||
|
||||
#### 1. Install build dependencies
|
||||
|
||||
The build process has the following package requirements:
|
||||
|
||||
* git
|
||||
* build-essential
|
||||
* binutils-mips-linux-gnu
|
||||
* python3
|
||||
* python3-pip
|
||||
* python3-venv
|
||||
* libpng-dev
|
||||
* gcc-mips-linux-gnu
|
||||
|
||||
Under Debian / Ubuntu (which we recommend using), you can install them with the following commands:
|
||||
|
||||
```bash
|
||||
sudo apt-get update
|
||||
sudo apt-get install git build-essential binutils-mips-linux-gnu python3 python3-pip python3-venv libpng-dev gcc-mips-linux-gnu
|
||||
```
|
||||
|
||||
#### 2. Clone the repository
|
||||
|
||||
**N.B.** If using WSL, we strongly encourage you to clone into WSL's Linux filesystem using Linux's `git`.
|
||||
Cloning into the Windows filesystem will result in much slower read/write speeds, and often causes issues when Windows copies the files with the wrong line endings, which the compiler IDO cannot handle correctly.
|
||||
|
||||
Clone `https://github.com/zeldaret/oot.git` where you wish to have the project, with a command such as:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/zeldaret/oot.git
|
||||
```
|
||||
|
||||
This will copy the GitHub repository contents into a new folder in the current directory called `oot`. Change into this directory before doing anything else:
|
||||
|
||||
```bash
|
||||
cd oot
|
||||
```
|
||||
|
||||
#### 3. Prepare a base ROM
|
||||
|
||||
Place a copy of the Master Quest (Debug) ROM inside the `baseroms/hackeroot-mq/` folder.
|
||||
|
||||
Rename the file to `baserom.z64`, `baserom.n64` or `baserom.v64`, depending on the original extension.
|
||||
|
||||
**NOTE:** to make a Wii VC build you will need to place a copy of the Ocarina of Time.wad file in this folder too, with the ``common-key.bin`` file. This project won't provide both.
|
||||
|
||||
#### 4. Setup the ROM and build process
|
||||
|
||||
Setup and extract everything from your ROM with the following command:
|
||||
|
||||
```bash
|
||||
make setup
|
||||
```
|
||||
|
||||
This downloads some dependencies (from pip), and compiles tools for the build process.
|
||||
Then it generates a new ROM "baseroms/hackeroot-mq/baserom-decompressed.z64" that will have the overdump removed and the header patched.
|
||||
It will also extract the individual assets from the ROM. This command will also setup F3DEX3 binaries.
|
||||
|
||||
**NOTE:** the decompressed baserom will be copied to ``baseroms/gc-eu-mq-dbg/``, this is a temporary solution.
|
||||
|
||||
#### 5. Build the ROM
|
||||
|
||||
Run make to build the ROM.
|
||||
Make sure your path to the project is not too long, otherwise this process may error.
|
||||
|
||||
```bash
|
||||
make
|
||||
```
|
||||
|
||||
If all goes well, a new ROM should be built at `build/hackeroot-mq/hackeroot-mq.z64`.
|
||||
|
||||
**NOTE:** to speed up the build, you can either:
|
||||
|
||||
* pass `-jN` to `make setup` and `make`, where N is the number of threads to use in the build. The generally-accepted wisdom is to use the number of virtual cores your computer has.
|
||||
* pass `-j` to `make setup` and `make`, to use as many threads as possible, but beware that this can use too much memory on lower-end systems.
|
||||
|
||||
Both of these have the disadvantage that the ordering of the terminal output is scrambled, so for debugging it is best to stick to one thread (i.e. not pass `-j` or `-jN`).
|
||||
|
||||
#### 6. Creating a BPS patch
|
||||
|
||||
To generate a .bps patch you can run the following command:
|
||||
|
||||
```bash
|
||||
make patch
|
||||
```
|
||||
|
||||
The patch will be in the ``build/hackeroot-mq/`` folder.
|
||||
169
README.md
169
README.md
@@ -1,157 +1,58 @@
|
||||
# The Legend of Zelda: Ocarina of Time
|
||||
# Hacker Zelda: Ocarina of Time (HackerOoT)
|
||||
|
||||
[![Build Status][jenkins-badge]][jenkins] [![Decompilation Progress][progress-badge]][progress] [![Contributors][contributors-badge]][contributors] [![Discord Channel][discord-badge]][discord]
|
||||
[![Contributors][contributors-badge]][contributors]
|
||||
|
||||
[jenkins]: https://jenkins.deco.mp/job/OOT/job/main
|
||||
[jenkins-badge]: https://img.shields.io/jenkins/build?jobUrl=https%3A%2F%2Fjenkins.deco.mp%2Fjob%2FOOT%2Fjob%2Fmain
|
||||
[contributors]: https://github.com/HackerN64/HackerOoT/graphs/contributors
|
||||
[contributors-badge]: https://img.shields.io/github/contributors/HackerN64/HackerOoT
|
||||
|
||||
[progress]: https://zelda64.dev/games/oot
|
||||
[progress-badge]: https://img.shields.io/endpoint?url=https://zelda64.dev/assets/csv/progress-oot-shield.json
|
||||
|
||||
[contributors]: https://github.com/zeldaret/oot/graphs/contributors
|
||||
[contributors-badge]: https://img.shields.io/github/contributors/zeldaret/oot
|
||||
|
||||
[discord]: https://discord.zelda64.dev
|
||||
[discord-badge]: https://img.shields.io/discord/688807550715560050?color=%237289DA&logo=discord&logoColor=%23FFFFFF
|
||||
|
||||
```diff
|
||||
- WARNING! -
|
||||
|
||||
This repository is a work in progress, and while it can be used to make certain changes, it's still
|
||||
constantly evolving. If you use it for modding purposes in its current state, please be aware that
|
||||
the codebase can drastically change at any time. Also note that some parts of the ROM may not be
|
||||
'shiftable' yet, so modifying them could be difficult at this point.
|
||||
```
|
||||
|
||||
This is a WIP **decompilation** of ***The Legend of Zelda: Ocarina of Time***. The purpose of the project is to recreate a source code base for the game from scratch, using information found inside the game along with static and/or dynamic analysis. **It is not producing a PC port.** For more information you can get in touch with the team on our [Discord server](https://discord.zelda64.dev).
|
||||
This project, based on the [Zelda: Ocarina of Time decompilation project](https://github.com/zeldaret/oot/), aims to be an easy-to-use base to make Zelda: Ocarina of Time mods. **It is not producing a PC port.**
|
||||
|
||||
The only build currently supported is Master Quest (Debug), but other versions are planned to be supported.
|
||||
|
||||
It builds the following ROM:
|
||||
|
||||
* oot-gc-eu-mq-dbg.z64 `md5: f0b7f35375f9cc8ca1b2d59d78e35405`
|
||||
* hackeroot-mq.z64
|
||||
|
||||
This project is using the following tools:
|
||||
- [F3DEX3](https://github.com/HackerN64/F3DEX3), *will make you want to finally ditch HLE*, by Sauraen
|
||||
- [gzinject](https://github.com/krimtonz/gzinject), *injector for gz*, by krimtonz
|
||||
- [z64compress](https://github.com/z64tools/z64compress), *the fastest Zelda 64 rom compressor*, by z64tools
|
||||
- [Flips](https://github.com/Alcaro/Flips), *patcher for IPS and BPS files*, by Alcaro
|
||||
|
||||
**Note: This repository does not include any of the assets necessary to build the ROM. A prior copy of the game is required to extract the needed assets.**
|
||||
|
||||
## HackerN64
|
||||
|
||||
**Discord:** <https://discord.gg/brETAakcXr>
|
||||
|
||||
## Zelda: Ocarina of Time Decompilation
|
||||
|
||||
**Website:** <https://zelda64.dev>
|
||||
|
||||
**Discord:** <https://discord.zelda64.dev>
|
||||
|
||||
## Installation
|
||||
|
||||
We recommend using WSL on Windows, or native Linux, which the rest of this readme describes. We currently have instructions for
|
||||
|
||||
* [Windows](#Windows), with and without WSL
|
||||
* [macOS](docs/BUILDING_MACOS.md)
|
||||
* [Linux](#Linux-Native-or-under-WSL--VM), natively or using WSL / VM
|
||||
* [Docker](docs/BUILDING_DOCKER.md)
|
||||
|
||||
(These will also depend on the Linux instructions.)
|
||||
Some of these may also be out of date or unmaintained; usually our contributors use WSL, Linux, and macOS, so these instructions should be up to date.
|
||||
|
||||
### Windows
|
||||
|
||||
For Windows 10 or 11, install WSL and a distribution by following this
|
||||
[WSL Installation Guide](https://docs.microsoft.com/en-us/windows/wsl/install).
|
||||
We recommend using Ubuntu 20.04 as the Linux distribution.
|
||||
|
||||
For older versions of Windows, install a Linux VM or refer to either [Cygwin](docs/BUILDING_CYGWIN.md) or [Docker](docs/BUILDING_DOCKER.md) instructions.
|
||||
|
||||
|
||||
### Linux (Native or under WSL / VM)
|
||||
|
||||
#### 1. Install build dependencies
|
||||
|
||||
The build process has the following package requirements:
|
||||
|
||||
* git
|
||||
* build-essential
|
||||
* binutils-mips-linux-gnu
|
||||
* python3
|
||||
* python3-pip
|
||||
* python3-venv
|
||||
* libpng-dev
|
||||
|
||||
Under Debian / Ubuntu (which we recommend using), you can install them with the following commands:
|
||||
|
||||
```bash
|
||||
sudo apt-get update
|
||||
sudo apt-get install git build-essential binutils-mips-linux-gnu python3 python3-pip python3-venv libpng-dev
|
||||
```
|
||||
|
||||
If you are using GCC as the compiler for Ocarina of Time, you will also need:
|
||||
|
||||
* gcc-mips-linux-gnu
|
||||
|
||||
#### 2. Clone the repository
|
||||
|
||||
**N.B.** If using WSL, we strongly encourage you to clone into WSL's Linux filesystem using Linux's `git`.
|
||||
Cloning into the Windows filesystem will result in much slower read/write speeds, and often causes issues when Windows copies the files with the wrong line endings, which the compiler IDO cannot handle correctly.
|
||||
|
||||
Clone `https://github.com/zeldaret/oot.git` where you wish to have the project, with a command such as:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/zeldaret/oot.git
|
||||
```
|
||||
|
||||
This will copy the GitHub repository contents into a new folder in the current directory called `oot`. Change into this directory before doing anything else:
|
||||
|
||||
```bash
|
||||
cd oot
|
||||
```
|
||||
|
||||
#### 3. Prepare a base ROM
|
||||
|
||||
Place a copy of the Master Quest (Debug) ROM inside the `baseroms/gc-eu-mq-dbg/` folder.
|
||||
|
||||
Rename the file to `baserom.z64`, `baserom.n64` or `baserom.v64`, depending on the original extension.
|
||||
|
||||
#### 4. Setup the ROM and build process
|
||||
|
||||
Setup and extract everything from your ROM with the following command:
|
||||
|
||||
```bash
|
||||
make setup
|
||||
```
|
||||
|
||||
This downloads some dependencies (from pip), and compiles tools for the build process.
|
||||
Then it generates a new ROM "baseroms/gc-eu-mq-dbg/baserom-decompressed.z64" that will have the overdump removed and the header patched.
|
||||
It will also extract the individual assets from the ROM.
|
||||
|
||||
#### 5. Build the ROM
|
||||
|
||||
Run make to build the ROM.
|
||||
Make sure your path to the project is not too long, otherwise this process may error.
|
||||
|
||||
```bash
|
||||
make
|
||||
```
|
||||
|
||||
If all goes well, a new ROM should be built at `build/gc-eu-mq-dbg/oot-gc-eu-mq-dbg.z64`, and the following text printed:
|
||||
|
||||
```bash
|
||||
build/gc-eu-mq-dbg/oot-gc-eu-mq-dbg.z64: OK
|
||||
```
|
||||
|
||||
If you instead see the following:
|
||||
|
||||
```bash
|
||||
build/gc-eu-mq-dbg/oot-gc-eu-mq-dbg.z64: FAILED
|
||||
md5sum: WARNING: 1 computed checksum did NOT match
|
||||
```
|
||||
|
||||
This means that the built ROM isn't the same as the base one, so something went wrong or some part of the code doesn't match.
|
||||
|
||||
**NOTE:** to speed up the build, you can either:
|
||||
|
||||
* pass `-jN` to `make setup` and `make`, where N is the number of threads to use in the build. The generally-accepted wisdom is to use the number of virtual cores your computer has.
|
||||
* pass `-j` to `make setup` and `make`, to use as many threads as possible, but beware that this can use too much memory on lower-end systems.
|
||||
|
||||
Both of these have the disadvantage that the ordering of the terminal output is scrambled, so for debugging it is best to stick to one thread (i.e. not pass `-j` or `-jN`).
|
||||
Instructions to build this project are available [here](INSTALLATION.md).
|
||||
|
||||
## Contributing
|
||||
|
||||
All contributions are welcome. This is a group effort, and even small contributions can make a difference.
|
||||
Some tasks also don't require much knowledge to get started.
|
||||
|
||||
Most discussions happen on our [Discord Server](https://discord.zelda64.dev), where you are welcome to ask if you need help getting started, or if you have any questions regarding this project and other decompilation projects.
|
||||
Most discussions happen on our [Discord Server](https://discord.gg/brETAakcXr), where you are welcome to ask if you need help getting started, or if you have any questions regarding this project. **Feel free to ask any kind of questions.**
|
||||
|
||||
## Contributors
|
||||
|
||||
List of every HackerOoT contributors, from most recent to oldest contribution:
|
||||
|
||||
- recardo-7
|
||||
- HailToDodongo
|
||||
- CrashOverride95
|
||||
- Trueffell
|
||||
- Yanis42
|
||||
- kurethedead
|
||||
- zelllll
|
||||
- ariahiro64
|
||||
- ghost
|
||||
- krm01
|
||||
|
||||
2
assets/.gitignore
vendored
2
assets/.gitignore
vendored
@@ -1,7 +1,7 @@
|
||||
*.bin
|
||||
*.c
|
||||
!text/*.c
|
||||
*.h
|
||||
!text/*.[ch]
|
||||
*.cfg
|
||||
*.vtx.inc
|
||||
*.dlist.inc
|
||||
|
||||
@@ -5,4 +5,6 @@
|
||||
#define DEFINE_MESSAGE(textId, type, yPos, nesMessage, gerMessage, fraMessage) \
|
||||
const char _message_##textId##_fra[sizeof(fraMessage)] = { fraMessage END };
|
||||
|
||||
#define DEFINE_MESSAGE_NES(textId, type, yPos, nesMessage)
|
||||
|
||||
#include "assets/text/message_data.enc.h"
|
||||
|
||||
@@ -5,4 +5,6 @@
|
||||
#define DEFINE_MESSAGE(textId, type, yPos, nesMessage, gerMessage, fraMessage) \
|
||||
const char _message_##textId##_ger[sizeof(gerMessage)] = { gerMessage END };
|
||||
|
||||
#define DEFINE_MESSAGE_NES(textId, type, yPos, nesMessage)
|
||||
|
||||
#include "assets/text/message_data.enc.h"
|
||||
|
||||
16
assets/text/message_data.h
Normal file
16
assets/text/message_data.h
Normal file
@@ -0,0 +1,16 @@
|
||||
#include "text/message_data.h"
|
||||
|
||||
/*
|
||||
* The following two messages should be kept last and in this order.
|
||||
* Message 0xFFFD must be last to not break the message debugger (see R_MESSAGE_DEBUGGER_TEXTID).
|
||||
* Message 0xFFFC must be immediately before message 0xFFFD to not break Font_LoadOrderedFont.
|
||||
*/
|
||||
DEFINE_MESSAGE_NES(0xFFFC, TEXTBOX_TYPE_BLACK, TEXTBOX_POS_VARIABLE,
|
||||
"0123456789\n"
|
||||
"ABCDEFGHIJKLMN\n"
|
||||
"OPQRSTUVWXYZ\n"
|
||||
"abcdefghijklmn\n"
|
||||
"opqrstuvwxyz\n"
|
||||
" -.\n"
|
||||
)
|
||||
DEFINE_MESSAGE(0xFFFD, TEXTBOX_TYPE_BLACK, TEXTBOX_POS_VARIABLE, "", "", "")
|
||||
1
assets/text/message_data_staff.h
Normal file
1
assets/text/message_data_staff.h
Normal file
@@ -0,0 +1 @@
|
||||
#include "text/message_data_staff.h"
|
||||
@@ -5,8 +5,6 @@
|
||||
#define DEFINE_MESSAGE(textId, type, yPos, nesMessage, gerMessage, fraMessage) \
|
||||
const char _message_##textId##_nes[sizeof(nesMessage)] = { nesMessage END };
|
||||
|
||||
#define DEFINE_MESSAGE_FFFC
|
||||
#define DEFINE_MESSAGE_NES(textId, type, yPos, nesMessage) DEFINE_MESSAGE(textId, type, yPos, nesMessage, , )
|
||||
|
||||
#include "assets/text/message_data.enc.h"
|
||||
|
||||
#undef DEFINE_MESSAGE_FFFC
|
||||
|
||||
@@ -225,17 +225,17 @@
|
||||
<Texture Name="gLinkAdultEyesOpenTex" OutName="eyes_open" Format="ci8" Width="64" Height="32" Offset="0x0000" TlutOffset="0x5C00"/>
|
||||
<Texture Name="gLinkAdultEyesHalfTex" OutName="eyes_half" Format="ci8" Width="64" Height="32" Offset="0x0800" TlutOffset="0x5C00"/>
|
||||
<Texture Name="gLinkAdultEyesClosedfTex" OutName="eyes_closed" Format="ci8" Width="64" Height="32" Offset="0x1000" TlutOffset="0x5C00"/>
|
||||
<Texture Name="gLinkAdultEyesRollLeftTex" OutName="eyes_roll_left" Format="ci8" Width="64" Height="32" Offset="0x1800" TlutOffset="0x5C00"/><!--Left from links perspective-->
|
||||
<Texture Name="gLinkAdultEyesRollRightTex" OutName="eyes_roll_right" Format="ci8" Width="64" Height="32" Offset="0x2000" TlutOffset="0x5C00"/><!--Right from links perspective-->
|
||||
<Texture Name="gLinkAdultEyesShockTex" OutName="eyes_shock" Format="ci8" Width="64" Height="32" Offset="0x2800" TlutOffset="0x5C00"/>
|
||||
<Texture Name="gLinkAdultEyesUnk1Tex" OutName="eyes_unk_1" Format="ci8" Width="64" Height="32" Offset="0x3000" TlutOffset="0x5C00"/>
|
||||
<Texture Name="gLinkAdultEyesUnk2Tex" OutName="eyes_unk_2" Format="ci8" Width="64" Height="32" Offset="0x3800" TlutOffset="0x5C00"/>
|
||||
<Texture Name="gLinkAdultEyesLeftTex" OutName="eyes_left" Format="ci8" Width="64" Height="32" Offset="0x1800" TlutOffset="0x5C00"/>
|
||||
<Texture Name="gLinkAdultEyesRightTex" OutName="eyes_right" Format="ci8" Width="64" Height="32" Offset="0x2000" TlutOffset="0x5C00"/>
|
||||
<Texture Name="gLinkAdultEyesWideTex" OutName="eyes_wide" Format="ci8" Width="64" Height="32" Offset="0x2800" TlutOffset="0x5C00"/>
|
||||
<Texture Name="gLinkAdultEyesDownTex" OutName="eyes_down" Format="ci8" Width="64" Height="32" Offset="0x3000" TlutOffset="0x5C00"/>
|
||||
<Texture Name="gLinkAdultEyesWincingTex" OutName="eyes_wincing" Format="ci8" Width="64" Height="32" Offset="0x3800" TlutOffset="0x5C00"/>
|
||||
|
||||
<!--Mouth-->
|
||||
<Texture Name="gLinkAdultMouth1Tex" OutName="mouth_1" Format="ci8" Width="32" Height="32" Offset="0x4000" TlutOffset="0x5C00"/>
|
||||
<Texture Name="gLinkAdultMouth2Tex" OutName="mouth_2" Format="ci8" Width="32" Height="32" Offset="0x4400" TlutOffset="0x5C00"/>
|
||||
<Texture Name="gLinkAdultMouth3Tex" OutName="mouth_3" Format="ci8" Width="32" Height="32" Offset="0x4800" TlutOffset="0x5C00"/>
|
||||
<Texture Name="gLinkAdultMouth4Tex" OutName="mouth_4" Format="ci8" Width="32" Height="32" Offset="0x4C00" TlutOffset="0x5C00"/>
|
||||
<Texture Name="gLinkAdultMouthClosedTex" OutName="mouth_closed" Format="ci8" Width="32" Height="32" Offset="0x4000" TlutOffset="0x5C00"/>
|
||||
<Texture Name="gLinkAdultMouthHalfTex" OutName="mouth_half" Format="ci8" Width="32" Height="32" Offset="0x4400" TlutOffset="0x5C00"/>
|
||||
<Texture Name="gLinkAdultMouthOpenTex" OutName="mouth_open" Format="ci8" Width="32" Height="32" Offset="0x4800" TlutOffset="0x5C00"/>
|
||||
<Texture Name="gLinkAdultMouthSmileTex" OutName="mouth_smile" Format="ci8" Width="32" Height="32" Offset="0x4C00" TlutOffset="0x5C00"/>
|
||||
|
||||
<Texture Name="gLinkAdultEarTex" OutName="ear" Format="ci8" Width="16" Height="16" Offset="0x5000" TlutOffset="0x5C00"/>
|
||||
<Texture Name="gLinkAdultNoseTex" OutName="nose" Format="ci8" Width="16" Height="16" Offset="0x5100" TlutOffset="0x5C00"/>
|
||||
|
||||
@@ -186,17 +186,17 @@
|
||||
<Texture Name="gLinkChildEyesOpenTex" OutName="eyes_open" Format="ci8" Width="64" Height="32" Offset="0x0000" TlutOffset="0x5500"/>
|
||||
<Texture Name="gLinkChildEyesHalfTex" OutName="eyes_half" Format="ci8" Width="64" Height="32" Offset="0x0800" TlutOffset="0x5500"/>
|
||||
<Texture Name="gLinkChildEyesClosedfTex" OutName="eyes_closed" Format="ci8" Width="64" Height="32" Offset="0x1000" TlutOffset="0x5500"/>
|
||||
<Texture Name="gLinkChildEyesRollLeftTex" OutName="eyes_roll_left" Format="ci8" Width="64" Height="32" Offset="0x1800" TlutOffset="0x5500"/><!--Left from links perspective-->
|
||||
<Texture Name="gLinkChildEyesRollRightTex" OutName="eyes_roll_right" Format="ci8" Width="64" Height="32" Offset="0x2000" TlutOffset="0x5500"/><!--Right from links perspective-->
|
||||
<Texture Name="gLinkChildEyesShockTex" OutName="eyes_shock" Format="ci8" Width="64" Height="32" Offset="0x2800" TlutOffset="0x5500"/>
|
||||
<Texture Name="gLinkChildEyesUnk1Tex" OutName="eyes_unk_1" Format="ci8" Width="64" Height="32" Offset="0x3000" TlutOffset="0x5500"/>
|
||||
<Texture Name="gLinkChildEyesUnk2Tex" OutName="eyes_unk_2" Format="ci8" Width="64" Height="32" Offset="0x3800" TlutOffset="0x5500"/>
|
||||
<Texture Name="gLinkChildEyesLeftTex" OutName="eyes_left" Format="ci8" Width="64" Height="32" Offset="0x1800" TlutOffset="0x5500"/>
|
||||
<Texture Name="gLinkChildEyesRightTex" OutName="eyes_right" Format="ci8" Width="64" Height="32" Offset="0x2000" TlutOffset="0x5500"/>
|
||||
<Texture Name="gLinkChildEyesWideTex" OutName="eyes_wide" Format="ci8" Width="64" Height="32" Offset="0x2800" TlutOffset="0x5500"/>
|
||||
<Texture Name="gLinkChildEyesDownTex" OutName="eyes_down" Format="ci8" Width="64" Height="32" Offset="0x3000" TlutOffset="0x5500"/>
|
||||
<Texture Name="gLinkChildEyesWincingTex" OutName="eyes_wincing" Format="ci8" Width="64" Height="32" Offset="0x3800" TlutOffset="0x5500"/>
|
||||
|
||||
<!--Mouth-->
|
||||
<Texture Name="gLinkChildMouth1Tex" OutName="mouth_1" Format="ci8" Width="32" Height="32" Offset="0x4000" TlutOffset="0x5500"/>
|
||||
<Texture Name="gLinkChildMouth2Tex" OutName="mouth_2" Format="ci8" Width="32" Height="32" Offset="0x4400" TlutOffset="0x5500"/>
|
||||
<Texture Name="gLinkChildMouth3Tex" OutName="mouth_3" Format="ci8" Width="32" Height="32" Offset="0x4800" TlutOffset="0x5500"/>
|
||||
<Texture Name="gLinkChildMouth4Tex" OutName="mouth_4" Format="ci8" Width="32" Height="32" Offset="0x4C00" TlutOffset="0x5500"/>
|
||||
<Texture Name="gLinkChildMouthClosedTex" OutName="mouth_closed" Format="ci8" Width="32" Height="32" Offset="0x4000" TlutOffset="0x5500"/>
|
||||
<Texture Name="gLinkChildMouthHalfTex" OutName="mouth_half" Format="ci8" Width="32" Height="32" Offset="0x4400" TlutOffset="0x5500"/>
|
||||
<Texture Name="gLinkChildMouthOpenTex" OutName="mouth_open" Format="ci8" Width="32" Height="32" Offset="0x4800" TlutOffset="0x5500"/>
|
||||
<Texture Name="gLinkChildMouthSmileTex" OutName="mouth_smile" Format="ci8" Width="32" Height="32" Offset="0x4C00" TlutOffset="0x5500"/>
|
||||
|
||||
<!--Unused Vtx-->
|
||||
<Array Name="gLinkChildVtx_019E08" Count="35" Offset="0x19E08" Static="On">
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<Cutscene Name="gRainbowBridgeCs" Offset="0x2640"/>
|
||||
<Cutscene Name="gGanonsCastleIntroCs" Offset="0x4280"/>
|
||||
<Scene Name="ganon_tou_scene" Offset="0x0"/>
|
||||
<Scene Name="ganon_tou_scene_unused" Offset="0x3080"/>
|
||||
</File>
|
||||
<File Name="ganon_tou_room_0" Segment="3">
|
||||
<Room Name="ganon_tou_room_0" Offset="0x0"/>
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
<Texture Name="gSpiritTempleDayEntranceTex" OutName="day_entrance" Format="ia16" Width="8" Height="128" Offset="0x18920"/>
|
||||
<Texture Name="gSpiritTempleNightEntranceTex" OutName="night_entrance" Format="ia16" Width="8" Height="128" Offset="0x18020"/>
|
||||
<Scene Name="jyasinzou_scene" Offset="0x0"/>
|
||||
<Scene Name="jyasinzou_scene_unused1" Offset="0x17200"/>
|
||||
<Scene Name="jyasinzou_scene_unused2" Offset="0x176F0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_0" Segment="3">
|
||||
<Room Name="jyasinzou_room_0" Offset="0x0"/>
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
<Cutscene Name="gGreatFairyDoubleMagicCs" Offset="0x13E0"/>
|
||||
<Cutscene Name="gGreatFairyDoubleDefenseCs" Offset="0x25D0"/>
|
||||
<Scene Name="daiyousei_izumi_scene" Offset="0x0"/>
|
||||
<Scene Name="daiyousei_izumi_scene_unused" Offset="0x43D0"/>
|
||||
</File>
|
||||
<File Name="daiyousei_izumi_room_0" Segment="3">
|
||||
<Room Name="daiyousei_izumi_room_0" Offset="0x0"/>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<File Name="hairal_niwa_scene" Segment="2">
|
||||
<Path Name="hairal_niwa_scenePathList_000268" Offset="0x0268" NumPaths="8"/>
|
||||
<Scene Name="hairal_niwa_scene" Offset="0x0"/>
|
||||
<Scene Name="hairal_niwa_scene_unused" Offset="0x30E0"/>
|
||||
</File>
|
||||
<File Name="hairal_niwa_room_0" Segment="3">
|
||||
<Room Name="hairal_niwa_room_0" Offset="0x0"/>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user