Compare commits

..

50 Commits

Author SHA1 Message Date
Reonu
8aef4be6f5 2.1.0 Lighting Engine Update
Updated lighting engine to 2.1.0 (latest version as of the 17th of December, 2022)
2022-12-17 14:57:01 +01:00
Reonu
139d028f04 removed leftover debug print 2022-11-29 12:21:59 +01:00
Reonu
2be7e7d4c5 2.1.0 Lighting Engine Update
Updated lighting engine to 2.1.0 (latest version as of 11/28/22)
2022-11-28 23:44:09 +01:00
axollyon
854da9c9b1 2.1.0 Lighting Engine (#495)
Updated lighting engine to 2.1.0 (latest version as of 9/22/22)
2022-09-22 18:07:21 -04:00
Mr-Wiseguy
d05444e034 Merge branch 'master' into base/lighting-engine 2022-06-17 01:14:04 -04:00
Mr-Wiseguy
f3a97f3510 Removed negatives in geolayout light direction 2022-06-12 23:04:17 -04:00
Mr-Wiseguy
3b5fd86225 Fixed directional lights specified in geo layouts 2022-06-12 23:01:13 -04:00
Mr-Wiseguy
5f23b22e22 Fixed typo in lighting engine documentation 2022-06-08 17:17:32 -04:00
Reonu
17d7d32fd3 Fixed level mesh not updating when building (#414) 2022-06-08 13:19:59 -04:00
Reonu
10ff5ba8dc actually fixed snowman for lighting engine 2022-04-10 12:02:35 +03:00
Reonu
5adfaefd79 Actually fixed bully for lighting engine 2022-04-09 11:28:20 +03:00
Mr-Wiseguy
c6d79a82ed Merge branch 'develop/2.1.0-matrix-stack-change' into base/lighting-engine 2022-04-05 19:51:24 -04:00
Mr-Wiseguy
04ebaf034b Fixed clip planes not scaling based on WORLD_SCALE 2022-04-05 19:50:38 -04:00
Mr-Wiseguy
6ebe9a664e Merge branch 'develop/2.1.0-matrix-stack-change' into base/lighting-engine 2022-04-05 17:07:05 -04:00
Mr-Wiseguy
59b423fd93 Fixed handling of WORLD_SCALE in view matrix so it doesn't get cancelled out 2022-04-05 17:03:58 -04:00
Reonu
d976334d61 fix line jump oopsie 2022-03-29 11:38:33 +03:00
Reonu
6d361a88a4 made snowman lighting engine compatible 2022-03-29 11:35:55 +03:00
Reonu
a256a22e38 made bully lighting engine compatible 2022-03-29 11:35:37 +03:00
Mr-Wiseguy
70ff3079c0 Fixed visual debug with new matstack and cleaned up visual debug code 2022-03-27 03:19:21 -04:00
Mr-Wiseguy
9f99848580 Added fixlights script to build system for fixing custom assets and added option to disable it if needed 2022-03-27 00:10:16 -04:00
Mr-Wiseguy
253aeb8074 Removed set light color from breakable box model that broke lighting on it 2022-03-17 12:46:17 -04:00
Mr-Wiseguy
cc91c06d0a Moved setup_global_light to an earlier point in the frame so that behaviors can set light parameters 2022-03-17 12:43:18 -04:00
Mr-Wiseguy
8d7658c8ba Simplified some code in geo_process_camera 2022-02-17 00:22:08 -05:00
Mr-Wiseguy
57e3b1f31b Merged matrix stack changes 2022-02-17 00:15:08 -05:00
Mr-Wiseguy
d09bb4ef25 Removed unnecessary matrix multiplications in geo_process_object 2022-02-16 23:46:29 -05:00
Mr-Wiseguy
2c5bf00235 Removed some accidentally added files 2022-02-16 23:46:29 -05:00
Arceveti
f4a69f3d4a Remove 'construct_float' from 'geo_process_level_of_detail' 2022-02-15 22:40:27 -08:00
Arceveti
aeaca2a880 Fix geo_process_level_of_detail 2022-02-15 21:45:12 -08:00
Arceveti
647599eb1d Fix goddard crash 2022-02-15 21:45:06 -08:00
Mr-Wiseguy
ce31dd4586 Restored vanilla light and env map directions under new matrix stack 2022-02-15 19:44:29 -05:00
Mr-Wiseguy
58d2d3c20f Fixed some areas where the game was previously extracting the camera matrix from various matrices 2022-02-14 22:18:00 -05:00
Mr-Wiseguy
f90ad6d2a8 Fixed shadows with new matrix stack 2022-02-14 21:21:51 -05:00
Mr-Wiseguy
ec21aa7e74 Fixed billboarding with new matrix stack 2022-02-14 21:17:24 -05:00
Mr-Wiseguy
11b3bff9f0 Corrected cameraToObject for the new matrix stack (fixes culling and sound) 2022-02-14 19:14:03 -05:00
Mr-Wiseguy
cc7165c1ea Moved camera matrix into projection stack 2022-02-14 18:15:37 -05:00
Mr-Wiseguy
9b0b1312fd Wrote function for setting up global light direction in the frame 2022-02-14 17:42:18 -05:00
Mr-Wiseguy
9ed1f1a569 Added define guards for the profiler 2022-02-14 17:41:05 -05:00
Mr-Wiseguy
aa04129fd2 Ran script to convert all light commands to lightcolor commands 2022-02-14 17:01:42 -05:00
Mr-Wiseguy
9c645dc642 Changed lingering manual light struct definitions to gdSPDefLights1, made a dummy light for Koopa's pink shorts 2022-02-14 16:56:51 -05:00
Mr-Wiseguy
a7b208e8e8 Added CPU audio to lightweight profiler 2022-01-17 19:23:48 -05:00
Mr-Wiseguy
52600eb453 Added RSP profiling to the lightweight profiler 2022-01-16 23:31:13 -05:00
Mr-Wiseguy
ee5f5adc9d Implemented new lightweight CPU/RDP profiler 2022-01-16 17:18:11 -05:00
Mr-Wiseguy
d5f62fac42 Fixed gbi.h so that F3DZEX_NoN still defines G_POINT_LIGHTING correctly (#315) 2022-01-15 13:32:05 -05:00
Mr-Wiseguy
56be09724d Merge ucode downgrade into lighting engine (#314)
* Fix level enum conflict with 99+ levels (#307)

* Set oDrawingDistance to 4500 for WF breakable walls (#304)

* Downgraded from F3DZEX2.08J to F3DZEX2.08I so that point lighting works on Jabo (#313)

* Downgraded from F3DZEX2.08J to F3DZEX2.08I so that point lighting works on Jabo

* Swapped to MM's rspboot to fix bug caused by MM's F3DZEX2

Co-authored-by: Arceveti <73617174+Arceveti@users.noreply.github.com>
2022-01-15 10:50:30 +00:00
Mr-Wiseguy
3146970844 Merge pending 2.0.2 changes into lighting engine branch #310 2022-01-14 22:32:43 -05:00
Reonu
d7251a268e merge with master 2022-01-12 20:53:00 +00:00
Mr-Wiseguy
2b9f736b20 Fixed crash caused by duplicate geo commands and fixed world scale lighting issues 2022-01-01 18:36:52 -05:00
Reonu
d84bc0633b meme 2022-01-01 22:19:59 +00:00
Reonu
2e0c964646 pain 2022-01-01 22:01:48 +00:00
Reonu
865638eb7f pain 2022-01-01 22:00:34 +00:00
674 changed files with 51346 additions and 63379 deletions

7
.gitignore vendored
View File

@@ -38,9 +38,6 @@
# datadump
/tools/ddump/*
# python cache in tools/
/tools/__pycache__/*
# Text editor remnants
*.swp
.vscode/*
@@ -1354,6 +1351,7 @@ textures/cave/hmc_textures.0A000.rgba16.png
textures/cave/hmc_textures.0A800.rgba16.png
textures/cave/hmc_textures.0B800.ia16.png
textures/cave/hmc_textures.0C000.ia16.png
textures/crash_screen/crash_screen_font.ia1.png
textures/effect/bubble.06048.rgba16.png
textures/effect/flower.00008.rgba16.png
textures/effect/flower.00808.rgba16.png
@@ -2148,6 +2146,3 @@ lib/libs2d_engine.a
# :Zone_Identifier files
*Zone.Identifier
# user-specific config file
include/config/config_local.h

3
.gitmodules vendored
View File

@@ -1,3 +0,0 @@
[submodule "lib/libpl"]
path = lib/libpl
url = https://gitlab.com/parallel-launcher/libpl.git

View File

@@ -26,9 +26,7 @@
"VERSION_US=1",
"F3DEX_GBI_2=1",
"F3DZEX_NON_GBI_2=1",
"F3DEX_GBI_SHARED=1",
"LIBPL=1",
"UNF=1"
"F3DEX_GBI_SHARED=1"
],
"compilerPath": "/usr/bin/mips-linux-gnu-gcc",
"cStandard": "gnu17",

View File

@@ -2,7 +2,9 @@
# Each line is a file pattern followed by one or more owners.
# These owners will be the default owners for everything in the repo.
* @Reonu @gheskett @arthurtilly
* @Reonu
* @thecozies
* @gheskett
# Order is important. The last matching pattern has the most precedence.
# So if a pull request only touches javascript files, only these owners

View File

@@ -1,18 +1,17 @@
FROM ubuntu:22.04 as build
FROM ubuntu:18.04 as build
RUN apt-get update && \
apt-get install -y \
binutils-mips-linux-gnu \
bsdextrautils \
bsdmainutils \
build-essential \
gcc-mips-linux-gnu \
libcapstone-dev \
pkgconf \
python3
RUN mkdir /hackersm64
WORKDIR /hackersm64
ENV PATH="/hackersm64/tools:${PATH}"
RUN mkdir /sm64
WORKDIR /sm64
ENV PATH="/sm64/tools:${PATH}"
CMD echo 'Usage: docker run --rm -v ${PWD}:/hackersm64 hackersm64 make VERSION=us -j4\n' \
'See https://github.com/HackerN64/HackerSM64/blob/master/README.md for more information'
CMD echo 'usage: docker run --rm --mount type=bind,source="$(pwd)",destination=/sm64 sm64 make VERSION=us -j4\n' \
'see https://github.com/n64decomp/sm64/blob/master/README.md for advanced usage'

239
Makefile

File diff suppressed because it is too large Load Diff

View File

@@ -39,8 +39,6 @@ ACTOR_GROUPS := \
LEVEL_FILES := $(addsuffix leveldata,$(LEVEL_DIRS))
LEVEL_ELF_FILES := $(foreach level_dir,$(LEVEL_DIRS),$(BUILD_DIR)/levels/$(level_dir)leveldata.elf)
SEG_FILES := \
$(SEGMENTS:%=$(BUILD_DIR)/bin/%.elf) \
$(ACTOR_GROUPS:%=$(BUILD_DIR)/actors/%.elf) \
@@ -243,11 +241,9 @@ $(BUILD_DIR)/bin/machine.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/mountain.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/grass.elf: SEGMENT_ADDRESS := 0x09000000
# EU segment 19 translations
$(BUILD_DIR)/bin/translation_de.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/translation_en.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/translation_fr.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/translation_jp.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/translation_es.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/eu/translation_de.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/eu/translation_en.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/eu/translation_fr.elf: SEGMENT_ADDRESS := 0x19000000
# --------------------------------------
# Skybox Rules
@@ -264,11 +260,11 @@ $(BUILD_DIR)/bin/%_skybox.elf: SEGMENT_ADDRESS := 0x0A000000
# --------------------------------------
# intro and ipl3 textures are not compressed
INTRO_RAW_FILES := $(wildcard $(TEXTURE_DIR)/intro_raw/*.png)
INTRO_RAW_FILES := $(wildcard $(TEXTURE_DIR)/intro_raw/*.png)
$(BUILD_DIR)/src/goddard/renderer.o: $(addprefix $(BUILD_DIR)/,$(patsubst %.png,%.inc.c,$(INTRO_RAW_FILES)))
IPL3_TEXTURE_FILES := $(wildcard $(TEXTURE_DIR)/ipl3_raw/*.png)
IPL3_RAW_FILES := $(addprefix $(BUILD_DIR)/,$(patsubst %.png,%,$(IPL3_TEXTURE_FILES)))
CRASH_TEXTURE_FILES := $(wildcard $(TEXTURE_DIR)/crash_screen/*.png)
CRASH_TEXTURE_FILES := $(wildcard $(TEXTURE_DIR)/crash_custom/*.png)
CRASH_TEXTURE_C_FILES := $(addprefix $(BUILD_DIR)/,$(patsubst %.png,%.inc.c,$(CRASH_TEXTURE_FILES)))

View File

@@ -17,25 +17,35 @@ This is a fork of the ultrasm64 repo by CrashOveride which includes the followin
- **MrComit**: General use object defines, JUMP_KICK_FIX
- **aglab2**: Bugfixes (particularly puppycam), refactor stuff
- **someone2639**: math.s and crash screen disam, stack trace, map packing, shiftable segments 2, S2DEX engine
- **Arthurtilly**: ASCII / UTF-8 support, Multilang, Platform Displacement 2
- **Arthurtilly**: Platform Displacement 2
- **Fazana**: PuppyLib, ucode swapping, audio load time optimisations (with Arctic), general hacker qol improvements, visual debug
- **Reonu**: Starting the project + widescreen, reonucam, various defines for hacker QoL, and a custom Spanish (Spain) translation of the game.
- **Reonu**: Starting the project/repo, widescreen, reonucam, various defines for hacker QoL
- **JoshDuMan**: Decomp guy, general assistance
- **Arceveti**: Naming unknown symbols, new crash screen, silhouette, shadow optimizations, breath meter, 4 controller support, implementations of rounded corners, slope fix, exposed ceiling fix, other bugfixes
- **Arceveti**: Silhouette, shadow optimisation, better hanging, breath meter
- **axollyon**: Console testing, bugfixes, idea-guying, and had a hand in silhouettes
- **Wiseguy**: World scale reimplementation, silhouette, graph node optimisations, instant input patch, cake screen fix, segmented code support, and various optimizations/fixes
- **Kaze**: Graph node optimisations, automatic optimal collision distance
- **Pyro Jay**: Texture improvements, repo banner art, some QoL stuff
- **CrashOveride**: creating the [ultrasm64](https://github.com/CrashOveride95/ultrasm64) repo
- **falcobuster**: Original coordinate overflow fix (world scale), ASM version of extended bounds, emulator detector
- **falcobuster**: Original coordinate overflow fix (world scale), ASM version of extended bounds
- **anonymous_moose**: porting falco's extended bounds to decomp
- **tuxlovesyou**: `LOAD_MIO0_TEXTURE` macro and moral support
- **devwizard**: the PJ64 pre-v3.0 detection part of the emulator detector
Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
**Lighting Engine by Wiseguy**
- Lighting Engine is available on a separate branch ([base/lighting-engine](https://github.com/Reonu/HackerSM64/tree/base/lighting-engine)). Instructions on how to use it are in the readme of that branch.
- Lighting Engine is NOT finished. It's a WIP. Expect issues and expect it to be somewhat hard to use. Point lights in particular are extremely finnicky.
- In order for lighting engine to work, your materials must have Shade Color in the combiner, **but you have to DISABLE Shade Color in sources**. If you leave Shade Color ticked for even a single material, the lighting will break **for the entire mesh**. Until Fast64 gets some sort of Lighting Engine support, it's recommended you create some custom presets to make this less annoying.
- You can intentionally make a material fullbright by leaving Shade Color out of the combiner for that material. Useful for, say, a lamp.
- Use the function `set_directional_light` to set the directional light for the current area. It takes a `Vec3f` for the direction and three `s32` for the RGB values.
- Use the function `set_ambient_light` to set the ambient light for the current area. It takes three `s32` for the RGB values.
- You can use the function `emit_light` to emit a point light via code. It takes a `Vec3f` for the position, three `s32` for the RGB values and three `u32` for each one of the falloff types. The falloff is basically how strong the light is: the HIGHER the falloff is, the DIMMER the light will be. The three types of falloffs can be stacked, and work like this:
- 2 for constant falloff = the point light is half as bright always.
- 2 for linear falloff = the point light is half as bright when you double the distance
- 2 for quadratic falloff = the point is half as bright when you double the square of the distance
- Important note regarding point lights: They are affected by WORLD_SCALE, which is set based on your extended bounds mode. Esentially, at 2x bounds lights will be twice as bright as in 1x bounds, and with 4x bounds they will be twice as bright as that. This can be dealt with simply by using high falloffs, but it can be annoying if you decide to change the extended bounds mode mid-development.
- You can also make an object emit light by using the `OBJ_FLAG_EMIT_LIGHT` object flag, as well as `SET_LIGHT_COLOR` and `SET_LIGHT_FALLOFF` in the script.
**Puppycam**
- Puppycam is available on the master branch now, you can toggle it in `config/config_camera.h`. *
@@ -82,14 +92,14 @@ Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
- Many general use defines for object struct members, meant for use in custom object behaviors. Check `include/object_fields.h` for more info on this. (By MrComit)
- Included `actors/group0.c` in `behavior_data.c`
- The internal ROM name is now set with a define in `config/config_rom.h` to make it simpler
- There is a `gEmulator` variable to detect console or specific emulators and emulator versions
- There is a `gIsConsole` variable that is 1 when running on console and 0 when running on emulator. This way you can wrap your code in a console check.
- Expanded audio heap allows for a larger concurrent note count and the importing of more m64 sequences and sound banks (By ArcticJaguar725) *
- You can set a test level in `config/config_debug.h` in order to boot straight into it, so you can quickly test the level you're working on. *
- Allow all surfaces in the game to have a `force` parameter. Activating this doesn't REQUIRE you to set `force` for every surface: If you don't set, it will default to 0x0000 rather than crashing. Increases RAM usage of collision. *
- The clown font includes the entire English alphabet.
- Colored ia4 text support. Format: `"@XXXXXX[YOUR TEXT]@--------"` (By Arthurtilly)
- Example Text: `"@FF0000RED @00FF00GREEN @0000FFBLUE @FFFFFFWHITE"`
- NOTE: Text will need to be recolored each time it scrolls in a dialog box, or the custom color will reset. The text will use gDialogTextAlpha as the alpha value when changing the color.
- Colored ia4 text support. Format: `"@XXXXXXXX[YOUR TEXT]@--------"` (By ArcticJaguar725)
- Example Text: `"@FF0000FFRED @00FF00FFGREEN @0000FFFFBLUE @FFFFFF00INVISIBLE @--------NORMAL"`
- NOTE: It is not mandatory to reset the text color with `"@--------"`, but text will need to be recolored each time it scrolls in a dialog box, or the custom color will reset.
- Toggle visiblity of collision surfaces and object hitboxes with Visual Surface Debug. `config/config_debug.h` has VISUAL_DEBUG which can be turned on to enable this feature.
- Workaround for infinite death loops caused by using the wrong warp type for death warps. Mario's HP will be restored when being warped to any warp if (and only if) he was warped while dead. *
@@ -105,7 +115,7 @@ Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
**Neat Misc. Changes:**
- Instant Input patch by Wiseguy (Removes all input lag caused by plugins supporting framebuffer)
- This means that you'll have to do your framebuffer effects on buffer 0 for emulator, but NOT for console. You can use the `gEmulator` variable to check for console when doing your framebuffer effects.
- This means that you'll have to do your framebuffer effects on buffer 0 for emulator, but NOT for console. You can use the `gIsConsole` variable to check for console when doing your framebuffer effects.
- Widescreen (16:9) support toggleable by pressing `L` in the pause menu. *
- S2DEX engine by someone2639! To use it, compile with `make TEXT_ENGINE=s2dex_text_engine` or just set `TEXT_ENGINE` to `s2dex_text_engine` in the makefile.
- ia8 (64x64) coins, the vanilla coin texture is upgraded to accomodate. *
@@ -121,7 +131,7 @@ Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
- Use `render_multi_image` to draw large texture rectangles consisting of multiple images on the screen.
- More info in `puppyprint.c`
- Wiseguy's Farcall TLB mapping allows to store executable code inside uncompressed segments, that can be loaded and ran as needed, instead of it having to be loaded at all times. See `farcall.h` in the include folder for instructions and details.
- Red Coin Stars now support up to 99 red coins! In addition, multi-area red coin missions can now be created by setting the 2nd behavior paramater of the red coin star to the number of reds required for the star to spawn.
# UltraSM64
- This repo contains a full decompilation of Super Mario 64 (J), (U), (E), and (SH).
@@ -135,7 +145,7 @@ Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
- It has been patched with someone2639's shiftable segments patch
- Wiseguy's instant input patch has been added to allow for less input lag on emulation (Does not affect console)
This does mean that any framebuffer effects will have to be done on buffer 0 if targeting emulators
- Automatic console and emulator detection: Use the `gEmulator` variable to wrap your code in an emulator check.
- Automatic console and emulator detection: Use the `gIsConsole` variable to wrap your code in an emulator check.
- Separate defines for emulator and console black border height.
- Getting HVQM FMV support to work with the game is WIP.

View File

@@ -1 +1 @@
v2.3.0
v2.0.8

View File

@@ -44,8 +44,6 @@ static const Vtx breakable_box_seg8_vertex[] = {
// 0x08012C30 - 0x08012CD8
const Gfx breakable_box_seg8_sub_dl_end[] = {
gsSPLightColor(LIGHT_1, 0xffffffff),
gsSPLightColor(LIGHT_2, 0x3f3f3fff),
gsSPVertex(breakable_box_seg8_vertex, 26, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0),

View File

@@ -44,8 +44,7 @@ const Gfx bully_seg5_dl_050002E0[] = {
// 0x05000398 - 0x05000408
const Gfx bully_seg5_dl_05000398[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGB, G_CC_DECALRGB),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetCombineMode(G_CC_MODULATEI, G_CC_MODULATEI),
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),
gsDPTileSync(),
@@ -55,7 +54,6 @@ const Gfx bully_seg5_dl_05000398[] = {
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_LIGHTING),
gsSPEndDisplayList(),
};
@@ -296,9 +294,10 @@ static const Vtx bully_seg5_vertex_05003608[] = {
// 0x05003708 - 0x050037A0
const Gfx bully_seg5_dl_05003708[] = {
gsSPLightColor(LIGHT_1, 0xe300ff),
gsSPLightColor(LIGHT_2, 0x3800ff),
gsSPVertex(bully_seg5_vertex_05002C68, 14, 0),
gsDPPipeSync(),
gsDPSetPrimColor(0, 0, 0, 227, 00, 255),
gsDPSetCombineLERP(PRIMITIVE, 0, SHADE, 0, 0, 0, 0, 1, PRIMITIVE, 0, SHADE, 0, 0, 0, 0, 1),
gsSP2Triangles( 0, 1, 2, 0x0, 2, 1, 3, 0x0),
gsSP2Triangles( 2, 3, 4, 0x0, 1, 5, 6, 0x0),
gsSP2Triangles( 1, 6, 7, 0x0, 0, 5, 1, 0x0),
@@ -312,8 +311,6 @@ const Gfx bully_seg5_dl_05003708[] = {
// 0x050037A0 - 0x05003838
const Gfx bully_seg5_dl_050037A0[] = {
gsSPLightColor(LIGHT_1, 0xff00ff),
gsSPLightColor(LIGHT_2, 0x3f00ff),
gsSPVertex(bully_seg5_vertex_05002D88, 14, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0),
gsSP2Triangles( 3, 1, 0, 0x0, 5, 6, 7, 0x0),
@@ -328,8 +325,6 @@ const Gfx bully_seg5_dl_050037A0[] = {
// 0x05003878 - 0x05003C50
const Gfx bully_seg5_dl_05003878[] = {
gsSPLightColor(LIGHT_1, 0xff),
gsSPLightColor(LIGHT_2, 0xff),
gsSPVertex(bully_seg5_vertex_05002F08, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 1, 0, 3, 0x0),
gsSP2Triangles( 1, 3, 4, 0x0, 4, 3, 5, 0x0),
@@ -436,8 +431,7 @@ const Gfx bully_seg5_dl_05003D08[] = {
// 0x05003D40 - 0x05003DB8
const Gfx bully_seg5_dl_05003D40[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
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),
gsDPTileSync(),
@@ -448,7 +442,6 @@ const Gfx bully_seg5_dl_05003D40[] = {
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_LIGHTING),
gsSPEndDisplayList(),
};
@@ -491,8 +484,7 @@ const Gfx bully_seg5_dl_05003E70[] = {
// 0x05003EA8 - 0x05003F20
const Gfx bully_seg5_dl_05003EA8[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
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),
gsDPTileSync(),
@@ -503,7 +495,6 @@ const Gfx bully_seg5_dl_05003EA8[] = {
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_LIGHTING),
gsSPEndDisplayList(),
};
@@ -531,8 +522,7 @@ const Gfx bully_seg5_dl_05003F80[] = {
// 0x05003FC8 - 0x05004038
const Gfx bully_seg5_dl_05003FC8[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA),
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),
gsDPTileSync(),
@@ -542,6 +532,5 @@ const Gfx bully_seg5_dl_05003FC8[] = {
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPSetGeometryMode(G_LIGHTING),
gsSPEndDisplayList(),
};

View File

@@ -155,8 +155,10 @@ static const Vtx goomba_seg8_vertex_0801B238[] = {
// 0x0801B2E8 - 0x0801B560
const Gfx goomba_seg8_dl_0801B2E8[] = {
gsSPLightColor(LIGHT_1, 0xffffffff),
gsSPLightColor(LIGHT_2, 0x7f7f7fff),
// gsSPLight(&goomba_seg8_lights_0801AD30.l, 1),
// gsSPLight(&goomba_seg8_lights_0801AD30.a, 2),
gsDPPipeSync(),
gsDPSetEnvColor(0xFF, 0xFF, 0xFF, 0xFF),
gsSPVertex(goomba_seg8_vertex_0801AD48, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP2Triangles( 6, 5, 4, 0x0, 5, 7, 3, 0x0),
@@ -220,7 +222,7 @@ const Gfx goomba_seg8_dl_0801B5A0[] = {
gsSPDisplayList(goomba_seg8_dl_0801B2E8),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsDPSetCombineLERP(ENVIRONMENT, 0, SHADE, 0, 0, 0, 0, SHADE, ENVIRONMENT, 0, SHADE, 0, 0, 0, 0, SHADE),
gsSPEndDisplayList(),
};
@@ -262,10 +264,10 @@ const Gfx floomba_seg8_dl_blink[] = {
// 0x0801B618
static const Vtx goomba_seg8_vertex_0801B618[] = {
{{{ 18, 18, 0}, 0, { 990, 0}, {0xff, 0xff, 0xff, 0xff}}},
{{{ -18, 18, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
{{{ -18, -18, 0}, 0, { 0, 990}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 18, -18, 0}, 0, { 990, 990}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 18, 18, 0}, 0, { 990, 0}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ -18, 18, 0}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ -18, -18, 0}, 0, { 0, 990}, {0x00, 0x00, 0x7f, 0xff}}},
{{{ 18, -18, 0}, 0, { 990, 990}, {0x00, 0x00, 0x7f, 0xff}}},
};
// 0x0801B658 - 0x0801B690
@@ -281,8 +283,8 @@ const Gfx goomba_seg8_dl_0801B658[] = {
// 0x0801B690 - 0x0801B700
const Gfx goomba_seg8_dl_0801B690[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetCombineMode(G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA),
// 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),
gsDPTileSync(),
@@ -291,7 +293,7 @@ const Gfx goomba_seg8_dl_0801B690[] = {
gsSPDisplayList(goomba_seg8_dl_0801B658),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsDPSetCombineLERP(ENVIRONMENT, 0, SHADE, 0, 0, 0, 0, SHADE, ENVIRONMENT, 0, SHADE, 0, 0, 0, 0, SHADE),
gsSPSetGeometryMode(G_LIGHTING),
gsSPEndDisplayList(),
};
@@ -772,8 +774,10 @@ static const Vtx goomba_seg8_vertex_0801CDF0[] = {
// 0x0801CE20 - 0x0801CF78
const Gfx goomba_seg8_dl_0801CE20[] = {
gsSPLightColor(LIGHT_1, 0x542e10ff),
gsSPLightColor(LIGHT_2, 0x150b04ff),
// gsSPLight(&goomba_seg8_lights_080194D0.l, 1),
// gsSPLight(&goomba_seg8_lights_080194D0.a, 2),
gsDPPipeSync(),
gsDPSetEnvColor(0x54, 0x2e, 0x10, 0xFF),
gsSPVertex(goomba_seg8_vertex_0801B700, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
@@ -801,8 +805,10 @@ const Gfx goomba_seg8_dl_0801CE20[] = {
// 0x0801CF78 - 0x0801D0D0
const Gfx goomba_seg8_dl_0801CF78[] = {
gsSPLightColor(LIGHT_1, 0x613413ff),
gsSPLightColor(LIGHT_2, 0x180d04ff),
// gsSPLight(&goomba_seg8_lights_080194E8.l, 1),
// gsSPLight(&goomba_seg8_lights_080194E8.a, 2),
gsDPPipeSync(),
gsDPSetEnvColor(0x61, 0x34, 0x13, 0xFF),
gsSPVertex(goomba_seg8_vertex_0801BA50, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSP2Triangles( 1, 4, 5, 0x0, 1, 5, 2, 0x0),
@@ -830,8 +836,10 @@ const Gfx goomba_seg8_dl_0801CF78[] = {
// 0x0801D0D0 - 0x0801D360
const Gfx goomba_seg8_dl_0801D0D0[] = {
gsSPLightColor(LIGHT_1, 0x774220ff),
gsSPLightColor(LIGHT_2, 0x1d1008ff),
// gsSPLight(&goomba_seg8_lights_08019500.l, 1),
// gsSPLight(&goomba_seg8_lights_08019500.a, 2),
gsDPPipeSync(),
gsDPSetEnvColor(0x77, 0x42, 0x20, 0xFF),
gsSPVertex(goomba_seg8_vertex_0801BDC0, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
@@ -882,8 +890,10 @@ const Gfx goomba_seg8_dl_0801D0D0[] = {
// 0x0801D360 - 0x0801D760
const Gfx goomba_seg8_dl_0801D360[] = {
gsSPLightColor(LIGHT_1, 0xdeb44eff),
gsSPLightColor(LIGHT_2, 0x372d13ff),
// gsSPLight(&goomba_seg8_lights_08019518.l, 1),
// gsSPLight(&goomba_seg8_lights_08019518.a, 2),
gsDPPipeSync(),
gsDPSetEnvColor(0xde, 0xb4, 0x4e, 0xFF),
gsSPVertex(goomba_seg8_vertex_0801C620, 16, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSP2Triangles( 4, 5, 1, 0x0, 4, 1, 0, 0x0),
@@ -957,6 +967,6 @@ const Gfx goomba_seg8_dl_0801D360[] = {
// 0x0801D760 - 0x0801D770
const Gfx goomba_seg8_dl_0801D760[] = {
gsSPNumLights(NUMLIGHTS_1),
// gsSPNumLights(NUMLIGHTS_1),
gsSPEndDisplayList(),
};

View File

@@ -27,6 +27,7 @@
#include "sparkle_animation/model.inc.c"
#ifdef S2DEX_TEXT_ENGINE
#include "src/s2d_engine/s2d_config.h"
#include "src/s2d_engine/config.h"
#include FONT_C_FILE
#endif
#include "lantern/model.inc.c"

View File

@@ -331,4 +331,8 @@ extern const Gfx white_particle_small_dl_end[];
extern const Gfx white_particle_small_dl[];
extern const Gfx white_particle_small_unused_dl[];
#include "mario/geo_header.h"
#include "lantern/geo_header.h"
#endif

View File

@@ -16,3 +16,5 @@
#include "water_splash/geo.inc.c"
#include "sparkle_animation/geo.inc.c"
#include "mario/geo.inc.c"
#include "lantern/geo.inc.c"

13
actors/lantern/geo.inc.c Normal file
View File

@@ -0,0 +1,13 @@
#include "src/game/envfx_snow.h"
const GeoLayout lantern_geo[] = {
GEO_NODE_START(),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OPAQUE, lantern_Lantern_mesh),
GEO_BILLBOARD_WITH_PARAMS_AND_DL(LAYER_TRANSPARENT, 0, 0, 0, lantern_Flame_mesh),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, lantern_Glass_mesh),
GEO_DISPLAY_LIST(LAYER_OPAQUE, lantern_material_revert_render_settings),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, lantern_material_revert_render_settings),
GEO_CLOSE_NODE(),
GEO_END(),
};

View File

@@ -0,0 +1,19 @@
extern const GeoLayout lantern_geo[];
extern Vtx lantern_Lantern_mesh_vtx_0[20];
extern Gfx lantern_Lantern_mesh_tri_0[];
extern Vtx lantern_Lantern_mesh_vtx_1[6];
extern Gfx lantern_Lantern_mesh_tri_1[];
extern Vtx lantern_Lantern_mesh_vtx_2[18];
extern Gfx lantern_Lantern_mesh_tri_2[];
extern Vtx lantern_Lantern_mesh_vtx_3[16];
extern Gfx lantern_Lantern_mesh_tri_3[];
extern Vtx lantern_Flame_mesh_vtx_0[3];
extern Gfx lantern_Flame_mesh_tri_0[];
extern Vtx lantern_Glass_mesh_vtx_0[13];
extern Gfx lantern_Glass_mesh_tri_0[];
extern Gfx lantern_Lantern_mesh[];
extern Gfx lantern_Flame_mesh[];
extern Gfx lantern_Glass_mesh[];
extern Gfx lantern_material_revert_render_settings[];

359
actors/lantern/model.inc.c Normal file
View File

@@ -0,0 +1,359 @@
Gfx lantern_sm64lanternfire_i8_aligner[] = {gsSPEndDisplayList()};
u8 lantern_sm64lanternfire_i8[] = {
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x2, 0x6, 0x2, 0x4, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x1, 0x4, 0x18, 0xC, 0x8, 0x7, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x8,
0x19, 0x2F, 0x3B, 0xE, 0xB, 0x5, 0x1, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0xC, 0x3, 0x23, 0x43, 0x2E,
0x4D, 0x33, 0x10, 0x15, 0x4, 0x1, 0x0, 0x0, 0x0,
0x0, 0x1, 0x1E, 0x11, 0x31, 0x67, 0x5F, 0x5F, 0x4E,
0x1D, 0x33, 0x18, 0x2, 0x0, 0x0, 0x0, 0x1, 0xD,
0xF, 0x36, 0x50, 0x72, 0x72, 0x64, 0x5B, 0x55, 0x5B,
0x18, 0x5, 0x1, 0x0, 0x0, 0x2, 0x21, 0x2A, 0x5C,
0x7E, 0x7D, 0x8C, 0x7F, 0x65, 0x62, 0x44, 0x3B, 0x18,
0x4, 0x0, 0x0, 0x13, 0x39, 0x38, 0x70, 0x87, 0x8C,
0x9F, 0x9C, 0x85, 0x96, 0x6A, 0x4A, 0x2F, 0x3, 0x0,
0x0, 0x20, 0x44, 0x5C, 0xA4, 0xA4, 0x99, 0xB3, 0xBE,
0xC3, 0x7E, 0xA6, 0x92, 0x3F, 0x4, 0x0, 0x0, 0x3,
0x6E, 0x98, 0xB3, 0xD7, 0xAD, 0xBD, 0xCA, 0xE5, 0xCE,
0xAD, 0x8A, 0x68, 0xA, 0x0, 0x0, 0x1A, 0x7A, 0x9B,
0xE1, 0xE3, 0xDD, 0xE0, 0xED, 0xF5, 0xE7, 0xD1, 0xD2,
0x83, 0x12, 0x0, 0x0, 0xE, 0x73, 0xC0, 0xF4, 0xF2,
0xFD, 0xFA, 0xFB, 0xFB, 0xF1, 0xD5, 0xAE, 0x87, 0x6,
0x0, 0x0, 0x2, 0x31, 0x92, 0xD9, 0xF5, 0xFF, 0xFF,
0xFE, 0xFB, 0xE0, 0xB6, 0xA9, 0x2A, 0x0, 0x0, 0x0,
0x0, 0x0, 0x21, 0x4C, 0x72, 0x99, 0x9F, 0xA1, 0x8B,
0x66, 0x4F, 0x16, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0,
};
Vtx lantern_Lantern_mesh_vtx_cull[8] = {
{{{-61, -75, -42},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
{{{-61, -75, 26},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
{{{-61, 58, 26},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
{{{-61, 58, -42},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
{{{61, -75, -42},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
{{{61, -75, 26},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
{{{61, 58, 26},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
{{{61, 58, -42},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
};
Vtx lantern_Lantern_mesh_vtx_0[20] = {
{{{36, -75, 21},0, {-16, 1008},{0x0, 0x71, 0x3A, 0xFF}}},
{{{0, -10, 0},0, {-16, 1008},{0x0, 0x71, 0x3A, 0xFF}}},
{{{-36, -75, 21},0, {-16, 1008},{0x0, 0x71, 0x3A, 0xFF}}},
{{{0, -75, -42},0, {-16, 1008},{0x32, 0x71, 0xE3, 0xFF}}},
{{{0, -10, 0},0, {-16, 1008},{0x32, 0x71, 0xE3, 0xFF}}},
{{{36, -75, 21},0, {-16, 1008},{0x32, 0x71, 0xE3, 0xFF}}},
{{{-36, -75, 21},0, {-16, 1008},{0xCE, 0x71, 0xE3, 0xFF}}},
{{{0, -10, 0},0, {-16, 1008},{0xCE, 0x71, 0xE3, 0xFF}}},
{{{0, -75, -42},0, {-16, 1008},{0xCE, 0x71, 0xE3, 0xFF}}},
{{{-31, -24, 18},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}},
{{{31, -24, 18},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}},
{{{0, -24, -36},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}},
{{{0, -73, 0},0, {832, 832},{0x73, 0x36, 0x0, 0xFF}}},
{{{-40, 11, -12},0, {160, 832},{0x7A, 0xDD, 0x0, 0xFF}}},
{{{-40, 11, 12},0, {160, 832},{0x7A, 0xDD, 0x0, 0xFF}}},
{{{0, 37, 10},0, {160, 160},{0x0, 0x81, 0x0, 0xFF}}},
{{{0, 37, -10},0, {160, 160},{0x0, 0x81, 0x0, 0xFF}}},
{{{40, 11, 12},0, {832, 160},{0x86, 0xDD, 0x0, 0xFF}}},
{{{40, 11, -12},0, {832, 160},{0x86, 0xDD, 0x0, 0xFF}}},
{{{0, -73, 0},0, {832, 832},{0x8D, 0x36, 0x0, 0xFF}}},
};
Gfx lantern_Lantern_mesh_tri_0[] = {
gsSPVertex(lantern_Lantern_mesh_vtx_0 + 0, 20, 0),
gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
gsSP2Triangles(6, 7, 8, 0, 9, 10, 11, 0),
gsSP2Triangles(12, 13, 14, 0, 13, 15, 14, 0),
gsSP2Triangles(13, 16, 15, 0, 16, 17, 15, 0),
gsSP2Triangles(16, 18, 17, 0, 18, 19, 17, 0),
gsSPEndDisplayList(),
};Vtx lantern_Lantern_mesh_vtx_1[6] = {
{{{0, -75, -42},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}},
{{{-36, -75, 21},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}},
{{{36, -75, 21},0, {-16, 1008},{0x0, 0x7F, 0x0, 0xFF}}},
{{{-7, -44, 26},0, {-16, 1008},{0x0, 0xBF, 0x93, 0xFF}}},
{{{0, -33, 19},0, {-16, 1008},{0x0, 0xBF, 0x93, 0xFF}}},
{{{7, -44, 26},0, {-16, 1008},{0x0, 0xBF, 0x93, 0xFF}}},
};
Gfx lantern_Lantern_mesh_tri_1[] = {
gsSPVertex(lantern_Lantern_mesh_vtx_1 + 0, 6, 0),
gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
gsSPEndDisplayList(),
};Vtx lantern_Lantern_mesh_vtx_2[18] = {
{{{0, -73, 0},0, {-16, 1008},{0x0, 0x73, 0xCA, 0xFF}}},
{{{-31, -24, 18},0, {-16, 1008},{0x0, 0x73, 0xCA, 0xFF}}},
{{{31, -24, 18},0, {-16, 1008},{0x0, 0x73, 0xCA, 0xFF}}},
{{{0, -73, 0},0, {-16, 1008},{0x99, 0x2C, 0x3C, 0xFF}}},
{{{31, -24, 18},0, {-16, 1008},{0x99, 0x2C, 0x3C, 0xFF}}},
{{{0, -24, -36},0, {-16, 1008},{0x99, 0x2C, 0x3C, 0xFF}}},
{{{0, -73, 0},0, {-16, 1008},{0x67, 0x2C, 0x3C, 0xFF}}},
{{{0, -24, -36},0, {-16, 1008},{0x67, 0x2C, 0x3C, 0xFF}}},
{{{-31, -24, 18},0, {-16, 1008},{0x67, 0x2C, 0x3C, 0xFF}}},
{{{-7, -44, 26},0, {-16, 1008},{0x0, 0x54, 0xA1, 0xFF}}},
{{{7, -44, 26},0, {-16, 1008},{0x0, 0x54, 0xA1, 0xFF}}},
{{{0, -73, 0},0, {-16, 1008},{0x0, 0x54, 0xA1, 0xFF}}},
{{{7, -44, 26},0, {-16, 1008},{0x98, 0xE0, 0x41, 0xFF}}},
{{{0, -33, 19},0, {-16, 1008},{0x98, 0xE0, 0x41, 0xFF}}},
{{{0, -73, 0},0, {-16, 1008},{0x98, 0xE0, 0x41, 0xFF}}},
{{{0, -33, 19},0, {-16, 1008},{0x68, 0xE0, 0x41, 0xFF}}},
{{{-7, -44, 26},0, {-16, 1008},{0x68, 0xE0, 0x41, 0xFF}}},
{{{0, -73, 0},0, {-16, 1008},{0x68, 0xE0, 0x41, 0xFF}}},
};
Gfx lantern_Lantern_mesh_tri_2[] = {
gsSPVertex(lantern_Lantern_mesh_vtx_2 + 0, 18, 0),
gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
gsSP2Triangles(6, 7, 8, 0, 9, 10, 11, 0),
gsSP2Triangles(12, 13, 14, 0, 15, 16, 17, 0),
gsSPEndDisplayList(),
};Vtx lantern_Lantern_mesh_vtx_3[16] = {
{{{0, -73, 0},0, {1008, 1008},{0x3B, 0x2B, 0x68, 0xFF}}},
{{{-40, 11, -12},0, {160, 832},{0x39, 0xF3, 0x71, 0xFF}}},
{{{-61, 11, 0},0, {-16, 1008},{0x39, 0xF7, 0x71, 0xFF}}},
{{{0, 58, 0},0, {-16, -16},{0x0, 0xBD, 0x6C, 0xFF}}},
{{{0, 37, -10},0, {160, 160},{0x0, 0xBD, 0x6C, 0xFF}}},
{{{61, 11, 0},0, {1008, -16},{0xC7, 0xF7, 0x71, 0xFF}}},
{{{40, 11, -12},0, {832, 160},{0xC7, 0xF3, 0x71, 0xFF}}},
{{{0, -73, 0},0, {832, 832},{0xC5, 0x2B, 0x68, 0xFF}}},
{{{0, -73, 0},0, {832, 832},{0x3B, 0x2B, 0x98, 0xFF}}},
{{{-61, 11, 0},0, {-16, 1008},{0x39, 0xF6, 0x8F, 0xFF}}},
{{{-40, 11, 12},0, {160, 832},{0x39, 0xF3, 0x8F, 0xFF}}},
{{{0, 58, 0},0, {-16, -16},{0x0, 0xBD, 0x94, 0xFF}}},
{{{0, 37, 10},0, {160, 160},{0x0, 0xBD, 0x94, 0xFF}}},
{{{61, 11, 0},0, {1008, -16},{0xC7, 0xF6, 0x8F, 0xFF}}},
{{{40, 11, 12},0, {832, 160},{0xC7, 0xF3, 0x8F, 0xFF}}},
{{{0, -73, 0},0, {1008, 1008},{0xC5, 0x2B, 0x98, 0xFF}}},
};
Gfx lantern_Lantern_mesh_tri_3[] = {
gsSPVertex(lantern_Lantern_mesh_vtx_3 + 0, 16, 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(8, 9, 10, 0, 10, 9, 11, 0),
gsSP2Triangles(10, 11, 12, 0, 12, 11, 13, 0),
gsSP2Triangles(12, 13, 14, 0, 14, 13, 15, 0),
gsSPEndDisplayList(),
};
Vtx lantern_Flame_mesh_vtx_cull[8] = {
{{{-24, -16, 0},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
{{{-24, -16, 0},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
{{{-24, 46, 0},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
{{{-24, 46, 0},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
{{{24, -16, 0},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
{{{24, -16, 0},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
{{{24, 46, 0},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
{{{24, 46, 0},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
};
Vtx lantern_Flame_mesh_vtx_0[3] = {
{{{-24, -16, 0},0, {-172, 495},{0x0, 0x0, 0x7F, 0xFF}}},
{{{24, -16, 0},0, {639, 495},{0x0, 0x0, 0x7F, 0xFF}}},
{{{0, 46, 0},0, {238, -104},{0x0, 0x0, 0x7F, 0xFF}}},
};
Gfx lantern_Flame_mesh_tri_0[] = {
gsSPVertex(lantern_Flame_mesh_vtx_0 + 0, 3, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSPEndDisplayList(),
};
Vtx lantern_Glass_mesh_vtx_cull[8] = {
{{{-25, -35, -25},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
{{{-25, -35, 25},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
{{{-25, 44, 25},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
{{{-25, 44, -25},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
{{{25, -35, -25},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
{{{25, -35, 25},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
{{{25, 44, 25},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
{{{25, 44, -25},0, {-16, -16},{0x0, 0x0, 0x0, 0xFF}}},
};
Vtx lantern_Glass_mesh_vtx_0[13] = {
{{{-25, -5, 25},0, {453, 1008},{0x59, 0xC, 0xA7, 0xFF}}},
{{{-25, -5, -25},0, {453, 752},{0x59, 0xC, 0x59, 0xFF}}},
{{{0, 44, 0},0, {624, 752},{0x0, 0x81, 0x0, 0xFF}}},
{{{0, -35, 0},0, {368, 1008},{0x0, 0x7F, 0x0, 0xFF}}},
{{{25, -5, -25},0, {453, 496},{0xA7, 0xC, 0x59, 0xFF}}},
{{{0, 44, 0},0, {624, 496},{0x0, 0x81, 0x0, 0xFF}}},
{{{0, -35, 0},0, {368, 752},{0x0, 0x7F, 0x0, 0xFF}}},
{{{25, -5, 25},0, {453, 240},{0xA7, 0xC, 0xA7, 0xFF}}},
{{{0, 44, 0},0, {624, 240},{0x0, 0x81, 0x0, 0xFF}}},
{{{0, -35, 0},0, {368, 496},{0x0, 0x7F, 0x0, 0xFF}}},
{{{-25, -5, 25},0, {453, -16},{0x59, 0xC, 0xA7, 0xFF}}},
{{{0, 44, 0},0, {624, -16},{0x0, 0x81, 0x0, 0xFF}}},
{{{0, -35, 0},0, {368, 240},{0x0, 0x7F, 0x0, 0xFF}}},
};
Gfx lantern_Glass_mesh_tri_0[] = {
gsSPVertex(lantern_Glass_mesh_vtx_0 + 0, 13, 0),
gsSP2Triangles(0, 1, 2, 0, 3, 1, 0, 0),
gsSP2Triangles(1, 4, 5, 0, 6, 4, 1, 0),
gsSP2Triangles(4, 7, 8, 0, 9, 7, 4, 0),
gsSP2Triangles(7, 10, 11, 0, 12, 10, 7, 0),
gsSPEndDisplayList(),
};
Gfx mat_lantern_base_f3d[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(SHADE, 0, ENVIRONMENT, 0, 0, 0, 0, 1, SHADE, 0, ENVIRONMENT, 0, 0, 0, 0, 1),
gsSPTexture(65535, 65535, 0, 0, 1),
gsDPSetEnvColor(112, 43, 44, 255),
gsSPEndDisplayList(),
};
Gfx mat_lantern_black_f3d[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(SHADE, 0, ENVIRONMENT, 0, 0, 0, 0, ENVIRONMENT, SHADE, 0, ENVIRONMENT, 0, 0, 0, 0, ENVIRONMENT),
gsSPSetGeometryMode(G_CULL_FRONT),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPTexture(65535, 65535, 0, 0, 1),
gsDPSetEnvColor(47, 47, 47, 255),
gsSPEndDisplayList(),
};
Gfx mat_revert_lantern_black_f3d[] = {
gsDPPipeSync(),
gsSPClearGeometryMode(G_CULL_FRONT),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPEndDisplayList(),
};
Gfx mat_lantern_grey_f3d[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(SHADE, 0, ENVIRONMENT, 0, 0, 0, 0, ENVIRONMENT, SHADE, 0, ENVIRONMENT, 0, 0, 0, 0, ENVIRONMENT),
gsSPSetGeometryMode(G_CULL_FRONT),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPTexture(65535, 65535, 0, 0, 1),
gsDPSetEnvColor(175, 175, 175, 255),
gsSPEndDisplayList(),
};
Gfx mat_revert_lantern_grey_f3d[] = {
gsDPPipeSync(),
gsSPClearGeometryMode(G_CULL_FRONT),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPEndDisplayList(),
};
Gfx mat_lantern_base_f3d_reverse[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(SHADE, 0, ENVIRONMENT, 0, 0, 0, 0, 1, SHADE, 0, ENVIRONMENT, 0, 0, 0, 0, 1),
gsSPSetGeometryMode(G_CULL_FRONT),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPTexture(65535, 65535, 0, 0, 1),
gsDPSetEnvColor(112, 43, 44, 255),
gsSPEndDisplayList(),
};
Gfx mat_revert_lantern_base_f3d_reverse[] = {
gsDPPipeSync(),
gsSPClearGeometryMode(G_CULL_FRONT),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPEndDisplayList(),
};
Gfx mat_lantern_flame_f3d[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, ENVIRONMENT, 0, 0, 0, 0, TEXEL0),
gsSPTexture(65535, 65535, 0, 0, 1),
gsDPTileSync(),
gsDPSetTextureImage(G_IM_FMT_I, G_IM_SIZ_8b, 16, lantern_sm64lanternfire_i8),
gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_8b, 2, 0, 7, 0, G_TX_CLAMP | G_TX_NOMIRROR, 4, 0, G_TX_CLAMP | G_TX_NOMIRROR, 4, 0),
gsDPLoadSync(),
gsDPLoadTile(7, 0, 0, 60, 60),
gsDPPipeSync(),
gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_8b, 2, 0, 0, 0, G_TX_CLAMP | G_TX_NOMIRROR, 4, 0, G_TX_CLAMP | G_TX_NOMIRROR, 4, 0),
gsDPSetTileSize(0, 0, 0, 60, 60),
gsDPSetEnvColor(188, 148, 78, 255),
gsSPEndDisplayList(),
};
Gfx mat_lantern_glass_f3d[] = {
gsDPPipeSync(),
gsDPSetCombineLERP(ENVIRONMENT, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT, ENVIRONMENT, 0, SHADE, 0, 0, 0, 0, ENVIRONMENT),
gsSPSetGeometryMode(G_CULL_FRONT),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPTexture(65535, 65535, 0, 0, 1),
gsDPSetEnvColor(154, 154, 154, 47),
gsSPEndDisplayList(),
};
Gfx mat_revert_lantern_glass_f3d[] = {
gsDPPipeSync(),
gsSPClearGeometryMode(G_CULL_FRONT),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPEndDisplayList(),
};
Gfx lantern_Lantern_mesh[] = {
gsSPClearGeometryMode(G_LIGHTING),
gsSPVertex(lantern_Lantern_mesh_vtx_cull + 0, 8, 0),
gsSPSetGeometryMode(G_LIGHTING),
gsSPCullDisplayList(0, 7),
gsSPDisplayList(mat_lantern_base_f3d),
gsSPDisplayList(lantern_Lantern_mesh_tri_0),
gsSPDisplayList(mat_lantern_black_f3d),
gsSPDisplayList(lantern_Lantern_mesh_tri_1),
gsSPDisplayList(mat_revert_lantern_black_f3d),
gsSPDisplayList(mat_lantern_grey_f3d),
gsSPDisplayList(lantern_Lantern_mesh_tri_2),
gsSPDisplayList(mat_revert_lantern_grey_f3d),
gsSPDisplayList(mat_lantern_base_f3d_reverse),
gsSPDisplayList(lantern_Lantern_mesh_tri_3),
gsSPDisplayList(mat_revert_lantern_base_f3d_reverse),
gsSPEndDisplayList(),
};
Gfx lantern_Flame_mesh[] = {
gsSPClearGeometryMode(G_LIGHTING),
gsSPVertex(lantern_Flame_mesh_vtx_cull + 0, 8, 0),
gsSPSetGeometryMode(G_LIGHTING),
gsSPCullDisplayList(0, 7),
gsSPDisplayList(mat_lantern_flame_f3d),
gsSPDisplayList(lantern_Flame_mesh_tri_0),
gsSPEndDisplayList(),
};
Gfx lantern_Glass_mesh[] = {
gsSPClearGeometryMode(G_LIGHTING),
gsSPVertex(lantern_Glass_mesh_vtx_cull + 0, 8, 0),
gsSPSetGeometryMode(G_LIGHTING),
gsSPCullDisplayList(0, 7),
gsSPDisplayList(mat_lantern_glass_f3d),
gsSPDisplayList(lantern_Glass_mesh_tri_0),
gsSPDisplayList(mat_revert_lantern_glass_f3d),
gsSPEndDisplayList(),
};
Gfx lantern_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(),
};

File diff suppressed because it is too large Load Diff

193
actors/mario/geo_header.h Normal file
View File

@@ -0,0 +1,193 @@
extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt1[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt2[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt3[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt4[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt5[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt6[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt1_switch_face_opt7[];
extern const GeoLayout mario_armature_002_switch_option_002[];
extern const GeoLayout mario_right_hand_open_armature[];
extern const GeoLayout mario_left_hand_open_armature[];
extern const GeoLayout mario_left_hand_peace_armature[];
extern const GeoLayout mario_left_hand_cap_armature[];
extern const GeoLayout mario_left_hand_wing_cap_armature[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt1[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt2[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt3[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt4[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt5[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt6[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt1_switch_face_opt7[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_armature_002_switch_option_002[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_right_hand_open_armature[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_open_armature[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_peace_armature[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_cap_armature[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_jump_mario_left_hand_wing_cap_armature[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt1[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt2[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt3[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt4[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt5[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt6[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt1_000_switch_opt0_000_switch_001_opt7[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt1[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_armature_002_switch_option_002[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_right_hand_open_armature[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_open_armature[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_peace_armature[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_cap_armature[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt2_jump_mario_left_hand_wing_cap_armature[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt2[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_armature_002_switch_option_002[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_right_hand_open_armature[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_open_armature[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_peace_armature[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_cap_armature[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt3_jump_mario_left_hand_wing_cap_armature[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt3[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt1[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt2[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt3[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt4[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt5[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt6[];
extern const GeoLayout mario_002_switch_opt0_001_switch_opt0_000_switch_opt0_000_switch_001_opt7[];
extern const GeoLayout mario_geo[];
extern Vtx mario_000_offset_mesh_vtx_0[53];
extern Gfx mario_000_offset_mesh_tri_0[];
extern Vtx mario_000_offset_001_mesh_vtx_0[88];
extern Gfx mario_000_offset_001_mesh_tri_0[];
extern Vtx mario_000_offset_001_mesh_vtx_1[23];
extern Gfx mario_000_offset_001_mesh_tri_1[];
extern Vtx mario_000_offset_001_mesh_vtx_2[14];
extern Gfx mario_000_offset_001_mesh_tri_2[];
extern Vtx mario_000_displaylist_mesh_vtx_0[10];
extern Gfx mario_000_displaylist_mesh_tri_0[];
extern Vtx mario_000_displaylist_mesh_vtx_1[71];
extern Gfx mario_000_displaylist_mesh_tri_1[];
extern Vtx mario_000_displaylist_mesh_vtx_2[24];
extern Gfx mario_000_displaylist_mesh_tri_2[];
extern Vtx mario_000_displaylist_mesh_vtx_3[19];
extern Gfx mario_000_displaylist_mesh_tri_3[];
extern Vtx mario_000_displaylist_mesh_vtx_4[12];
extern Gfx mario_000_displaylist_mesh_tri_4[];
extern Vtx mario_000_displaylist_mesh_vtx_5[30];
extern Gfx mario_000_displaylist_mesh_tri_5[];
extern Vtx mario_000_displaylist_mesh_vtx_6[7];
extern Gfx mario_000_displaylist_mesh_tri_6[];
extern Vtx mario_002_switch_option_head__no_cap__mesh_vtx_0[85];
extern Gfx mario_002_switch_option_head__no_cap__mesh_tri_0[];
extern Vtx mario_002_switch_option_head__no_cap__mesh_vtx_1[26];
extern Gfx mario_002_switch_option_head__no_cap__mesh_tri_1[];
extern Vtx mario_002_switch_option_head__no_cap__mesh_vtx_2[12];
extern Gfx mario_002_switch_option_head__no_cap__mesh_tri_2[];
extern Vtx mario_002_switch_option_head__no_cap__mesh_vtx_3[75];
extern Gfx mario_002_switch_option_head__no_cap__mesh_tri_3[];
extern Vtx mario_000_displaylist_001_mesh_vtx_0[4];
extern Gfx mario_000_displaylist_001_mesh_tri_0[];
extern Vtx mario_000_displaylist_001_mesh_vtx_1[4];
extern Gfx mario_000_displaylist_001_mesh_tri_1[];
extern Vtx mario_000_displaylist_002_mesh_vtx_0[4];
extern Gfx mario_000_displaylist_002_mesh_tri_0[];
extern Vtx mario_000_displaylist_002_mesh_vtx_1[4];
extern Gfx mario_000_displaylist_002_mesh_tri_1[];
extern Vtx mario_000_offset_003_mesh_vtx_0[20];
extern Gfx mario_000_offset_003_mesh_tri_0[];
extern Vtx mario_000_offset_004_mesh_vtx_0[16];
extern Gfx mario_000_offset_004_mesh_tri_0[];
extern Vtx mario_000_displaylist_003_mesh_vtx_0[30];
extern Gfx mario_000_displaylist_003_mesh_tri_0[];
extern Vtx mario_002_switch_option_right_hand_open_mesh_vtx_0[42];
extern Gfx mario_002_switch_option_right_hand_open_mesh_tri_0[];
extern Vtx mario_000_offset_006_mesh_vtx_0[20];
extern Gfx mario_000_offset_006_mesh_tri_0[];
extern Vtx mario_000_offset_007_mesh_vtx_0[16];
extern Gfx mario_000_offset_007_mesh_tri_0[];
extern Vtx mario_000_displaylist_004_mesh_vtx_0[30];
extern Gfx mario_000_displaylist_004_mesh_tri_0[];
extern Vtx mario_002_switch_option_left_hand_open_mesh_vtx_0[42];
extern Gfx mario_002_switch_option_left_hand_open_mesh_tri_0[];
extern Vtx mario_004_switch_option_left_hand_peace_mesh_vtx_0[61];
extern Gfx mario_004_switch_option_left_hand_peace_mesh_tri_0[];
extern Vtx mario_005_switch_option_left_hand_cap_mesh_vtx_0[47];
extern Gfx mario_005_switch_option_left_hand_cap_mesh_tri_0[];
extern Vtx mario_005_switch_option_left_hand_cap_mesh_vtx_1[30];
extern Gfx mario_005_switch_option_left_hand_cap_mesh_tri_1[];
extern Vtx mario_006_switch_option_left_hand_wing_cap_mesh_vtx_0[47];
extern Gfx mario_006_switch_option_left_hand_wing_cap_mesh_tri_0[];
extern Vtx mario_006_switch_option_left_hand_wing_cap_mesh_vtx_1[30];
extern Gfx mario_006_switch_option_left_hand_wing_cap_mesh_tri_1[];
extern Vtx mario_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_0[8];
extern Gfx mario_006_switch_option_left_hand_wing_cap_wings_mesh_tri_0[];
extern Vtx mario_006_switch_option_left_hand_wing_cap_wings_mesh_vtx_1[8];
extern Gfx mario_006_switch_option_left_hand_wing_cap_wings_mesh_tri_1[];
extern Vtx mario_000_offset_009_mesh_vtx_0[17];
extern Gfx mario_000_offset_009_mesh_tri_0[];
extern Vtx mario_000_offset_010_mesh_vtx_0[12];
extern Gfx mario_000_offset_010_mesh_tri_0[];
extern Vtx mario_000_offset_011_mesh_vtx_0[23];
extern Gfx mario_000_offset_011_mesh_tri_0[];
extern Vtx mario_000_offset_012_mesh_vtx_0[17];
extern Gfx mario_000_offset_012_mesh_tri_0[];
extern Vtx mario_000_offset_013_mesh_vtx_0[12];
extern Gfx mario_000_offset_013_mesh_tri_0[];
extern Vtx mario_000_displaylist_005_mesh_vtx_0[23];
extern Gfx mario_000_displaylist_005_mesh_tri_0[];
extern Gfx mario_000_offset_mesh[];
extern Gfx mario_000_offset_mesh_mat_override_metal_0[];
extern Gfx mario_000_offset_001_mesh[];
extern Gfx mario_000_offset_001_mesh_mat_override_metal_0[];
extern Gfx mario_000_displaylist_mesh[];
extern Gfx mario_000_displaylist_mesh_mat_override_metal_0[];
extern Gfx mario_000_displaylist_mesh_mat_override_face_1___eye_half_1[];
extern Gfx mario_000_displaylist_mesh_mat_override_face_2___eye_closed_2[];
extern Gfx mario_000_displaylist_mesh_mat_override_face_7___eye_X_3[];
extern Gfx mario_002_switch_option_head__no_cap__mesh[];
extern Gfx mario_002_switch_option_head__no_cap__mesh_mat_override_metal_0[];
extern Gfx mario_002_switch_option_head__no_cap__mesh_mat_override_face_1___eye_half_1[];
extern Gfx mario_002_switch_option_head__no_cap__mesh_mat_override_face_2___eye_closed_2[];
extern Gfx mario_002_switch_option_head__no_cap__mesh_mat_override_face_7___eye_X_3[];
extern Gfx mario_000_displaylist_001_mesh[];
extern Gfx mario_000_displaylist_001_mesh_mat_override_metal_0[];
extern Gfx mario_000_displaylist_002_mesh[];
extern Gfx mario_000_displaylist_002_mesh_mat_override_metal_0[];
extern Gfx mario_000_offset_003_mesh[];
extern Gfx mario_000_offset_003_mesh_mat_override_metal_0[];
extern Gfx mario_000_offset_004_mesh[];
extern Gfx mario_000_offset_004_mesh_mat_override_metal_0[];
extern Gfx mario_000_displaylist_003_mesh[];
extern Gfx mario_000_displaylist_003_mesh_mat_override_metal_0[];
extern Gfx mario_002_switch_option_right_hand_open_mesh[];
extern Gfx mario_002_switch_option_right_hand_open_mesh_mat_override_metal_0[];
extern Gfx mario_000_offset_006_mesh[];
extern Gfx mario_000_offset_006_mesh_mat_override_metal_0[];
extern Gfx mario_000_offset_007_mesh[];
extern Gfx mario_000_offset_007_mesh_mat_override_metal_0[];
extern Gfx mario_000_displaylist_004_mesh[];
extern Gfx mario_000_displaylist_004_mesh_mat_override_metal_0[];
extern Gfx mario_002_switch_option_left_hand_open_mesh[];
extern Gfx mario_002_switch_option_left_hand_open_mesh_mat_override_metal_0[];
extern Gfx mario_004_switch_option_left_hand_peace_mesh[];
extern Gfx mario_004_switch_option_left_hand_peace_mesh_mat_override_metal_0[];
extern Gfx mario_005_switch_option_left_hand_cap_mesh[];
extern Gfx mario_005_switch_option_left_hand_cap_mesh_mat_override_metal_0[];
extern Gfx mario_006_switch_option_left_hand_wing_cap_mesh[];
extern Gfx mario_006_switch_option_left_hand_wing_cap_mesh_mat_override_metal_0[];
extern Gfx mario_006_switch_option_left_hand_wing_cap_wings_mesh[];
extern Gfx mario_006_switch_option_left_hand_wing_cap_wings_mesh_mat_override_metal_0[];
extern Gfx mario_000_offset_009_mesh[];
extern Gfx mario_000_offset_009_mesh_mat_override_metal_0[];
extern Gfx mario_000_offset_010_mesh[];
extern Gfx mario_000_offset_010_mesh_mat_override_metal_0[];
extern Gfx mario_000_offset_011_mesh[];
extern Gfx mario_000_offset_011_mesh_mat_override_metal_0[];
extern Gfx mario_000_offset_012_mesh[];
extern Gfx mario_000_offset_012_mesh_mat_override_metal_0[];
extern Gfx mario_000_offset_013_mesh[];
extern Gfx mario_000_offset_013_mesh_mat_override_metal_0[];
extern Gfx mario_000_displaylist_005_mesh[];
extern Gfx mario_000_displaylist_005_mesh_mat_override_metal_0[];
extern Gfx mario_material_revert_render_settings[];

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