Merge pull request #65 from Reonu/nightly

Merge Nightly (ay lmao)
This commit is contained in:
Reonu
2021-10-08 02:24:02 +03:00
committed by GitHub
275 changed files with 7780 additions and 8914 deletions

View File

@@ -153,12 +153,12 @@ LINK_LIBRARIES = $(foreach i,$(LIBRARIES),-l$(i))
ifeq ($(COMPILER),gcc)
NON_MATCHING := 1
MIPSISET := -mips3
OPT_FLAGS := -Os
OPT_FLAGS := -Ofast
else ifeq ($(COMPILER),clang)
NON_MATCHING := 1
# clang doesn't support ABI 'o32' for 'mips3'
MIPSISET := -mips2
OPT_FLAGS := -Os
OPT_FLAGS := -Ofast
endif
@@ -394,8 +394,8 @@ export LD_LIBRARY_PATH=./tools
AS := $(CROSS)as
ifeq ($(COMPILER),gcc)
CC := $(CROSS)gcc
$(BUILD_DIR)/actors/%.o: OPT_FLAGS := -Os -mlong-calls
$(BUILD_DIR)/levels/%.o: OPT_FLAGS := -Os -mlong-calls
$(BUILD_DIR)/actors/%.o: OPT_FLAGS := -Ofast -mlong-calls
$(BUILD_DIR)/levels/%.o: OPT_FLAGS := -Ofast -mlong-calls
else ifeq ($(COMPILER),clang)
CC := clang
endif
@@ -430,7 +430,7 @@ DEF_INC_CFLAGS := $(foreach i,$(INCLUDE_DIRS),-I$(i)) $(C_DEFINES)
# C compiler options
CFLAGS = -G 0 $(OPT_FLAGS) $(TARGET_CFLAGS) $(MIPSISET) $(DEF_INC_CFLAGS)
ifeq ($(COMPILER),gcc)
CFLAGS += -mno-shared -march=vr4300 -mfix4300 -mabi=32 -mhard-float -mdivide-breaks -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra -Wno-missing-braces -fno-jump-tables
CFLAGS += -mno-shared -march=vr4300 -mfix4300 -mabi=32 -mhard-float -mdivide-breaks -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra -Wno-missing-braces
else ifeq ($(COMPILER),clang)
CFLAGS += -target mips -mabi=32 -G 0 -mhard-float -fomit-frame-pointer -fno-stack-protector -fno-common -I include -I src/ -I $(BUILD_DIR)/include -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra -Wno-missing-braces -fno-jump-tables
else
@@ -576,6 +576,9 @@ $(BUILD_DIR)/src/usb/usb.o: OPT_FLAGS := -O0
$(BUILD_DIR)/src/usb/usb.o: CFLAGS += -Wno-unused-variable -Wno-sign-compare -Wno-unused-function
$(BUILD_DIR)/src/usb/debug.o: OPT_FLAGS := -O0
$(BUILD_DIR)/src/usb/debug.o: CFLAGS += -Wno-unused-parameter -Wno-maybe-uninitialized
$(BUILD_DIR)/src/audio/*.o: OPT_FLAGS := -Os -fno-jump-tables
$(BUILD_DIR)/src/engine/math_util.o: OPT_FLAGS := -Ofast -fno-unroll-loops -fno-peel-loops --param case-values-threshold=20
$(BUILD_DIR)/src/game/rendering_graph_node.o: OPT_FLAGS := -Ofast --param case-values-threshold=20
ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) asm/debug $(GODDARD_SRC_DIRS) $(LIBZ_SRC_DIRS) $(ULTRA_BIN_DIRS) $(BIN_DIRS) $(TEXTURE_DIRS) $(TEXT_DIRS) $(SOUND_SAMPLE_DIRS) $(addprefix levels/,$(LEVEL_DIRS)) rsp include) $(YAY0_DIR) $(addprefix $(YAY0_DIR)/,$(VERSION)) $(SOUND_BIN_DIR) $(SOUND_BIN_DIR)/sequences/$(VERSION)
@@ -589,6 +592,7 @@ $(BUILD_DIR)/src/game/ingame_menu.o: $(BUILD_DIR)/include/text_strings.h
$(BUILD_DIR)/src/game/puppycam2.o: $(BUILD_DIR)/include/text_strings.h
#==============================================================================#
# Texture Generation #
#==============================================================================#

View File

@@ -1,4 +1,7 @@
# ![](https://i.imgur.com/CeOukzk.gif) HackerSM64 ![](https://i.imgur.com/s0LUbTo.gif)
**[Thank you to Kaze Emanuar for these major optimizations!](https://www.youtube.com/watch?v=uYPH-NH3B6k)
**AFTER CLONING THE REPO, CHECK OUT THE `include/config.h` FILE BEFORE ANYTHING ELSE! IT THERE'S A LOT OF STUFF IN THIS REPO THAT CAN BE TOGGLED THERE.**
HackerSM64 now has a discord server! https://discord.gg/brETAakcXr

View File

@@ -120,7 +120,7 @@ const Gfx flame_seg6_dl_0601C108[] = {
gsDPLoadTextureBlock(flame_seg6_texture_06000000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06000000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_06000000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -132,7 +132,7 @@ const Gfx flame_seg6_dl_0601C1A8[] = {
gsDPLoadTextureBlock(flame_seg6_texture_06002000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06002000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_06002000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -144,7 +144,7 @@ const Gfx flame_seg6_dl_0601C248[] = {
gsDPLoadTextureBlock(flame_seg6_texture_06004000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06004000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_06004000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -156,7 +156,7 @@ const Gfx flame_seg6_dl_0601C2E8[] = {
gsDPLoadTextureBlock(flame_seg6_texture_06006000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06006000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_06006000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -168,7 +168,7 @@ const Gfx flame_seg6_dl_0601C388[] = {
gsDPLoadTextureBlock(flame_seg6_texture_06008000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06008000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_06008000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -180,7 +180,7 @@ const Gfx flame_seg6_dl_0601C428[] = {
gsDPLoadTextureBlock(flame_seg6_texture_0600A000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_0600A000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_0600A000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -192,7 +192,7 @@ const Gfx flame_seg6_dl_0601C4C8[] = {
gsDPLoadTextureBlock(flame_seg6_texture_0600C000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_0600C000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_0600C000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -204,7 +204,7 @@ const Gfx flame_seg6_dl_0601C568[] = {
gsDPLoadTextureBlock(flame_seg6_texture_0600E000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_0600E000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_0600E000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -216,7 +216,7 @@ const Gfx flame_seg6_dl_0601C608[] = {
gsDPLoadTextureBlock(flame_seg6_texture_06010000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06010000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_06010000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -228,7 +228,7 @@ const Gfx flame_seg6_dl_0601C6A8[] = {
gsDPLoadTextureBlock(flame_seg6_texture_06012000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06012000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_06012000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -240,7 +240,7 @@ const Gfx flame_seg6_dl_0601C748[] = {
gsDPLoadTextureBlock(flame_seg6_texture_06014000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06014000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_06014000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -252,7 +252,7 @@ const Gfx flame_seg6_dl_0601C7E8[] = {
gsDPLoadTextureBlock(flame_seg6_texture_06016000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06016000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_06016000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -264,7 +264,7 @@ const Gfx flame_seg6_dl_0601C888[] = {
gsDPLoadTextureBlock(flame_seg6_texture_06018000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06018000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_06018000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),
@@ -276,7 +276,7 @@ const Gfx flame_seg6_dl_0601C928[] = {
gsDPLoadTextureBlock(flame_seg6_texture_0601A000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
gsSPDisplayList(flame_seg6_dl_0601C0B0),
gsDPLoadTextureBlock((u8*)flame_seg6_texture_0601A000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)flame_seg6_texture_0601A000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(flame_seg6_dl_0601C0C8),
gsSPDisplayList(flame_seg6_dl_0601C0E0),
gsSPEndDisplayList(),

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 1007 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -50,18 +50,18 @@ extern const Gfx coin_seg3_dl_030079B8[];
extern const GeoLayout dirt_animation_geo[];
extern const GeoLayout cartoon_star_geo[];
extern const Gfx dirt_seg3_dl_0302BFF8[];
extern const Gfx dirt_seg3_dl_0302C028[];
extern const Gfx dirt_seg3_dl_0302C238[];
extern const Gfx dirt_seg3_dl_0302C298[];
extern const Gfx dirt_seg3_dl_0302C2B8[];
extern const Gfx dirt_seg3_dl_0302C2D8[];
extern const Gfx dirt_seg3_dl_0302C2F8[];
extern const Gfx dirt_seg3_dl_0302C318[];
extern const Gfx dirt_seg3_dl_0302C378[];
extern const Gfx dirt_seg3_dl_0302C3B0[];
extern const Gfx dirt_seg3_dl_0302C3E8[];
extern const Gfx dirt_seg3_dl_0302C420[];
extern const Gfx dirt_seg3_dl_0302C458[];
extern const Gfx dirt_seg3_dl_dirt_particle[];
extern const Gfx dirt_seg3_sub_dl_cartoon_star[];
extern const Gfx dirt_seg3_dl_cartoon_star_red[];
extern const Gfx dirt_seg3_dl_cartoon_star_green[];
extern const Gfx dirt_seg3_dl_cartoon_star_blue[];
extern const Gfx dirt_seg3_dl_cartoon_star_yellow[];
extern const Gfx dirt_seg3_dl_cartoon_star_billboard[];
extern const Gfx dirt_seg3_dl_tiny_particle_red[];
extern const Gfx dirt_seg3_dl_tiny_particle_green[];
extern const Gfx dirt_seg3_dl_tiny_particle_blue[];
extern const Gfx dirt_seg3_dl_tiny_particle_yellow[];
extern const Gfx dirt_seg3_dl_tiny_particle_billboard[];
// door
extern const GeoLayout castle_door_geo[];
@@ -191,7 +191,7 @@ extern const GeoLayout number_geo[];
extern const Gfx pebble_seg3_dl_0301CB00[];
// power_meter
extern const u8 *const power_meter_health_segments_lut[];
extern const Texture *const power_meter_health_segments_lut[];
extern const Gfx dl_power_meter_base[];
extern const Gfx dl_power_meter_health_segments_begin[];
extern const Gfx dl_power_meter_health_segments_end[];

View File

@@ -4,12 +4,12 @@ const GeoLayout dirt_animation_geo[] = {
GEO_OPEN_NODE(),
GEO_SWITCH_CASE(6, geo_switch_anim_state),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_0302C378),
GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_0302C3B0),
GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_0302C3E8),
GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, dirt_seg3_dl_0302C028),
GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_0302C420),
GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_0302C458),
GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_tiny_particle_red),
GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_tiny_particle_green),
GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_tiny_particle_blue),
GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_ALPHA, dirt_seg3_dl_dirt_particle),
GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_tiny_particle_yellow),
GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_tiny_particle_billboard),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_END(),
@@ -22,11 +22,11 @@ const GeoLayout cartoon_star_geo[] = {
GEO_OPEN_NODE(),
GEO_SWITCH_CASE(5, geo_switch_anim_state),
GEO_OPEN_NODE(),
GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_0302C298),
GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_0302C2B8),
GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_0302C2D8),
GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_0302C2F8),
GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_0302C318),
GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_cartoon_star_red),
GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_cartoon_star_green),
GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_cartoon_star_blue),
GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_cartoon_star_yellow),
GEO_DISPLAY_LIST(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, dirt_seg3_dl_cartoon_star_billboard),
GEO_CLOSE_NODE(),
GEO_CLOSE_NODE(),
GEO_END(),

View File

@@ -1,25 +1,25 @@
// Dirt
// 0x0302BD68
static const Lights1 dirt_seg3_lights_0302BD68 = gdSPDefLights1(
static const Lights1 dirt_seg3_lights_red = gdSPDefLights1(
0x3f, 0x19, 0x19,
0xff, 0x64, 0x64, 0x28, 0x28, 0x28
);
// 0x0302BD80
static const Lights1 dirt_seg3_lights_0302BD80 = gdSPDefLights1(
static const Lights1 dirt_seg3_lights_green = gdSPDefLights1(
0x19, 0x3f, 0x19,
0x64, 0xff, 0x64, 0x28, 0x28, 0x28
);
// 0x0302BD98
static const Lights1 dirt_seg3_lights_0302BD98 = gdSPDefLights1(
static const Lights1 dirt_seg3_lights_blue = gdSPDefLights1(
0x19, 0x19, 0x3f,
0x64, 0x64, 0xff, 0x28, 0x28, 0x28
);
// 0x0302BDB0
static const Lights1 dirt_seg3_lights_0302BDB0 = gdSPDefLights1(
static const Lights1 dirt_seg3_lights_yellow = gdSPDefLights1(
0x3f, 0x3f, 0x19,
0xff, 0xff, 0x64, 0x28, 0x28, 0x28
);
@@ -47,7 +47,7 @@ const Gfx dirt_seg3_dl_0302BFF8[] = {
};
// 0x0302C028 - 0x0302C098
const Gfx dirt_seg3_dl_0302C028[] = {
const Gfx dirt_seg3_dl_dirt_particle[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
gsSPClearGeometryMode(G_CULL_BACK),
@@ -65,21 +65,21 @@ const Gfx dirt_seg3_dl_0302C028[] = {
};
// 0x0302C098
static const Vtx dirt_seg3_vertex_0302C098[] = {
static const Vtx dirt_seg3_vertex_tiny_particle[] = {
{{{ -10, 0, 10}, 0, { 0, 0}, {0x00, 0x7f, 0x00, 0x00}}},
{{{ 10, 0, 10}, 0, { 0, 0}, {0x00, 0x7f, 0x00, 0x00}}},
{{{ 0, 0, -10}, 0, { 0, 0}, {0x00, 0x7f, 0x00, 0x00}}},
};
// 0x0302C0C8
static const Vtx dirt_seg3_vertex_0302C0C8[] = {
static const Vtx dirt_seg3_vertex_tiny_particle_billboard[] = {
{{{ -10, 10, 0}, 0, { 0, 0}, {0xff, 0xff, 0x00, 0xff}}},
{{{ 10, 10, 0}, 0, { 0, 0}, {0xff, 0xff, 0x00, 0xff}}},
{{{ 0, -10, 0}, 0, { 0, 0}, {0xff, 0xff, 0x00, 0xff}}},
};
// 0x0302C0F8
static const Vtx dirt_seg3_vertex_0302C0F8[] = {
static const Vtx dirt_seg3_vertex_cartoon_star[] = {
{{{ 0, -8, 0}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0x00}}},
{{{ -32, 80, 0}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0x00}}},
{{{ 32, 80, 0}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0x00}}},
@@ -93,7 +93,7 @@ static const Vtx dirt_seg3_vertex_0302C0F8[] = {
};
// 0x0302C198
static const Vtx dirt_seg3_vertex_0302C198[] = {
static const Vtx dirt_seg3_vertex_cartoon_star_billboard[] = {
{{{ 0, -8, 0}, 0, { 0, 0}, {0xff, 0xff, 0x00, 0xff}}},
{{{ -32, 80, 0}, 0, { 0, 0}, {0xff, 0xff, 0x00, 0xff}}},
{{{ 32, 80, 0}, 0, { 0, 0}, {0xff, 0xff, 0x00, 0xff}}},
@@ -107,9 +107,9 @@ static const Vtx dirt_seg3_vertex_0302C198[] = {
};
// 0x0302C238 - 0x0302C298
const Gfx dirt_seg3_dl_0302C238[] = {
const Gfx dirt_seg3_sub_dl_cartoon_star[] = {
gsSPClearGeometryMode(G_CULL_BACK),
gsSPVertex(dirt_seg3_vertex_0302C0F8, 10, 0),
gsSPVertex(dirt_seg3_vertex_cartoon_star, 10, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0),
gsSP2Triangles( 0, 5, 3, 0x0, 6, 7, 0, 0x0),
gsSP2Triangles( 2, 8, 6, 0x0, 1, 9, 2, 0x0),
@@ -119,41 +119,41 @@ const Gfx dirt_seg3_dl_0302C238[] = {
};
// 0x0302C298 - 0x0302C2B8
const Gfx dirt_seg3_dl_0302C298[] = {
gsSPLight(&dirt_seg3_lights_0302BD68.l, 1),
gsSPLight(&dirt_seg3_lights_0302BD68.a, 2),
gsSPDisplayList(dirt_seg3_dl_0302C238),
const Gfx dirt_seg3_dl_cartoon_star_red[] = {
gsSPLight(&dirt_seg3_lights_red.l, 1),
gsSPLight(&dirt_seg3_lights_red.a, 2),
gsSPDisplayList(dirt_seg3_sub_dl_cartoon_star),
gsSPEndDisplayList(),
};
// 0x0302C2B8 - 0x0302C2D8
const Gfx dirt_seg3_dl_0302C2B8[] = {
gsSPLight(&dirt_seg3_lights_0302BD80.l, 1),
gsSPLight(&dirt_seg3_lights_0302BD80.a, 2),
gsSPDisplayList(dirt_seg3_dl_0302C238),
const Gfx dirt_seg3_dl_cartoon_star_green[] = {
gsSPLight(&dirt_seg3_lights_green.l, 1),
gsSPLight(&dirt_seg3_lights_green.a, 2),
gsSPDisplayList(dirt_seg3_sub_dl_cartoon_star),
gsSPEndDisplayList(),
};
// 0x0302C2D8 - 0x0302C2F8
const Gfx dirt_seg3_dl_0302C2D8[] = {
gsSPLight(&dirt_seg3_lights_0302BD98.l, 1),
gsSPLight(&dirt_seg3_lights_0302BD98.a, 2),
gsSPDisplayList(dirt_seg3_dl_0302C238),
const Gfx dirt_seg3_dl_cartoon_star_blue[] = {
gsSPLight(&dirt_seg3_lights_blue.l, 1),
gsSPLight(&dirt_seg3_lights_blue.a, 2),
gsSPDisplayList(dirt_seg3_sub_dl_cartoon_star),
gsSPEndDisplayList(),
};
// 0x0302C2F8 - 0x0302C318
const Gfx dirt_seg3_dl_0302C2F8[] = {
gsSPLight(&dirt_seg3_lights_0302BDB0.l, 1),
gsSPLight(&dirt_seg3_lights_0302BDB0.a, 2),
gsSPDisplayList(dirt_seg3_dl_0302C238),
const Gfx dirt_seg3_dl_cartoon_star_yellow[] = {
gsSPLight(&dirt_seg3_lights_yellow.l, 1),
gsSPLight(&dirt_seg3_lights_yellow.a, 2),
gsSPDisplayList(dirt_seg3_sub_dl_cartoon_star),
gsSPEndDisplayList(),
};
// 0x0302C318 - 0x0302C378
const Gfx dirt_seg3_dl_0302C318[] = {
const Gfx dirt_seg3_dl_cartoon_star_billboard[] = {
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsSPVertex(dirt_seg3_vertex_0302C198, 10, 0),
gsSPVertex(dirt_seg3_vertex_cartoon_star_billboard, 10, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 1, 0x0),
gsSP2Triangles( 0, 5, 3, 0x0, 6, 7, 0, 0x0),
gsSP2Triangles( 2, 8, 6, 0x0, 1, 9, 2, 0x0),
@@ -163,53 +163,53 @@ const Gfx dirt_seg3_dl_0302C318[] = {
};
// 0x0302C378 - 0x0302C3B0
const Gfx dirt_seg3_dl_0302C378[] = {
gsSPLight(&dirt_seg3_lights_0302BD68.l, 1),
gsSPLight(&dirt_seg3_lights_0302BD68.a, 2),
const Gfx dirt_seg3_dl_tiny_particle_red[] = {
gsSPLight(&dirt_seg3_lights_red.l, 1),
gsSPLight(&dirt_seg3_lights_red.a, 2),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPVertex(dirt_seg3_vertex_0302C098, 3, 0),
gsSPVertex(dirt_seg3_vertex_tiny_particle, 3, 0),
gsSP1Triangle( 0, 1, 2, 0x0),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPEndDisplayList(),
};
// 0x0302C3B0 - 0x0302C3E8
const Gfx dirt_seg3_dl_0302C3B0[] = {
gsSPLight(&dirt_seg3_lights_0302BD80.l, 1),
gsSPLight(&dirt_seg3_lights_0302BD80.a, 2),
const Gfx dirt_seg3_dl_tiny_particle_green[] = {
gsSPLight(&dirt_seg3_lights_green.l, 1),
gsSPLight(&dirt_seg3_lights_green.a, 2),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPVertex(dirt_seg3_vertex_0302C098, 3, 0),
gsSPVertex(dirt_seg3_vertex_tiny_particle, 3, 0),
gsSP1Triangle( 0, 1, 2, 0x0),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPEndDisplayList(),
};
// 0x0302C3E8 - 0x0302C420
const Gfx dirt_seg3_dl_0302C3E8[] = {
gsSPLight(&dirt_seg3_lights_0302BD98.l, 1),
gsSPLight(&dirt_seg3_lights_0302BD98.a, 2),
const Gfx dirt_seg3_dl_tiny_particle_blue[] = {
gsSPLight(&dirt_seg3_lights_blue.l, 1),
gsSPLight(&dirt_seg3_lights_blue.a, 2),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPVertex(dirt_seg3_vertex_0302C098, 3, 0),
gsSPVertex(dirt_seg3_vertex_tiny_particle, 3, 0),
gsSP1Triangle( 0, 1, 2, 0x0),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPEndDisplayList(),
};
// 0x0302C420 - 0x0302C458
const Gfx dirt_seg3_dl_0302C420[] = {
gsSPLight(&dirt_seg3_lights_0302BDB0.l, 1),
gsSPLight(&dirt_seg3_lights_0302BDB0.a, 2),
const Gfx dirt_seg3_dl_tiny_particle_yellow[] = {
gsSPLight(&dirt_seg3_lights_yellow.l, 1),
gsSPLight(&dirt_seg3_lights_yellow.a, 2),
gsSPClearGeometryMode(G_CULL_BACK),
gsSPVertex(dirt_seg3_vertex_0302C098, 3, 0),
gsSPVertex(dirt_seg3_vertex_tiny_particle, 3, 0),
gsSP1Triangle( 0, 1, 2, 0x0),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPEndDisplayList(),
};
// 0x0302C458 - 0x0302C480
const Gfx dirt_seg3_dl_0302C458[] = {
const Gfx dirt_seg3_dl_tiny_particle_billboard[] = {
gsSPClearGeometryMode(G_LIGHTING | G_CULL_BACK),
gsSPVertex(dirt_seg3_vertex_0302C0C8, 3, 0),
gsSPVertex(dirt_seg3_vertex_tiny_particle_billboard, 3, 0),
gsSP1Triangle( 0, 1, 2, 0x0),
gsSPSetGeometryMode(G_LIGHTING | G_CULL_BACK),
gsSPEndDisplayList(),

View File

@@ -3,22 +3,22 @@
// TODO: These 64x64 textures are referenced as two different texture addresses in the DLs
// 0x0605AA28
ALIGNED8 static const u8 impact_smoke_seg6_texture_0605AA28[] = {
ALIGNED8 static const Texture impact_smoke_seg6_texture_0605AA28[] = {
#include "actors/impact_smoke/impact_smoke_0.ia16.inc.c"
};
// 0x0605CA28
ALIGNED8 static const u8 impact_smoke_seg6_texture_0605CA28[] = {
ALIGNED8 static const Texture impact_smoke_seg6_texture_0605CA28[] = {
#include "actors/impact_smoke/impact_smoke_1.ia16.inc.c"
};
// 0x0605EA28
ALIGNED8 static const u8 impact_smoke_seg6_texture_0605EA28[] = {
ALIGNED8 static const Texture impact_smoke_seg6_texture_0605EA28[] = {
#include "actors/impact_smoke/impact_smoke_2.ia16.inc.c"
};
// 0x06060A28
ALIGNED8 static const u8 impact_smoke_seg6_texture_06060A28[] = {
ALIGNED8 static const Texture impact_smoke_seg6_texture_06060A28[] = {
#include "actors/impact_smoke/impact_smoke_3.ia16.inc.c"
};
@@ -71,7 +71,7 @@ const Gfx impact_smoke_seg6_dl_06062B38[] = {
gsDPLoadTextureBlock(impact_smoke_seg6_texture_0605AA28, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(impact_smoke_seg6_vertex_06062A28, 8, 0),
gsSPDisplayList(impact_smoke_seg6_dl_06062AD8),
gsDPLoadTextureBlock((u8*)impact_smoke_seg6_texture_0605AA28 + 0x1000, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)impact_smoke_seg6_texture_0605AA28 + 0x1000, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(impact_smoke_seg6_dl_06062AF0),
gsSPDisplayList(impact_smoke_seg6_dl_06062B08),
gsSPEndDisplayList(),
@@ -83,7 +83,7 @@ const Gfx impact_smoke_seg6_dl_06062BD8[] = {
gsDPLoadTextureBlock(impact_smoke_seg6_texture_0605CA28, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(impact_smoke_seg6_vertex_06062A28, 8, 0),
gsSPDisplayList(impact_smoke_seg6_dl_06062AD8),
gsDPLoadTextureBlock((u8*)impact_smoke_seg6_texture_0605CA28 + 0x1000, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)impact_smoke_seg6_texture_0605CA28 + 0x1000, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(impact_smoke_seg6_dl_06062AF0),
gsSPDisplayList(impact_smoke_seg6_dl_06062B08),
gsSPEndDisplayList(),
@@ -95,7 +95,7 @@ const Gfx impact_smoke_seg6_dl_06062C78[] = {
gsDPLoadTextureBlock(impact_smoke_seg6_texture_0605EA28, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(impact_smoke_seg6_vertex_06062A28, 8, 0),
gsSPDisplayList(impact_smoke_seg6_dl_06062AD8),
gsDPLoadTextureBlock((u8*)impact_smoke_seg6_texture_0605EA28 + 0x1000, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)impact_smoke_seg6_texture_0605EA28 + 0x1000, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(impact_smoke_seg6_dl_06062AF0),
gsSPDisplayList(impact_smoke_seg6_dl_06062B08),
gsSPEndDisplayList(),
@@ -107,7 +107,7 @@ const Gfx impact_smoke_seg6_dl_06062D18[] = {
gsDPLoadTextureBlock(impact_smoke_seg6_texture_06060A28, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPVertex(impact_smoke_seg6_vertex_06062A28, 8, 0),
gsSPDisplayList(impact_smoke_seg6_dl_06062AD8),
gsDPLoadTextureBlock((u8*)impact_smoke_seg6_texture_06060A28 + 0x1000, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTextureBlock((Texture*)impact_smoke_seg6_texture_06060A28 + 0x1000, G_IM_FMT_IA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPDisplayList(impact_smoke_seg6_dl_06062AF0),
gsSPDisplayList(impact_smoke_seg6_dl_06062B08),
gsSPEndDisplayList(),

View File

@@ -2078,8 +2078,8 @@ const Gfx koopa_seg6_dl_0600C498[] = {
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
gsSP1Triangle( 6, 7, 8, 0x0),
#ifdef KOOPA_KEEP_PINK_SHORTS
gsSPLight((u8*)koopa_seg6_texture_06002648 + 0x20, 1), // this malformed light results in a
gsSPLight((u8*)koopa_seg6_texture_06002648 + 0x18, 2), // koopa appearing to wear pink shorts.
gsSPLight((Texture*)koopa_seg6_texture_06002648 + 0x20, 1), // this malformed light results in a
gsSPLight((Texture*)koopa_seg6_texture_06002648 + 0x18, 2), // koopa appearing to wear pink shorts.
#endif
gsSPVertex(koopa_seg6_vertex_0600B5F0, 15, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),

View File

@@ -9,7 +9,7 @@ const GeoLayout bubbly_tree_geo[] = {
#endif
GEO_DISPLAY_LIST(LAYER_ALPHA, tree_seg3_dl_bubbly),
#ifdef OBJ_OPACITY_BY_CAM_DIST
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, tree_seg3_dl_bubbly),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT_INTER, tree_seg3_dl_bubbly),
GEO_CLOSE_NODE(),
#endif
GEO_CLOSE_NODE(),
@@ -27,7 +27,7 @@ const GeoLayout spiky_tree_geo[] = {
#endif
GEO_DISPLAY_LIST(LAYER_ALPHA, tree_seg3_dl_spiky),
#ifdef OBJ_OPACITY_BY_CAM_DIST
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, tree_seg3_dl_spiky),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT_INTER, tree_seg3_dl_spiky),
GEO_CLOSE_NODE(),
#endif
GEO_CLOSE_NODE(),
@@ -45,7 +45,7 @@ const GeoLayout snow_tree_geo[] = {
#endif
GEO_DISPLAY_LIST(LAYER_ALPHA, tree_seg3_dl_snowy_pine),
#ifdef OBJ_OPACITY_BY_CAM_DIST
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, tree_seg3_dl_snowy_pine),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT_INTER, tree_seg3_dl_snowy_pine),
GEO_CLOSE_NODE(),
#endif
GEO_CLOSE_NODE(),
@@ -63,7 +63,7 @@ const GeoLayout palm_tree_geo[] = {
#endif
GEO_DISPLAY_LIST(LAYER_ALPHA, tree_seg3_dl_palm),
#ifdef OBJ_OPACITY_BY_CAM_DIST
GEO_DISPLAY_LIST(LAYER_TRANSPARENT, tree_seg3_dl_palm),
GEO_DISPLAY_LIST(LAYER_TRANSPARENT_INTER, tree_seg3_dl_palm),
GEO_CLOSE_NODE(),
#endif
GEO_CLOSE_NODE(),

51
asm/math.s Normal file
View File

@@ -0,0 +1,51 @@
# assembler directives
.set gp=64
.include "macros.inc"
.section .text, "ax"
.balign 32
glabel mtxf_to_mtx_asm
li.s $f6, 0.25
li $v0, 1
li.s $f4, 65536.0
1:
lwc1 $f0, ($a1)
lwc1 $f2, 0x04($a1)
mul.s $f0, $f6
mul.s $f2, $f6
andi $t0, $v0, (1 << 1)
mul.s $f0, $f4
trunc.w.s $f0, $f0
mfc1 $t3, $f0
addiu $a1, 8
sra $t4, $t3, 16
sh $t4, 0x00($a0)
sh $t3, 0x20($a0)
addiu $v0, 2
bnez $t0, storezero
mul.s $f2, $f4
trunc.w.s $f2, $f2
mfc1 $t3, $f2
sra $t4, $t3, 16
sh $t4, 0x02($a0)
sh $t3, 0x22($a0)
loopend:
.set noreorder
bnel $v0, 0x11, 1b
addiu $a0, 4
.set reorder
li $t1, 1
sh $t1, 0x02($a0)
jr $ra
storezero:
sh $zero, 0x02($a0)
sh $zero, 0x22($a0)
j loopend

View File

@@ -10,9 +10,37 @@
// SM64 (US/JP/EU/SH) Segment 02
#ifdef PUPPYPRINT
ALIGNED8 const Texture small_font[] = {
ALIGNED8 static const Texture small_font_1[] = {
#include "textures/segment2/custom_text.i4.inc.c"
};
ALIGNED8 static const Texture small_font_2[] = {
#include "textures/segment2/custom_text2.i4.inc.c"
};
const Texture *const puppyprint_font_lut[2] = {
small_font_1, small_font_2
};
static const u8 small_font_kerning_1[80] = {
/*0*/ 6, /*1*/ 5, /*2*/ 7, /*3*/ 7, /*4*/ 7, /*5*/ 7, /*6*/ 8, /*7*/ 7, /*8*/ 7, /*9*/ 6, /*-*/ 8, /*+*/ 8, /*(*/ 5, /*)*/ 5, /*!*/ 4, /*?*/ 6,
/*A*/ 7, /*B*/ 7, /*C*/ 7, /*D*/ 7, /*E*/ 6, /*F*/ 5, /*G*/ 8, /*H*/ 6, /*I*/ 6, /*J*/ 5, /*K*/ 7, /*L*/ 6, /*M*/ 7, /*N*/ 7, /*O*/ 7, /*P*/ 6,
/*Q*/ 8, /*R*/ 6, /*S*/ 7, /*T*/ 7, /*U*/ 7, /*V*/ 7, /*W*/ 8, /*X*/ 7, /*Y*/ 7, /*Z*/ 7, /*"*/ 5, /*'*/ 2, /*:*/ 3, /*;*/ 3, /*.*/ 3, /*,*/ 3,
/*a*/ 7, /*b*/ 7, /*c*/ 6, /*d*/ 7, /*e*/ 7, /*f*/ 7, /*g*/ 7, /*h*/ 7, /*i*/ 3, /*j*/ 5, /*k*/ 8, /*l*/ 4, /*m*/ 7, /*n*/ 7, /*o*/ 7, /*p*/ 7,
/*q*/ 7, /*r*/ 6, /*s*/ 6, /*t*/ 6, /*u*/ 6, /*v*/ 7, /*w*/ 8, /*x*/ 6, /*y*/ 8, /*z*/ 7, /*~*/ 8, /*¨*/ 7, /*^*/ 8, /*/*/ 8, /*%*/ 8, /*&*/ 8,
};
static const u8 small_font_kerning_2[80] = {
/*0*/ 6, /*1*/ 6, /*2*/ 6, /*3*/ 6, /*4*/ 6, /*5*/ 6, /*6*/ 6, /*7*/ 6, /*8*/ 6, /*9*/ 6, /*-*/ 6, /*+*/ 6, /*(*/ 3, /*)*/ 3, /*!*/ 4, /*?*/ 5,
/*A*/ 6, /*B*/ 6, /*C*/ 6, /*D*/ 6, /*E*/ 6, /*F*/ 6, /*G*/ 6, /*H*/ 6, /*I*/ 6, /*J*/ 6, /*K*/ 6, /*L*/ 6, /*M*/ 6, /*N*/ 6, /*O*/ 6, /*P*/ 6,
/*Q*/ 6, /*R*/ 6, /*S*/ 6, /*T*/ 6, /*U*/ 6, /*V*/ 6, /*W*/ 6, /*X*/ 6, /*Y*/ 6, /*Z*/ 6, /*"*/ 4, /*'*/ 1, /*:*/ 2, /*;*/ 2, /*.*/ 2, /*,*/ 2,
/*a*/ 5, /*b*/ 5, /*c*/ 5, /*d*/ 5, /*e*/ 5, /*f*/ 5, /*g*/ 5, /*h*/ 5, /*i*/ 1, /*j*/ 5, /*k*/ 5, /*l*/ 3, /*m*/ 5, /*n*/ 5, /*o*/ 5, /*p*/ 5,
/*q*/ 5, /*r*/ 5, /*s*/ 5, /*t*/ 5, /*u*/ 5, /*v*/ 5, /*w*/ 5, /*x*/ 5, /*y*/ 5, /*z*/ 5, /*~*/ 6, /*¨*/ 5, /*^*/ 6, /*/*/ 5, /*%*/ 5, /*&*/ 6,
};
const u8 *const puppyprint_kerning_lut[2][80] = {
small_font_kerning_1, small_font_kerning_2
};
#endif
ALIGNED8 static const Texture texture_hud_char_0[] = {

View File

@@ -142,7 +142,7 @@ const Gfx title_screen_bg_dl_face_easter_egg_end[] = {
#endif
#if ENABLE_RUMBLE
ALIGNED8 static const u8 title_texture_rumble_pak[] = {
ALIGNED8 static const Texture title_texture_rumble_pak[] = {
#include "textures/title_screen_bg/title_screen_bg.06648.rgba16.inc.c"
};

View File

@@ -1066,7 +1066,7 @@ const BehaviorScript bhvDoor[] = {
BEGIN(OBJ_LIST_SURFACE),
SET_INT(oInteractType, INTERACT_DOOR),
// Door - common:
OR_INT(oFlags, (OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
OR_LONG(oFlags, (OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_UCODE_LARGE)),
LOAD_ANIMATIONS(oAnimations, door_seg3_anims_030156C0),
ANIMATE(0),
LOAD_COLLISION_DATA(door_seg3_collision_door),
@@ -2218,11 +2218,6 @@ const BehaviorScript bhvMacroUkiki[] = {
END_LOOP(),
};
const BehaviorScript bhvStub1D0C[] = {
BEGIN(OBJ_LIST_DEFAULT),
DEACTIVATE(),
};
const BehaviorScript bhvLllRotatingHexagonalPlatform[] = {
BEGIN(OBJ_LIST_SURFACE),
OR_LONG(oFlags, (OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_DONT_CALC_COLL_DIST | OBJ_FLAG_UCODE_LARGE)),
@@ -3198,7 +3193,7 @@ const BehaviorScript bhvSmallWhomp[] = {
BEGIN(OBJ_LIST_SURFACE),
SET_INT(oNumLootCoins, 5),
// Whomp - common:
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
OR_LONG(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_UCODE_LARGE)),
LOAD_ANIMATIONS(oAnimations, whomp_seg6_anims_06020A04),
LOAD_COLLISION_DATA(whomp_seg6_collision_06020A0C),
ANIMATE(0),

View File

@@ -182,7 +182,6 @@ index 7d9b5b4a..c7bb81b9 100755
BUILD_DIR/asm/decompress.o(.text);
+ BUILD_DIR/asm/crash.o(.text);
BUILD_DIR/src/game/camera.o(.text);
BUILD_DIR/src/game/debug_course.o(.text);
BUILD_DIR/src/game/object_list_processor.o(.text);
diff --git a/src/game/crash.c b/src/game/crash.c
new file mode 100644

View File

@@ -22,7 +22,7 @@ index 0000000..6bf33a8
+ UNUSED f32 floorHeight;
+ if ((platform = o->platform) != NULL)
+- apply_platform_displacement(0, platform);
++ apply_platform_displacement(&sBowserDisplacementInfo, &o->oPosX, &o->oFaceAngleYaw, platform);
++ apply_platform_displacement(&sBowserDisplacementInfo, &o->oPosVec, &o->oFaceAngleYaw, platform);
+ o->oBowserUnk10E = 0;
+ cur_obj_update_floor_and_walls();
+ cur_obj_call_action_function(sBowserActions);
@@ -312,7 +312,7 @@ index 97cba2a..410e612 100644
- if ((platform = o->platform) != NULL)
- apply_platform_displacement(FALSE, platform);
+ if ((platform = o->platform) != NULL) {
+ apply_platform_displacement(&sBowserDisplacementInfo, &o->oPosX, &o->oFaceAngleYaw, platform);
+ apply_platform_displacement(&sBowserDisplacementInfo, &o->oPosVec, &o->oFaceAngleYaw, platform);
+ }
o->oBowserUnk10E = 0;
cur_obj_update_floor_and_walls();
@@ -1648,7 +1648,7 @@ index 0000000..97cba2a
+ if ((o->oTimer & 1) == 0 && o->oTimer < 14) {
+ sp22 = D_8032F698[o->oBehParams2ndByte].unk3 + (gDebugInfo[4][1] << 8);
+ sp1C = -(o->oTimer / 2) * 290 + 1740;
+ vec3f_copy(sp24, &o->oPosX);
+ vec3f_copy(sp24, &o->oPosVec);
+ o->oPosX = D_8032F698[o->oBehParams2ndByte].unk1 + sins(sp22 + 5296) * sp1C;
+ o->oPosZ = D_8032F698[o->oBehParams2ndByte].unk2 + coss(sp22 + 5296) * sp1C;
+ o->oPosY = 307.0f;
@@ -1656,7 +1656,7 @@ index 0000000..97cba2a
+ o->oPosX = D_8032F698[o->oBehParams2ndByte].unk1 + sins(sp22 - 5296) * sp1C;
+ o->oPosZ = D_8032F698[o->oBehParams2ndByte].unk2 + coss(sp22 - 5296) * sp1C;
+ spawn_mist_particles_variable(4, 0, 100);
+ vec3f_copy(&o->oPosX, sp24);
+ vec3f_copy(&o->oPosVec, sp24);
+ }
+ cur_obj_move_using_fvel_and_gravity();
+ if (o->oTimer > 300)
@@ -1922,7 +1922,7 @@ index 0000000..f47808d
+ UNUSED f32 floorHeight;
+ if ((platform = o->platform) != NULL)
+- apply_platform_displacement(0, platform);
++ apply_platform_displacement(&sBowserDisplacementInfo, &o->oPosX, &o->oFaceAngleYaw, platform);
++ apply_platform_displacement(&sBowserDisplacementInfo, &o->oPosVec, &o->oFaceAngleYaw, platform);
+ o->oBowserUnk10E = 0;
+ cur_obj_update_floor_and_walls();
+ cur_obj_call_action_function(sBowserActions);

View File

@@ -739,9 +739,9 @@ index b515373..1fdf027 100644
}
int numTiles = TABLE_DIMENSIONS[type].cols * TABLE_DIMENSIONS[type].rows;
+ fprintf(cFile, "ALIGNED8 static const u8 cake_end_texture_%sdata[] = {\n", euSuffx);
+ fprintf(cFile, "ALIGNED8 static const Texture cake_end_texture_%sdata[] = {\n", euSuffx);
for (int i = 0; i < numTiles; ++i) {
- fprintf(cFile, "ALIGNED8 static const u8 cake_end_texture_%s%d[] = {\n", euSuffx, i);
- fprintf(cFile, "ALIGNED8 static const Texture cake_end_texture_%s%d[] = {\n", euSuffx, i);
print_raw_data(cFile, &tiles[i]);
- fputs("};\n\n", cFile);
+ fputc('\n', cFile);

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