Compare commits
298 Commits
old/arceve
...
develop/re
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ba3717e4a6 | ||
|
|
7c0582f7ce | ||
|
|
37214d6059 | ||
|
|
30a75bb1d8 | ||
|
|
ef10d68513 | ||
|
|
c187386e57 | ||
|
|
ef3b7e6347 | ||
|
|
931a5fea31 | ||
|
|
a0b93715c1 | ||
|
|
4ef1d81a2f | ||
|
|
1314fd8607 | ||
|
|
239b98ba62 | ||
|
|
09a69f9186 | ||
|
|
b1ac2a174e | ||
|
|
08614793fd | ||
|
|
dd7fdcdfb9 | ||
|
|
e42dfd295c | ||
|
|
a94e58e636 | ||
|
|
602b7ee1d9 | ||
|
|
072282b68b | ||
|
|
9c22158b8e | ||
|
|
b10d01cf53 | ||
|
|
afcc1f28a5 | ||
|
|
6668ae391a | ||
|
|
c241f6941f | ||
|
|
102f21d533 | ||
|
|
eadfff013a | ||
|
|
58836138c8 | ||
|
|
94e19d439f | ||
|
|
63b2838e91 | ||
|
|
eb0bb591f0 | ||
|
|
a5033a56c9 | ||
|
|
6e03037f2e | ||
|
|
87b66c7400 | ||
|
|
5538b207a5 | ||
|
|
bbdfcfd0bf | ||
|
|
e49bc4273a | ||
|
|
a6c4bfd5d6 | ||
|
|
675977a4d6 | ||
|
|
c5d3cd4f53 | ||
|
|
9141396ec4 | ||
|
|
390ce3fdb9 | ||
|
|
48bea623e4 | ||
|
|
33056f6f3c | ||
|
|
1c13a86569 | ||
|
|
75eb23b21f | ||
|
|
5d46bb1f8e | ||
|
|
665e5bac05 | ||
|
|
46cc527da3 | ||
|
|
1360622242 | ||
|
|
15a58d4dff | ||
|
|
b5f785d669 | ||
|
|
a2faba2a93 | ||
|
|
10dfcd9433 | ||
|
|
564af66ceb | ||
|
|
dda3ebd29e | ||
|
|
de1decf039 | ||
|
|
112761e484 | ||
|
|
236498a201 | ||
|
|
e7564adfb3 | ||
|
|
18103b25f1 | ||
|
|
91b59799f9 | ||
|
|
6f45ad5eec | ||
|
|
55bfa653e2 | ||
|
|
a0d96ee90e | ||
|
|
45dccaa1c0 | ||
|
|
5be59e7970 | ||
|
|
61e7e8e506 | ||
|
|
6832ebca2c | ||
|
|
552b765ed0 | ||
|
|
993e8ec4e2 | ||
|
|
2a70709cfa | ||
|
|
212e71120f | ||
|
|
b5af7fa0e1 | ||
|
|
f50860cf8b | ||
|
|
7c558d73e3 | ||
|
|
499eaa20ab | ||
|
|
51a9e18132 | ||
|
|
ed4f8267e0 | ||
|
|
a2cee228ca | ||
|
|
58f3130de6 | ||
|
|
dad1cd742a | ||
|
|
4c915eb666 | ||
|
|
d6d64deb7e | ||
|
|
a1205e12a1 | ||
|
|
fd043ea324 | ||
|
|
9e12023873 | ||
|
|
4fe0f19d0a | ||
|
|
8a5a3a9f29 | ||
|
|
a929717881 | ||
|
|
d2d3d60c9f | ||
|
|
282adb36b5 | ||
|
|
edc6fe6b57 | ||
|
|
50d1b73bac | ||
|
|
8c110adb36 | ||
|
|
836c6a4850 | ||
|
|
a5fce270ef | ||
|
|
f2148ce405 | ||
|
|
19c79e95fe | ||
|
|
a2c4243600 | ||
|
|
d92ddeecd8 | ||
|
|
97eebacb1e | ||
|
|
913ea2dfdd | ||
|
|
a5a826052e | ||
|
|
9f538f8e7d | ||
|
|
f7b79d132d | ||
|
|
933b3d3ec4 | ||
|
|
639e2e2898 | ||
|
|
ee60c7a2a5 | ||
|
|
460b45d8b0 | ||
|
|
8455f92421 | ||
|
|
81ff820c05 | ||
|
|
f4f2a502c3 | ||
|
|
ad23ec4ca6 | ||
|
|
ae0ba99459 | ||
|
|
19657d25b0 | ||
|
|
3f0206bb1f | ||
|
|
1f6d00e316 | ||
|
|
50eb8a8473 | ||
|
|
bdf489067b | ||
|
|
958ae2b987 | ||
|
|
0812acc11b | ||
|
|
94bbcc2d2a | ||
|
|
05d4be8fdf | ||
|
|
141042c59a | ||
|
|
03014f34cb | ||
|
|
81f642aba4 | ||
|
|
f740731fd6 | ||
|
|
b529941cbb | ||
|
|
9ddaf82c82 | ||
|
|
b803b7f350 | ||
|
|
2f5cec36a7 | ||
|
|
e2ab5b3f90 | ||
|
|
75a188c7d9 | ||
|
|
fe8e30296d | ||
|
|
e966fe76ee | ||
|
|
daa28cf98a | ||
|
|
1b1724b557 | ||
|
|
9b13050d01 | ||
|
|
b1dbbf0e05 | ||
|
|
6da4ca07f6 | ||
|
|
f28fc49027 | ||
|
|
ec042fc2eb | ||
|
|
c2655c8bb7 | ||
|
|
e538c669c1 | ||
|
|
990757ef62 | ||
|
|
9ec1709032 | ||
|
|
7ed9933735 | ||
|
|
25dc528e18 | ||
|
|
44982fdf74 | ||
|
|
a7a7fb1140 | ||
|
|
a3622efc15 | ||
|
|
e18131a846 | ||
|
|
4d98245769 | ||
|
|
b858817530 | ||
|
|
8303bc66f1 | ||
|
|
b6cc6ce79a | ||
|
|
f5acebbaec | ||
|
|
221c3b9ec5 | ||
|
|
5778ec7e38 | ||
|
|
2c362ebb7c | ||
|
|
fffa0db0bc | ||
|
|
9a4c45e4ab | ||
|
|
f1f0a0d1e8 | ||
|
|
97eb2ee23a | ||
|
|
c33b3e3b69 | ||
|
|
9fdae48a76 | ||
|
|
941f4b2f39 | ||
|
|
61dc565c07 | ||
|
|
b274fc1afb | ||
|
|
d118f84e71 | ||
|
|
56d10de4fd | ||
|
|
6ab783554f | ||
|
|
43eba6e35e | ||
|
|
59bb53086f | ||
|
|
07e8a24d34 | ||
|
|
faf6929503 | ||
|
|
4ac365f34b | ||
|
|
7b3ad36cb0 | ||
|
|
fb40ca64d0 | ||
|
|
e067673c51 | ||
|
|
0398a73f9b | ||
|
|
771fd915af | ||
|
|
8f11b9de6a | ||
|
|
13c10a047c | ||
|
|
8946885a22 | ||
|
|
295e535899 | ||
|
|
56da90ef85 | ||
|
|
5f8b0209a5 | ||
|
|
7227eb31fa | ||
|
|
56e29c1dde | ||
|
|
6f43aa7032 | ||
|
|
679ae324b0 | ||
|
|
0e1a68bb65 | ||
|
|
819c60a717 | ||
|
|
76cafa71df | ||
|
|
ee81099336 | ||
|
|
e6d031c4c4 | ||
|
|
f86fa7fb3b | ||
|
|
ad691a34c6 | ||
|
|
24687da134 | ||
|
|
e7f6186580 | ||
|
|
4c779bdfed | ||
|
|
2dc9446d4a | ||
|
|
83ad6aec22 | ||
|
|
f2a8cf49de | ||
|
|
9c6764ba1d | ||
|
|
baf071e527 | ||
|
|
eee8af463d | ||
|
|
ded4e11fbd | ||
|
|
e535b4bdc1 | ||
|
|
3f5cf00f74 | ||
|
|
8f13447642 | ||
|
|
719f5afdf9 | ||
|
|
df88bb78f1 | ||
|
|
2df0dcfdde | ||
|
|
afa381564e | ||
|
|
d88a5b82b4 | ||
|
|
a9796a7490 | ||
|
|
c5c5d2c79b | ||
|
|
cd37e655f3 | ||
|
|
615d9abca3 | ||
|
|
e840d74b93 | ||
|
|
e49404014d | ||
|
|
9ee39666d6 | ||
|
|
30bcccb686 | ||
|
|
fd3de66b9f | ||
|
|
487187e3c6 | ||
|
|
624801a288 | ||
|
|
cefdec7023 | ||
|
|
d0382cd1be | ||
|
|
e216b42f53 | ||
|
|
fad3406ab5 | ||
|
|
581b0cafc9 | ||
|
|
b384fb1b7b | ||
|
|
9c0878319f | ||
|
|
36c7c622e3 | ||
|
|
ac2852ba47 | ||
|
|
36001f7fd3 | ||
|
|
b6e18a95bf | ||
|
|
142b79e310 | ||
|
|
d334579ad4 | ||
|
|
381a0aed7c | ||
|
|
984b117e77 | ||
|
|
4467ff1ed1 | ||
|
|
664fe248e1 | ||
|
|
26a064faa1 | ||
|
|
37ca9f03b1 | ||
|
|
bff61ca5ba | ||
|
|
91c169e693 | ||
|
|
7741e5123e | ||
|
|
e9b2562694 | ||
|
|
e4e8bc2d9a | ||
|
|
e97695d3d8 | ||
|
|
1e8a960a17 | ||
|
|
455da1c3a8 | ||
|
|
c24ef6562f | ||
|
|
4b20d19989 | ||
|
|
a091678009 | ||
|
|
b9773ffae3 | ||
|
|
80641a82c4 | ||
|
|
2a87631629 | ||
|
|
1221e2944b | ||
|
|
0c83e15d04 | ||
|
|
63b9e771d7 | ||
|
|
34cf317fc4 | ||
|
|
e5ee3e89b2 | ||
|
|
aab3b8ecb0 | ||
|
|
1080fc90e1 | ||
|
|
1c11bb7ddc | ||
|
|
2caed65be9 | ||
|
|
409bce0eca | ||
|
|
8d6d3ca69a | ||
|
|
571388c821 | ||
|
|
f5e9c0d710 | ||
|
|
91b77c05dd | ||
|
|
8514254fd3 | ||
|
|
4ed3975973 | ||
|
|
ddfc2f6609 | ||
|
|
5ae11f3bab | ||
|
|
830e2ea81c | ||
|
|
0a5659ed09 | ||
|
|
e607106cd5 | ||
|
|
7a54020fef | ||
|
|
72d0d35274 | ||
|
|
696a87c9b0 | ||
|
|
1e0db61191 | ||
|
|
6a1d1c489b | ||
|
|
79db39b06b | ||
|
|
2e619e5aff | ||
|
|
fa9ff4f9d5 | ||
|
|
0aa9d73e8d | ||
|
|
be9319e5c4 | ||
|
|
f3e6641029 | ||
|
|
23d34210dd | ||
|
|
9d9ac8eea1 | ||
|
|
734982d608 | ||
|
|
1fee018a7f |
1
.gitignore
vendored
@@ -99,6 +99,7 @@ build/*
|
||||
!/textures/segment2/shadow_quarter_square_64.ia8.png
|
||||
|
||||
|
||||
|
||||
# libultra
|
||||
|
||||
!/lib/**/*.o
|
||||
|
||||
158
Makefile
@@ -6,9 +6,9 @@ include util.mk
|
||||
default: all
|
||||
|
||||
# Preprocessor definitions
|
||||
DEFINES :=
|
||||
DEFINES :=
|
||||
|
||||
SRC_DIRS :=
|
||||
SRC_DIRS :=
|
||||
USE_DEBUG := 0
|
||||
|
||||
#==============================================================================#
|
||||
@@ -22,7 +22,7 @@ USE_DEBUG := 0
|
||||
TARGET_N64 ?= 1
|
||||
|
||||
# CONSOLE - selects the console to target
|
||||
# bb - Targets the iQue Player (codenamed BB)
|
||||
# bb - Targets the iQue Player (codenamed BB)
|
||||
# n64 - Targets the N64
|
||||
CONSOLE ?= n64
|
||||
$(eval $(call validate-option,CONSOLE,n64 bb))
|
||||
@@ -37,24 +37,24 @@ else ifeq ($(CONSOLE),bb)
|
||||
endif
|
||||
|
||||
# COMPILER - selects the C compiler to use
|
||||
# gcc - uses the GNU C Compiler
|
||||
# gcc - uses the GNU C Compiler
|
||||
# clang - uses clang C/C++ frontend for LLVM
|
||||
COMPILER ?= gcc
|
||||
$(eval $(call validate-option,COMPILER,gcc clang))
|
||||
|
||||
|
||||
# LIBGCCDIR - selects the libgcc configuration for checking for dividing by zero
|
||||
# trap - GCC default behavior, uses teq instructions which some emulators don't like
|
||||
# LIBGCCDIR - selects the libgcc configuration for checking for dividing by zero
|
||||
# trap - GCC default behavior, uses teq instructions which some emulators don't like
|
||||
# divbreak - this is similar to IDO behavior, and is default.
|
||||
# nocheck - never checks for dividing by 0. Technically fastest, but also UB so not recommended
|
||||
# nocheck - never checks for dividing by 0. Technically fastest, but also UB so not recommended
|
||||
LIBGCCDIR ?= divbreak
|
||||
$(eval $(call validate-option,LIBGCCDIR,trap divbreak nocheck))
|
||||
|
||||
|
||||
# SAVETYPE - selects the save type
|
||||
# eep4k - uses EEPROM 4kbit
|
||||
# eep4k - uses EEPROM 4kbit
|
||||
# eep16k - uses EEPROM 16kbit (There aren't any differences in syntax, but this is provided just in case)
|
||||
# sram - uses SRAM 256Kbit
|
||||
# sram - uses SRAM 256Kbit
|
||||
SAVETYPE ?= eep4k
|
||||
$(eval $(call validate-option,SAVETYPE,eep4k eep16k sram))
|
||||
ifeq ($(SAVETYPE),eep4k)
|
||||
@@ -120,7 +120,7 @@ LIBRARIES := nustd hvqm2 z goddard
|
||||
# s2dex_text_engine - Text Engine by someone2639
|
||||
TEXT_ENGINE := none
|
||||
ifeq ($(TEXT_ENGINE), s2dex_text_engine)
|
||||
DEFINES += S2DEX_GBI_2=1 S2DEX_TEXT_ENGINE=1
|
||||
DEFINES += S2DEX_GBI_2=1 S2DEX_TEXT_ENGINE=1
|
||||
LIBRARIES += s2d_engine
|
||||
DUMMY != make -C src/s2d_engine COPY_DIR=$(shell pwd)/lib/
|
||||
endif
|
||||
@@ -128,20 +128,78 @@ endif
|
||||
|
||||
LINK_LIBRARIES = $(foreach i,$(LIBRARIES),-l$(i))
|
||||
|
||||
|
||||
#==============================================================================#
|
||||
# Optimization flags #
|
||||
#==============================================================================#
|
||||
|
||||
# Default non-gcc opt flags
|
||||
DEFAULT_OPT_FLAGS = -Ofast
|
||||
|
||||
# Main opt flags
|
||||
GCC_MAIN_OPT_FLAGS = \
|
||||
-Ofast \
|
||||
--param case-values-threshold=20 \
|
||||
--param max-completely-peeled-insns=10 \
|
||||
--param max-unrolled-insns=10 \
|
||||
-finline-limit=1 \
|
||||
-freorder-blocks-algorithm=simple \
|
||||
-ffunction-sections \
|
||||
-fdata-sections
|
||||
|
||||
# Surface Collision
|
||||
GCC_COLLISION_OPT_FLAGS = \
|
||||
-Ofast \
|
||||
--param case-values-threshold=20 \
|
||||
--param max-completely-peeled-insns=100 \
|
||||
--param max-unrolled-insns=100 \
|
||||
-finline-limit=0 \
|
||||
-fno-inline \
|
||||
-freorder-blocks-algorithm=simple \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-falign-functions=32
|
||||
|
||||
# Math Util
|
||||
GCC_MATH_UTIL_OPT_FLAGS = \
|
||||
-Ofast \
|
||||
-fno-unroll-loops \
|
||||
-fno-peel-loops \
|
||||
--param case-values-threshold=20 \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-falign-functions=32
|
||||
# - setting any sort of -finline-limit has shown to worsen performance with math_util.c,
|
||||
# lower values were the worst, the higher you go - the closer performance gets to not setting it at all
|
||||
|
||||
# Rendering graph node
|
||||
GCC_GRAPH_NODE_OPT_FLAGS = \
|
||||
-Ofast \
|
||||
--param case-values-threshold=20 \
|
||||
--param max-completely-peeled-insns=100 \
|
||||
--param max-unrolled-insns=100 \
|
||||
-finline-limit=0 \
|
||||
-freorder-blocks-algorithm=simple \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-falign-functions=32
|
||||
#==============================================================================#
|
||||
|
||||
ifeq ($(COMPILER),gcc)
|
||||
NON_MATCHING := 1
|
||||
MIPSISET := -mips3
|
||||
OPT_FLAGS := \
|
||||
-Ofast \
|
||||
--param case-values-threshold=20 \
|
||||
--param max-completely-peeled-insns=10 \
|
||||
--param max-unrolled-insns=10 \
|
||||
-finline-limit=1
|
||||
OPT_FLAGS := $(GCC_MAIN_OPT_FLAGS)
|
||||
COLLISION_OPT_FLAGS = $(GCC_COLLISION_OPT_FLAGS)
|
||||
MATH_UTIL_OPT_FLAGS = $(GCC_MATH_UTIL_OPT_FLAGS)
|
||||
GRAPH_NODE_OPT_FLAGS = $(GCC_GRAPH_NODE_OPT_FLAGS)
|
||||
else ifeq ($(COMPILER),clang)
|
||||
NON_MATCHING := 1
|
||||
# clang doesn't support ABI 'o32' for 'mips3'
|
||||
MIPSISET := -mips2
|
||||
OPT_FLAGS := -Ofast
|
||||
OPT_FLAGS := $(DEFAULT_OPT_FLAGS)
|
||||
COLLISION_OPT_FLAGS = $(DEFAULT_OPT_FLAGS)
|
||||
MATH_UTIL_OPT_FLAGS = $(DEFAULT_OPT_FLAGS)
|
||||
GRAPH_NODE_OPT_FLAGS = $(DEFAULT_OPT_FLAGS)
|
||||
endif
|
||||
|
||||
|
||||
@@ -164,11 +222,11 @@ TARGET_STRING := sm64
|
||||
|
||||
# UNF - whether to use UNFLoader flashcart library
|
||||
# 1 - includes code in ROM
|
||||
# 0 - does not
|
||||
# 0 - does not
|
||||
UNF ?= 0
|
||||
$(eval $(call validate-option,UNF,0 1))
|
||||
ifeq ($(UNF),1)
|
||||
DEFINES += UNF=1
|
||||
DEFINES += UNF=1
|
||||
SRC_DIRS += src/usb
|
||||
USE_DEBUG := 1
|
||||
endif
|
||||
@@ -176,7 +234,7 @@ endif
|
||||
# ISVPRINT - whether to fake IS-Viewer presence,
|
||||
# allowing for usage of CEN64 (and possibly Project64) to print messages to terminal.
|
||||
# 1 - includes code in ROM
|
||||
# 0 - does not
|
||||
# 0 - does not
|
||||
ISVPRINT ?= 0
|
||||
$(eval $(call validate-option,ISVPRINT,0 1))
|
||||
ifeq ($(ISVPRINT),1)
|
||||
@@ -194,14 +252,18 @@ endif
|
||||
|
||||
# HVQM - whether to use HVQM fmv library
|
||||
# 1 - includes code in ROM
|
||||
# 0 - does not
|
||||
# 0 - does not
|
||||
HVQM ?= 0
|
||||
$(eval $(call validate-option,HVQM,0 1))
|
||||
ifeq ($(HVQM),1)
|
||||
DEFINES += HVQM=1
|
||||
DEFINES += HVQM=1
|
||||
SRC_DIRS += src/hvqm
|
||||
endif
|
||||
|
||||
BUILD_DIR_BASE := build
|
||||
# BUILD_DIR is the location where all build artifacts are placed
|
||||
BUILD_DIR := $(BUILD_DIR_BASE)/$(VERSION)_$(CONSOLE)
|
||||
|
||||
COMPRESS ?= rnc1
|
||||
$(eval $(call validate-option,COMPRESS,mio0 yay0 gzip rnc1 rnc2 uncomp))
|
||||
ifeq ($(COMPRESS),gzip)
|
||||
@@ -225,7 +287,7 @@ $(eval $(call validate-option,GZIPVER,std libdef))
|
||||
|
||||
# GODDARD - whether to use libgoddard (Mario Head)
|
||||
# 1 - includes code in ROM
|
||||
# 0 - does not
|
||||
# 0 - does not
|
||||
GODDARD ?= 0
|
||||
$(eval $(call validate-option,GODDARD,0 1))
|
||||
ifeq ($(GODDARD),1)
|
||||
@@ -309,7 +371,7 @@ include Makefile.split
|
||||
# Source code files
|
||||
LEVEL_C_FILES := $(wildcard levels/*/leveldata.c) $(wildcard levels/*/script.c) $(wildcard levels/*/geo.c)
|
||||
C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c)) $(LEVEL_C_FILES)
|
||||
LIBZ_C_FILES := $(foreach dir,$(LIBZ_SRC_DIRS),$(wildcard $(dir)/*.c))
|
||||
LIBZ_C_FILES := $(foreach dir,$(LIBZ_SRC_DIRS),$(wildcard $(dir)/*.c))
|
||||
GODDARD_C_FILES := $(foreach dir,$(GODDARD_SRC_DIRS),$(wildcard $(dir)/*.c))
|
||||
S_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.s))
|
||||
GENERATED_C_FILES := $(BUILD_DIR)/assets/mario_anim_data.c $(BUILD_DIR)/assets/demo_data.c
|
||||
@@ -334,7 +396,7 @@ O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \
|
||||
$(foreach file,$(GENERATED_C_FILES),$(file:.c=.o)) \
|
||||
lib/PR/hvqm/hvqm2sp1.o lib/PR/hvqm/hvqm2sp2.o
|
||||
|
||||
LIBZ_O_FILES := $(foreach file,$(LIBZ_C_FILES),$(BUILD_DIR)/$(file:.c=.o))
|
||||
LIBZ_O_FILES := $(foreach file,$(LIBZ_C_FILES),$(BUILD_DIR)/$(file:.c=.o))
|
||||
GODDARD_O_FILES := $(foreach file,$(GODDARD_C_FILES),$(BUILD_DIR)/$(file:.c=.o))
|
||||
|
||||
# Automatic dependency files
|
||||
@@ -402,9 +464,11 @@ 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
|
||||
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
|
||||
CFLAGS += -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
|
||||
CFLAGS += -mfpxx -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
|
||||
CFLAGS += -Wno-missing-braces
|
||||
else
|
||||
CFLAGS += -non_shared -Wab,-r4300_mul -Xcpluscomm -Xfullwarn -signed -32
|
||||
endif
|
||||
@@ -447,7 +511,7 @@ else
|
||||
RSPASM := $(TOOLS_DIR)/armips
|
||||
endif
|
||||
ENDIAN_BITWIDTH := $(BUILD_DIR)/endian-and-bitwidth
|
||||
EMULATOR = ~/Downloads/mupen64plus/mupen64plus-gui
|
||||
EMULATOR = mupen64plus
|
||||
EMU_FLAGS =
|
||||
LOADER = loader64
|
||||
LOADER_FLAGS = -vwf
|
||||
@@ -498,6 +562,7 @@ test: $(ROM)
|
||||
|
||||
test-pj64: $(ROM)
|
||||
wine ~/Desktop/new64/Project64.exe $<
|
||||
# someone2639
|
||||
|
||||
load: $(ROM)
|
||||
$(LOADER) $(LOADER_FLAGS) $<
|
||||
@@ -546,33 +611,21 @@ else
|
||||
endif
|
||||
endif
|
||||
|
||||
$(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/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
|
||||
# File specific opt flags
|
||||
$(BUILD_DIR)/src/audio/*.o: OPT_FLAGS := -Os -fno-jump-tables
|
||||
# Surface Collision
|
||||
$(BUILD_DIR)/src/engine/surface_collision.o: OPT_FLAGS := \
|
||||
-Ofast \
|
||||
--param case-values-threshold=20 \
|
||||
--param max-completely-peeled-insns=100 \
|
||||
--param max-unrolled-insns=100 \
|
||||
-finline-limit=0
|
||||
|
||||
# Math Util
|
||||
$(BUILD_DIR)/src/engine/math_util.o: OPT_FLAGS := \
|
||||
-Ofast \
|
||||
-fno-unroll-loops \
|
||||
-fno-peel-loops \
|
||||
--param case-values-threshold=20
|
||||
# - setting any sort of -finline-limit has shown to worsen performance, lower values were the worst, the higher you go - the closer performance gets to not setting it at all
|
||||
$(BUILD_DIR)/src/engine/surface_collision.o: OPT_FLAGS := $(COLLISION_OPT_FLAGS)
|
||||
$(BUILD_DIR)/src/engine/math_util.o: OPT_FLAGS := $(MATH_UTIL_OPT_FLAGS)
|
||||
$(BUILD_DIR)/src/game/rendering_graph_node.o: OPT_FLAGS := $(GRAPH_NODE_OPT_FLAGS)
|
||||
|
||||
$(BUILD_DIR)/src/game/rendering_graph_node.o: OPT_FLAGS := \
|
||||
-Ofast \
|
||||
--param case-values-threshold=20 \
|
||||
--param max-completely-peeled-insns=100 \
|
||||
--param max-unrolled-insns=100 \
|
||||
-finline-limit=0
|
||||
# $(info OPT_FLAGS: $(OPT_FLAGS))
|
||||
# $(info COLLISION_OPT_FLAGS: $(COLLISION_OPT_FLAGS))
|
||||
# $(info MATH_UTIL_OPT_FLAGS: $(MATH_UTIL_OPT_FLAGS))
|
||||
# $(info GRAPH_NODE_OPT_FLAGS: $(GRAPH_NODE_OPT_FLAGS))
|
||||
|
||||
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)
|
||||
|
||||
@@ -586,6 +639,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 #
|
||||
#==============================================================================#
|
||||
|
||||
24
README.md
@@ -1,7 +1,5 @@
|
||||
#  HackerSM64 
|
||||
|
||||
**[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
|
||||
@@ -12,6 +10,28 @@ This repo needs gcc in order to be able to build it. To install it, run `sudo ap
|
||||
|
||||
This is a fork of the ultrasm64 repo by CrashOveride which includes the following commonly used patches (patches marked with `*` are toggleable in `config.h`):
|
||||
|
||||
**Credits**
|
||||
- **ArcticJaguar725**: Most audio configuration and layout changes, colored ia4 text, floombas, a bunch of random bugfixes, and more
|
||||
- **CowQuack**: Adjustable skybox sizes, area-specific skybox function
|
||||
- **thecozies**: Water surface types, general maintenance, and time
|
||||
- **MrComit**: General use object defines, JUMP_KICK_FIX, LEDGE_GRABS_CHECK_SLOPE_ANGLE
|
||||
- **aglab2**: bugfixes (particularly puppycam), refactor stuff
|
||||
- **someone2639**: math.s and crash screen disam, stack trace, map packing, shiftable segments 2, S2DEX engine
|
||||
- **Arthurtilly**: Platform Displacement 2
|
||||
- **Fazana**: PuppyLib, ucode swapping, Audio load time optimisations (with Arctic), general hacker qol improvements, visual debug
|
||||
- **Reonu**: Starting the project/repo, widescreen, various defines for hacker QoL
|
||||
- **JoshDuMan**: decomp guy, general assistance
|
||||
- **Arceveti**: silhouette, shadow optimisation, better hanging, breath meter
|
||||
- **axollyon**: Console testing, bugfixes, idea-guying, and had a hand in silhouettes
|
||||
- **Wiseguy**: 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` repo
|
||||
- **falcobuster**: coordinate overflow fix (world scale), ASM version of extended bounds
|
||||
- **anonymous_moose**: porting falco's extended bounds to decomp
|
||||
|
||||
Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
|
||||
|
||||
**Lighting Engine by Wiseguy**
|
||||
- Lighting Engine is available on a separate branch `(lighting-engine)`. Instructions on how to use it are in the readme of that branch.
|
||||
- Alternatively, the main repo has `Puppylights` available, which is a more lightweight, but limited lighting library intended to be used to modify existing light properties. You can look at `puppylights.c` to find out how to use it.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// unreferenced animation
|
||||
// unreferenced
|
||||
// 0x0500616C
|
||||
const struct Animation *const blargg_seg5_anims_0500616C[] = {
|
||||
&blargg_seg5_anim_05006154,
|
||||
|
||||
@@ -6,9 +6,9 @@ const GeoLayout fish_shadow_geo[] = {
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, -16, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, blue_fish_seg3_dl_body),
|
||||
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, blue_fish_seg3_dl_0301BFB8),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 97, 0, 0, blue_fish_seg3_dl_tail),
|
||||
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 97, 0, 0, blue_fish_seg3_dl_0301C150),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
@@ -22,9 +22,9 @@ const GeoLayout fish_geo[] = {
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, -16, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, blue_fish_seg3_dl_body),
|
||||
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, blue_fish_seg3_dl_0301BFB8),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 97, 0, 0, blue_fish_seg3_dl_tail),
|
||||
GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 97, 0, 0, blue_fish_seg3_dl_0301C150),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
|
||||
@@ -12,44 +12,48 @@ ALIGNED8 static const Texture blue_fish_seg3_texture_0301B5E0[] = {
|
||||
};
|
||||
|
||||
// 0x0301BDE0
|
||||
static const Vtx blue_fish_seg3_vertex_body[] = {
|
||||
{{{ -108, 1, 0}, 0, { 14, 566}, {0x89, 0x00, 0xd7, 0xff}}}, // 0
|
||||
{{{ -62, -19, 12}, 0, { 210, 502}, {0xe8, 0x84, 0x0a, 0xff}}}, // 1
|
||||
{{{ -62, 21, 12}, 0, { 210, 502}, {0xe8, 0x7c, 0x0b, 0xff}}}, // 2
|
||||
{{{ -47, 1, -64}, 0, { 274, 830}, {0xbd, 0xff, 0x95, 0xff}}}, // 3
|
||||
{{{ -97, 1, 23}, 0, { 62, 462}, {0xa2, 0x00, 0x54, 0xff}}}, // 4
|
||||
{{{ 55, 1, 127}, 0, { 712, -8}, {0x1a, 0x00, 0x7c, 0xff}}}, // 5
|
||||
{{{ 41, 16, 56}, 0, { 656, 298}, {0x43, 0x67, 0x1b, 0xff}}}, // 6
|
||||
{{{ 50, 16, -43}, 0, { 692, 722}, {0x35, 0x6f, 0xe6, 0xff}}}, // 7
|
||||
{{{ 41, -14, 56}, 0, { 656, 298}, {0x43, 0x99, 0x1b, 0xff}}}, // 8
|
||||
{{{ 50, -13, -43}, 0, { 692, 722}, {0x35, 0x91, 0xe6, 0xff}}}, // 9
|
||||
{{{ 62, 1, -92}, 0, { 742, 930}, {0x42, 0xff, 0x94, 0xff}}}, // 10
|
||||
{{{ 101, 1, 1}, 0, { 910, 520}, {0x7e, 0x00, 0x01, 0xff}}}, // 11
|
||||
static const Vtx blue_fish_seg3_vertex_0301BDE0[] = {
|
||||
{{{ -108, 1, 0}, 0, { 14, 566}, {0x89, 0x00, 0xd7, 0xff}}},
|
||||
{{{ -44, -13, -31}, 0, { 286, 688}, {0xeb, 0x89, 0xdc, 0xff}}},
|
||||
{{{ -62, -19, 12}, 0, { 210, 502}, {0xe8, 0x84, 0x0a, 0xff}}},
|
||||
{{{ -44, 16, -31}, 0, { 286, 688}, {0xea, 0x77, 0xdc, 0xff}}},
|
||||
{{{ -62, 21, 12}, 0, { 210, 502}, {0xe8, 0x7c, 0x0b, 0xff}}},
|
||||
{{{ -47, 1, -64}, 0, { 274, 830}, {0xbd, 0xff, 0x95, 0xff}}},
|
||||
{{{ -97, 1, 23}, 0, { 62, 462}, {0xa2, 0x00, 0x54, 0xff}}},
|
||||
{{{ 55, 1, 127}, 0, { 712, -8}, {0x1a, 0x00, 0x7c, 0xff}}},
|
||||
{{{ 41, 16, 56}, 0, { 656, 298}, {0x43, 0x67, 0x1b, 0xff}}},
|
||||
{{{ 50, 16, -43}, 0, { 692, 722}, {0x35, 0x6f, 0xe6, 0xff}}},
|
||||
{{{ 41, -14, 56}, 0, { 656, 298}, {0x43, 0x99, 0x1b, 0xff}}},
|
||||
{{{ 50, -13, -43}, 0, { 692, 722}, {0x35, 0x91, 0xe6, 0xff}}},
|
||||
{{{ 62, 1, -92}, 0, { 742, 930}, {0x42, 0xff, 0x94, 0xff}}},
|
||||
{{{ 101, 1, 1}, 0, { 910, 520}, {0x7e, 0x00, 0x01, 0xff}}},
|
||||
};
|
||||
|
||||
// 0x0301BEC0 - 0x0301BFB8
|
||||
const Gfx blue_fish_seg3_sub_dl_body[] = {
|
||||
const Gfx blue_fish_seg3_dl_0301BEC0[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, blue_fish_seg3_texture_0301B5E0),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&blue_fish_seg3_lights_0301B5C8.l, 1),
|
||||
gsSPLight(&blue_fish_seg3_lights_0301B5C8.a, 2),
|
||||
gsSPVertex(blue_fish_seg3_vertex_body, 12, 0),
|
||||
gsSP2Triangles( 3, 0, 2, 0x0, 1, 4, 0, 0x0),
|
||||
gsSP2Triangles( 0, 4, 2, 0x0, 3, 1, 0, 0x0),
|
||||
gsSP2Triangles( 2, 4, 5, 0x0, 4, 1, 5, 0x0),
|
||||
gsSP2Triangles( 5, 6, 2, 0x0, 7, 2, 6, 0x0),
|
||||
gsSP2Triangles( 1, 8, 5, 0x0, 9, 8, 1, 0x0),
|
||||
gsSP2Triangles( 1, 3, 10, 0x0, 10, 3, 2, 0x0),
|
||||
gsSP2Triangles( 7, 9, 10, 0x0, 2, 7, 10, 0x0),
|
||||
gsSP2Triangles(10, 9, 1, 0x0, 6, 5, 8, 0x0),
|
||||
gsSP2Triangles(11, 7, 6, 0x0, 7, 11, 9, 0x0),
|
||||
gsSP2Triangles( 9, 11, 8, 0x0, 8, 11, 6, 0x0),
|
||||
gsSPVertex(blue_fish_seg3_vertex_0301BDE0, 14, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0),
|
||||
gsSP2Triangles( 5, 0, 3, 0x0, 2, 6, 0, 0x0),
|
||||
gsSP2Triangles( 0, 6, 4, 0x0, 5, 1, 0, 0x0),
|
||||
gsSP2Triangles( 4, 6, 7, 0x0, 6, 2, 7, 0x0),
|
||||
gsSP2Triangles( 7, 8, 4, 0x0, 9, 4, 8, 0x0),
|
||||
gsSP2Triangles( 9, 3, 4, 0x0, 2, 10, 7, 0x0),
|
||||
gsSP2Triangles( 1, 11, 2, 0x0, 11, 10, 2, 0x0),
|
||||
gsSP2Triangles( 1, 5, 12, 0x0, 12, 5, 3, 0x0),
|
||||
gsSP2Triangles( 9, 11, 12, 0x0, 3, 9, 12, 0x0),
|
||||
gsSP2Triangles(12, 11, 1, 0x0, 8, 7, 10, 0x0),
|
||||
gsSP2Triangles(13, 9, 8, 0x0, 9, 13, 11, 0x0),
|
||||
gsSP2Triangles(11, 13, 10, 0x0, 10, 13, 8, 0x0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
// 0x0301BFB8 - 0x0301C018
|
||||
const Gfx blue_fish_seg3_dl_body[] = {
|
||||
const Gfx blue_fish_seg3_dl_0301BFB8[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
|
||||
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),
|
||||
@@ -57,7 +61,7 @@ const Gfx blue_fish_seg3_dl_body[] = {
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
|
||||
gsSPDisplayList(blue_fish_seg3_sub_dl_body),
|
||||
gsSPDisplayList(blue_fish_seg3_dl_0301BEC0),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
|
||||
@@ -65,42 +69,48 @@ const Gfx blue_fish_seg3_dl_body[] = {
|
||||
};
|
||||
|
||||
// 0x0301C018
|
||||
static const Vtx blue_fish_seg3_vertex_tail[] = {
|
||||
{{{ 67, 0, -58}, 0, { 736, 728}, {0x7a, 0x00, 0xde, 0xff}}}, // 0 bottom tip
|
||||
{{{ 67, 0, -28}, 0, { 704, 574}, {0x54, 0x7f, 0x14, 0xff}}}, // 1 lower
|
||||
{{{ 0, 0, 0}, 0, { 1019, 336}, {0xa0, 0xfb, 0x7e, 0xff}}}, // 2 joint
|
||||
{{{ 53, 0, 0}, 0, { 744, 414}, {0x7e, 0x00, 0xfe, 0xff}}}, // 3 middle
|
||||
{{{ 67, 0, 27}, 0, { 644, 290}, {0x40, 0x7f, 0xef, 0xff}}}, // 4 upper
|
||||
{{{ 67, 0, 57}, 0, { 612, 138}, {0x7a, 0x00, 0x22, 0xff}}}, // 5 top tip
|
||||
static const Vtx blue_fish_seg3_vertex_0301C018[] = {
|
||||
{{{ 67, 0, -58}, 0, { 736, 728}, {0x7a, 0x00, 0xde, 0xff}}},
|
||||
{{{ 67, -3, -28}, 0, { 704, 574}, {0x53, 0xa3, 0x14, 0xff}}},
|
||||
{{{ 0, 1, -3}, 0, { 1022, 356}, {0xa1, 0xf9, 0xad, 0xff}}},
|
||||
{{{ 67, 4, 27}, 0, { 644, 290}, {0x3f, 0x6d, 0xf3, 0xff}}},
|
||||
{{{ 53, 0, 0}, 0, { 744, 414}, {0x7e, 0x00, 0xfe, 0xff}}},
|
||||
{{{ 67, -3, 27}, 0, { 644, 290}, {0x40, 0x95, 0xeb, 0xff}}},
|
||||
{{{ 0, 0, 5}, 0, { 1016, 312}, {0x9e, 0xfd, 0x50, 0xff}}},
|
||||
{{{ 67, 4, -28}, 0, { 704, 574}, {0x54, 0x5c, 0x15, 0xff}}},
|
||||
{{{ 67, 0, 57}, 0, { 612, 138}, {0x7a, 0x00, 0x22, 0xff}}},
|
||||
};
|
||||
|
||||
// 0x0301C0A8 - 0x0301C150
|
||||
const Gfx blue_fish_seg3_sub_dl_tail[] = {
|
||||
const Gfx blue_fish_seg3_dl_0301C0A8[] = {
|
||||
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, blue_fish_seg3_texture_0301B5E0),
|
||||
gsDPLoadSync(),
|
||||
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
|
||||
gsSPLight(&blue_fish_seg3_lights_0301B5C8.l, 1),
|
||||
gsSPLight(&blue_fish_seg3_lights_0301B5C8.a, 2),
|
||||
gsSPVertex(blue_fish_seg3_vertex_tail, 6, 0),
|
||||
gsSP2Triangles( 2, 4, 3, 0x0, 3, 1, 2, 0x0),
|
||||
gsSP2Triangles( 2, 1, 0, 0x0, 2, 5, 4, 0x0),
|
||||
gsSPVertex(blue_fish_seg3_vertex_0301C018, 9, 0),
|
||||
gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0),
|
||||
gsSP2Triangles( 4, 5, 2, 0x0, 2, 5, 6, 0x0),
|
||||
gsSP2Triangles( 2, 1, 4, 0x0, 2, 6, 3, 0x0),
|
||||
gsSP2Triangles( 4, 7, 2, 0x0, 2, 7, 0, 0x0),
|
||||
gsSP2Triangles( 6, 8, 3, 0x0, 3, 8, 5, 0x0),
|
||||
gsSP2Triangles( 3, 5, 4, 0x0, 4, 1, 7, 0x0),
|
||||
gsSP2Triangles( 6, 5, 8, 0x0, 1, 0, 7, 0x0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
// 0x0301C150 - 0x0301C1B0
|
||||
const Gfx blue_fish_seg3_dl_tail[] = {
|
||||
const Gfx blue_fish_seg3_dl_0301C150[] = {
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
|
||||
gsSPClearGeometryMode(G_CULL_BACK),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
||||
gsDPTileSync(),
|
||||
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD),
|
||||
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
|
||||
gsSPDisplayList(blue_fish_seg3_sub_dl_tail),
|
||||
gsSPDisplayList(blue_fish_seg3_dl_0301C0A8),
|
||||
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
|
||||
gsSPSetGeometryMode(G_CULL_BACK),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
const Collision breakable_box_seg8_collision[] = {
|
||||
COL_INIT(),
|
||||
COL_VERTEX_INIT(0x8),
|
||||
COL_VERTEX(-100, 0, -100),
|
||||
COL_VERTEX(-100, 0, 100),
|
||||
COL_VERTEX(-100, 200, 100),
|
||||
COL_VERTEX( 100, 0, 100),
|
||||
COL_VERTEX( 100, 200, 100),
|
||||
COL_VERTEX( 100, 0, -100),
|
||||
COL_VERTEX( 100, 200, -100),
|
||||
COL_VERTEX(-100, 0, -100),
|
||||
COL_VERTEX(-100, 0, 100),
|
||||
COL_VERTEX(-100, 200, 100),
|
||||
COL_VERTEX(100, 0, 100),
|
||||
COL_VERTEX(100, 200, 100),
|
||||
COL_VERTEX(100, 0, -100),
|
||||
COL_VERTEX(100, 200, -100),
|
||||
COL_VERTEX(-100, 200, -100),
|
||||
|
||||
COL_TRI_INIT(SURFACE_NO_CAM_COLLISION, 12),
|
||||
@@ -29,3 +29,6 @@ const Collision breakable_box_seg8_collision[] = {
|
||||
COL_TRI_STOP(),
|
||||
COL_END(),
|
||||
};
|
||||
|
||||
UNUSED static const u32 breakable_box_unused_1 = 0;
|
||||
UNUSED static const u64 breakable_box_unused_2 = 0;
|
||||
|
||||
@@ -2,6 +2,9 @@
|
||||
// It's possible that bubba and bub used to be 2 "actors" in
|
||||
// one actor file.
|
||||
|
||||
// Bin ID? What is this?
|
||||
UNUSED static const u64 bubba_unused_1 = 0;
|
||||
|
||||
// Bubba
|
||||
|
||||
// 0x05000008
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
// Empty geo script
|
||||
UNUSED static const u64 cannon_lid_unused_1 = 0;
|
||||
|
||||
@@ -9,6 +9,9 @@ static const Vtx chain_ball_seg6_vertex_06020AA0[] = {
|
||||
{{{ -26, 26, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
|
||||
};
|
||||
|
||||
// align? binid?
|
||||
UNUSED static const u64 chain_ball_unused_1 = 0;
|
||||
|
||||
// 0x06020AE8
|
||||
ALIGNED8 static const Texture chain_ball_seg6_texture_06020AE8[] = {
|
||||
#include "actors/chain_ball/chain_ball.rgba16.inc.c"
|
||||
|
||||
@@ -21,7 +21,7 @@ ALIGNED8 static const Texture chair_seg5_texture_05004060[] = {
|
||||
#include "actors/chair/chair_bottom.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// unreferenced texture
|
||||
// unreferenced
|
||||
// 0x05004460
|
||||
UNUSED ALIGNED8 static const Texture chair_seg5_texture_05004460[] = {
|
||||
#include "actors/chair/chair_surface_unused.rgba16.inc.c"
|
||||
|
||||
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 8.1 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 12 KiB |
@@ -6,10 +6,10 @@
|
||||
// blue_fish
|
||||
extern const GeoLayout fish_shadow_geo[];
|
||||
extern const GeoLayout fish_geo[];
|
||||
extern const Gfx blue_fish_seg3_sub_dl_body[];
|
||||
extern const Gfx blue_fish_seg3_dl_body[];
|
||||
extern const Gfx blue_fish_seg3_sub_dl_tail[];
|
||||
extern const Gfx blue_fish_seg3_dl_tail[];
|
||||
extern const Gfx blue_fish_seg3_dl_0301BEC0[];
|
||||
extern const Gfx blue_fish_seg3_dl_0301BFB8[];
|
||||
extern const Gfx blue_fish_seg3_dl_0301C0A8[];
|
||||
extern const Gfx blue_fish_seg3_dl_0301C150[];
|
||||
extern const struct Animation *const blue_fish_seg3_anims_0301C2B0[];
|
||||
|
||||
// bowser_key
|
||||
@@ -133,12 +133,9 @@ extern const Gfx door_seg3_dl_one_star_near[];
|
||||
extern const Gfx door_seg3_dl_one_star_far[];
|
||||
extern const Gfx door_seg3_dl_three_stars_near[];
|
||||
extern const Gfx door_seg3_dl_three_stars_far[];
|
||||
extern const Gfx door_seg3_sub_dl_lock_begin[];
|
||||
extern const Gfx door_seg3_sub_dl_lock_end[];
|
||||
extern const Gfx door_seg3_dl_lock_far[];
|
||||
extern const Gfx door_seg3_dl_lock_near[];
|
||||
extern const Gfx door_seg3_dl_key_door[];
|
||||
extern const Gfx door_seg3_sub_dl_themed_handle_near[];
|
||||
extern const Gfx door_seg3_sub_dl_themed_door_overlay[];
|
||||
extern const Gfx door_seg3_sub_dl_themed_door_sides[];
|
||||
extern const Gfx door_seg3_sub_dl_themed_door[];
|
||||
extern const Gfx door_seg3_sub_dl_themed_door_begin[];
|
||||
extern const Gfx door_seg3_dl_rough_wooden_door_near[];
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
// Cyan Fish
|
||||
|
||||
// ???
|
||||
UNUSED static const u64 cyan_fish_unused_1 = 0;
|
||||
|
||||
// 0x0600D468
|
||||
ALIGNED8 static const Texture cyan_fish_seg6_texture_0600D468[] = {
|
||||
#include "actors/cyan_fish/cyan_fish.rgba16.inc.c"
|
||||
|
||||
@@ -189,6 +189,7 @@ const GeoLayout castle_door_0_star_geo[] = {
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, -300, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_OPEN_NODE(),
|
||||
#ifndef AUTO_LOD
|
||||
GEO_RENDER_RANGE(-2048, 1000),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, door_seg3_dl_polished_wooden_door_near),
|
||||
@@ -197,6 +198,7 @@ const GeoLayout castle_door_0_star_geo[] = {
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_RENDER_RANGE(1000, 32767),
|
||||
#endif
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, door_seg3_dl_polished_wooden_door_near),
|
||||
GEO_OPEN_NODE(),
|
||||
@@ -221,6 +223,7 @@ const GeoLayout castle_door_1_star_geo[] = {
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, -300, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_OPEN_NODE(),
|
||||
#ifndef AUTO_LOD
|
||||
GEO_RENDER_RANGE(-2048, 1000),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, door_seg3_dl_polished_wooden_door_near),
|
||||
@@ -229,6 +232,7 @@ const GeoLayout castle_door_1_star_geo[] = {
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_RENDER_RANGE(1000, 32767),
|
||||
#endif
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, door_seg3_dl_polished_wooden_door_near),
|
||||
GEO_OPEN_NODE(),
|
||||
@@ -253,6 +257,7 @@ const GeoLayout castle_door_3_stars_geo[] = {
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, -300, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_OPEN_NODE(),
|
||||
#ifndef AUTO_LOD
|
||||
GEO_RENDER_RANGE(-2048, 1000),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, door_seg3_dl_polished_wooden_door_near),
|
||||
@@ -261,6 +266,7 @@ const GeoLayout castle_door_3_stars_geo[] = {
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_RENDER_RANGE(1000, 32767),
|
||||
#endif
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, door_seg3_dl_polished_wooden_door_near),
|
||||
GEO_OPEN_NODE(),
|
||||
@@ -285,20 +291,7 @@ const GeoLayout key_door_geo[] = {
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, -300, 0, 0, NULL),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_RENDER_RANGE(-2048, 1000),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, door_seg3_dl_polished_wooden_door_near),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_OPAQUE, door_seg3_dl_lock_near),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_RENDER_RANGE(1000, 32767),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, door_seg3_dl_polished_wooden_door_near),
|
||||
GEO_OPEN_NODE(),
|
||||
GEO_DISPLAY_LIST(LAYER_OPAQUE_DECAL, door_seg3_dl_lock_far),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, door_seg3_dl_key_door),
|
||||
GEO_CLOSE_NODE(),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
|
||||
GEO_ANIMATED_PART(LAYER_OPAQUE, 0, 0, 0, NULL),
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
// Flyguy
|
||||
|
||||
// ???
|
||||
UNUSED static const u64 flyguy_unused_1 = 0;
|
||||
|
||||
// 0x0800E088
|
||||
ALIGNED8 static const Texture flyguy_seg8_texture_0800E088[] = {
|
||||
#include "actors/flyguy/flyguy_cloth_wrinkle.rgba16.inc.c"
|
||||
|
||||