sm64coopdx

Co-Authored-By: Yuyake <140215214+AngelicMiracles@users.noreply.github.com>
Co-Authored-By: FluffaMario <50761036+FluffaMario@users.noreply.github.com>
Co-Authored-By: Gregory Heskett <gheskett@gmail.com>
Co-Authored-By: iZePlayzYT <69536095+iZePlayzYT@users.noreply.github.com>
Co-Authored-By: Isaac0-dev <62234577+Isaac0-dev@users.noreply.github.com>
Co-Authored-By: eros71 <16540103+eros71-dev@users.noreply.github.com>
This commit is contained in:
Agent X 2023-10-30 01:03:36 -04:00
parent 0d7476d7ab
commit 49bca1cc01
652 changed files with 12389 additions and 16019 deletions

3
.gitattributes vendored
View file

@ -1,6 +1,9 @@
# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto
# Fix line endings
*.* text eol=lf
# List text files in case git doesn't characterize correctly
*.c text
*.h text

View file

@ -28,11 +28,5 @@ If applicable, add screenshots to help explain your problem.
- Browser [e.g. chrome, safari]
- Version [e.g. 22]
**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]
**Additional context**
Add any other context about the problem here.

4
.gitignore vendored
View file

@ -100,7 +100,3 @@ build-windows-visual-studio/.vs
todo.txt
todo-old.txt
# custom sounds
sound/samples/sfx_custom_luigi*/*.aiff
sound/samples/sfx_custom_wario*/*.aiff

View file

@ -14,6 +14,6 @@ RUN mkdir /sm64
WORKDIR /sm64
ENV PATH="/sm64/tools:${PATH}"
# docker build -t sm64ex-coop .
# docker run --rm --mount type=bind,source="$(pwd)",destination=/sm64 sm64ex-coop make -j HEADLESS=1
# docker build -t sm64coopdx .
# docker run --rm --mount type=bind,source="$(pwd)",destination=/sm64 sm64coopdx make -j HEADLESS=1
# see https://github.com/n64decomp/sm64/blob/master/README.md for advanced usage

2482
Doxyfile

File diff suppressed because it is too large Load diff

60
Jenkinsfile vendored
View file

@ -1,60 +0,0 @@
pipeline {
agent any
stages {
stage('Build Tools') {
steps {
sh 'make -j4 -C tools/'
}
}
stage('Extract Assets') {
steps {
sh 'ln -s "$ROMS_DIR/Super Mario 64 (J) [!].z64" baserom.jp.z64'
sh 'ln -s "$ROMS_DIR/Super Mario 64 (U) [!].z64" baserom.us.z64'
sh 'ln -s "$ROMS_DIR/Super Mario 64 (E) (M3) [!].z64" baserom.eu.z64'
sh 'ln -s "$ROMS_DIR/Super Mario 64 - Shindou Edition (J) [!].z64" baserom.sh.z64'
// verify no assets were committed to repo
sh '[ -z "$(find {actors,levels,textures}/ -name \'*.png\')" ]'
sh '[ -z "$(find assets/ -name \'*.m64\' -or \'*.bin\')" ]'
sh './extract_assets.py jp us eu sh'
}
}
stage('Build U Source') {
steps {
sh 'make -j4 VERSION=us VERBOSE=1 COLOR=0'
}
}
stage('Build S Source') {
steps {
sh 'make -j4 VERSION=sh VERBOSE=1 COLOR=0'
}
}
stage('Build E Source') {
steps {
sh 'make -j4 VERSION=eu VERBOSE=1 COLOR=0'
}
}
stage('Build J Source') {
steps {
sh 'make -j4 VERSION=jp VERBOSE=1 COLOR=0'
}
}
stage('Test Enhancements') {
steps {
sh '''
set -e
for f in enhancements/*.patch
do
git clean -fd .
git checkout -- .
echo 'y' | tools/apply_patch.sh "$f"
make -j4 VERSION=us COMPARE=0 VERBOSE=1
done
'''
}
}
}
environment {
QEMU_IRIX = credentials('qemu-irix')
ROMS_DIR = credentials('roms')
}
}

View file

@ -34,8 +34,6 @@ OSX_BUILD ?= 0
TARGET_ARCH ?= native
TARGET_BITS ?= 0
# Enable immediate load by default
IMMEDIATELOAD ?= 1
# Enable better camera by default
BETTERCAMERA ?= 1
# Enable no drawing distance by default
@ -487,13 +485,15 @@ endif
# Extra Source Files #
#==============================================================================#
# Luigi and wario sounds don't work on 32-bit right now
# Luigi, wario and toad sounds don't work on 32-bit right now
# And the audio code is so terrible I don't care enough to figure it out at the moment
ifeq ($(TARGET_BITS), 32)
_ := $(shell rm -rf sound/samples/sfx_custom_luigi/*.aiff)
_ := $(shell rm -rf sound/samples/sfx_custom_luigi_peach/*.aiff)
_ := $(shell rm -rf sound/samples/sfx_custom_wario/*.aiff)
_ := $(shell rm -rf sound/samples/sfx_custom_wario_peach/*.aiff)
_ := $(shell rm -rf sound/samples/sfx_custom_toad/*.aiff)
_ := $(shell rm -rf sound/samples/sfx_custom_toad_peach/*.aiff)
# Copy missing character sounds from mario sound banks
_ := $(shell $(PYTHON) $(TOOLS_DIR)/copy_mario_sounds.py)
@ -660,9 +660,6 @@ _ := $(shell rm -rf ./$(BUILD_DIR)/$(LANG_DIR))
MOD_DIR := mods
# Remove old mod dir
_ := $(shell rm -rf ./$(BUILD_DIR)/$(MOD_DIR))
# Automatic dependency files
DEP_FILES := $(O_FILES:.o=.d) $(ULTRA_O_FILES:.o=.d) $(GODDARD_O_FILES:.o=.d) $(BUILD_DIR)/$(LD_SCRIPT).d
@ -1052,12 +1049,6 @@ endif
# Check for enhancement options
# Check for immediate load option
ifeq ($(IMMEDIATELOAD),1)
CC_CHECK_CFLAGS += -DIMMEDIATELOAD
CFLAGS += -DIMMEDIATELOAD
endif
# Check for docker build workaround option
ifeq ($(DOCKERBUILD),1)
CC_CHECK_CFLAGS += -DDOCKERBUILD
@ -1279,7 +1270,9 @@ $(BUILD_DIR)/$(LANG_DIR):
@$(CP) -f -r $(LANG_DIR) $(BUILD_DIR)
$(BUILD_DIR)/$(MOD_DIR):
@$(CP) -f -r $(MOD_DIR) $(BUILD_DIR)
@if [ ! -d "$(BUILD_DIR)/$(MOD_DIR)" ]; then \
$(CP) -f -r $(MOD_DIR) $(BUILD_DIR); \
fi
# Extra object file dependencies
@ -1660,20 +1653,20 @@ endif
# with no prerequisites, .SECONDARY causes no intermediate target to be removed
.SECONDARY:
APP_DIR = ./sm64ex-coop.app
APP_DIR = ./sm64coopdx.app
APP_CONTENTS_DIR = $(APP_DIR)/Contents
APP_MACOS_DIR = $(APP_CONTENTS_DIR)/MacOS
all:
@if [ "$(USE_APP)" = "0" ]; then \
rm -rf build/us_pc/sm64ex-coop.app; \
rm -rf build/us_pc/sm64coopdx.app; \
else \
$(PRINT) "$(GREEN)Creating App Bundle: $(BLUE)build/us_pc/sm64ex-coop.app\n"; \
$(PRINT) "$(GREEN)Creating App Bundle: $(BLUE)build/us_pc/sm64coopdx.app\n"; \
rm -rf $(APP_DIR); \
rm -rf build/us_pc/sm64ex-coop.app; \
rm -rf build/us_pc/sm64coopdx.app; \
mkdir -p $(APP_MACOS_DIR); \
mkdir -p $(APP_CONTENTS_DIR)/Resources; \
mv build/us_pc/sm64.us.f3dex2e $(APP_MACOS_DIR)/sm64ex-coop; \
mv build/us_pc/sm64.us.f3dex2e $(APP_MACOS_DIR)/sm64coopdx; \
cp -r build/us_pc/* $(APP_MACOS_DIR); \
cp res/icon.icns $(APP_CONTENTS_DIR)/Resources/icon.icns; \
echo "APPL????" > $(APP_CONTENTS_DIR)/PkgInfo; \
@ -1682,17 +1675,17 @@ all:
echo '<plist version="1.0">' >> $(APP_CONTENTS_DIR)/Info.plist; \
echo '<dict>' >> $(APP_CONTENTS_DIR)/Info.plist; \
echo ' <key>CFBundleExecutable</key>' >> $(APP_CONTENTS_DIR)/Info.plist; \
echo ' <string>sm64ex-coop</string>' >> $(APP_CONTENTS_DIR)/Info.plist; \
echo ' <string>sm64coopdx</string>' >> $(APP_CONTENTS_DIR)/Info.plist; \
echo ' <key>CFBundleIconFile</key>' >> $(APP_CONTENTS_DIR)/Info.plist; \
echo ' <string>icon</string>' >> $(APP_CONTENTS_DIR)/Info.plist; \
echo ' <key>CFBundleIconName</key>' >> $(APP_CONTENTS_DIR)/Info.plist; \
echo ' <string>AppIcon</string>' >> $(APP_CONTENTS_DIR)/Info.plist; \
echo ' <key>CFBundleDisplayName</key>' >> $(APP_CONTENTS_DIR)/Info.plist; \
echo ' <string>sm64ex-coop</string>' >> $(APP_CONTENTS_DIR)/Info.plist; \
echo ' <string>sm64coopdx</string>' >> $(APP_CONTENTS_DIR)/Info.plist; \
echo ' <!-- Add other keys and values here -->' >> $(APP_CONTENTS_DIR)/Info.plist; \
echo '</dict>' >> $(APP_CONTENTS_DIR)/Info.plist; \
echo '</plist>' >> $(APP_CONTENTS_DIR)/Info.plist; \
chmod +x $(APP_MACOS_DIR)/sm64ex-coop; \
chmod +x $(APP_MACOS_DIR)/sm64coopdx; \
mv $(APP_DIR) build/us_pc/; \
fi

View file

@ -1,12 +1,12 @@
# sm64ex-coop
Online multiplayer mod for SM64 that synchronizes all entities and every level for multiple players. Fork of [sm64pc/sm64ex](https://github.com/sm64pc/sm64ex).
# sm64coopdx
Online multiplayer mod for SM64 that synchronizes all entities and every level for multiple players. Fork of [sm64ex-coop](https://github.com/djoslin0/sm64ex-coop).
Feel free to report bugs and contribute, but remember, there must be **no upload of any copyrighted asset**.
Run `./extract_assets.py --clean && make clean` or `make distclean` to remove ROM-originated content.
Run `./extract_assets.py --clean && make clean` or `make distclean` to clear ROM assets, however this is unnecessary for contributing because the .gitignore file already excludes ROM assets.
## How to Play
[Instructions on how to play are available on the wiki.](https://github.com/djoslin0/sm64ex-coop/wiki/How-to-Play)
[Instructions on how to play are available on the wiki.](https://github.com/coop-deluxe/sm64coopdx/wiki/How-to-Play)
- The easiest way is to download [coop-compiler](https://github.com/coop-compiler/coop-compiler/releases/latest/download/coop-compiler.exe)
@ -16,10 +16,4 @@ Create a mod for the PC port where multiple people can play together online.
Unlike previous multiplayer projects, this one synchronizes enemies and events. This allows players interact with the same world at the same time.
## Lua
sm64ex-coop is moddable via Lua, similar to Roblox and Garry's Mod's Lua APIs. To get started, click [here](docs/lua/lua.md) to see the Lua documentation.
## Contribution
If you want to make a PR to sm64ex-coop, join the [Discord server](https://discord.gg/TJVKHS4) and communicate with us about your PR. We work on new sm64ex-coop releases on a private repo and push all of our changes to the main repo once we've added everything, so if you contact us we can give you access to that repo where you can PR your changes there.
## Discord
[https://discord.gg/TJVKHS4](https://discord.gg/TJVKHS4)
sm64coopdx is moddable via Lua, similar to Roblox and Garry's Mod's Lua APIs. To get started, click [here](docs/lua/lua.md) to see the Lua documentation.

View file

@ -1,197 +0,0 @@
# sm64pc
Adaptación a OpenGL de [n64decomp/sm64](https://github.com/n64decomp/sm64).
No dudes en contribuir o reportar bugs, pero recuerda: **no se debe subir nada con copyright**.
Ejecuta `./extract_assets.py --clean && make clean` o `make distclean` para borrar todo el contenido proveniente de la ROM. Este port es posible gracias a [n64-fast32-engine](https://github.com/Emill/n64-fast3d-engine/) creado por [Emill](https://github.com/Emill).
## Funcionalidades
* Renderizado nativo. Podrás jugar a Super Mario 64 sin necesidad de un emulador.
* Resolución y relación de aspecto variables. Puedes jugar a Super Mario 64 a básicamente cualquier resolución o tamaño de ventana.
* Soporte nativo para mandos XInput. En Linux, se ha confirmado que el DualShock 4 funciona sin más.
* Cámara analógica y cámara controlada con el ratón. (Se activa con `make BETTERCAMERA=1`.)
* Opción para desactivar el límite de distancia de renderizado. (Se activa con `make NODRAWINGDISTANCE=1`.)
* Configurar los controles desde el juego.
* Posibilidad de saltarte la intro con la opción de línea de comandos `--skip-intro`
* Menú de trucos (_cheats_) en _options_. (Se activa con la opción de línea de comandos `--cheats`) Ten en cuenta que si un cheat te pide pulsar el botón "L", se refiere al botón de N64, el cual tendrá que estar asignado a un botón de tu mando. Ve a los ajustes de control y asegúrate de que tienes "L" mapeado a un botón de tu mando.
## Compilar en Windows
**No intentes compilar ejecutables para Windows bajo Linux usando `WINDOWS_BUILD=1`. No va a funcionar. Sigue la guía.**
#### 1. Instalación y configuración de MSYS2.
1. Descarga [msys2-x86_64-latest.exe](http://repo.msys2.org/distrib/msys2-x86_64-latest.exe) y ejecútalo. Si tu sistema operativo es de 32 bits (¿por qué?) descarga [msys2-i686-latest.exe](http://repo.msys2.org/distrib/msys2-i686-latest.exe) en su lugar. Asegúrate de que lo instalas en `C:\dev\msys64` (o `C:\dev\msys32` para 32 bits...). Ejecuta MSYS2.
2. En la ventana de comandos de MSYS2, ejecuta el siguiente comando:
```
pacman -Syuu
```
3. Abre "MSYS2 MinGW 64-Bit". Ejecuta este comando __repetidamente__ hasta que MSYS diga que ya no hay más actualizaciones. Es posible que tengas que volver a cerrar y abrir MSYS2.
```
pacman -Syuu
```
5. Ejecuta este comando y cuando te pida confirmación pulsa intro:
```
pacman -S --needed base-devel mingw-w64-i686-toolchain mingw-w64-x86_64-toolchain \
git subversion mercurial \
mingw-w64-i686-cmake mingw-w64-x86_64-cmake
```
6. Listo.
#### Instala las dependencias
```
pacman -S mingw-w64-i686-glew mingw-w64-x86_64-glew mingw-w64-i686-SDL2 mingw-w64-x86_64-SDL2 python3
```
### Crea el directorio en el que preparar todo
Desde el explorador de Windows, navega a `C:\msys64\home\(nombre de usuario)\` y crea una carpeta con el nombre que te apetezca. Aquí es donde vamos a preparar todo.
### Clona el repositorio
En MSYS2, introduce el siguiente comando:
```
git clone https://github.com/sm64pc/sm64pc/
```
(Si no funciona, prueba a escribirlo manualmente, en lugar de copiar y pegar)
#### Copia la ROM base al directorio correspondiente
El paso anterior tiene que haber creado una carpeta llamada sm64pc. Dentro de esa carpeta, y para cada version de la ROM (jp/us/eu) de la cual quieras compilar un ejecutable, coloca la ROM con el nombre `baserom.<version>.z64` para extraer sus assets. Por ejemplo, `baserom.us.z64` para la versión americana, o `baserom.eu.z64` para la versión europea.
#### En MSYS2, vamos a navegar a la carpeta `./tools/audiofile-0.3.6/` y ejecutar el `autoreconf-i`. Introduce los siguientes comandos, en orden, uno a uno:
```
cd sm64pc/tools/audiofile-0.3.6/
autoreconf -i
```
No te vayas de este directorio hasta el paso 9.
#### Ejecuta el script `configure`
```
PATH=/mingw64/bin:/mingw32/bin:$PATH LIBS=-lstdc++ ./configure --disable-docs
```
#### Ejecuta el script `make`
```
PATH=/mingw64/bin:/mingw32/bin:$PATH make
```
#### Crea un directorio `lib` en `tools/`
```
mkdir ../lib
```
#### Acabas de compilar `libaudiofile`. Ahora cópialo a `tools/lib/`
```
cp libaudiofile/.libs/libaudiofile.a ../lib/
cp libaudiofile/.libs/libaudiofile.la ../lib/
```
#### Ahora toca hacer algo desde Windows.
En el explorador de Windows, ve a sm64pc\tools y edita el archivo Makefile desde un editor de texto (es recomendable usar un editor decente como Notepad++ o Sublime Text, en lugar del bloc de notas, para asegurarte de que no rompes el formato del texto) Busca la línea que contiene esto:
```tabledesign_CFLAGS := -Wno-uninitialized -laudiofile```
Y añade ` -lstdc++` al final, de manera que quede así (¡no olvides el espacio!)
```tabledesign_CFLAGS := -Wno-uninitialized -laudiofile -lstdc++```
Guarda el archivo.
#### Vuelve a la carpeta tools y ejecuta `make` con los siguientes comandos.
```
cd ..
PATH=/mingw64/bin:/mingw32/bin:$PATH make
```
#### Vuelve al directorio sm64pc
```
cd ..
```
#### Finalmente, ejecuta ```make``` de nuevo.
(Ten en cuenta que mingw32 y mingw64 han sido intercambiados. Esto es para que puedas compilar la versión de 32 bits si quieres.)
Aquí pones las opciones que quieras según la versión que quieras compilar. Por ejemplo, si quieres activar la cámara analógica, añade al final BETTERCAMERA=1. Si quieres la opción de distancia de renderizado ilimitada, añade NODRAWINGDISTANCE=1.
Por ejemplo:
```
PATH=/mingw32/bin:/mingw64/bin:$PATH make BETTERCAMERA=1 NODRAWINGDISTANCE=1
```
Listo. El .exe estará en sm64pc\build\. Disfruta.
## Compilar en Linux
### Nota para usuarios de Windows
No intentes compilar un ejecutable para Windows desde Linux o WSL. No funciona. Sigue la guía para Windows.
#### Copia la(s) ROM(s) base para la extracción de assets.
Por cada versión de la cual quieras compilar un ejecutable, copia la ROM en `./baserom.<versión>.z64` para extraer los assets.
#### Instala las dependencias.
Para compilar necesitas las sigueintes dependencias.
* python3 >= 3.6
* libsdl2-dev
* [audiofile](https://audiofile.68k.org/)
* libglew-dev
* git
Puedes instalarlas con este comando:
##### Debian / Ubuntu - (compilando para 32 bits)
```
sudo apt install build-essential git python3 libaudiofile-dev libglew-dev:i386 libsdl2-dev:i386
```
##### Debian / Ubuntu - (compilando para 64 bits)
```
sudo apt install build-essential git python3 libaudiofile-dev libglew-dev libsdl2-dev
```
##### Arch Linux
Hay un paquete AUR (cortesía de @narukeh) disponible bajo el nombre [sm64pc-git](https://aur.archlinux.org/packages/sm64pc-git/). Instálalo con tu gestor de AURs preferido.
Si quieres compilarlo por tu cuenta:
```
sudo pacman -S base-devel python audiofile sdl2 glew
```
##### Void Linux - (compilando para 64 bits)
```
sudo xbps-install -S base-devel python3 audiofile-devel SDL2-devel glew-devel
```
##### Void Linux - (compilando para 32 bits)
```
sudo xbps-install -S base-devel python3 audiofile-devel-32bit SDL2-devel-32bit glew-devel-32bit
```
#### Compila el ejecutable.
Ejecuta `make` para compilar (por defecto `VERSION=us`)
```
make VERSION=jp -j6 # Compila la versión (J) usando 6 hilos
make VERSION=us MARCH=i686 TARGET_BITS=32 # Compila un ejecutable de la versión (U) de 32 bits
make TARGET_RPI=1 # Compila un ejecutable para Raspberry Pi
```
## Script para compilar para Raspberry Pi
[Hyenadae](https://github.com/Hyenadae/) ha creado un script que ayuda a compilar el juego para Raspberry Pi. Estos son los pasos que hace el script:
* Instala las dependencias;
* Cambia VC4_DRM en la RPi de 0 a 3;
* Cambia ajustes en la memoria de las RPis 0 y 1 para que se pueda completar la compilación;
* Permite la instalación de un SDL2 con KMS, lo que elimina la necesidad de usar X11 y garantiza el máximo rendimiento de cualquier RPi que ejecute VC4;
* Clona sm64pc si no encuentra los archivos necesarios;
* Comprueba si existen los assets y la ROM base necesaria (baserom.*.z64);
* Compila sm64pc.
El script está incluído en la rama master, pero también puede descargarse [aquí](https://raw.githubusercontent.com/sm64pc/sm64pc/master/pisetup.sh).
# Problemas conocidos
### Problemas ya conocidos:
* La versión EU tiene bugs en los textos y no tiene audio.
* El movimiento analógico horizontal de la cámara vuelve al estilo antiguo en el nivel Bowser in the Dark World (#72)
* La cámara con el ratón falla cuando disparas a Mario hacia un árbol o un tubo. (#71)
### Estos problemas están marcados como solucionados. Por favor, contacta si sigues teniendo estos problemas.
* El juego se llena de flags aleatorias en las builds de 64 bits para Windows
* Hazy Maze Cave se cuelga en pantalla completa (#57)
* La pantalla de título no tiene el cursor para manipular a Mario en pantalla completa. (#28)
Si ocurre un rechazo, puedes buscarlo con el comando `find | grep .rej`.
Intenta resolver los rechazos a través de [wiggle](https://github.com/neilbrown/wiggle).
```
wiggle rejection.rej --replace
```

View file

@ -1,33 +0,0 @@
# sm64pc
Adaptação em OpenGL de [n64decomp/sm64](https://github.com/n64decomp/sm64).
Sinta-se livre para reportar bugs [aqui](https://github.com/sm64pc/sm64pc/issues) e contribuir, mas tenha em mente que não
aceitamos compartilhamento de conteúdo protegido com direitos autorais.
Se necessário, rode `./extract_assets.py --clean && make clean` ou `make distclean` para remover conteúdos advindos da ROM do jogo.
Este port é possível graças à [Emill](https://github.com/Emill), [n64-fast32-engine](https://github.com/Emill/n64-fast3d-engine/), e, é claro, ao
time do [n64decomp](https://github.com/n64decomp).
Em caso de contribuições, crie _pull requests_ apenas para a [branch nightly](https://github.com/sm64pc/sm64pc/tree/nightly/).
Novas funcionalidades serão adicionadas à branch master quando forem consideradas bem testadas.
*Leia isso em outras linguas: [English](README.md) [简体中文](README_zh_CN.md).*
## Recursos
* Renderização nativa. Você agora pode jogar SM64 no PC sem precisar de emulador.
* Proporção de tela e resolução variáveis. O jogo renderiza corretamente em basicamente qualquer tamanho de janela.
* Suporte a entradas de controle através de `xinput`. Tal como usando DualShock 4 em distribuições Linux.
* Controle de câmera com analógico ou mouse. (Ative com `make BETTERCAMERA=1`.)
* Uma opção para desativar distância de renderização. (Ative com `make NODRAWINGDISTANCE=1`.)
* Remapeamento de controles _in-game_.
* Pule as cenas introdutórias da Peach e Lakitu com usando a opção `--skip-intro` ao executar o jogo na linha de comando.
* Menu de cheats nas opções. (Ative com `--cheats`)
** Note que se algum cheat pedir pelo botão "L", o botão em questão é o "L" do N64. Certifique-se de que este está mapeado, caso necessário.
## Compilação
Para instruções de compilaçao, consulte a [wiki](https://github.com/sm64pc/sm64pc/wiki).
## Para usuários de Windows
**Certifique-se de que você tem o [MXE](mxe.cc) antes de tentar compilar em Windows. Siga o guia na Wiki.**

View file

@ -1,21 +0,0 @@
# sm64pc
本项目是 [n64decomp/sm64](https://github.com/n64decomp/sm64) 的 OpenGL 移植版本。
我们欢迎贡献代码与 bug 报告,但请切记,**不得上传任何被版权保护(来自 ROM 文件)的资源**。
提交前请运行 `./extract_assets.py --clean && make clean``make distclean` 来清除所有从 ROM 文件中提取的内容。
本移植是基于 [Emill](https://github.com/Emill) 的工作 [n64-fast32-engine](https://github.com/Emill/n64-fast3d-engine/) 才得以实现的。
## 主要功能
* 原生渲染。现在不用任何模拟器就可以运行 马力欧64 了。
* 长宽比和分辨率可以自由改变。本游戏目前可以在几乎任何窗口尺寸下正确渲染。
* 原生 xinput 手柄支持。在 Linux 下,已经确认 PS4 手柄可以即插即用。
* 支持模拟量视点控制、鼠标控制视点。(请使用 `make BETTERCAMERA=1` 编译)
* 可取消可视距离限制。(请使用 `make NODRAWINGDISTANCE=1` 编译)
* 游戏内操作设定功能,目前在 `testing` 分支下可用。
* 使用 `--skip-intro` 命令行选项跳过碧奇公主与 Lakitu 的片头剧情。目前在 `testing``skip-intro` 分支下可用。
## 编译方法
关于如何编译,请参考 [wiki](https://github.com/sm64pc/sm64pc/wiki)。
**请勿在 Linux 或者 WSL 下使用 `WINDOWS_BUILD=1` 参数尝试编译 Windows 版本,这样无法编译成功。请参考 Wiki。

View file

@ -1,158 +0,0 @@
# Text-based savefile format
This small document describes a new, TOML-like text format for game saves. This format allows the user to use a simple text editor to change the data necessary for the game (for example, special saves for speedrun training).
All data is stored in pairs (*key = value*). Pairs can be placed arbitrarily within a single section. The format of values may differ for each section.
Each savefile (4 total) must be named `save_file_X.sav`, where X - save slot (0, 1, 2 or 3).
> **Note**: The game creates the savefile only when you are saved in the game after completing a course!
___
## Header
The header is automatically generated by the game when saving progress. It mainly contains information about the value of the 0 and 1 flags, the character that the comment starts with, and the time when the file content changed.
Example:
```
# Super Mario 64 save file
# Comment starts with #
# True = 1, False = 0
# 2020-05-18 17:37:07
```
___
## Commenting
All comment lines starts with `#` character. Comments can be located on a separate line or as part of another line. When the game reads the save, comments are ignored.
Example:
```
# This is a comment
coin_score_age = ?? # This is a comment too!
```
___
## Menu Section - [menu]
This section contains two flags for menu.
| Flag | Value | Description |
|---|---|---|
| coin_score_age | 0, 1, 2, 3 | Each save file has a 2 bit "age" for each course. The higher this value, the older the high score is. This is used for tie-breaking when displaying on the high score screen
| sound_mode | stereo, mono, headset | Sound mode for the game
Example:
```
[menu]
coin_score_age = 0
sound_mode = stereo
```
___
## Flags Section - [flags]
This section contains all main game flags (walkthought milestones).
> **Note**: The value can be only 0 (False) or 1 (True).
| Flag | Description |
|---|---|
| wing_cap | **Red Switch** is pressed
| metal_cap | **Green Switch** is pressed
| vanish_cap | **Blue Switch** is pressed.
| key_1 | Key is found in **Bowser in the Dark World**
| key_2 | Key is found in **Bowser in the Fire Sea**
| basement_door | Mario unlocked castle's basement door
| upstairs_door | Mario unlocked castle's upper floors
| ddd_moved_back | **Dire Dire Docks** painting is moved back
| moat_drained | Water is drained in the moat of the castle
| pps_door | **Princess's Secret Slide** window is unlocked
| wf_door | **Whomp's Fortress door** is unlocked
| ccm_door | **Cool, Cool Mountain door** is unlocked
| jrb_door | **Jolly Roger Bay door** is unlocked
| bitdw_door | **Bowser in the Dark World door** door is unlocked
| bitfs_door | **Bowser in the Fire Sea** door is unlocked
| 50star_door | **Endless Staircase** is not endless anymore
Example:
```
[flags]
wing_cap = 1
metal_cap = 1
vanish_cap = 0
key_1 = 1
key_2 = 1
```
___
## Main Courses Section - [courses]
This section contains all stars and coins that Mario collected in each main course.
The first value stores the number of coins collected.
> **Warning!**: Make sure that coins count will not exceed 255!
The second value stores the stars (or completed missions). Each mission (6 main + 1 bonus) is must be marked `0` (not completed) and `1` (completed).
> **Warning!**: The sequence of stars' missions goes from **RIGHT** to **LEFT**!
> **Note**: Last star flag is **100 coins star**
| Flag | Short for |
|---|---|
| bob | Bob-omb Battlefield |
| wf | Whomp's Fortress
| jrb | Jolly Roger Bay
| ccm | Cool, Cool Mountain
| bbh | Big Boo's Haunt
| hmc | Hazy Maze Cave
| lll | Lethal Lava Land
| ssl | Shifting Sand Land
| ddd | Dire, Dire Docks
| sl | Snowman's Land
| wdw | Wet-Dry World
| ttm | Tall, Tall Mountain
| thi | Tiny-Huge Island
| ttc | Tick Tock Clock
| rr | Rainbow Ride
Example:
```
[courses]
bob = "3, 0000011"
wf = "3, 0000101"
jrb = "0, 1000000"
ccm = "1, 1111111"
```
___
## Bonus Section - [bonus]
This section contains all bonus stars that Mario collected in the castle and all bonus courses.
> **Note**: The game takes into account only the number of bonus stars collected, the order of stars flags can be arbitrary
| Flag | Stars | Description |
|---|---|---|
| hub | 5 | MIPS' stars and Toads' stars
| bitdw | 1 | Bowser in the Dark World
| bitfs | 1 | Bowser in the Fire Sea
| bits | 1 | Bowser in the Sky
| pss | 2 | The Princess's Secret Slide
| cotmc | 1 | Cavern of the Metal Cap
| totwc | 1 | Tower of the Wing Cap
| vcutm | 1 | Vanish Cap Under the Moat
| wmotr | 1 | Wing Mario Over the Rainbow
| sa | 1 | The Secret Aquarium
Example:
```
[bonus]
hub = 11101
bitdw = 1
bitfs = 0
bits = 1
pss = 10
```
___
## Cap Section - [cap]
This section contains information about where Mario lost his cap and who take it.
| Flag | Value | Description |
|---|---|---|
| type | ground, klepto, ukiki, mrblizzard | The one who or what took the cap from Mario. Default flag is **"ground"**
| level | ssl, sl, ttm, none | Specifies the course where the cap is located. Default flag is **"none"**.
| area | 1, 2 | Specifies the area in the course.
Example:
```
[cap]
type = ground
level = ssl
area = 1
```

View file

@ -78,7 +78,7 @@ const Gfx amp_seg8_dl_08002C50[] = {
// 0x08002C88 - 0x08002CF8
const Gfx amp_seg8_dl_08002C88[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -114,7 +114,7 @@ const Gfx amp_seg8_dl_08002D38[] = {
// 0x08002D70 - 0x08002DE0
const Gfx amp_seg8_dl_08002D70[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -150,7 +150,7 @@ const Gfx amp_seg8_dl_08002E20[] = {
// 0x08002E58 - 0x08002EC8
const Gfx amp_seg8_dl_08002E58[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -43,7 +43,7 @@ static const Vtx bobomb_seg8_vertex_08022A60[] = {
// 0x08022AC0 - 0x08022B08
const Gfx bobomb_seg8_dl_08022AC0[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -134,7 +134,7 @@ const Gfx bobomb_seg8_dl_08022CA0[] = {
// 0x08022D08 - 0x08022D78
const Gfx bobomb_seg8_dl_08022D08[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -152,7 +152,7 @@ const Gfx bobomb_seg8_dl_08022D08[] = {
// 0x08022D78 - 0x08022DE8
const Gfx bobomb_seg8_dl_08022D78[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -473,7 +473,7 @@ const Gfx bully_seg5_dl_05003D08[] = {
// 0x05003D40 - 0x05003DB8
const Gfx bully_seg5_dl_05003D40[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -528,7 +528,7 @@ const Gfx bully_seg5_dl_05003E70[] = {
// 0x05003EA8 - 0x05003F20
const Gfx bully_seg5_dl_05003EA8[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -568,7 +568,7 @@ const Gfx bully_seg5_dl_05003F80[] = {
// 0x05003FC8 - 0x05004038
const Gfx bully_seg5_dl_05003FC8[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -28,7 +28,7 @@ static const Vtx butterfly_seg3_vertex_030053A8[] = {
// 0x03005408 - 0x030054A0
const Gfx butterfly_seg3_dl_03005408[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON),
gsDPLoadTextureBlock(butterfly_seg3_texture_030043A8, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 6, G_TX_NOLOD, G_TX_NOLOD),
@ -44,7 +44,7 @@ const Gfx butterfly_seg3_dl_03005408[] = {
// 0x030054A0 - 0x03005538
const Gfx butterfly_seg3_dl_030054A0[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON),
gsDPLoadTextureBlock(butterfly_seg3_texture_030043A8, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 6, G_TX_NOLOD, G_TX_NOLOD),

View file

@ -21,7 +21,7 @@ ALIGNED8 const Texture chain_ball_seg6_texture_06020AE8[] = {
const Gfx chain_ball_seg6_dl_060212E8[] = {
gsDPPipeSync(),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsDPLoadTextureBlock(chain_ball_seg6_texture_06020AE8, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsSPVertex(chain_ball_seg6_vertex_06020AA0, 4, 0),

View file

@ -185,7 +185,7 @@ const Gfx chilly_chief_seg6_dl_06002D50[] = {
// 0x06002D88 - 0x06002E00
const Gfx chilly_chief_seg6_dl_06002D88[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -240,7 +240,7 @@ const Gfx chilly_chief_seg6_dl_06002EB8[] = {
// 0x06002EF0 - 0x06002F68
const Gfx chilly_chief_seg6_dl_06002EF0[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -280,7 +280,7 @@ const Gfx chilly_chief_seg6_dl_06002FC8[] = {
// 0x06003010 - 0x06003080
const Gfx chilly_chief_seg6_dl_06003010[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -101,7 +101,7 @@ const Gfx chuckya_seg8_dl_0800A030[] = {
// 0x0800A068 - 0x0800A0E0
const Gfx chuckya_seg8_dl_0800A068[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -156,7 +156,7 @@ const Gfx chuckya_seg8_dl_0800A198[] = {
// 0x0800A1D0 - 0x0800A248
const Gfx chuckya_seg8_dl_0800A1D0[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -211,7 +211,7 @@ const Gfx chuckya_seg8_dl_0800A300[] = {
// 0x0800A338 - 0x0800A3B0
const Gfx chuckya_seg8_dl_0800A338[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -248,7 +248,7 @@ const Gfx chuckya_seg8_dl_0800A3F0[] = {
// 0x0800A428 - 0x0800A498
const Gfx chuckya_seg8_dl_0800A428[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -284,7 +284,7 @@ const Gfx chuckya_seg8_dl_0800A4D8[] = {
// 0x0800A510 - 0x0800A580
const Gfx chuckya_seg8_dl_0800A510[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -320,7 +320,7 @@ const Gfx chuckya_seg8_dl_0800A5C0[] = {
// 0x0800A5F8 - 0x0800A668
const Gfx chuckya_seg8_dl_0800A5F8[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -72,7 +72,7 @@ const Gfx coin_seg3_dl_03007800[] = {
gsDPPipeSync(),
gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, coin_seg3_texture_03005780),
gsSPDisplayList(coin_seg3_dl_03007780),
gsSPVertex(coin_seg3_vertex_030056C0, 4, 0),
gsSPVertexNonGlobal(coin_seg3_vertex_030056C0, 4, 0),
gsSPBranchList(coin_seg3_dl_030077D0),
};
@ -81,7 +81,7 @@ const Gfx coin_seg3_dl_03007828[] = {
gsDPPipeSync(),
gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, coin_seg3_texture_03005F80),
gsSPDisplayList(coin_seg3_dl_03007780),
gsSPVertex(coin_seg3_vertex_030056C0, 4, 0),
gsSPVertexNonGlobal(coin_seg3_vertex_030056C0, 4, 0),
gsSPBranchList(coin_seg3_dl_030077D0),
};
@ -90,7 +90,7 @@ const Gfx coin_seg3_dl_03007850[] = {
gsDPPipeSync(),
gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, coin_seg3_texture_03006780),
gsSPDisplayList(coin_seg3_dl_03007780),
gsSPVertex(coin_seg3_vertex_030056C0, 4, 0),
gsSPVertexNonGlobal(coin_seg3_vertex_030056C0, 4, 0),
gsSPBranchList(coin_seg3_dl_030077D0),
};
@ -99,7 +99,7 @@ const Gfx coin_seg3_dl_03007878[] = {
gsDPPipeSync(),
gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, coin_seg3_texture_03006F80),
gsSPDisplayList(coin_seg3_dl_03007780),
gsSPVertex(coin_seg3_vertex_030056C0, 4, 0),
gsSPVertexNonGlobal(coin_seg3_vertex_030056C0, 4, 0),
gsSPBranchList(coin_seg3_dl_030077D0),
};
@ -108,7 +108,7 @@ const Gfx coin_seg3_dl_030078A0[] = {
gsDPPipeSync(),
gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, coin_seg3_texture_03005780),
gsSPDisplayList(coin_seg3_dl_03007780),
gsSPVertex(coin_seg3_vertex_03005700, 4, 0),
gsSPVertexNonGlobal(coin_seg3_vertex_03005700, 4, 0),
gsSPBranchList(coin_seg3_dl_030077D0),
};
@ -117,7 +117,7 @@ const Gfx coin_seg3_dl_030078C8[] = {
gsDPPipeSync(),
gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, coin_seg3_texture_03005F80),
gsSPDisplayList(coin_seg3_dl_03007780),
gsSPVertex(coin_seg3_vertex_03005700, 4, 0),
gsSPVertexNonGlobal(coin_seg3_vertex_03005700, 4, 0),
gsSPBranchList(coin_seg3_dl_030077D0),
};
@ -126,7 +126,7 @@ const Gfx coin_seg3_dl_030078F0[] = {
gsDPPipeSync(),
gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, coin_seg3_texture_03006780),
gsSPDisplayList(coin_seg3_dl_03007780),
gsSPVertex(coin_seg3_vertex_03005700, 4, 0),
gsSPVertexNonGlobal(coin_seg3_vertex_03005700, 4, 0),
gsSPBranchList(coin_seg3_dl_030077D0),
};
@ -135,7 +135,7 @@ const Gfx coin_seg3_dl_03007918[] = {
gsDPPipeSync(),
gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, coin_seg3_texture_03006F80),
gsSPDisplayList(coin_seg3_dl_03007780),
gsSPVertex(coin_seg3_vertex_03005700, 4, 0),
gsSPVertexNonGlobal(coin_seg3_vertex_03005700, 4, 0),
gsSPBranchList(coin_seg3_dl_030077D0),
};
@ -144,7 +144,7 @@ const Gfx coin_seg3_dl_03007940[] = {
gsDPPipeSync(),
gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, coin_seg3_texture_03005780),
gsSPDisplayList(coin_seg3_dl_03007780),
gsSPVertex(coin_seg3_vertex_03005740, 4, 0),
gsSPVertexNonGlobal(coin_seg3_vertex_03005740, 4, 0),
gsSPBranchList(coin_seg3_dl_030077D0),
};
@ -153,7 +153,7 @@ const Gfx coin_seg3_dl_03007968[] = {
gsDPPipeSync(),
gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, coin_seg3_texture_03005F80),
gsSPDisplayList(coin_seg3_dl_03007780),
gsSPVertex(coin_seg3_vertex_03005740, 4, 0),
gsSPVertexNonGlobal(coin_seg3_vertex_03005740, 4, 0),
gsSPBranchList(coin_seg3_dl_030077D0),
};
@ -162,7 +162,7 @@ const Gfx coin_seg3_dl_03007990[] = {
gsDPPipeSync(),
gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, coin_seg3_texture_03006780),
gsSPDisplayList(coin_seg3_dl_03007780),
gsSPVertex(coin_seg3_vertex_03005740, 4, 0),
gsSPVertexNonGlobal(coin_seg3_vertex_03005740, 4, 0),
gsSPBranchList(coin_seg3_dl_030077D0),
};
@ -171,6 +171,6 @@ const Gfx coin_seg3_dl_030079B8[] = {
gsDPPipeSync(),
gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, coin_seg3_texture_03006F80),
gsSPDisplayList(coin_seg3_dl_03007780),
gsSPVertex(coin_seg3_vertex_03005740, 4, 0),
gsSPVertexNonGlobal(coin_seg3_vertex_03005740, 4, 0),
gsSPBranchList(coin_seg3_dl_030077D0),
};

View file

@ -172,6 +172,7 @@ extern const Gfx mario_cap_seg3_dl_030230B0[];
extern const Gfx mario_cap_seg3_dl_03023108[];
extern const Gfx mario_cap_seg3_dl_03023160[];
extern const Gfx mario_cap_seg3_dl_03023298[];
extern const Gfx mario_cap_material_revert_render_settings[];
// mist
extern const GeoLayout mist_geo[];

View file

@ -9,3 +9,6 @@
// luigi_cap
#include "luigi_cap/model.inc.c"
// toad_cap
#include "toad_cap/model.inc.c"

View file

@ -28,8 +28,6 @@ extern const Gfx luigi_cap_seg3_dl_03023160[];
extern const Gfx luigi_cap_seg3_dl_03023298[];
// toad_cap
extern const GeoLayout toads_cap_geo[];
extern const GeoLayout toads_metal_cap_geo[];
extern const GeoLayout toads_wing_cap_geo[];
#include "actors/toad_cap/geo_header.h"
#endif

View file

@ -1130,7 +1130,7 @@ const Gfx dorrie_seg6_dl_0600DFA8[] = {
gsDPSetFogColor(0, 0, 0, 255),
gsSPFogPosition(960, 1000),
gsSPSetGeometryMode(G_FOG),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_PASS2),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_PASS2),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -177,7 +177,7 @@ const Gfx exclamation_box_outline_seg8_dl_08025968[] = {
// 0x080259F8 - 0x08025A68
const Gfx exclamation_box_outline_seg8_dl_080259F8[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -620,7 +620,7 @@ static const Vtx eyerok_seg5_vertex_0500C978[] = {
// 0x0500C9B8 - 0x0500CA50
const Gfx eyerok_seg5_dl_0500C9B8[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -642,7 +642,7 @@ const Gfx eyerok_seg5_dl_0500C9B8[] = {
// 0x0500CA50 - 0x0500CAE8
const Gfx eyerok_seg5_dl_0500CA50[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -664,7 +664,7 @@ const Gfx eyerok_seg5_dl_0500CA50[] = {
// 0x0500CAE8 - 0x0500CB80
const Gfx eyerok_seg5_dl_0500CAE8[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -686,7 +686,7 @@ const Gfx eyerok_seg5_dl_0500CAE8[] = {
// 0x0500CB80 - 0x0500CC18
const Gfx eyerok_seg5_dl_0500CB80[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -281,7 +281,7 @@ const Gfx goomba_seg8_dl_0801B658[] = {
// 0x0801B690 - 0x0801B700
const Gfx goomba_seg8_dl_0801B690[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -75,7 +75,7 @@ extern const Gfx mario_face_part_cap_on_dl[];
extern const Gfx mario_face_cap_dl[];
extern const Gfx mario_face_back_hair_cap_on_dl[];
extern const Gfx mario_hair_sideburn_decal_cap_on_dl[];
extern const Gfx mario_m_logo_decal_dl[];
extern const Gfx mario_m_decal_dl[];
extern const Gfx mario_face_cap_on_dl[];
extern const Gfx mario_cap_on_eyes_front[];
extern const Gfx mario_cap_on_eyes_half_closed[];
@ -132,6 +132,7 @@ extern const Gfx mario_cap_wings[];
extern const Gfx mario_cap_wings_transparent[];
extern const Gfx mario_metal_cap_wings[];
extern const Gfx mario_metal_cap_wings_transparent[];
extern const Gfx mario_material_revert_render_settings[];
// sparkle
extern const GeoLayout sparkles_geo[];

View file

@ -454,7 +454,7 @@ const Gfx heave_ho_seg5_dl_050126B0[] = {
// 0x050126E8 - 0x05012758
const Gfx heave_ho_seg5_dl_050126E8[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -397,7 +397,7 @@ const Gfx hoot_seg5_dl_05002EB0[] = {
const Gfx hoot_seg5_dl_05002F10[] = {
gsDPPipeSync(),
gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPDisplayList(hoot_seg5_dl_05002EB0),
gsSPTexture(0x8000, 0x8000, 1, G_TX_RENDERTILE + 1, G_OFF),
@ -450,7 +450,7 @@ const Gfx hoot_seg5_dl_05002FD8[] = {
const Gfx hoot_seg5_dl_05003038[] = {
gsDPPipeSync(),
gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPDisplayList(hoot_seg5_dl_05002FD8),
gsSPTexture(0x8000, 0x8000, 1, G_TX_RENDERTILE + 1, G_OFF),
@ -503,7 +503,7 @@ const Gfx hoot_seg5_dl_05003100[] = {
const Gfx hoot_seg5_dl_05003160[] = {
gsDPPipeSync(),
gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPDisplayList(hoot_seg5_dl_05003100),
gsSPTexture(0x8000, 0x8000, 1, G_TX_RENDERTILE + 1, G_OFF),
@ -556,7 +556,7 @@ const Gfx hoot_seg5_dl_05003228[] = {
const Gfx hoot_seg5_dl_05003288[] = {
gsDPPipeSync(),
gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPDisplayList(hoot_seg5_dl_05003228),
gsSPTexture(0x8000, 0x8000, 1, G_TX_RENDERTILE + 1, G_OFF),
@ -609,7 +609,7 @@ const Gfx hoot_seg5_dl_05003350[] = {
const Gfx hoot_seg5_dl_050033B0[] = {
gsDPPipeSync(),
gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPDisplayList(hoot_seg5_dl_05003350),
gsSPTexture(0x8000, 0x8000, 1, G_TX_RENDERTILE + 1, G_OFF),
@ -662,7 +662,7 @@ const Gfx hoot_seg5_dl_05003478[] = {
const Gfx hoot_seg5_dl_050034D8[] = {
gsDPPipeSync(),
gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPDisplayList(hoot_seg5_dl_05003478),
gsSPTexture(0x8000, 0x8000, 1, G_TX_RENDERTILE + 1, G_OFF),
@ -715,7 +715,7 @@ const Gfx hoot_seg5_dl_050035A0[] = {
const Gfx hoot_seg5_dl_05003600[] = {
gsDPPipeSync(),
gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPDisplayList(hoot_seg5_dl_050035A0),
gsSPTexture(0x8000, 0x8000, 1, G_TX_RENDERTILE + 1, G_OFF),
@ -768,7 +768,7 @@ const Gfx hoot_seg5_dl_050036C8[] = {
const Gfx hoot_seg5_dl_05003728[] = {
gsDPPipeSync(),
gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPDisplayList(hoot_seg5_dl_050036C8),
gsSPTexture(0x8000, 0x8000, 1, G_TX_RENDERTILE + 1, G_OFF),

View file

@ -17,7 +17,7 @@ ALIGNED8 const Texture leaves_seg3_texture_0301CBE0[] = {
const Gfx leaves_seg3_dl_0301CDE0[] = {
gsDPPipeSync(),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPLoadTextureBlock(leaves_seg3_texture_0301CBE0, G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 16, 0, G_TX_CLAMP, G_TX_CLAMP, 4, 4, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(leaves_seg3_vertex_0301CBA0, 4, 0),

View file

@ -3483,7 +3483,7 @@ const Gfx luigi_right_hand_cap_wings_half_2_dl[] = {
const Gfx luigi_right_hand_cap_wings_intial_dl[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -3831,7 +3831,7 @@ const Gfx luigi_wings_half_2_dl[] = {
// 0x0401CA00 - 0x0401CAB8
const Gfx luigi_cap_wings[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -3885,7 +3885,7 @@ const Gfx luigi_cap_wings_transparent[] = {
// 0x0401CB70 - 0x0401CC28
const Gfx luigi_metal_cap_wings[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -18,13 +18,14 @@ static const Lights1 luigi_cap_seg3_lights_0301CF38 = gdSPDefLights1(
0x00, 0xff, 0x00, 0x28, 0x28, 0x28
);
#include "actors/mario/mario_externs.h"
#include "actors/mario_cap/mario_cap_externs.h"
#define luigi_cap_seg3_texture_0301CF50 mario_cap_seg3_texture_0301CF50
#define luigi_cap_seg3_texture_0301E750 mario_cap_seg3_texture_0301E750
#define luigi_cap_seg3_texture_0301F750 mario_cap_seg3_texture_0301F750
#define luigi_cap_seg3_texture_03020750 mario_cap_seg3_texture_03020750
#define luigi_cap_seg3_texture_03021750 mario_cap_seg3_texture_03021750
#define luigi_cap_texture_cap_inside mario_cap_texture_cap_inside
#define luigi_cap_texture_cap_inside mario_texture_cap_inside
// 0x0301DF50
ALIGNED8 const Texture luigi_cap_seg3_texture_0301DF50[] = {
@ -227,7 +228,7 @@ const Gfx luigi_cap_seg3_dl_03022EA8[] = {
// 0x03022ED8 - 0x03022F20
const Gfx luigi_cap_seg3_dl_03022ED8[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 621 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View file

@ -10,8 +10,8 @@ const GeoLayout mario_geo_face_and_wings[] = {
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_ASM(2, geo_mirror_mario_backface_culling),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_m_decal_dl),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_hair_sideburn_decal_cap_on_dl),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_m_logo_decal_dl),
GEO_ASM(3, geo_mirror_mario_backface_culling),
GEO_OPEN_NODE(),
GEO_SWITCH_CASE(0, geo_switch_mario_eyes),
@ -205,8 +205,8 @@ const GeoLayout mario_vanish_geo_face_and_wings[] = {
GEO_OPEN_NODE(),
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_m_decal_dl),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_hair_sideburn_decal_cap_on_dl),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_m_logo_decal_dl),
GEO_OPEN_NODE(),
GEO_SWITCH_CASE(0, geo_switch_mario_eyes),
GEO_OPEN_NODE(),
@ -700,6 +700,8 @@ const GeoLayout mario_geo_load_body[] = {
// 0x17002DD4
const GeoLayout mario_geo[] = {
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_SHADOW(SHADOW_CIRCLE_PLAYER, 0xB4, 100),
GEO_OPEN_NODE(),
GEO_SCALE(0x00, 16384),
@ -714,5 +716,9 @@ const GeoLayout mario_geo[] = {
GEO_ASM(1, geo_mirror_mario_backface_culling),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_material_revert_render_settings),
GEO_DISPLAY_LIST(LAYER_ALPHA, mario_material_revert_render_settings),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_material_revert_render_settings),
GEO_CLOSE_NODE(),
GEO_END(),
};

View file

@ -1,13 +1,14 @@
extern ALIGNED8 const Texture mario_texture_metal[];
extern ALIGNED8 const Texture mario_texture_metal_shade[];
extern ALIGNED8 const Texture mario_texture_metal_light[];
extern ALIGNED8 const Texture mario_texture_yellow_button[];
extern ALIGNED8 const Texture mario_texture_m_logo[];
extern ALIGNED8 const Texture mario_texture_m_blend[];
extern ALIGNED8 const Texture mario_texture_hair_sideburn[];
extern ALIGNED8 const Texture mario_texture_mustache[];
extern ALIGNED8 const Texture mario_texture_eyes_front[];
extern ALIGNED8 const Texture mario_texture_eyes_half_closed[];
extern ALIGNED8 const Texture mario_texture_eyes_closed[];
extern ALIGNED8 const Texture mario_texture_eyes_closed_unused1[];
extern ALIGNED8 const Texture mario_texture_eyes_closed_unused2[];
extern ALIGNED8 const Texture mario_texture_eyes_right[];
extern ALIGNED8 const Texture mario_texture_eyes_left[];
extern ALIGNED8 const Texture mario_texture_eyes_up[];

View file

@ -36,11 +36,23 @@ static const Lights1 mario_brown2_lights_group = gdSPDefLights1(
0x73, 0x06, 0x00, 0x28, 0x28, 0x28
);
// 0x04000090
static const Lights1 mario_black_lights_group = gdSPDefLights1(
0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x28, 0x28, 0x28
);
ALIGNED8 const Texture mario_texture_metal[] = {
#include "actors/mario/mario_metal.rgba16.inc.c"
};
ALIGNED8 const Texture mario_texture_metal_shade[] = {
#include "actors/mario/custom_mario_metal_shade.rgba16.inc.c"
};
ALIGNED8 const Texture mario_texture_metal_light[] = {
#include "actors/mario/custom_mario_metal_light.rgba16.inc.c"
};
// 0x04001090
ALIGNED8 const Texture mario_texture_yellow_button[] = {
#include "actors/mario/mario_overalls_button.rgba16.inc.c"
@ -48,7 +60,11 @@ ALIGNED8 const Texture mario_texture_yellow_button[] = {
// 0x04001890
ALIGNED8 const Texture mario_texture_m_logo[] = {
#include "actors/mario/custom_mario_logo.ia16.inc.c"
#include "actors/mario/custom_mario_logo.rgba16.inc.c"
};
ALIGNED8 const Texture mario_texture_m_blend[] = {
#include "actors/mario/custom_mario_m_blend.rgba16.inc.c"
};
// 0x04002090
@ -381,11 +397,21 @@ const Gfx mario_butt[] = {
// 0x0400CCC8 - 0x0400CD40
const Gfx mario_metal_butt[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT),
gsSPSetGeometryMode(G_TEXTURE_GEN),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON),
gsSPCopyLightsPlayerPart(METAL),
gsSPTexture(4032, 1984, 0, 0, 1),
gsSPLight(&mario_black_lights_group.l, 1),
gsSPCopyLightEXT(2, 15),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_texture_metal_shade),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 2047, 128),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0),
gsDPSetTileSize(0, 0, 0, 252, 124),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_texture_metal_light),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 2047, 128),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0),
gsDPSetTileSize(1, 0, 0, 252, 124),
gsSPDisplayList(mario_butt_dl),
gsSPEndDisplayList(),
};
@ -489,6 +515,8 @@ const Gfx mario_left_arm_shared_dl[] = {
// 0x0400D1D8 - 0x0400D1F8
const Gfx mario_left_arm[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&mario_red_lights_group.a, 2),
gsSPDisplayList(mario_left_arm_shared_dl),
gsSPEndDisplayList(),
@ -640,6 +668,8 @@ const Gfx mario_left_hand_closed_shared_dl[] = {
// 0x0400D8F0 - 0x0400D910
const Gfx mario_left_hand_closed[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c
gsSPDisplayList(mario_left_hand_closed_shared_dl),
gsSPEndDisplayList(),
@ -748,6 +778,8 @@ const Gfx mario_right_arm_shared_dl[] = {
// 0x0400DDE8 - 0x0400DE08
const Gfx mario_right_arm[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPCopyLightsPlayerPart(SHIRT), // gsSPLight(&mario_red_lights_group.a, 2),
gsSPDisplayList(mario_right_arm_shared_dl),
gsSPEndDisplayList(),
@ -884,6 +916,8 @@ const Gfx mario_right_hand_closed_dl[] = {
// 0x0400E458 - 0x0400E478
const Gfx mario_right_hand_closed[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c
gsSPDisplayList(mario_right_hand_closed_dl),
gsSPEndDisplayList(),
@ -973,11 +1007,21 @@ const Gfx mario_left_thigh[] = {
// 0x0400E7E0 - 0x0400E858
const Gfx mario_metal_left_thigh[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT),
gsSPSetGeometryMode(G_TEXTURE_GEN),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
gsDPLoadTextureBlock(mario_texture_metal, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON),
gsSPCopyLightsPlayerPart(METAL),
gsSPTexture(4032, 1984, 0, 0, 1),
gsSPLight(&mario_black_lights_group.l, 1),
gsSPCopyLightEXT(2, 15),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_texture_metal_shade),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 2047, 128),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0),
gsDPSetTileSize(0, 0, 0, 252, 124),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_texture_metal_light),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 2047, 128),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0),
gsDPSetTileSize(1, 0, 0, 252, 124),
gsSPDisplayList(mario_left_thigh_dl),
gsSPEndDisplayList(),
};
@ -1075,6 +1119,8 @@ const Gfx mario_left_foot_shared_dl[] = {
// 0x0400ECA0 - 0x0400ECC0
const Gfx mario_left_foot[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPCopyLightsPlayerPart(SHOES),
gsSPDisplayList(mario_left_foot_shared_dl),
gsSPEndDisplayList(),
@ -1143,6 +1189,8 @@ const Gfx mario_right_thigh_shared_dl[] = {
// 0x0400EFB8 - 0x0400EFD8
const Gfx mario_right_thigh[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPCopyLightsPlayerPart(PANTS), // gsSPLight(&mario_blue_lights_group.a, 2),
gsSPDisplayList(mario_right_thigh_shared_dl),
gsSPEndDisplayList(),
@ -1258,6 +1306,8 @@ const Gfx mario_right_foot_dl[] = {
// 0x0400F4E8 - 0x0400F528
const Gfx mario_right_foot[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPCopyLightsPlayerPart(SHOES),
gsSPDisplayList(mario_right_foot_dl),
gsDPPipeSync(),
@ -2068,7 +2118,8 @@ const Gfx mario_hair_sideburn_decal_cap_on_dl[] = {
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPCopyLightsPlayerPart(HAIR),
gsSPLight(&mario_black_lights_group.l, 1),
gsSPCopyLightEXT(2, 11),
gsSPDisplayList(mario_hair_sideburn_cap_on_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
@ -2076,19 +2127,22 @@ const Gfx mario_hair_sideburn_decal_cap_on_dl[] = {
gsSPEndDisplayList(),
};
const Gfx mario_m_logo_decal_dl[] = {
const Gfx mario_m_decal_dl[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA),
gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, mario_texture_m_logo),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPLight(&mario_white_lights_group.l, 1),
gsSPLight(&mario_white_lights_group.a, 2),
gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0),
gsSPTexture(65535, 65535, 0, 0, 1),
gsSPLight(&mario_black_lights_group.l, 1),
gsSPCopyLightEXT(2, 15),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_texture_m_logo),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 1023, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(0, 0, 0, 124, 124),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_texture_m_blend),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 256, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 1023, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 256, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(1, 0, 0, 124, 124),
gsSPDisplayList(mario_m_logo_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
@ -2835,7 +2889,8 @@ const Gfx mario_hair_sideburn_decal_cap_off_dl[] = {
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_texture_hair_sideburn),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPCopyLightsPlayerPart(HAIR),
gsSPLight(&mario_black_lights_group.l, 1),
gsSPCopyLightEXT(2, 11),
gsSPDisplayList(mario_hair_sideburn_cap_off_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
@ -3215,6 +3270,8 @@ const Gfx mario_left_hand_open_shared_dl[] = {
// 0x04019CA0 - 0x04019CC0
const Gfx mario_left_hand_open[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c
gsSPDisplayList(mario_left_hand_open_shared_dl),
gsSPEndDisplayList(),
@ -3373,6 +3430,8 @@ const Gfx mario_right_hand_open_dl[] = {
// 0x0401A428 - 0x0401A448
const Gfx mario_right_hand_open[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c
gsSPDisplayList(mario_right_hand_open_dl),
gsSPEndDisplayList(),
@ -3621,17 +3680,20 @@ const Gfx mario_right_hand_cap_bottom_dl[] = {
const Gfx mario_right_hand_cap_decal_dl[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA),
gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, mario_texture_m_logo),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPLight(&mario_white_lights_group.l, 1),
gsSPLight(&mario_white_lights_group.a, 2),
gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0),
gsSPTexture(65535, 65535, 0, 0, 1),
gsSPLight(&mario_black_lights_group.l, 1),
gsSPCopyLightEXT(2, 15),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_texture_m_logo),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 1023, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(0, 0, 0, 124, 124),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_texture_m_blend),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 256, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 1023, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 256, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(1, 0, 0, 124, 124),
gsSPDisplayList(mario_right_hand_cap_m_logo_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
@ -3654,6 +3716,7 @@ const Gfx mario_right_hand_cap_dl[] = {
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 8 * 8 - 1, CALC_DXT(8, G_IM_SIZ_16b_BYTES)),
gsSPCopyLightsPlayerPart(CAP),
gsSPDisplayList(mario_right_hand_cap_m_logo_dl),
gsSPDisplayList(mario_right_hand_cap_bottom_dl),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
@ -3706,7 +3769,7 @@ const Gfx mario_right_hand_cap_wings_half_2_dl[] = {
// 0x0401B0E0 - 0x0401B138
const Gfx mario_right_hand_cap_wings_intial_dl[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -3745,8 +3808,6 @@ const Gfx mario_right_hand_cap_wings_end_dl[] = {
const Gfx mario_right_hand_cap[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPCopyLightsPlayerPart(CAP),
gsSPDisplayList(mario_right_hand_cap_m_logo_dl),
gsSPDisplayList(mario_right_hand_cap_dl),
gsSPEndDisplayList(),
};
@ -4079,6 +4140,8 @@ const Gfx mario_right_hand_peace_shared_dl[] = {
// 0x0401BF30 - 0x0401BF50
const Gfx mario_right_hand_peace[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPCopyLightsPlayerPart(GLOVES), // glove light, set in mario_misc.c
gsSPDisplayList(mario_right_hand_peace_shared_dl),
gsSPEndDisplayList(),
@ -4117,7 +4180,7 @@ const Gfx mario_wings_half_2_dl[] = {
// 0x0401CA00 - 0x0401CAB8
const Gfx mario_cap_wings[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -4171,7 +4234,7 @@ const Gfx mario_cap_wings_transparent[] = {
// 0x0401CB70 - 0x0401CC28
const Gfx mario_metal_cap_wings[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -4223,3 +4286,14 @@ const Gfx mario_metal_cap_wings_transparent[] = {
gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON),
gsSPEndDisplayList(),
};
const Gfx mario_material_revert_render_settings[] = {
gsDPPipeSync(),
gsSPSetGeometryMode(G_LIGHTING),
gsSPClearGeometryMode(G_TEXTURE_GEN),
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT),
gsSPTexture(65535, 65535, 0, 0, 0),
gsDPSetEnvColor(255, 255, 255, 255),
gsDPSetAlphaCompare(G_AC_NONE),
gsSPEndDisplayList(),
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

View file

@ -1,10 +1,14 @@
// 0x16000CA4
const GeoLayout marios_cap_geo[] = {
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75),
GEO_OPEN_NODE(),
GEO_SCALE(0x00, 16384),
GEO_OPEN_NODE(),
GEO_ASM(1, geo_mario_set_player_colors),
GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors),
GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors),
GEO_ASM(10, geo_update_layer_transparency),
GEO_SWITCH_CASE(2, geo_switch_anim_state),
GEO_OPEN_NODE(),
@ -21,16 +25,24 @@ const GeoLayout marios_cap_geo[] = {
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_material_revert_render_settings),
GEO_DISPLAY_LIST(LAYER_ALPHA, mario_cap_material_revert_render_settings),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_material_revert_render_settings),
GEO_CLOSE_NODE(),
GEO_END(),
};
// 0x16000CF0
const GeoLayout marios_metal_cap_geo[] = {
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75),
GEO_OPEN_NODE(),
GEO_SCALE(0x00, 16384),
GEO_OPEN_NODE(),
GEO_ASM(1, geo_mario_set_player_colors),
GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors),
GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors),
GEO_ASM(10, geo_update_layer_transparency),
GEO_SWITCH_CASE(2, geo_switch_anim_state),
GEO_OPEN_NODE(),
@ -39,16 +51,24 @@ const GeoLayout marios_metal_cap_geo[] = {
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_material_revert_render_settings),
GEO_DISPLAY_LIST(LAYER_ALPHA, mario_cap_material_revert_render_settings),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_material_revert_render_settings),
GEO_CLOSE_NODE(),
GEO_END(),
};
// 0x16000D3C
const GeoLayout marios_wing_cap_geo[] = {
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75),
GEO_OPEN_NODE(),
GEO_SCALE(0x00, 16384),
GEO_OPEN_NODE(),
GEO_ASM(1, geo_mario_set_player_colors),
GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors),
GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors),
GEO_ASM(10, geo_update_layer_transparency),
GEO_SWITCH_CASE(2, geo_switch_anim_state),
GEO_OPEN_NODE(),
@ -66,16 +86,24 @@ const GeoLayout marios_wing_cap_geo[] = {
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_material_revert_render_settings),
GEO_DISPLAY_LIST(LAYER_ALPHA, mario_cap_material_revert_render_settings),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_material_revert_render_settings),
GEO_CLOSE_NODE(),
GEO_END(),
};
// 0x16000DA8
const GeoLayout marios_winged_metal_cap_geo[] = {
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75),
GEO_OPEN_NODE(),
GEO_SCALE(0x00, 16384),
GEO_OPEN_NODE(),
GEO_ASM(1, geo_mario_set_player_colors),
GEO_ASM(LAYER_ALPHA + 3, geo_mario_set_player_colors),
GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors),
GEO_ASM(10, geo_update_layer_transparency),
GEO_SWITCH_CASE(2, geo_switch_anim_state),
GEO_OPEN_NODE(),
@ -91,5 +119,9 @@ const GeoLayout marios_winged_metal_cap_geo[] = {
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, mario_cap_material_revert_render_settings),
GEO_DISPLAY_LIST(LAYER_ALPHA, mario_cap_material_revert_render_settings),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, mario_cap_material_revert_render_settings),
GEO_CLOSE_NODE(),
GEO_END(),
};

View file

@ -18,6 +18,22 @@ static const Lights1 mario_cap_seg3_lights_0301CF38 = gdSPDefLights1(
0xff, 0x00, 0x00, 0x28, 0x28, 0x28
);
static const Lights1 mario_cap_black_lights_group = gdSPDefLights1(
0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x28, 0x28, 0x28
);
#include "actors/mario/mario_externs.h"
#define mario_cap_texture_metal_shade mario_texture_metal_shade
#define mario_cap_texture_metal_light mario_texture_metal_light
#define mario_cap_texture_m_logo mario_texture_m_logo
#define mario_cap_texture_m_blend mario_texture_m_blend
#define mario_cap_texture_wings_half_1 mario_texture_wings_half_1
#define mario_cap_texture_wings_half_2 mario_texture_wings_half_2
#define mario_cap_texture_metal_wings_half_1 mario_texture_metal_wings_half_1
#define mario_cap_texture_metal_wings_half_2 mario_texture_metal_wings_half_2
#define mario_cap_texture_cap_inside mario_texture_cap_inside
// 0x0301CF50
ALIGNED8 const Texture mario_cap_seg3_texture_0301CF50[] = {
#include "actors/mario_cap/mario_cap_metal.rgba16.inc.c"
@ -25,7 +41,7 @@ ALIGNED8 const Texture mario_cap_seg3_texture_0301CF50[] = {
// 0x0301DF50
ALIGNED8 const Texture mario_cap_seg3_texture_0301DF50[] = {
#include "actors/mario_cap/custom_mario_cap_logo.ia16.inc.c"
#include "actors/mario_cap/mario_cap_logo.rgba16.inc.c"
};
// 0x0301E750
@ -48,10 +64,6 @@ ALIGNED8 const Texture mario_cap_seg3_texture_03021750[] = {
#include "actors/mario_cap/mario_cap_metal_wing_tip_unused.rgba16.inc.c"
};
ALIGNED8 const Texture mario_cap_texture_cap_inside[] = {
#include "actors/mario_cap/custom_mario_cap_inside.rgba16.inc.c"
};
// 0x03022750
static const Vtx mario_cap_seg3_vertex_03022750[] = {
{{{ 33, 35, 118}, 0, { 728, 758}, {0x30, 0x26, 0x6e, 0xff}}},
@ -248,7 +260,7 @@ const Gfx mario_cap_seg3_dl_03022EA8[] = {
// 0x03022ED8 - 0x03022F20
const Gfx mario_cap_seg3_dl_03022ED8[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -269,17 +281,20 @@ const Gfx mario_cap_seg3_dl_03022F20[] = {
const Gfx mario_cap_m_logo_decal_dl[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_MODULATERGBFADEA, G_CC_MODULATERGBFADEA),
gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_0301DF50),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPLight(&mario_cap_seg3_lights_0301CF20.l, 1),
gsSPLight(&mario_cap_seg3_lights_0301CF20.a, 2),
gsDPSetCombineLERP(TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, SHADE, TEXEL1, SHADE, TEXEL0, 0, ENVIRONMENT, 0),
gsSPTexture(65535, 65535, 0, 0, 1),
gsSPLight(&mario_cap_black_lights_group.l, 1),
gsSPCopyLightEXT(2, 15),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_cap_texture_m_logo),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 1023, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(0, 0, 0, 124, 124),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_cap_texture_m_blend),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 256, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 1023, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 256, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(1, 0, 0, 124, 124),
gsSPDisplayList(mario_cap_seg3_dl_03022B30),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
@ -291,7 +306,7 @@ const Gfx mario_cap_m_logo_decal_dl[] = {
const Gfx mario_cap_seg3_dl_03022F48[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADEFADEA, G_CC_SHADEFADEA),
gsSPCopyLightsPlayerPart(CAP), //gsSPLight(&mario_cap_seg3_lights_0301CF38.a, 2),
gsSPCopyLightsPlayerPart(CAP),
gsSPDisplayList(mario_cap_seg3_dl_03022B30),
gsSPDisplayList(mario_cap_seg3_dl_03022D10),
gsDPPipeSync(),
@ -304,11 +319,21 @@ const Gfx mario_cap_seg3_dl_03022F48[] = {
// 0x03022FF8 - 0x030230B0
const Gfx mario_cap_seg3_dl_03022FF8[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT),
gsSPSetGeometryMode(G_TEXTURE_GEN),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
gsDPLoadTextureBlock(mario_cap_seg3_texture_0301CF50, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON),
gsSPCopyLightsPlayerPart(METAL),
gsSPTexture(4032, 1984, 0, 0, 1),
gsSPLight(&mario_cap_black_lights_group.l, 1),
gsSPCopyLightEXT(2, 15),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_cap_texture_metal_shade),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 2047, 128),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0),
gsDPSetTileSize(0, 0, 0, 252, 124),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_cap_texture_metal_light),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 2047, 128),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0),
gsDPSetTileSize(1, 0, 0, 252, 124),
gsSPDisplayList(mario_cap_seg3_dl_03022B30),
gsSPDisplayList(mario_cap_seg3_dl_03022B68),
gsSPDisplayList(mario_cap_seg3_dl_03022CC8),
@ -324,11 +349,11 @@ const Gfx mario_cap_seg3_dl_03022FF8[] = {
// 0x030230B0 - 0x03023108
const Gfx mario_cap_seg3_dl_030230B0[] = {
gsSPDisplayList(mario_cap_seg3_dl_03022ED8),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_0301E750),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_texture_wings_half_1),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(mario_cap_seg3_dl_03022E78),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_0301F750),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_texture_wings_half_2),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(mario_cap_seg3_dl_03022EA8),
@ -339,11 +364,11 @@ const Gfx mario_cap_seg3_dl_030230B0[] = {
// 0x03023108 - 0x03023160
const Gfx mario_cap_seg3_dl_03023108[] = {
gsSPDisplayList(mario_cap_seg3_dl_03022ED8),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_03020750),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_texture_metal_wings_half_1),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(mario_cap_seg3_dl_03022E78),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_03021750),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_texture_metal_wings_half_2),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(mario_cap_seg3_dl_03022EA8),
@ -365,11 +390,11 @@ const Gfx mario_cap_seg3_dl_03023160[] = {
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_0301E750),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_texture_wings_half_1),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(mario_cap_seg3_dl_03022E78),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_0301F750),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_texture_wings_half_2),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(mario_cap_seg3_dl_03022EA8),
@ -385,17 +410,21 @@ const Gfx mario_cap_seg3_dl_03023160[] = {
// 0x03023298 - 0x030233D0
const Gfx mario_cap_seg3_dl_03023298[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT),
gsSPSetGeometryMode(G_TEXTURE_GEN),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_0301CF50),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 6, G_TX_NOLOD),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)),
gsDPPipeSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 6, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsSPTexture(0x0F80, 0x07C0, 0, G_TX_RENDERTILE, G_ON),
gsSPCopyLightsPlayerPart(METAL), //gsSPLight(&mario_cap_seg3_lights_0301CF20.a, 2),
gsSPTexture(4032, 1984, 0, 0, 1),
gsSPLight(&mario_cap_black_lights_group.l, 1),
gsSPCopyLightEXT(2, 15),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_cap_texture_metal_shade),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 2047, 128),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0),
gsDPSetTileSize(0, 0, 0, 252, 124),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, mario_cap_texture_metal_light),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 2047, 128),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0),
gsDPSetTileSize(1, 0, 0, 252, 124),
gsSPDisplayList(mario_cap_seg3_dl_03022B30),
gsSPDisplayList(mario_cap_seg3_dl_03022B68),
gsSPDisplayList(mario_cap_seg3_dl_03022CC8),
@ -407,11 +436,11 @@ const Gfx mario_cap_seg3_dl_03023298[] = {
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (64 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_03020750),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_texture_metal_wings_half_1),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(mario_cap_seg3_dl_03022E78),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_seg3_texture_03021750),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, mario_cap_texture_metal_wings_half_2),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 64 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsSPDisplayList(mario_cap_seg3_dl_03022EA8),
@ -423,3 +452,14 @@ const Gfx mario_cap_seg3_dl_03023298[] = {
gsDPSetEnvColor(255, 255, 255, 255),
gsSPEndDisplayList(),
};
const Gfx mario_cap_material_revert_render_settings[] = {
gsDPPipeSync(),
gsSPSetGeometryMode(G_LIGHTING),
gsSPClearGeometryMode(G_TEXTURE_GEN),
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT),
gsSPTexture(65535, 65535, 0, 0, 0),
gsDPSetEnvColor(255, 255, 255, 255),
gsDPSetAlphaCompare(G_AC_NONE),
gsSPEndDisplayList(),
};

View file

@ -26,7 +26,7 @@ const Gfx mushroom_1up_seg3_dl_0302A628[] = {
// 0x0302A660 - 0x0302A6D0
const Gfx mushroom_1up_seg3_dl_0302A660[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -17,7 +17,7 @@ ALIGNED8 const Texture pebble_seg3_texture_0301C300[] = {
const Gfx pebble_seg3_dl_0301CB00[] = {
gsDPPipeSync(),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsDPLoadTextureBlock(pebble_seg3_texture_0301C300, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 5, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsSPVertex(pebble_seg3_vertex_0301C2C0, 4, 0),

View file

@ -71,7 +71,7 @@ const Gfx piranha_plant_seg6_dl_06015438[] = {
// 0x06015480 - 0x060154F0
const Gfx piranha_plant_seg6_dl_06015480[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -109,7 +109,7 @@ const Gfx piranha_plant_seg6_dl_06015530[] = {
// 0x06015578 - 0x060155E8
const Gfx piranha_plant_seg6_dl_06015578[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -403,7 +403,7 @@ const Gfx piranha_plant_seg6_dl_060160B0[] = {
// 0x06016120 - 0x06016190
const Gfx piranha_plant_seg6_dl_06016120[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -646,7 +646,7 @@ const Gfx piranha_plant_seg6_dl_060169E8[] = {
// 0x06016A78 - 0x06016AE8
const Gfx piranha_plant_seg6_dl_06016A78[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -21,7 +21,7 @@ ALIGNED8 const Texture pokey_seg5_texture_05011F50[] = {
// 0x05012750 - 0x05012798
const Gfx pokey_seg5_dl_05012750[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -88,7 +88,7 @@ const Gfx pokey_seg5_dl_05013078[] = {
// 0x050130B0 - 0x05013120
const Gfx pokey_seg5_dl_050130B0[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -17,7 +17,7 @@ ALIGNED8 const Texture sand_seg3_texture_0302BAD0[] = {
const Gfx sand_seg3_dl_0302BCD0[] = {
gsDPPipeSync(),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsDPLoadTextureBlock(sand_seg3_texture_0302BAD0, G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 16, 0, G_TX_CLAMP, G_TX_CLAMP, 4, 4, G_TX_NOLOD, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsSPVertex(sand_seg3_vertex_0302BA90, 4, 0),

View file

@ -76,7 +76,7 @@ const Gfx scuttlebug_seg6_dl_060139C0[] = {
// 0x060139F8 - 0x06013A70
const Gfx scuttlebug_seg6_dl_060139F8[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -113,7 +113,7 @@ const Gfx scuttlebug_seg6_dl_06013AB0[] = {
// 0x06013AE8 - 0x06013B58
const Gfx scuttlebug_seg6_dl_06013AE8[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -149,7 +149,7 @@ const Gfx scuttlebug_seg6_dl_06013B98[] = {
// 0x06013BD0 - 0x06013C40
const Gfx scuttlebug_seg6_dl_06013BD0[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -185,7 +185,7 @@ const Gfx scuttlebug_seg6_dl_06013C80[] = {
// 0x06013CB8 - 0x06013D28
const Gfx scuttlebug_seg6_dl_06013CB8[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -221,7 +221,7 @@ const Gfx scuttlebug_seg6_dl_06013D68[] = {
// 0x06013DA0 - 0x06013E10
const Gfx scuttlebug_seg6_dl_06013DA0[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -330,7 +330,7 @@ const Gfx scuttlebug_seg6_dl_06014150[] = {
// 0x06014188 - 0x060141F8
const Gfx scuttlebug_seg6_dl_06014188[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -366,7 +366,7 @@ const Gfx scuttlebug_seg6_dl_06014238[] = {
// 0x06014270 - 0x060142E0
const Gfx scuttlebug_seg6_dl_06014270[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -49,7 +49,7 @@ const Gfx seaweed_seg6_dl_06009E50[] = {
// 0x06009E98 - 0x06009F08
const Gfx seaweed_seg6_dl_06009E98[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -87,7 +87,7 @@ const Gfx seaweed_seg6_dl_06009F48[] = {
// 0x06009F90 - 0x0600A000
const Gfx seaweed_seg6_dl_06009F90[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -125,7 +125,7 @@ const Gfx seaweed_seg6_dl_0600A040[] = {
// 0x0600A088 - 0x0600A0F8
const Gfx seaweed_seg6_dl_0600A088[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -163,7 +163,7 @@ const Gfx seaweed_seg6_dl_0600A138[] = {
// 0x0600A180 - 0x0600A1F0
const Gfx seaweed_seg6_dl_0600A180[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -139,7 +139,7 @@ const Gfx skeeter_seg6_dl_06000BA0[] = {
// 0x06000BD8 - 0x06000C48
const Gfx skeeter_seg6_dl_06000BD8[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -174,7 +174,7 @@ const Gfx skeeter_seg6_dl_06000C78[] = {
// 0x06000CA8 - 0x06000D18
const Gfx skeeter_seg6_dl_06000CA8[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -209,7 +209,7 @@ const Gfx skeeter_seg6_dl_06000D48[] = {
// 0x06000D78 - 0x06000DE8
const Gfx skeeter_seg6_dl_06000D78[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -125,7 +125,7 @@ const Gfx snowman_seg5_dl_0500C5E8[] = {
// 0x0500C620 - 0x0500C698
const Gfx snowman_seg5_dl_0500C620[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -167,7 +167,7 @@ const Gfx snowman_seg5_dl_0500C718[] = {
// 0x0500C760 - 0x0500C7D0
const Gfx snowman_seg5_dl_0500C760[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -303,7 +303,7 @@ const Gfx snowman_seg5_dl_0500CBC0[] = {
// 0x0500CBF8 - 0x0500CC70
const Gfx snowman_seg5_dl_0500CBF8[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -340,7 +340,7 @@ const Gfx snowman_seg5_dl_0500CCB0[] = {
// 0x0500CCE8 - 0x0500CD58
const Gfx snowman_seg5_dl_0500CCE8[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -378,7 +378,7 @@ const Gfx snufit_seg6_dl_060099D8[] = {
// 0x06009A10 - 0x06009A80
const Gfx snufit_seg6_dl_06009A10[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -43,7 +43,7 @@ const Gfx sparkles_animation_seg4_dl_04035288[] = {
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
gsSPVertex(sparkles_animation_seg4_vertex_04032A48, 4, 0),
gsSPVertexNonGlobal(sparkles_animation_seg4_vertex_04032A48, 4, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsSPSetGeometryMode(G_LIGHTING),

View file

@ -114,7 +114,7 @@ const Gfx spindrift_seg5_dl_05002710[] = {
// 0x05002748 - 0x050027B8
const Gfx spindrift_seg5_dl_05002748[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -150,7 +150,7 @@ const Gfx spindrift_seg5_dl_050027F8[] = {
// 0x05002830 - 0x050028A0
const Gfx spindrift_seg5_dl_05002830[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -185,7 +185,7 @@ const Gfx spindrift_seg5_dl_050028D0[] = {
// 0x05002900 - 0x05002970
const Gfx spindrift_seg5_dl_05002900[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -103,7 +103,7 @@ const Gfx star_seg3_dl_0302B9C0[] = {
// 0x0302BA18 - 0x0302BA88
const Gfx star_seg3_dl_0302BA18[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsSPClearGeometryMode(G_SHADING_SMOOTH),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -361,7 +361,7 @@ const Gfx sushi_seg5_dl_0500A860[] = {
// 0x0500A8A8 - 0x0500A918
const Gfx sushi_seg5_dl_0500A8A8[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -397,7 +397,7 @@ const Gfx sushi_seg5_dl_0500A958[] = {
// 0x0500A990 - 0x0500AA00
const Gfx sushi_seg5_dl_0500A990[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -200,7 +200,7 @@ const Gfx swoop_seg6_dl_06006880[] = {
gsDPSetFogColor(0, 0, 0, 255),
gsSPFogPosition(960, 1000),
gsSPSetGeometryMode(G_FOG),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_PASS2),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_PASS2),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -321,7 +321,7 @@ const Gfx swoop_seg6_dl_06006BD0[] = {
gsDPSetFogColor(0, 0, 0, 255),
gsSPFogPosition(960, 1000),
gsSPSetGeometryMode(G_FOG),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_PASS2),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_PASS2),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -366,7 +366,7 @@ const Gfx swoop_seg6_dl_06006D00[] = {
gsDPSetFogColor(0, 0, 0, 255),
gsSPFogPosition(960, 1000),
gsSPSetGeometryMode(G_FOG),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_PASS2),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_PASS2),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -1,89 +1,137 @@
extern const GeoLayout toad_player_geo_cap[];
extern const GeoLayout toad_player_geo_vanish_cap[];
extern const GeoLayout toad_player_geo_cap_wing[];
extern const GeoLayout toad_player_geo_vanish_cap_wing[];
extern const GeoLayout toad_player_geo_metal_cap[];
extern const GeoLayout toad_player_geo_metal_vanish_cap[];
extern const Gfx toad_player_metal_start[];
extern const Gfx toad_player_metal_stop[];
const GeoLayout toads_cap_geo[] = {
GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75),
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_SCALE(0x00, 16384),
GEO_SHADOW(0, 180, 75),
GEO_OPEN_NODE(),
GEO_TRANSLATE_ROTATE(0, 0, 80, 0, 30, 0, 0),
GEO_SCALE(LAYER_FORCE, 16384),
GEO_OPEN_NODE(),
GEO_ASM(1, geo_mario_set_player_colors),
GEO_ASM(0, geo_mario_set_player_colors),
GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors),
GEO_ASM(10, geo_update_layer_transparency),
GEO_SWITCH_CASE(2, geo_switch_anim_state),
GEO_OPEN_NODE(),
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_BRANCH(1, toad_player_geo_cap),
GEO_DISPLAY_LIST(LAYER_OPAQUE, toad_cap_Cap_mesh_layer_1),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, toad_cap_Cap_mesh_layer_5),
GEO_CLOSE_NODE(),
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_BRANCH(1, toad_player_geo_vanish_cap),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_END(),
};
const GeoLayout toads_wing_cap_geo[] = {
GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75),
GEO_OPEN_NODE(),
GEO_SCALE(0x00, 16384),
GEO_OPEN_NODE(),
GEO_TRANSLATE_ROTATE(0, 0, 80, 0, 30, 0, 0),
GEO_OPEN_NODE(),
GEO_ASM(1, geo_mario_set_player_colors),
GEO_ASM(10, geo_update_layer_transparency),
GEO_SWITCH_CASE(2, geo_switch_anim_state),
GEO_OPEN_NODE(),
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_BRANCH(1, toad_player_geo_cap_wing),
GEO_CLOSE_NODE(),
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_BRANCH(1, toad_player_geo_vanish_cap_wing),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, toad_cap_Cap_mesh_layer_1),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, toad_cap_Cap_mesh_layer_5),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, toad_cap_material_revert_render_settings),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, toad_cap_material_revert_render_settings),
GEO_CLOSE_NODE(),
GEO_END(),
};
const GeoLayout toads_metal_cap_geo[] = {
GEO_SHADOW(SHADOW_CIRCLE_9_VERTS, 0xB4, 75),
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_SCALE(0x00, 16384),
GEO_SHADOW(0, 180, 75),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, toad_player_metal_start), // starts sharing solid color with mario_torso (blue)
GEO_TRANSLATE_ROTATE(0, 0, 80, 0, 30, 0, 0),
GEO_SCALE(LAYER_FORCE, 16384),
GEO_OPEN_NODE(),
GEO_ASM(0, geo_mario_set_player_colors),
GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors),
GEO_ASM(10, geo_update_layer_transparency),
GEO_SWITCH_CASE(2, geo_switch_anim_state),
GEO_OPEN_NODE(),
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_BRANCH(1, toad_player_geo_metal_cap),
GEO_DISPLAY_LIST(LAYER_OPAQUE, toad_cap_Metal_Cap_mesh_layer_1),
GEO_CLOSE_NODE(),
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_BRANCH(1, toad_player_geo_metal_vanish_cap),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, toad_cap_Metal_Cap_mesh_layer_1),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, toad_player_metal_stop),
GEO_CLOSE_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, toad_cap_material_revert_render_settings),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, toad_cap_material_revert_render_settings),
GEO_CLOSE_NODE(),
GEO_END(),
};
const GeoLayout toads_wing_cap_geo[] = {
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_SHADOW(0, 180, 75),
GEO_OPEN_NODE(),
GEO_SCALE(LAYER_FORCE, 16384),
GEO_OPEN_NODE(),
GEO_ASM(0, geo_mario_set_player_colors),
GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors),
GEO_ASM(10, geo_update_layer_transparency),
GEO_SWITCH_CASE(2, geo_switch_anim_state),
GEO_OPEN_NODE(),
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, toad_cap_Cap_mesh_layer_1),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, toad_cap_Cap_mesh_layer_5),
GEO_DISPLAY_LIST(LAYER_ALPHA, toad_cap_Wing_Cap_Wings_mesh_layer_4),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, toad_cap_Cap_mesh_layer_1),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, toad_cap_Cap_mesh_layer_5),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, toad_cap_Wing_Cap_Wings_mesh_layer_4),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, toad_cap_material_revert_render_settings),
GEO_DISPLAY_LIST(LAYER_ALPHA, toad_cap_material_revert_render_settings),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, toad_cap_material_revert_render_settings),
GEO_CLOSE_NODE(),
GEO_END(),
};
const GeoLayout toads_winged_metal_cap_geo[] = {
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_SHADOW(0, 180, 75),
GEO_OPEN_NODE(),
GEO_SCALE(LAYER_FORCE, 16384),
GEO_OPEN_NODE(),
GEO_ASM(0, geo_mario_set_player_colors),
GEO_ASM(LAYER_TRANSPARENT + 3, geo_mario_set_player_colors),
GEO_ASM(10, geo_update_layer_transparency),
GEO_SWITCH_CASE(2, geo_switch_anim_state),
GEO_OPEN_NODE(),
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, toad_cap_Metal_Cap_mesh_layer_1),
GEO_DISPLAY_LIST(LAYER_ALPHA, toad_cap_Winged_Metal_Cap_Wings_mesh_layer_4),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, toad_cap_Metal_Cap_mesh_layer_1),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, toad_cap_Winged_Metal_Cap_Wings_mesh_layer_4),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, toad_cap_material_revert_render_settings),
GEO_DISPLAY_LIST(LAYER_ALPHA, toad_cap_material_revert_render_settings),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, toad_cap_material_revert_render_settings),
GEO_CLOSE_NODE(),
GEO_END(),
};

View file

@ -0,0 +1,34 @@
extern const GeoLayout toads_cap_geo[];
extern const GeoLayout toads_metal_cap_geo[];
extern const GeoLayout toads_wing_cap_geo[];
extern const GeoLayout toads_winged_metal_cap_geo[];
extern const Vtx toad_cap_Cap_mesh_layer_1_vtx_0[94];
extern const Gfx toad_cap_Cap_mesh_layer_1_tri_0[];
extern const Vtx toad_cap_Cap_mesh_layer_1_vtx_1[6];
extern const Gfx toad_cap_Cap_mesh_layer_1_tri_1[];
extern const Vtx toad_cap_Cap_mesh_layer_5_vtx_0[100];
extern const Gfx toad_cap_Cap_mesh_layer_5_tri_0[];
extern const Vtx toad_cap_Wing_Cap_Wings_mesh_layer_4_vtx_0[8];
extern const Gfx toad_cap_Wing_Cap_Wings_mesh_layer_4_tri_0[];
extern const Vtx toad_cap_Wing_Cap_Wings_mesh_layer_4_vtx_1[8];
extern const Gfx toad_cap_Wing_Cap_Wings_mesh_layer_4_tri_1[];
extern const Gfx mat_toad_cap_metal[];
extern const Gfx mat_revert_toad_cap_metal[];
extern const Gfx mat_toad_cap_cap_base[];
extern const Gfx mat_toad_cap_toad_cap_inside[];
extern const Gfx mat_toad_cap_cap_spots[];
extern const Gfx mat_revert_toad_cap_cap_spots[];
extern const Gfx mat_toad_cap_wing[];
extern const Gfx mat_revert_toad_cap_wing[];
extern const Gfx mat_toad_cap_wing_tip[];
extern const Gfx mat_revert_toad_cap_wing_tip[];
extern const Gfx mat_toad_cap_metal_wing[];
extern const Gfx mat_revert_toad_cap_metal_wing[];
extern const Gfx mat_toad_cap_metal_wing_tip[];
extern const Gfx mat_revert_toad_cap_metal_wing_tip[];
extern const Gfx toad_cap_Cap_mesh_layer_1[];
extern const Gfx toad_cap_Cap_mesh_layer_5[];
extern const Gfx toad_cap_Metal_Cap_mesh_layer_1[];
extern const Gfx toad_cap_Wing_Cap_Wings_mesh_layer_4[];
extern const Gfx toad_cap_Winged_Metal_Cap_Wings_mesh_layer_4[];
extern const Gfx toad_cap_material_revert_render_settings[];

540
actors/toad_cap/model.inc.c Normal file
View file

@ -0,0 +1,540 @@
static const Lights1 toad_cap_black_lights_group = gdSPDefLights1(
0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x28, 0x28, 0x28
);
#include "actors/mario/mario_externs.h"
#include "actors/toad_player/toad_player_externs.h"
#define toad_cap_texture_metal_shade mario_texture_metal_shade
#define toad_cap_texture_metal_light mario_texture_metal_light
#define toad_cap_texture_spots toad_player_texture_spots
#define toad_cap_texture_wings_half_1 mario_texture_wings_half_1
#define toad_cap_texture_wings_half_2 mario_texture_wings_half_2
#define toad_cap_texture_metal_wings_half_1 mario_texture_metal_wings_half_1
#define toad_cap_texture_metal_wings_half_2 mario_texture_metal_wings_half_2
#define toad_cap_texture_cap_inside mario_texture_cap_inside
Vtx toad_cap_Cap_mesh_layer_1_vtx_0[94] = {
{{ {-175, 118, 0}, 0, {-418, 482}, {134, 35, 0, 0} }},
{{ {-70, 167, 123}, 0, {178, 72}, {212, 90, 78, 0} }},
{{ {-141, 167, 0}, 0, {-280, 152}, {166, 90, 0, 0} }},
{{ {43, 0, 75}, 0, {751, 1673}, {9, 130, 17, 0} }},
{{ {89, 0, 0}, 0, {610, 1852}, {20, 131, 0, 0} }},
{{ {142, 13, 0}, 0, {624, 1980}, {81, 158, 0, 0} }},
{{ {71, 13, -123}, 0, {306, 1880}, {40, 158, 186, 0} }},
{{ {43, 0, -75}, 0, {408, 1776}, {9, 130, 240, 0} }},
{{ {-70, 13, -123}, 0, {250, 1518}, {216, 158, 186, 0} }},
{{ {-43, 0, -75}, 0, {375, 1557}, {247, 130, 240, 0} }},
{{ {-141, 13, 0}, 0, {508, 1254}, {175, 158, 0, 0} }},
{{ {-89, 0, 0}, 0, {531, 1396}, {236, 131, 0, 0} }},
{{ {-70, 13, 120}, 0, {826, 1356}, {217, 157, 69, 0} }},
{{ {-43, 0, 75}, 0, {724, 1458}, {247, 130, 17, 0} }},
{{ {88, 63, 152}, 0, {-92, 952}, {61, 220, 106, 0} }},
{{ {176, 63, 0}, 0, {1016, 906}, {122, 222, 0, 0} }},
{{ {176, 118, 0}, 0, {1010, 594}, {122, 35, 0, 0} }},
{{ {88, 118, 152}, 0, {-98, 640}, {61, 34, 106, 0} }},
{{ {142, 167, 0}, 0, {892, 212}, {90, 90, 0, 0} }},
{{ {71, 167, 123}, 0, {2, 250}, {45, 90, 78, 0} }},
{{ {79, 201, 0}, 0, {688, -162}, {47, 118, 0, 0} }},
{{ {39, 201, 69}, 0, {194, -140}, {23, 118, 40, 0} }},
{{ {176, 63, 0}, 0, {-196, 438}, {122, 222, 0, 0} }},
{{ {88, 118, -152}, 0, {1220, 36}, {61, 36, 150, 0} }},
{{ {176, 118, 0}, 0, {-198, -10}, {122, 35, 0, 0} }},
{{ {88, 63, -153}, 0, {1222, 482}, {61, 222, 150, 0} }},
{{ {142, 13, 0}, 0, {-54, 916}, {81, 158, 0, 0} }},
{{ {71, 13, -123}, 0, {1084, 952}, {40, 158, 186, 0} }},
{{ {-70, 13, 120}, 0, {184, 1066}, {217, 157, 69, 0} }},
{{ {88, 63, 152}, 0, {1214, 712}, {61, 220, 106, 0} }},
{{ {-88, 63, 152}, 0, {34, 812}, {195, 220, 106, 0} }},
{{ {88, 118, 152}, 0, {1186, 352}, {61, 34, 106, 0} }},
{{ {-88, 118, 152}, 0, {6, 452}, {195, 35, 106, 0} }},
{{ {71, 167, 123}, 0, {1050, -18}, {45, 90, 78, 0} }},
{{ {-70, 167, 123}, 0, {104, 62}, {212, 90, 78, 0} }},
{{ {39, 201, 69}, 0, {780, -272}, {23, 118, 40, 0} }},
{{ {-38, 201, 69}, 0, {304, -170}, {233, 118, 40, 0} }},
{{ {71, 167, 123}, 0, {1036, -112}, {45, 90, 78, 0} }},
{{ {-141, 167, 0}, 0, {456, 1066}, {166, 90, 0, 0} }},
{{ {-70, 167, 123}, 0, {1404, 676}, {212, 90, 78, 0} }},
{{ {-38, 201, 69}, 0, {1000, 266}, {233, 118, 40, 0} }},
{{ {-78, 201, 0}, 0, {474, 484}, {210, 118, 0, 0} }},
{{ {0, 213, 0}, 0, {490, -104}, {0, 127, 0, 0} }},
{{ {-38, 201, -66}, 0, {-38, 168}, {234, 119, 216, 0} }},
{{ {-70, 167, -122}, 0, {-462, 496}, {212, 91, 179, 0} }},
{{ {-38, 201, 69}, 0, {-16, -16}, {233, 118, 40, 0} }},
{{ {39, 201, 69}, 0, {-16, -16}, {23, 118, 40, 0} }},
{{ {0, 213, 0}, 0, {-16, -16}, {0, 127, 0, 0} }},
{{ {79, 201, 0}, 0, {-16, -16}, {47, 118, 0, 0} }},
{{ {-141, 13, 0}, 0, {-184, 898}, {175, 158, 0, 0} }},
{{ {-70, 13, 120}, 0, {1120, 942}, {217, 157, 69, 0} }},
{{ {-88, 63, 152}, 0, {1264, 448}, {195, 220, 106, 0} }},
{{ {-175, 63, 0}, 0, {-362, 392}, {134, 222, 0, 0} }},
{{ {-88, 118, 152}, 0, {1258, -4}, {195, 35, 106, 0} }},
{{ {-175, 118, 0}, 0, {-370, -58}, {134, 35, 0, 0} }},
{{ {-70, 167, 123}, 0, {1100, -320}, {212, 90, 78, 0} }},
{{ {71, 167, -122}, 0, {-26, 196}, {44, 91, 179, 0} }},
{{ {-70, 167, -122}, 0, {888, 166}, {212, 91, 179, 0} }},
{{ {-38, 201, -66}, 0, {646, -188}, {234, 119, 216, 0} }},
{{ {88, 118, -152}, 0, {-106, 592}, {61, 36, 150, 0} }},
{{ {-88, 118, -152}, 0, {1032, 556}, {195, 36, 151, 0} }},
{{ {88, 63, -153}, 0, {-88, 942}, {61, 222, 150, 0} }},
{{ {-88, 63, -153}, 0, {1050, 906}, {195, 222, 150, 0} }},
{{ {-70, 13, -123}, 0, {-96, 882}, {216, 158, 186, 0} }},
{{ {-141, 13, 0}, 0, {1122, 1024}, {175, 158, 0, 0} }},
{{ {-175, 63, 0}, 0, {1320, 596}, {134, 222, 0, 0} }},
{{ {-88, 63, -153}, 0, {-198, 414}, {195, 222, 150, 0} }},
{{ {-175, 118, 0}, 0, {1372, 98}, {134, 35, 0, 0} }},
{{ {-88, 118, -152}, 0, {-146, -82}, {195, 36, 151, 0} }},
{{ {176, 118, 0}, 0, {-16, -16}, {122, 35, 0, 0} }},
{{ {71, 167, -122}, 0, {-16, -16}, {44, 91, 179, 0} }},
{{ {142, 167, 0}, 0, {-16, -16}, {90, 90, 0, 0} }},
{{ {88, 118, -152}, 0, {-16, -16}, {61, 36, 150, 0} }},
{{ {71, 13, -123}, 0, {-16, -16}, {40, 158, 186, 0} }},
{{ {-88, 63, -153}, 0, {-16, -16}, {195, 222, 150, 0} }},
{{ {88, 63, -153}, 0, {-16, -16}, {61, 222, 150, 0} }},
{{ {-70, 13, -123}, 0, {-16, -16}, {216, 158, 186, 0} }},
{{ {-88, 118, -152}, 0, {-16, -16}, {195, 36, 151, 0} }},
{{ {-141, 167, 0}, 0, {-16, -16}, {166, 90, 0, 0} }},
{{ {-70, 167, -122}, 0, {-16, -16}, {212, 91, 179, 0} }},
{{ {-175, 118, 0}, 0, {-16, -16}, {134, 35, 0, 0} }},
{{ {43, 0, 75}, 0, {-11, 790}, {9, 130, 17, 0} }},
{{ {142, 13, 0}, 0, {1024, 984}, {81, 158, 0, 0} }},
{{ {71, 13, 120}, 0, {82, 380}, {40, 157, 69, 0} }},
{{ {176, 63, 0}, 0, {1466, 550}, {122, 222, 0, 0} }},
{{ {88, 63, 152}, 0, {290, -208}, {61, 220, 106, 0} }},
{{ {-70, 13, 120}, 0, {-982, 638}, {217, 157, 69, 0} }},
{{ {-43, 0, 75}, 0, {-656, 946}, {247, 130, 17, 0} }},
{{ {71, 167, -122}, 0, {832, 1186}, {44, 91, 179, 0} }},
{{ {-38, 201, -66}, 0, {1162, -70}, {234, 119, 216, 0} }},
{{ {39, 201, -66}, 0, {654, 498}, {23, 118, 216, 0} }},
{{ {0, 213, 0}, 0, {414, -278}, {0, 127, 0, 0} }},
{{ {79, 201, 0}, 0, {-98, 326}, {47, 118, 0, 0} }},
{{ {142, 167, 0}, 0, {-524, 874}, {90, 90, 0, 0} }},
};
Gfx toad_cap_Cap_mesh_layer_1_tri_0[] = {
gsSPVertex(toad_cap_Cap_mesh_layer_1_vtx_0 + 0, 63, 0),
gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
gsSP2Triangles(4, 6, 5, 0, 4, 7, 6, 0),
gsSP2Triangles(7, 8, 6, 0, 7, 9, 8, 0),
gsSP2Triangles(9, 10, 8, 0, 9, 11, 10, 0),
gsSP2Triangles(11, 12, 10, 0, 11, 13, 12, 0),
gsSP2Triangles(14, 15, 16, 0, 14, 16, 17, 0),
gsSP2Triangles(17, 16, 18, 0, 17, 18, 19, 0),
gsSP2Triangles(19, 18, 20, 0, 19, 20, 21, 0),
gsSP2Triangles(22, 23, 24, 0, 22, 25, 23, 0),
gsSP2Triangles(26, 25, 22, 0, 26, 27, 25, 0),
gsSP2Triangles(28, 29, 30, 0, 30, 29, 31, 0),
gsSP2Triangles(30, 31, 32, 0, 32, 31, 33, 0),
gsSP2Triangles(32, 33, 34, 0, 1, 35, 36, 0),
gsSP2Triangles(1, 37, 35, 0, 38, 39, 40, 0),
gsSP2Triangles(38, 40, 41, 0, 41, 40, 42, 0),
gsSP2Triangles(43, 41, 42, 0, 44, 41, 43, 0),
gsSP2Triangles(44, 38, 41, 0, 45, 46, 47, 0),
gsSP2Triangles(46, 48, 47, 0, 49, 50, 51, 0),
gsSP2Triangles(49, 51, 52, 0, 52, 51, 53, 0),
gsSP2Triangles(52, 53, 54, 0, 54, 53, 55, 0),
gsSP2Triangles(56, 57, 58, 0, 59, 57, 56, 0),
gsSP2Triangles(59, 60, 57, 0, 61, 60, 59, 0),
gsSP1Triangle(61, 62, 60, 0),
gsSPVertex(toad_cap_Cap_mesh_layer_1_vtx_0 + 63, 31, 0),
gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
gsSP2Triangles(3, 2, 4, 0, 3, 4, 5, 0),
gsSP2Triangles(6, 7, 8, 0, 6, 9, 7, 0),
gsSP2Triangles(10, 11, 12, 0, 10, 13, 11, 0),
gsSP2Triangles(14, 15, 16, 0, 14, 17, 15, 0),
gsSP2Triangles(18, 19, 20, 0, 20, 19, 21, 0),
gsSP2Triangles(20, 21, 22, 0, 23, 20, 22, 0),
gsSP2Triangles(24, 20, 23, 0, 24, 18, 20, 0),
gsSP2Triangles(25, 26, 27, 0, 27, 26, 28, 0),
gsSP2Triangles(29, 27, 28, 0, 30, 27, 29, 0),
gsSP1Triangle(30, 25, 27, 0),
gsSPEndDisplayList(),
};
Vtx toad_cap_Cap_mesh_layer_1_vtx_1[6] = {
{{ {-43, 0, 75}, 0, {-16, -16}, {247, 130, 17, 0} }},
{{ {-89, 0, 0}, 0, {-16, -16}, {236, 131, 0, 0} }},
{{ {43, 0, 75}, 0, {-16, -16}, {9, 130, 17, 0} }},
{{ {89, 0, 0}, 0, {-16, -16}, {20, 131, 0, 0} }},
{{ {-43, 0, -75}, 0, {-16, -16}, {247, 130, 240, 0} }},
{{ {43, 0, -75}, 0, {-16, -16}, {9, 130, 240, 0} }},
};
Gfx toad_cap_Cap_mesh_layer_1_tri_1[] = {
gsSPVertex(toad_cap_Cap_mesh_layer_1_vtx_1 + 0, 6, 0),
gsSP2Triangles(0, 1, 2, 0, 3, 2, 1, 0),
gsSP2Triangles(4, 3, 1, 0, 5, 3, 4, 0),
gsSPEndDisplayList(),
};
Vtx toad_cap_Cap_mesh_layer_5_vtx_0[100] = {
{{ {-175, 118, 0}, 0, {-418, 482}, {134, 35, 0, 0} }},
{{ {-70, 167, 123}, 0, {178, 72}, {212, 90, 78, 0} }},
{{ {-141, 167, 0}, 0, {-280, 152}, {166, 90, 0, 0} }},
{{ {176, 118, 0}, 0, {-16, -16}, {122, 35, 0, 0} }},
{{ {88, 118, -152}, 0, {-16, -16}, {61, 36, 150, 0} }},
{{ {71, 167, -122}, 0, {-16, -16}, {44, 91, 179, 0} }},
{{ {142, 167, 0}, 0, {-16, -16}, {90, 90, 0, 0} }},
{{ {71, 167, -122}, 0, {-26, 196}, {44, 91, 179, 0} }},
{{ {-70, 167, -122}, 0, {888, 166}, {212, 91, 179, 0} }},
{{ {-38, 201, -66}, 0, {646, -188}, {234, 119, 216, 0} }},
{{ {88, 118, -152}, 0, {-106, 592}, {61, 36, 150, 0} }},
{{ {-88, 118, -152}, 0, {1032, 556}, {195, 36, 151, 0} }},
{{ {88, 63, -153}, 0, {-88, 942}, {61, 222, 150, 0} }},
{{ {-88, 63, -153}, 0, {1050, 906}, {195, 222, 150, 0} }},
{{ {176, 63, 0}, 0, {-196, 438}, {122, 222, 0, 0} }},
{{ {88, 118, -152}, 0, {1220, 36}, {61, 36, 150, 0} }},
{{ {176, 118, 0}, 0, {-198, -10}, {122, 35, 0, 0} }},
{{ {88, 63, -153}, 0, {1222, 482}, {61, 222, 150, 0} }},
{{ {142, 13, 0}, 0, {-54, 916}, {81, 158, 0, 0} }},
{{ {71, 13, -123}, 0, {1084, 952}, {40, 158, 186, 0} }},
{{ {71, 13, -123}, 0, {-16, -16}, {40, 158, 186, 0} }},
{{ {-70, 13, -123}, 0, {-16, -16}, {216, 158, 186, 0} }},
{{ {-88, 63, -153}, 0, {-16, -16}, {195, 222, 150, 0} }},
{{ {88, 63, -153}, 0, {-16, -16}, {61, 222, 150, 0} }},
{{ {-88, 63, -153}, 0, {-198, 414}, {195, 222, 150, 0} }},
{{ {-175, 118, 0}, 0, {1372, 98}, {134, 35, 0, 0} }},
{{ {-88, 118, -152}, 0, {-146, -82}, {195, 36, 151, 0} }},
{{ {-175, 63, 0}, 0, {1320, 596}, {134, 222, 0, 0} }},
{{ {-70, 13, -123}, 0, {-96, 882}, {216, 158, 186, 0} }},
{{ {-141, 13, 0}, 0, {1122, 1024}, {175, 158, 0, 0} }},
{{ {-88, 118, -152}, 0, {-16, -16}, {195, 36, 151, 0} }},
{{ {-175, 118, 0}, 0, {-16, -16}, {134, 35, 0, 0} }},
{{ {-141, 167, 0}, 0, {-16, -16}, {166, 90, 0, 0} }},
{{ {-70, 167, -122}, 0, {-16, -16}, {212, 91, 179, 0} }},
{{ {-141, 167, 0}, 0, {456, 1066}, {166, 90, 0, 0} }},
{{ {-70, 167, 123}, 0, {1404, 676}, {212, 90, 78, 0} }},
{{ {-38, 201, 69}, 0, {1000, 266}, {233, 118, 40, 0} }},
{{ {-78, 201, 0}, 0, {474, 484}, {210, 118, 0, 0} }},
{{ {0, 213, 0}, 0, {490, -104}, {0, 127, 0, 0} }},
{{ {-38, 201, -66}, 0, {-38, 168}, {234, 119, 216, 0} }},
{{ {-70, 167, -122}, 0, {-462, 496}, {212, 91, 179, 0} }},
{{ {-175, 118, 0}, 0, {-370, -58}, {134, 35, 0, 0} }},
{{ {-88, 118, 152}, 0, {1258, -4}, {195, 35, 106, 0} }},
{{ {-70, 167, 123}, 0, {1100, -320}, {212, 90, 78, 0} }},
{{ {-175, 63, 0}, 0, {-362, 392}, {134, 222, 0, 0} }},
{{ {-88, 63, 152}, 0, {1264, 448}, {195, 220, 106, 0} }},
{{ {-141, 13, 0}, 0, {-184, 898}, {175, 158, 0, 0} }},
{{ {-70, 13, 120}, 0, {1120, 942}, {217, 157, 69, 0} }},
{{ {39, 201, 69}, 0, {-16, -16}, {23, 118, 40, 0} }},
{{ {79, 201, 0}, 0, {-16, -16}, {47, 118, 0, 0} }},
{{ {0, 213, 0}, 0, {-16, -16}, {0, 127, 0, 0} }},
{{ {-38, 201, 69}, 0, {-16, -16}, {233, 118, 40, 0} }},
{{ {71, 167, 123}, 0, {2, 250}, {45, 90, 78, 0} }},
{{ {79, 201, 0}, 0, {688, -162}, {47, 118, 0, 0} }},
{{ {39, 201, 69}, 0, {194, -140}, {23, 118, 40, 0} }},
{{ {142, 167, 0}, 0, {892, 212}, {90, 90, 0, 0} }},
{{ {88, 118, 152}, 0, {-98, 640}, {61, 34, 106, 0} }},
{{ {176, 118, 0}, 0, {1010, 594}, {122, 35, 0, 0} }},
{{ {88, 63, 152}, 0, {-92, 952}, {61, 220, 106, 0} }},
{{ {176, 63, 0}, 0, {1016, 906}, {122, 222, 0, 0} }},
{{ {39, 201, 69}, 0, {780, -272}, {23, 118, 40, 0} }},
{{ {-38, 201, 69}, 0, {304, -170}, {233, 118, 40, 0} }},
{{ {71, 167, 123}, 0, {1036, -112}, {45, 90, 78, 0} }},
{{ {43, 0, 75}, 0, {751, 1673}, {9, 130, 17, 0} }},
{{ {89, 0, 0}, 0, {610, 1852}, {20, 131, 0, 0} }},
{{ {142, 13, 0}, 0, {624, 1980}, {81, 158, 0, 0} }},
{{ {71, 13, -123}, 0, {306, 1880}, {40, 158, 186, 0} }},
{{ {43, 0, -75}, 0, {408, 1776}, {9, 130, 240, 0} }},
{{ {-70, 13, -123}, 0, {250, 1518}, {216, 158, 186, 0} }},
{{ {-43, 0, -75}, 0, {375, 1557}, {247, 130, 240, 0} }},
{{ {-141, 13, 0}, 0, {508, 1254}, {175, 158, 0, 0} }},
{{ {-89, 0, 0}, 0, {531, 1396}, {236, 131, 0, 0} }},
{{ {-70, 13, 120}, 0, {826, 1356}, {217, 157, 69, 0} }},
{{ {-43, 0, 75}, 0, {724, 1458}, {247, 130, 17, 0} }},
{{ {43, 0, -75}, 0, {-16, -16}, {9, 130, 240, 0} }},
{{ {89, 0, 0}, 0, {-16, -16}, {20, 131, 0, 0} }},
{{ {-43, 0, -75}, 0, {-16, -16}, {247, 130, 240, 0} }},
{{ {-89, 0, 0}, 0, {-16, -16}, {236, 131, 0, 0} }},
{{ {43, 0, 75}, 0, {-16, -16}, {9, 130, 17, 0} }},
{{ {-43, 0, 75}, 0, {-16, -16}, {247, 130, 17, 0} }},
{{ {-70, 13, 120}, 0, {184, 1066}, {217, 157, 69, 0} }},
{{ {88, 63, 152}, 0, {1214, 712}, {61, 220, 106, 0} }},
{{ {-88, 63, 152}, 0, {34, 812}, {195, 220, 106, 0} }},
{{ {88, 118, 152}, 0, {1186, 352}, {61, 34, 106, 0} }},
{{ {-88, 118, 152}, 0, {6, 452}, {195, 35, 106, 0} }},
{{ {71, 167, 123}, 0, {1050, -18}, {45, 90, 78, 0} }},
{{ {-70, 167, 123}, 0, {104, 62}, {212, 90, 78, 0} }},
{{ {71, 167, -122}, 0, {832, 1186}, {44, 91, 179, 0} }},
{{ {-38, 201, -66}, 0, {1162, -70}, {234, 119, 216, 0} }},
{{ {39, 201, -66}, 0, {654, 498}, {23, 118, 216, 0} }},
{{ {0, 213, 0}, 0, {414, -278}, {0, 127, 0, 0} }},
{{ {79, 201, 0}, 0, {-98, 326}, {47, 118, 0, 0} }},
{{ {142, 167, 0}, 0, {-524, 874}, {90, 90, 0, 0} }},
{{ {71, 13, 120}, 0, {82, 380}, {40, 157, 69, 0} }},
{{ {142, 13, 0}, 0, {1024, 984}, {81, 158, 0, 0} }},
{{ {176, 63, 0}, 0, {1466, 550}, {122, 222, 0, 0} }},
{{ {43, 0, 75}, 0, {-11, 790}, {9, 130, 17, 0} }},
{{ {-43, 0, 75}, 0, {-656, 946}, {247, 130, 17, 0} }},
{{ {-70, 13, 120}, 0, {-982, 638}, {217, 157, 69, 0} }},
{{ {88, 63, 152}, 0, {290, -208}, {61, 220, 106, 0} }},
};
Gfx toad_cap_Cap_mesh_layer_5_tri_0[] = {
gsSPVertex(toad_cap_Cap_mesh_layer_5_vtx_0 + 0, 63, 0),
gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
gsSP2Triangles(3, 5, 6, 0, 7, 8, 9, 0),
gsSP2Triangles(10, 8, 7, 0, 10, 11, 8, 0),
gsSP2Triangles(12, 11, 10, 0, 12, 13, 11, 0),
gsSP2Triangles(14, 15, 16, 0, 14, 17, 15, 0),
gsSP2Triangles(18, 17, 14, 0, 18, 19, 17, 0),
gsSP2Triangles(20, 21, 22, 0, 20, 22, 23, 0),
gsSP2Triangles(24, 25, 26, 0, 24, 27, 25, 0),
gsSP2Triangles(28, 27, 24, 0, 28, 29, 27, 0),
gsSP2Triangles(30, 31, 32, 0, 30, 32, 33, 0),
gsSP2Triangles(34, 35, 36, 0, 34, 36, 37, 0),
gsSP2Triangles(37, 36, 38, 0, 39, 37, 38, 0),
gsSP2Triangles(40, 37, 39, 0, 40, 34, 37, 0),
gsSP2Triangles(41, 42, 43, 0, 44, 42, 41, 0),
gsSP2Triangles(44, 45, 42, 0, 46, 45, 44, 0),
gsSP2Triangles(46, 47, 45, 0, 48, 49, 50, 0),
gsSP2Triangles(51, 48, 50, 0, 52, 53, 54, 0),
gsSP2Triangles(52, 55, 53, 0, 56, 55, 52, 0),
gsSP2Triangles(56, 57, 55, 0, 58, 57, 56, 0),
gsSP2Triangles(58, 59, 57, 0, 1, 60, 61, 0),
gsSP1Triangle(1, 62, 60, 0),
gsSPVertex(toad_cap_Cap_mesh_layer_5_vtx_0 + 63, 37, 0),
gsSP2Triangles(0, 1, 2, 0, 1, 3, 2, 0),
gsSP2Triangles(1, 4, 3, 0, 4, 5, 3, 0),
gsSP2Triangles(4, 6, 5, 0, 6, 7, 5, 0),
gsSP2Triangles(6, 8, 7, 0, 8, 9, 7, 0),
gsSP2Triangles(8, 10, 9, 0, 11, 12, 13, 0),
gsSP2Triangles(13, 12, 14, 0, 12, 15, 14, 0),
gsSP2Triangles(16, 14, 15, 0, 17, 18, 19, 0),
gsSP2Triangles(19, 18, 20, 0, 19, 20, 21, 0),
gsSP2Triangles(21, 20, 22, 0, 21, 22, 23, 0),
gsSP2Triangles(24, 25, 26, 0, 26, 25, 27, 0),
gsSP2Triangles(28, 26, 27, 0, 29, 26, 28, 0),
gsSP2Triangles(29, 24, 26, 0, 30, 31, 32, 0),
gsSP2Triangles(33, 31, 30, 0, 34, 33, 30, 0),
gsSP2Triangles(34, 30, 35, 0, 35, 30, 36, 0),
gsSP1Triangle(30, 32, 36, 0),
gsSPEndDisplayList(),
};
Vtx toad_cap_Wing_Cap_Wings_mesh_layer_4_vtx_0[8] = {
{{ {-132, 118, -76}, 0, {974, 1996}, {167, 238, 89, 255} }},
{{ {-62, 145, -1}, 0, {-16, 1996}, {167, 238, 89, 255} }},
{{ {-192, 321, -94}, 0, {974, -16}, {166, 237, 88, 255} }},
{{ {-125, 348, -19}, 0, {-16, -16}, {166, 236, 88, 255} }},
{{ {192, 321, -94}, 0, {974, -16}, {90, 237, 88, 255} }},
{{ {62, 145, -1}, 0, {-16, 1996}, {89, 238, 89, 255} }},
{{ {132, 118, -76}, 0, {974, 1996}, {89, 238, 89, 255} }},
{{ {125, 348, -19}, 0, {-16, -16}, {90, 236, 88, 255} }},
};
Gfx toad_cap_Wing_Cap_Wings_mesh_layer_4_tri_0[] = {
gsSPVertex(toad_cap_Wing_Cap_Wings_mesh_layer_4_vtx_0 + 0, 8, 0),
gsSP2Triangles(0, 1, 2, 0, 1, 3, 2, 0),
gsSP2Triangles(4, 5, 6, 0, 4, 7, 5, 0),
gsSPEndDisplayList(),
};
Vtx toad_cap_Wing_Cap_Wings_mesh_layer_4_vtx_1[8] = {
{{ {-132, 118, -76}, 0, {-16, 1996}, {167, 238, 89, 255} }},
{{ {-192, 321, -94}, 0, {-16, -16}, {166, 237, 88, 255} }},
{{ {-261, 293, -171}, 0, {974, -16}, {166, 237, 88, 255} }},
{{ {-201, 90, -153}, 0, {974, 1996}, {166, 237, 88, 255} }},
{{ {261, 293, -171}, 0, {974, -16}, {90, 237, 88, 255} }},
{{ {192, 321, -94}, 0, {-16, -16}, {90, 237, 88, 255} }},
{{ {132, 118, -76}, 0, {-16, 1996}, {89, 238, 89, 255} }},
{{ {201, 90, -153}, 0, {974, 1996}, {90, 237, 88, 255} }},
};
Gfx toad_cap_Wing_Cap_Wings_mesh_layer_4_tri_1[] = {
gsSPVertex(toad_cap_Wing_Cap_Wings_mesh_layer_4_vtx_1 + 0, 8, 0),
gsSP2Triangles(0, 1, 2, 0, 3, 0, 2, 0),
gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0),
gsSPEndDisplayList(),
};
Gfx mat_toad_cap_metal[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT, TEXEL0, 0, SHADE, TEXEL1, 0, 0, 0, ENVIRONMENT),
gsSPGeometryMode(0, G_TEXTURE_GEN),
gsSPTexture(4032, 1984, 0, 0, 1),
gsSPLight(&toad_cap_black_lights_group.l, 1),
gsSPCopyLightEXT(2, 15),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, toad_cap_texture_metal_shade),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 2047, 128),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0),
gsDPSetTileSize(0, 0, 0, 252, 124),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, toad_cap_texture_metal_light),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 512, 6, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(6, 0, 0, 2047, 128),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 512, 1, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0),
gsDPSetTileSize(1, 0, 0, 252, 124),
gsSPEndDisplayList(),
};
Gfx mat_revert_toad_cap_metal[] = {
gsDPPipeSync(),
gsSPGeometryMode(G_TEXTURE_GEN, 0),
gsSPEndDisplayList(),
};
Gfx mat_toad_cap_cap_base[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT),
gsSPTexture(65535, 65535, 0, 0, 1),
gsSPCopyLightsPlayerPart(GLOVES),
gsSPEndDisplayList(),
};
Gfx mat_toad_cap_toad_cap_inside[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0),
gsSPTexture(65535, 65535, 0, 0, 1),
gsSPCopyLightsPlayerPart(GLOVES),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, toad_cap_texture_cap_inside),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 63, 1024),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 2, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 3, 0, G_TX_CLAMP | G_TX_NOMIRROR, 3, 0),
gsDPSetTileSize(0, 0, 0, 28, 28),
gsSPEndDisplayList(),
};
Gfx mat_toad_cap_cap_spots[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0, TEXEL0, 0, SHADE, 0, TEXEL0, 0, ENVIRONMENT, 0),
gsSPTexture(65535, 65535, 0, 0, 1),
gsSPCopyLightsPlayerPart(CAP),
gsDPSetTextureImage(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 1, toad_cap_texture_spots),
gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 1023, 256),
gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(0, 0, 0, 124, 124),
gsSPEndDisplayList(),
};
Gfx mat_toad_cap_wing[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0),
gsSPGeometryMode(G_CULL_BACK, 0),
gsSPTexture(65535, 65535, 0, 0, 1),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, toad_cap_texture_wings_half_1),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 2047, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(0, 0, 0, 124, 252),
gsSPEndDisplayList(),
};
Gfx mat_revert_toad_cap_wing[] = {
gsDPPipeSync(),
gsSPGeometryMode(0, G_CULL_BACK),
gsSPEndDisplayList(),
};
Gfx mat_toad_cap_wing_tip[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0),
gsSPGeometryMode(G_CULL_BACK, 0),
gsSPTexture(65535, 65535, 0, 0, 1),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, toad_cap_texture_wings_half_2),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 2047, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(0, 0, 0, 124, 252),
gsSPEndDisplayList(),
};
Gfx mat_revert_toad_cap_wing_tip[] = {
gsDPPipeSync(),
gsSPGeometryMode(0, G_CULL_BACK),
gsSPEndDisplayList(),
};
Gfx mat_toad_cap_metal_wing[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0),
gsSPGeometryMode(G_CULL_BACK, 0),
gsSPTexture(65535, 65535, 0, 0, 1),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, toad_cap_texture_metal_wings_half_1),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 2047, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(0, 0, 0, 124, 252),
gsSPEndDisplayList(),
};
Gfx mat_revert_toad_cap_metal_wing[] = {
gsDPPipeSync(),
gsSPGeometryMode(0, G_CULL_BACK),
gsSPEndDisplayList(),
};
Gfx mat_toad_cap_metal_wing_tip[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0),
gsSPGeometryMode(G_CULL_BACK, 0),
gsSPTexture(65535, 65535, 0, 0, 1),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, toad_cap_texture_metal_wings_half_2),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 0, 0, 7, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0, G_TX_WRAP | G_TX_NOMIRROR, 0, 0),
gsDPLoadBlock(7, 0, 0, 2047, 256),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 6, 0, G_TX_CLAMP | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(0, 0, 0, 124, 252),
gsSPEndDisplayList(),
};
Gfx mat_revert_toad_cap_metal_wing_tip[] = {
gsDPPipeSync(),
gsSPGeometryMode(0, G_CULL_BACK),
gsSPEndDisplayList(),
};
Gfx toad_cap_Cap_mesh_layer_1[] = {
gsSPDisplayList(mat_toad_cap_cap_base),
gsSPDisplayList(toad_cap_Cap_mesh_layer_1_tri_0),
gsSPDisplayList(mat_toad_cap_toad_cap_inside),
gsSPDisplayList(toad_cap_Cap_mesh_layer_1_tri_1),
gsSPEndDisplayList(),
};
Gfx toad_cap_Cap_mesh_layer_5[] = {
gsSPDisplayList(mat_toad_cap_cap_spots),
gsSPDisplayList(toad_cap_Cap_mesh_layer_5_tri_0),
gsSPEndDisplayList(),
};
Gfx toad_cap_Metal_Cap_mesh_layer_1[] = {
gsSPDisplayList(mat_toad_cap_metal),
gsSPDisplayList(toad_cap_Cap_mesh_layer_1_tri_0),
gsSPDisplayList(toad_cap_Cap_mesh_layer_1_tri_1),
gsSPDisplayList(mat_revert_toad_cap_metal),
gsSPEndDisplayList(),
};
Gfx toad_cap_Wing_Cap_Wings_mesh_layer_4[] = {
gsSPDisplayList(mat_toad_cap_wing),
gsSPDisplayList(toad_cap_Wing_Cap_Wings_mesh_layer_4_tri_0),
gsSPDisplayList(mat_revert_toad_cap_wing),
gsSPDisplayList(mat_toad_cap_wing_tip),
gsSPDisplayList(toad_cap_Wing_Cap_Wings_mesh_layer_4_tri_1),
gsSPDisplayList(mat_revert_toad_cap_wing_tip),
gsSPEndDisplayList(),
};
Gfx toad_cap_Winged_Metal_Cap_Wings_mesh_layer_4[] = {
gsSPDisplayList(mat_toad_cap_metal_wing),
gsSPDisplayList(toad_cap_Wing_Cap_Wings_mesh_layer_4_tri_0),
gsSPDisplayList(mat_revert_toad_cap_metal_wing),
gsSPDisplayList(mat_toad_cap_metal_wing_tip),
gsSPDisplayList(toad_cap_Wing_Cap_Wings_mesh_layer_4_tri_1),
gsSPDisplayList(mat_revert_toad_cap_metal_wing_tip),
gsSPEndDisplayList(),
};
Gfx toad_cap_material_revert_render_settings[] = {
gsDPPipeSync(),
gsSPSetGeometryMode(G_LIGHTING),
gsSPClearGeometryMode(G_TEXTURE_GEN),
gsDPSetCombineLERP(0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT, 0, 0, 0, SHADE, 0, 0, 0, ENVIRONMENT),
gsSPTexture(65535, 65535, 0, 0, 0),
gsDPSetEnvColor(255, 255, 255, 255),
gsDPSetAlphaCompare(G_AC_NONE),
gsSPEndDisplayList(),
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 723 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 807 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 816 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 927 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 682 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 846 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 754 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 815 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 830 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 825 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 499 B

File diff suppressed because it is too large Load diff

View file

@ -1,38 +1,196 @@
extern const Gfx toad_player_metal_start[];
extern const Gfx toad_player_metal_stop[];
extern const Gfx toad_player_dl_face[];
extern const Gfx toad_player_dl_eyes_closed[];
extern const Gfx toad_player_dl_eyes_half_closed[];
extern const Gfx toad_player_dl_eyes_dead[];
extern const Gfx toad_player_dl_hair[];
extern const Gfx toad_player_dl_cap_inner[];
extern const Gfx toad_player_dl_cap[];
extern const Gfx toad_player_dl_cap_decal[];
extern const Gfx toad_player_cap_wings[];
extern const Gfx toad_player_metal_cap_wings[];
extern const Gfx toad_player_dl_jacket[];
extern const Gfx toad_player_dl_body[];
extern const Gfx toad_player_dl_foot_left_inner[];
extern const Gfx toad_player_dl_foot_left[];
extern const Gfx toad_player_dl_foot_right[];
extern const Gfx toad_player_dl_foot_right_metal[];
extern const Gfx toad_player_dl_arm_left_inner[];
extern const Gfx toad_player_dl_arm_left[];
extern const Gfx toad_player_dl_arm_right_inner[];
extern const Gfx toad_player_dl_arm_right[];
extern const Gfx toad_player_dl_face_inner[];
extern const Gfx toad_player_dl_head_base[];
extern const Gfx toad_player_dl_head_transparent[];
extern const Gfx toad_player_metal_dl_body[];
extern Gfx toad_material_revert_render_settings[];
#ifndef VERSION_JP
extern const Gfx toad_player_dl_face_2[];
#endif
extern const GeoLayout toad_toad_player_head_capless[];
extern const GeoLayout toad_toad_player_left_hand_open[];
extern const GeoLayout toad_toad_player_right_hand_open[];
extern const GeoLayout toad_toad_player_right_hand_peace[];
extern const GeoLayout toad_toad_player_right_hand_cap[];
extern const GeoLayout toad_toad_player_right_hand_wing_cap[];
extern const GeoLayout toad_Cap_Effect_Switch_opt1_jump_toad_toad_player_head_capless[];
extern const GeoLayout toad_Cap_Effect_Switch_opt1_jump_toad_toad_player_left_hand_open[];
extern const GeoLayout toad_Cap_Effect_Switch_opt1_jump_toad_toad_player_right_hand_open[];
extern const GeoLayout toad_Cap_Effect_Switch_opt1_jump_toad_toad_player_right_hand_peace[];
extern const GeoLayout toad_Cap_Effect_Switch_opt1_jump_toad_toad_player_right_hand_cap[];
extern const GeoLayout toad_Cap_Effect_Switch_opt1_jump_toad_toad_player_right_hand_wing_cap[];
extern const GeoLayout toad_Cap_Effect_Switch_opt1_Eye_Switch_opt1[];
extern const GeoLayout toad_Cap_Effect_Switch_opt1_Eye_Switch_opt2[];
extern const GeoLayout toad_Cap_Effect_Switch_opt1_Eye_Switch_opt3[];
extern const GeoLayout toad_Cap_Effect_Switch_opt1_Eye_Switch_opt4[];
extern const GeoLayout toad_Cap_Effect_Switch_opt1_Eye_Switch_opt5[];
extern const GeoLayout toad_Cap_Effect_Switch_opt1_Eye_Switch_opt6[];
extern const GeoLayout toad_Cap_Effect_Switch_opt1_Eye_Switch_opt7[];
extern const GeoLayout toad_Cap_Effect_Switch_opt1[];
extern const GeoLayout toad_Cap_Effect_Switch_opt2_jump_toad_toad_player_head_capless[];
extern const GeoLayout toad_Cap_Effect_Switch_opt2_jump_toad_toad_player_left_hand_open[];
extern const GeoLayout toad_Cap_Effect_Switch_opt2_jump_toad_toad_player_right_hand_open[];
extern const GeoLayout toad_Cap_Effect_Switch_opt2_jump_toad_toad_player_right_hand_peace[];
extern const GeoLayout toad_Cap_Effect_Switch_opt2_jump_toad_toad_player_right_hand_cap[];
extern const GeoLayout toad_Cap_Effect_Switch_opt2_jump_toad_toad_player_right_hand_wing_cap[];
extern const GeoLayout toad_Cap_Effect_Switch_opt2[];
extern const GeoLayout toad_Cap_Effect_Switch_opt3_jump_toad_toad_player_head_capless[];
extern const GeoLayout toad_Cap_Effect_Switch_opt3_jump_toad_toad_player_left_hand_open[];
extern const GeoLayout toad_Cap_Effect_Switch_opt3_jump_toad_toad_player_right_hand_open[];
extern const GeoLayout toad_Cap_Effect_Switch_opt3_jump_toad_toad_player_right_hand_peace[];
extern const GeoLayout toad_Cap_Effect_Switch_opt3_jump_toad_toad_player_right_hand_cap[];
extern const GeoLayout toad_Cap_Effect_Switch_opt3_jump_toad_toad_player_right_hand_wing_cap[];
extern const GeoLayout toad_Cap_Effect_Switch_opt3[];
extern const GeoLayout toad_Cap_Effect_Switch_opt0_Eye_Switch_opt1[];
extern const GeoLayout toad_Cap_Effect_Switch_opt0_Eye_Switch_opt2[];
extern const GeoLayout toad_Cap_Effect_Switch_opt0_Eye_Switch_opt3[];
extern const GeoLayout toad_Cap_Effect_Switch_opt0_Eye_Switch_opt4[];
extern const GeoLayout toad_Cap_Effect_Switch_opt0_Eye_Switch_opt5[];
extern const GeoLayout toad_Cap_Effect_Switch_opt0_Eye_Switch_opt6[];
extern const GeoLayout toad_Cap_Effect_Switch_opt0_Eye_Switch_opt7[];
extern const GeoLayout toad_player_geo[];
extern const Vtx toad_Torso_mesh_layer_1_vtx_0[20];
extern const Gfx toad_Torso_mesh_layer_1_tri_0[];
extern const Vtx toad_Torso_mesh_layer_1_vtx_1[12];
extern const Gfx toad_Torso_mesh_layer_1_tri_1[];
extern const Vtx toad_Torso_mesh_layer_1_vtx_2[20];
extern const Gfx toad_Torso_mesh_layer_1_tri_2[];
extern const Vtx toad_Cap_DL_mesh_layer_1_vtx_0[94];
extern const Gfx toad_Cap_DL_mesh_layer_1_tri_0[];
extern const Vtx toad_Cap_DL_mesh_layer_5_vtx_0[94];
extern const Gfx toad_Cap_DL_mesh_layer_5_tri_0[];
extern const Vtx toad_Head_Capless_Switch_Option_Head_Capless_mesh_layer_4_vtx_0[12];
extern const Gfx toad_Head_Capless_Switch_Option_Head_Capless_mesh_layer_4_tri_0[];
extern const Vtx toad_Head_DL_mesh_layer_5_vtx_0[60];
extern const Gfx toad_Head_DL_mesh_layer_5_tri_0[];
extern const Vtx toad_Head_DL_mesh_layer_1_vtx_0[60];
extern const Gfx toad_Head_DL_mesh_layer_1_tri_0[];
extern const Vtx toad_Left_Wing_DL_mesh_layer_4_vtx_0[4];
extern const Gfx toad_Left_Wing_DL_mesh_layer_4_tri_0[];
extern const Vtx toad_Left_Wing_DL_mesh_layer_4_vtx_1[4];
extern const Gfx toad_Left_Wing_DL_mesh_layer_4_tri_1[];
extern const Vtx toad_Right_Wing_DL_mesh_layer_4_vtx_0[4];
extern const Gfx toad_Right_Wing_DL_mesh_layer_4_tri_0[];
extern const Vtx toad_Right_Wing_DL_mesh_layer_4_vtx_1[4];
extern const Gfx toad_Right_Wing_DL_mesh_layer_4_tri_1[];
extern const Vtx toad_Left_Arm_Color_mesh_layer_1_vtx_0[20];
extern const Gfx toad_Left_Arm_Color_mesh_layer_1_tri_0[];
extern const Vtx toad_Left_Forearm_mesh_layer_1_vtx_0[16];
extern const Gfx toad_Left_Forearm_mesh_layer_1_tri_0[];
extern const Vtx toad_Left_Hand_DL_mesh_layer_1_vtx_0[20];
extern const Gfx toad_Left_Hand_DL_mesh_layer_1_tri_0[];
extern const Vtx toad_Left_Hand_Open_Switch_Option_Left_Hand_Open_mesh_layer_1_vtx_0[23];
extern const Gfx toad_Left_Hand_Open_Switch_Option_Left_Hand_Open_mesh_layer_1_tri_0[];
extern const Vtx toad_Right_Arm_Color_mesh_layer_1_vtx_0[20];
extern const Gfx toad_Right_Arm_Color_mesh_layer_1_tri_0[];
extern const Vtx toad_Right_Forearm_mesh_layer_1_vtx_0[16];
extern const Gfx toad_Right_Forearm_mesh_layer_1_tri_0[];
extern const Vtx toad_Right_Hand_DL_mesh_layer_1_vtx_0[20];
extern const Gfx toad_Right_Hand_DL_mesh_layer_1_tri_0[];
extern const Vtx toad_Right_Hand_Open_Switch_Option_Right_Hand_Open_mesh_layer_1_vtx_0[23];
extern const Gfx toad_Right_Hand_Open_Switch_Option_Right_Hand_Open_mesh_layer_1_tri_0[];
extern const Vtx toad_Right_Hand_Peace_Switch_Option_Right_Hand_Peace_mesh_layer_1_vtx_0[63];
extern const Gfx toad_Right_Hand_Peace_Switch_Option_Right_Hand_Peace_mesh_layer_1_tri_0[];
extern const Vtx toad_Right_Hand_Switch_Option_Right_Hand_Cap_mesh_layer_1_vtx_0[20];
extern const Gfx toad_Right_Hand_Switch_Option_Right_Hand_Cap_mesh_layer_1_tri_0[];
extern const Vtx toad_Right_Hand_Switch_Option_Right_Hand_Cap_mesh_layer_1_vtx_1[94];
extern const Gfx toad_Right_Hand_Switch_Option_Right_Hand_Cap_mesh_layer_1_tri_1[];
extern const Vtx toad_Right_Hand_Switch_Option_Right_Hand_Cap_mesh_layer_1_vtx_2[6];
extern const Gfx toad_Right_Hand_Switch_Option_Right_Hand_Cap_mesh_layer_1_tri_2[];
extern const Vtx toad_Right_Hand_Switch_Option_Right_Hand_Cap_mesh_layer_5_vtx_0[100];
extern const Gfx toad_Right_Hand_Switch_Option_Right_Hand_Cap_mesh_layer_5_tri_0[];
extern const Vtx toad_Right_Hand_Wing_Cap_Switch_Option_Right_Hand_Wing_Cap_mesh_layer_1_vtx_0[20];
extern const Gfx toad_Right_Hand_Wing_Cap_Switch_Option_Right_Hand_Wing_Cap_mesh_layer_1_tri_0[];
extern const Vtx toad_Right_Hand_Wing_Cap_Switch_Option_Right_Hand_Wing_Cap_mesh_layer_1_vtx_1[94];
extern const Gfx toad_Right_Hand_Wing_Cap_Switch_Option_Right_Hand_Wing_Cap_mesh_layer_1_tri_1[];
extern const Vtx toad_Right_Hand_Wing_Cap_Switch_Option_Right_Hand_Wing_Cap_mesh_layer_1_vtx_2[6];
extern const Gfx toad_Right_Hand_Wing_Cap_Switch_Option_Right_Hand_Wing_Cap_mesh_layer_1_tri_2[];
extern const Vtx toad_Right_Hand_Wing_Cap_Switch_Option_Right_Hand_Wing_Cap_mesh_layer_5_vtx_0[100];
extern const Gfx toad_Right_Hand_Wing_Cap_Switch_Option_Right_Hand_Wing_Cap_mesh_layer_5_tri_0[];
extern const Vtx toad_Right_Hand_Wing_Cap_Switch_Option_Right_Hand_Wing_Cap_Wings_mesh_layer_4_vtx_0[8];
extern const Gfx toad_Right_Hand_Wing_Cap_Switch_Option_Right_Hand_Wing_Cap_Wings_mesh_layer_4_tri_0[];
extern const Vtx toad_Right_Hand_Wing_Cap_Switch_Option_Right_Hand_Wing_Cap_Wings_mesh_layer_4_vtx_1[8];
extern const Gfx toad_Right_Hand_Wing_Cap_Switch_Option_Right_Hand_Wing_Cap_Wings_mesh_layer_4_tri_1[];
extern const Vtx toad_Left_Shoe_mesh_layer_1_vtx_0[20];
extern const Gfx toad_Left_Shoe_mesh_layer_1_tri_0[];
extern const Vtx toad_Right_Shoe_DL_mesh_layer_1_vtx_0[20];
extern const Gfx toad_Right_Shoe_DL_mesh_layer_1_tri_0[];
extern const Gfx mat_toad_white[];
extern const Gfx mat_toad_beige[];
extern const Gfx mat_toad_vest[];
extern const Gfx mat_revert_toad_vest[];
extern const Gfx mat_toad_metal[];
extern const Gfx mat_revert_toad_metal[];
extern const Gfx mat_toad_cap_base[];
extern const Gfx mat_toad_cap_spots[];
extern const Gfx mat_toad_hair[];
extern const Gfx mat_revert_toad_hair[];
extern const Gfx mat_toad_eyes_center[];
extern const Gfx mat_toad_face_blush[];
extern const Gfx mat_toad_eyes_half_closed[];
extern const Gfx mat_toad_eyes_closed[];
extern const Gfx mat_toad_eyes_right[];
extern const Gfx mat_toad_eyes_left[];
extern const Gfx mat_toad_eyes_up[];
extern const Gfx mat_toad_eyes_down[];
extern const Gfx mat_toad_eyes_dead[];
extern const Gfx mat_toad_wing_tip[];
extern const Gfx mat_revert_toad_wing_tip[];
extern const Gfx mat_toad_wing[];
extern const Gfx mat_revert_toad_wing[];
extern const Gfx mat_toad_toad_cap_inside[];
extern const Gfx mat_toad_brown[];
extern const Gfx toad_Torso_mesh_layer_1[];
extern const Gfx toad_Torso_mesh_layer_1_mat_override_metal_0[];
extern const Gfx toad_Cap_DL_mesh_layer_1[];
extern const Gfx toad_Cap_DL_mesh_layer_1_mat_override_metal_0[];
extern const Gfx toad_Cap_DL_mesh_layer_5[];
extern const Gfx toad_Cap_DL_mesh_layer_5_mat_override_metal_0[];
extern const Gfx toad_Head_Capless_Switch_Option_Head_Capless_mesh_layer_4[];
extern const Gfx toad_Head_Capless_Switch_Option_Head_Capless_mesh_layer_4_mat_override_metal_0[];
extern const Gfx toad_Head_DL_mesh_layer_5[];
extern const Gfx toad_Head_DL_mesh_layer_5_mat_override_metal_0[];
extern const Gfx toad_Head_DL_mesh_layer_5_mat_override_eyes_half_closed_1[];
extern const Gfx toad_Head_DL_mesh_layer_5_mat_override_eyes_closed_2[];
extern const Gfx toad_Head_DL_mesh_layer_5_mat_override_eyes_right_3[];
extern const Gfx toad_Head_DL_mesh_layer_5_mat_override_eyes_left_4[];
extern const Gfx toad_Head_DL_mesh_layer_5_mat_override_eyes_up_5[];
extern const Gfx toad_Head_DL_mesh_layer_5_mat_override_eyes_down_6[];
extern const Gfx toad_Head_DL_mesh_layer_5_mat_override_eyes_dead_7[];
extern const Gfx toad_Head_DL_mesh_layer_1[];
extern const Gfx toad_Head_DL_mesh_layer_1_mat_override_metal_0[];
extern const Gfx toad_Head_DL_mesh_layer_1_mat_override_eyes_half_closed_1[];
extern const Gfx toad_Head_DL_mesh_layer_1_mat_override_eyes_closed_2[];
extern const Gfx toad_Head_DL_mesh_layer_1_mat_override_eyes_right_3[];
extern const Gfx toad_Head_DL_mesh_layer_1_mat_override_eyes_left_4[];
extern const Gfx toad_Head_DL_mesh_layer_1_mat_override_eyes_up_5[];
extern const Gfx toad_Head_DL_mesh_layer_1_mat_override_eyes_down_6[];
extern const Gfx toad_Head_DL_mesh_layer_1_mat_override_eyes_dead_7[];
extern const Gfx toad_Left_Wing_DL_mesh_layer_4[];
extern const Gfx toad_Left_Wing_DL_mesh_layer_4_mat_override_metal_0[];
extern const Gfx toad_Right_Wing_DL_mesh_layer_4[];
extern const Gfx toad_Right_Wing_DL_mesh_layer_4_mat_override_metal_0[];
extern const Gfx toad_Left_Arm_Color_mesh_layer_1[];
extern const Gfx toad_Left_Arm_Color_mesh_layer_1_mat_override_metal_0[];
extern const Gfx toad_Left_Forearm_mesh_layer_1[];
extern const Gfx toad_Left_Forearm_mesh_layer_1_mat_override_metal_0[];
extern const Gfx toad_Left_Hand_DL_mesh_layer_1[];
extern const Gfx toad_Left_Hand_DL_mesh_layer_1_mat_override_metal_0[];
extern const Gfx toad_Left_Hand_Open_Switch_Option_Left_Hand_Open_mesh_layer_1[];
extern const Gfx toad_Left_Hand_Open_Switch_Option_Left_Hand_Open_mesh_layer_1_mat_override_metal_0[];
extern const Gfx toad_Right_Arm_Color_mesh_layer_1[];
extern const Gfx toad_Right_Arm_Color_mesh_layer_1_mat_override_metal_0[];
extern const Gfx toad_Right_Forearm_mesh_layer_1[];
extern const Gfx toad_Right_Forearm_mesh_layer_1_mat_override_metal_0[];
extern const Gfx toad_Right_Hand_DL_mesh_layer_1[];
extern const Gfx toad_Right_Hand_DL_mesh_layer_1_mat_override_metal_0[];
extern const Gfx toad_Right_Hand_Open_Switch_Option_Right_Hand_Open_mesh_layer_1[];
extern const Gfx toad_Right_Hand_Open_Switch_Option_Right_Hand_Open_mesh_layer_1_mat_override_metal_0[];
extern const Gfx toad_Right_Hand_Peace_Switch_Option_Right_Hand_Peace_mesh_layer_1[];
extern const Gfx toad_Right_Hand_Peace_Switch_Option_Right_Hand_Peace_mesh_layer_1_mat_override_metal_0[];
extern const Gfx toad_Right_Hand_Switch_Option_Right_Hand_Cap_mesh_layer_1[];
extern const Gfx toad_Right_Hand_Switch_Option_Right_Hand_Cap_mesh_layer_1_mat_override_metal_0[];
extern const Gfx toad_Right_Hand_Switch_Option_Right_Hand_Cap_mesh_layer_5[];
extern const Gfx toad_Right_Hand_Switch_Option_Right_Hand_Cap_mesh_layer_5_mat_override_metal_0[];
extern const Gfx toad_Right_Hand_Wing_Cap_Switch_Option_Right_Hand_Wing_Cap_mesh_layer_1[];
extern const Gfx toad_Right_Hand_Wing_Cap_Switch_Option_Right_Hand_Wing_Cap_mesh_layer_1_mat_override_metal_0[];
extern const Gfx toad_Right_Hand_Wing_Cap_Switch_Option_Right_Hand_Wing_Cap_mesh_layer_5[];
extern const Gfx toad_Right_Hand_Wing_Cap_Switch_Option_Right_Hand_Wing_Cap_mesh_layer_5_mat_override_metal_0[];
extern const Gfx toad_Right_Hand_Wing_Cap_Switch_Option_Right_Hand_Wing_Cap_Wings_mesh_layer_4[];
extern const Gfx toad_Right_Hand_Wing_Cap_Switch_Option_Right_Hand_Wing_Cap_Wings_mesh_layer_4_mat_override_metal_0[];
extern const Gfx toad_Left_Shoe_mesh_layer_1[];
extern const Gfx toad_Left_Shoe_mesh_layer_1_mat_override_metal_0[];
extern const Gfx toad_Right_Shoe_DL_mesh_layer_1[];
extern const Gfx toad_Right_Shoe_DL_mesh_layer_1_mat_override_metal_0[];
extern const Gfx toad_material_revert_render_settings[];

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,11 @@
extern ALIGNED8 const Texture toad_player_texture_spots[];
extern ALIGNED8 const Texture toad_player_texture_hair[];
extern ALIGNED8 const Texture toad_player_texture_blush[];
extern ALIGNED8 const Texture toad_player_texture_eyes_front[];
extern ALIGNED8 const Texture toad_player_texture_eyes_half_closed[];
extern ALIGNED8 const Texture toad_player_texture_eyes_closed[];
extern ALIGNED8 const Texture toad_player_texture_eyes_right[];
extern ALIGNED8 const Texture toad_player_texture_eyes_left[];
extern ALIGNED8 const Texture toad_player_texture_eyes_up[];
extern ALIGNED8 const Texture toad_player_texture_eyes_down[];
extern ALIGNED8 const Texture toad_player_texture_eyes_dead[];

View file

@ -53,7 +53,7 @@ const Gfx tree_seg3_dl_0302FEB8[] = {
// 0x0302FEE8 - 0x0302FF60
const Gfx tree_seg3_dl_0302FEE8[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -628,7 +628,7 @@ const Gfx unagi_seg5_dl_0500DEB8[] = {
gsDPSetFogColor(5, 80, 75, 255),
gsSPFogPosition(900, 1000),
gsSPSetGeometryMode(G_FOG),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_PASS2),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_PASS2),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -683,7 +683,7 @@ const Gfx unagi_seg5_dl_0500E088[] = {
gsDPSetFogColor(5, 80, 75, 255),
gsSPFogPosition(900, 1000),
gsSPSetGeometryMode(G_FOG),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_PASS2),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_PASS2),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -738,7 +738,7 @@ const Gfx unagi_seg5_dl_0500E258[] = {
gsDPSetFogColor(5, 80, 75, 255),
gsSPFogPosition(900, 1000),
gsSPSetGeometryMode(G_FOG),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_PASS2),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_PASS2),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -4997,7 +4997,7 @@ Gfx mat_waluigi_eyes_dead[] = {
Gfx mat_waluigi_wing_2[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPTexture(65535, 65535, 0, 0, 1),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_wing_2_rgba16),
@ -5016,7 +5016,7 @@ Gfx mat_revert_waluigi_wing_2[] = {
Gfx mat_waluigi_wing_1[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPTexture(65535, 65535, 0, 0, 1),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b_LOAD_BLOCK, 1, waluigi_wing_1_rgba16),

View file

@ -214,7 +214,7 @@ const Gfx waluigi_cap_seg3_dl_03022EA8[] = {
// 0x03022ED8 - 0x03022F20
const Gfx waluigi_cap_seg3_dl_03022ED8[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -3885,7 +3885,7 @@ const Gfx wario_right_hand_cap_wings_half_2_dl[] = {
const Gfx wario_right_hand_cap_wings_intial_dl[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -4244,7 +4244,7 @@ const Gfx wario_wings_half_2_dl[] = {
// 0x0401CA00 - 0x0401CAB8
const Gfx wario_cap_wings[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -4298,7 +4298,7 @@ const Gfx wario_cap_wings_transparent[] = {
// 0x0401CB70 - 0x0401CC28
const Gfx wario_metal_cap_wings[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -18,13 +18,14 @@ static const Lights1 wario_cap_seg3_lights_0301CF38 = gdSPDefLights1(
0xff, 0xbd, 0x00, 0x28, 0x28, 0x28
);
#include "actors/mario/mario_externs.h"
#include "actors/mario_cap/mario_cap_externs.h"
#define wario_cap_seg3_texture_0301CF50 mario_cap_seg3_texture_0301CF50
#define wario_cap_seg3_texture_0301E750 mario_cap_seg3_texture_0301E750
#define wario_cap_seg3_texture_0301F750 mario_cap_seg3_texture_0301F750
#define wario_cap_seg3_texture_03020750 mario_cap_seg3_texture_03020750
#define wario_cap_seg3_texture_03021750 mario_cap_seg3_texture_03021750
#define wario_cap_texture_cap_inside mario_cap_texture_cap_inside
#define wario_cap_texture_cap_inside mario_texture_cap_inside
// 0x0301DF50
ALIGNED8 const Texture wario_cap_seg3_texture_0301DF50[] = {
@ -227,7 +228,7 @@ const Gfx wario_cap_seg3_dl_03022EA8[] = {
// 0x03022ED8 - 0x03022F20
const Gfx wario_cap_seg3_dl_03022ED8[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -51,7 +51,7 @@ ALIGNED8 const Texture water_splash_seg4_texture_040315C8[] = {
// 0x040325C8 - 0x04032640
const Gfx water_splash_seg4_dl_040325C8[] = {
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_CLAMP, 6, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
gsDPLoadSync(),

View file

@ -17,7 +17,7 @@ ALIGNED8 const Texture white_particle_texture[] = {
const Gfx white_particle_dl[] = {
gsDPPipeSync(),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsDPLoadTextureBlock(white_particle_texture, G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 16, 0, G_TX_CLAMP, G_TX_CLAMP, 4, 4, G_TX_NOLOD, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsSPVertex(white_particle_vertex, 4, 0),

View file

@ -285,7 +285,7 @@ const Gfx whomp_seg6_dl_0601FB88[] = {
// 0x0601FBC0 - 0x0601FC30
const Gfx whomp_seg6_dl_0601FBC0[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -321,7 +321,7 @@ const Gfx whomp_seg6_dl_0601FC70[] = {
// 0x0601FCA8 - 0x0601FD18
const Gfx whomp_seg6_dl_0601FCA8[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -422,7 +422,7 @@ const Gfx wiggler_seg5_dl_0500C240[] = {
// 0x0500C278 - 0x0500C2F0
const Gfx wiggler_seg5_dl_0500C278[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -541,7 +541,7 @@ const Gfx wiggler_seg5_dl_0500E1A0[] = {
// 0x0500E1D8 - 0x0500E250
const Gfx wiggler_seg5_dl_0500E1D8[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -581,7 +581,7 @@ const Gfx wiggler_seg5_dl_0500E2B0[] = {
// 0x0500E2F8 - 0x0500E368
const Gfx wiggler_seg5_dl_0500E2F8[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -622,7 +622,7 @@ const Gfx wiggler_seg5_dl_0500E3E8[] = {
// 0x0500E430 - 0x0500E4A0
const Gfx wiggler_seg5_dl_0500E430[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -658,7 +658,7 @@ const Gfx wiggler_seg5_dl_0500E4E0[] = {
// 0x0500E518 - 0x0500E588
const Gfx wiggler_seg5_dl_0500E518[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
@ -712,7 +712,7 @@ const Gfx wiggler_seg5_dl_0500E640[] = {
// 0x0500E678 - 0x0500E6F0
const Gfx wiggler_seg5_dl_0500E678[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -26,7 +26,7 @@ const Gfx yellow_sphere_seg6_dl_0601F388[] = {
// 0x0601F3C0 - 0x0601F430
const Gfx yellow_sphere_seg6_dl_0601F3C0[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -2,10 +2,10 @@
// 0x05000000
static const Vtx yellow_sphere_seg5_vertex_05000000[] = {
{{{ -49, -49, 0}, 0, { 0, 992}, {0xb5, 0x20, 0x40, 0xff}}},
{{{ 50, -49, 0}, 0, { 992, 992}, {0xb5, 0x20, 0x40, 0xff}}},
{{{ 50, 50, 0}, 0, { 992, 0}, {0xb5, 0x20, 0x40, 0xff}}},
{{{ -49, 50, 0}, 0, { 0, 0}, {0xb5, 0x20, 0x40, 0xff}}},
{{{ -49, -49, 0}, 0, { 0, 992}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 50, -49, 0}, 0, { 992, 992}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 50, 50, 0}, 0, { 992, 0}, {0xff, 0xff, 0xff, 0xff}}},
{{{ -49, 50, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
};
// 0x05000040
@ -16,7 +16,7 @@ ALIGNED8 const Texture yellow_sphere_seg5_texture_05000040[] = {
// 0x05000840 - 0x05000888
const Gfx yellow_sphere_seg5_dl_05000840[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),

View file

@ -1,7 +0,0 @@
#!/bin/bash
OBJDUMP="mips-linux-gnu-objdump -D -z -bbinary -mmips -EB"
OPTIONS="--start-address=$(($1)) --stop-address=$(($2))"
$OBJDUMP $OPTIONS baserom.jp.z64 > baserom.jp.dump
$OBJDUMP $OPTIONS build/jp/sm64.jp.z64 > sm64.jp.dump
diff baserom.jp.dump sm64.jp.dump | colordiff

View file

@ -1,7 +1,6 @@
import os
from xml.etree.ElementInclude import include
from common import *
from extract_constants import *
import sys
in_filename = 'autogen/lua_constants/built-in.lua'
out_filename = 'src/pc/lua/smlua_constants_autogen.c'
@ -43,28 +42,29 @@ in_files = [
"include/level_commands.h",
"src/audio/external.h",
"src/game/envfx_snow.h",
"src/pc/mods/mod_storage.cpp.h"
"src/pc/mods/mod_storage.h"
]
exclude_constants = {
'*': [ '^MAXCONTROLLERS$', '^AREA_[^T].*', '^AREA_T[HTO]', '^CONT_ERR.*', '^READ_MASK$', '^SIGN_RANGE$', ],
'src/game/obj_behaviors.c': ['^o$'],
"*": [ "^MAXCONTROLLERS$", "^AREA_[^T].*", "^AREA_T[HTO]", "^CONT_ERR.*", "^READ_MASK$", "^SIGN_RANGE$", ],
"src/game/obj_behaviors.c": [ "^o$" ]
}
include_constants = {
'include/geo_commands.h': ['BACKGROUND'],
'include/level_commands.h': [ "WARP_CHECKPOINT", "WARP_NO_CHECKPOINT" ],
'src/audio/external.h': [ "SEQ_PLAYER" ],
'src/pc/mods/mod_storage.cpp.h': [ "MAX_KEYS", "MAX_KEY_VALUE_LENGTH" ]
"include/geo_commands.h": [ "BACKGROUND" ],
"include/level_commands.h": [ "WARP_CHECKPOINT", "WARP_NO_CHECKPOINT" ],
"src/audio/external.h": [ "SEQ_PLAYER", "DS_" ],
"src/pc/mods/mod_storage.h": [ "MAX_KEYS", "MAX_KEY_VALUE_LENGTH" ]
}
pretend_find = [
'SOUND_ARG_LOAD'
"SOUND_ARG_LOAD"
]
############################################################################
seen_constants = []
totalConstants = 0
verbose = len(sys.argv) > 1 and (sys.argv[1] == "-v" or sys.argv[1] == "--verbose")
############################################################################
@ -165,8 +165,8 @@ def process_define(filename, line):
if p.startswith('0x'):
continue
p = re.sub(r'0x[a-fA-F0-9]+', '', p)
if re.search('[a-z]', p) != None and 'VERSION_TEXT' not in line:
if 'gCurrentObject' not in line and 'gNetworkType' not in line:
if re.search('[a-z]', p) != None and "VERSION_TEXT" not in line and "SM64COOPDX" not in line:
if 'gCurrentObject' not in line and verbose:
print('UNRECOGNIZED DEFINE: ' + line)
return None
@ -244,7 +244,7 @@ def build_files(processed_files):
def build_to_c(built_files):
txt = ''
with open(get_path(in_filename), 'r', newline='\n') as f:
with open(get_path(in_filename), 'r') as f:
txt = f.read()
txt += '\n' + built_files
@ -340,7 +340,7 @@ def def_constant(processed_constant):
def build_to_def(processed_files):
s = '-- AUTOGENERATED FOR CODE EDITORS -- \n--- @meta\n--- @diagnostic disable\n\n'
with open(get_path(in_filename), 'r', newline='\n') as f:
with open(get_path(in_filename), 'r') as f:
s += f.read()
s += '\n'
@ -360,15 +360,15 @@ def main():
built_c = build_to_c(built_files)
with open(get_path(out_filename), 'w', newline='\n') as out:
with open(get_path(out_filename), 'w') as out:
out.write(built_c)
doc = doc_files(processed_files)
with open(get_path(out_filename_docs), 'w', newline='\n') as out:
with open(get_path(out_filename_docs), 'w') as out:
out.write(doc)
defs = build_to_def(processed_files)
with open(get_path(out_filename_defs), 'w', newline='\n') as out:
with open(get_path(out_filename_defs), 'w') as out:
out.write(defs)
global totalConstants

View file

@ -57,7 +57,7 @@ in_files = [
"src/game/object_list_processor.h",
"src/game/behavior_actions.h",
"src/game/mario_misc.h",
"src/pc/mods/mod_storage.c.h",
"src/pc/mods/mod_storage.h",
"src/pc/utils/misc.h",
"src/game/level_update.h",
"src/game/area.h",
@ -92,7 +92,7 @@ override_disallowed_functions = {
"src/game/mario_actions_object.c": [ "^[us]32 act_.*" ],
"src/game/mario_actions_stationary.c": [ "^[us]32 act_.*" ],
"src/game/mario_actions_submerged.c": [ "^[us]32 act_.*" ],
"src/game/mario_step.h": [ " stub_mario_step", "transfer_bully_speed" ],
"src/game/mario_step.h": [ " stub_mario_step", "transfer_bully_speed"],
"src/game/mario.h": [ " init_mario" ],
"src/pc/djui/djui_console.h": [ " djui_console_create", "djui_console_message_create" ],
"src/pc/djui/djui_chat_message.h": [ "create_from" ],
@ -296,9 +296,14 @@ manual_index_documentation = """
- [network_send_object](#network_send_object)
- [network_send_to](#network_send_to)
- [network_send](#network_send)
- [djui_hud_render_texture](#djui_hud_render_texture)
- [get_texture_info](#get_texture_info)
- [djui_hud_render_texture](#djui_hud_render_texture)
- [djui_hud_render_texture_tile](#djui_hud_render_texture_tile)
- [djui_hud_render_texture_interpolated](#djui_hud_render_texture_interpolated)
- [djui_hud_render_texture_tile_interpolated](#djui_hud_render_texture_tile_interpolated)
- [smlua_anim_util_register_animation](#smlua_anim_util_register_animation)
- [level_script_parse](#level_script_parse)
- [set_exclamation_box_contents](#set_exclamation_box_contents)
<br />
@ -307,8 +312,6 @@ manual_documentation = """
---
# manually written functions
<br />
## [define_custom_obj_fields](#define_custom_obj_fields)
Defines a custom set of overlapping object fields.
@ -425,32 +428,6 @@ The `reliable` field will ensure that the packet arrives, but should be used spa
<br />
## [djui_hud_render_texture](#djui_hud_render_texture)
Renders a texture to the screen.
### Lua Example
`djui_hud_render_texture(texInfo, x, y, scaleW, scaleH)`
### Parameters
| Field | Type |
| ----- | ---- |
| texInfo | [TextureInfo](structs.md#TextureInfo) |
| x | `number` |
| y | `number` |
| scaleW | `number` |
| scaleH | `number` |
### Returns
- None
### C Prototype
`void djui_hud_render_texture(struct TextureInfo* texInfo, f32 x, f32 y, f32 scaleW, f32 scaleH);`
[:arrow_up_small:](#)
<br />
## [get_texture_info](#get_texture_info)
Retrieves a texture by name.
@ -473,10 +450,68 @@ Retrieves a texture by name.
<br />
## [djui_hud_render_texture_interpolated](#djui_hud_render_texture_interpolated)
## [djui_hud_render_texture](#djui_hud_render_texture)
Renders a texture to the screen.
### Lua Example
`djui_hud_render_texture_interpolated(texInfo, prevX, prevY, prevScaleW, prevScaleH, x, y, scaleW, scaleH)`
`djui_hud_render_texture(texInfo, 0, 0, 1, 1)`
### Parameters
| Field | Type |
| ----- | ---- |
| texInfo | [TextureInfo](structs.md#TextureInfo) |
| x | `number` |
| y | `number` |
| scaleW | `number` |
| scaleH | `number` |
### Returns
- None
### C Prototype
`void djui_hud_render_texture(struct TextureInfo* texInfo, f32 x, f32 y, f32 scaleW, f32 scaleH);`
[:arrow_up_small:](#)
<br />
## [djui_hud_render_texture_tile](#djui_hud_render_texture_tile)
Renders a tile of a texture to the screen.
### Lua Example
`djui_hud_render_texture_tile(texInfo, 0, 0, 1, 1, 0, 0, 16, 16)`
### Parameters
| Field | Type |
| ----- | ---- |
| texInfo | [TextureInfo](structs.md#TextureInfo) |
| x | `number` |
| y | `number` |
| scaleW | `number` |
| scaleH | `number` |
| tileX | `number` |
| tileY | `number` |
| tileW | `number` |
| tileH | `number` |
### Returns
- None
### C Prototype
`void djui_hud_render_texture_tile(struct TextureInfo* texInfo, f32 x, f32 y, f32 scaleW, f32 scaleH, u32 tileX, u32 tileY, u32 tileW, u32 tileH);`
[:arrow_up_small:](#)
<br />
## [djui_hud_render_texture_tile_interpolated](#djui_hud_render_texture_tile_interpolated)
Renders an interpolated tile of a texture to the screen.
### Lua Example
`djui_hud_render_texture_tile_interpolated(texInfo, prevX, prevY, prevScaleW, prevScaleH, 0, 0, 1, 1, 0, 0, 16, 16)`
### Parameters
| Field | Type |
@ -490,12 +525,90 @@ Retrieves a texture by name.
| y | `number` |
| scaleW | `number` |
| scaleH | `number` |
| tileX | `number` |
| tileY | `number` |
| tileW | `number` |
| tileH | `number` |
### Returns
- None
### C Prototype
`void djui_hud_render_texture_interpolated(struct TextureInfo* texInfo, f32 prevX, f32 prevY, f32 prevScaleW, f32 prevScaleH, f32 x, f32 y, f32 scaleW, f32 scaleH);`
`void djui_hud_render_texture_tile_interpolated(struct TextureInfo* texInfo, f32 prevX, f32 prevY, f32 prevScaleW, f32 prevScaleH, f32 x, f32 y, f32 scaleW, f32 scaleH, u32 tileX, u32 tileY, u32 tileW, u32 tileH);`
[:arrow_up_small:](#)
<br />
## [smlua_anim_util_register_animation](#smlua_anim_util_register_animation)
Register a new Lua animation.
### Lua Example
`smlua_anim_util_register_animation("apparition_idle", 0, 189, 0, 0, 0x5A, values, index)`
### Parameters
| Field | Type |
| ----- | ---- |
| name | `string` |
| flags | `integer` |
| animYTransDivisor | `integer` |
| startFrame | `integer` |
| loopStart | `integer` |
| loopEnd | `integer` |
| values | `table` |
| index | `table` |
### Returns
- None
### C Prototype
`void smlua_anim_util_register_animation(const char *name, s16 flags, s16 animYTransDivisor, s16 startFrame, s16 loopStart, s16 loopEnd, s16 *values, u32 valuesLength, u16 *index, u32 indexLength);`
[:arrow_up_small:](#)
<br />
## [level_script_parse](#level_script_parse)
### Lua Example
`level_script_parse(LEVEL_BOB, func)`
Parses a level script and passes area index, behavior data, macro behavior IDs and macro behavior arguments to a function.
### Parameters
| Field | Type |
| ----- | ---- |
| levelNum | `LevelNum` |
| func | `function` |
### Returns
- None
### C Prototype
`void smlua_func_level_script_parse(lua_State* L);`
[:arrow_up_small:](#)
<br />
## [set_exclamation_box_new_contents](#set_exclamation_box_new_contents)
Sets the contents of an exclamation box.
### Lua Example
`set_exclamation_box_new_contents(contents)`
### Parameters
| Field | Type |
| ----- | ---- |
| contents | [ExclamationBoxContents](structs.md#ExclamationBoxContents) |
### Returns
- None
### C Prototype
`void set_exclamation_box_new_contents(struct Struct802C0DF0 contents[], u8 size);`
[:arrow_up_small:](#)
@ -806,8 +919,8 @@ def process_files():
############################################################################
fuzz_from = '/home/djoslin/.local/share/sm64ex-coop/mods/test-fuzz.lua'
fuzz_to = '/home/djoslin/.local/share/sm64ex-coop/mods/test-fuzz.lua'
fuzz_from = ""
fuzz_to = ""
fuzz_functions = ""
def output_fuzz_function(fname, function):

View file

@ -24,7 +24,8 @@ in_files = [
'src/game/hardcoded.h',
'src/pc/mods/mod.h',
'src/pc/lua/utils/smlua_audio_utils.h',
'src/game/paintings.h'
'src/game/paintings.h',
'src/pc/djui/djui_types.h'
]
out_filename_c = 'src/pc/lua/smlua_cobject_autogen.c'
@ -102,7 +103,7 @@ override_field_immutable = {
"SpawnInfo": [ "syncID", "next", "unk18" ],
"CustomLevelInfo": [ "next" ],
"GraphNode": [ "children", "next", "parent", "prev", "type" ],
"GraphNodeObject": [ "angle", "animInfo", "cameraToObject", "node", "pos", "prevAngle", "prevPos", "prevScale", "prevScaleTimestamp", "prevShadowPos", "prevShadowPosTimestamp", "prevThrowMatrix", "prevThrowMatrixTimestamp", "prevTimestamp", "scale", "shadowPos", "sharedChild", "skipInterpolationTimestamp", "throwMatrix", "throwMatrixPrev", "unk4C", ],
"GraphNodeObject": [ "angle", "animInfo", "cameraToObject", "node", "pos", "prevAngle", "prevPos", "prevScale", "prevScaleTimestamp", "prevShadowPos", "prevShadowPosTimestamp", "prevThrowMatrix", "prevThrowMatrixTimestamp", "prevTimestamp", "scale", "shadowPos", "sharedChild", "skipInterpolationTimestamp", "throwMatrixPrev", "unk4C", ],
"ObjectWarpNode": [ "next "],
"Animation": [ "length" ],
"AnimationTable": [ "count" ],
@ -115,7 +116,8 @@ override_field_version_excludes = {
}
override_allowed_structs = {
"src/pc/network/network.h": [ 'ServerSettings' ],
"src/pc/network/network.h": [ 'ServerSettings', 'NametagsSettings' ],
"src/pc/djui/djui_types.h": [ 'DjuiColor' ],
}
sLuaManuallyDefinedStructs = [{
@ -286,8 +288,8 @@ def parse_structs(extracted):
############################################################################
fuzz_from = './autogen/fuzz_template.lua'
fuzz_to = '/home/djoslin/.local/share/sm64ex-coop/mods/test-fuzz.lua'
fuzz_from = ""
fuzz_to = ""
fuzz_structs = ""
fuzz_structs_calls = ""
fuzz_template_str = None

Some files were not shown because too many files have changed in this diff Show more