You've already forked HackerSM64
mirror of
https://github.com/HackerN64/HackerSM64.git
synced 2026-01-21 10:35:32 -08:00
Compare commits
1 Commits
develop/3.
...
flips_fix
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4f1a08ada2 |
138
.gitignore
vendored
138
.gitignore
vendored
@@ -528,26 +528,21 @@ assets/demos/pss.bin
|
||||
assets/demos/unused.bin
|
||||
assets/demos/wf.bin
|
||||
levels/bbh/0.rgba16.png
|
||||
actors/vanilla_actors/bbh/0.rgba16.png
|
||||
levels/bbh/1.rgba16.png
|
||||
levels/bbh/2.rgba16.png
|
||||
levels/bbh/3.rgba16.png
|
||||
actors/vanilla_actors/bbh/4.rgba16.png
|
||||
actors/vanilla_actors/bbh/5.rgba16.png
|
||||
actors/vanilla_actors/bbh/6.rgba16.png
|
||||
actors/vanilla_actors/bitdw/0.rgba16.png
|
||||
levels/bbh/4.rgba16.png
|
||||
levels/bbh/5.rgba16.png
|
||||
levels/bbh/6.rgba16.png
|
||||
levels/bitdw/0.rgba16.png
|
||||
levels/bitdw/1.rgba16.png
|
||||
levels/bitdw/2.rgba16.png
|
||||
levels/bitdw/3.rgba16.png
|
||||
actors/vanilla_actors/bitfs/0.rgba16.png
|
||||
levels/bitfs/0.rgba16.png
|
||||
actors/vanilla_actors/bitfs/1.rgba16.png
|
||||
levels/bitfs/1.rgba16.png
|
||||
levels/bitfs/2.rgba16.png
|
||||
levels/bits/0.rgba16.png
|
||||
levels/bits/1.rgba16.png
|
||||
actors/vanilla_actors/bits/2.rgba16.png
|
||||
levels/bits/2.rgba16.png
|
||||
levels/bob/0.rgba16.png
|
||||
levels/bob/1.rgba16.png
|
||||
@@ -564,9 +559,9 @@ levels/bowser_3/2.rgba16.png
|
||||
levels/castle_grounds/0.rgba16.png
|
||||
levels/castle_grounds/1.rgba16.png
|
||||
levels/castle_grounds/2.rgba16.png
|
||||
actors/vanilla_actors/castle_grounds/3.rgba16.png
|
||||
actors/vanilla_actors/castle_grounds/4.rgba16.png
|
||||
actors/vanilla_actors/castle_grounds/5.ia8.png
|
||||
levels/castle_grounds/3.rgba16.png
|
||||
levels/castle_grounds/4.rgba16.png
|
||||
levels/castle_grounds/5.ia8.png
|
||||
levels/castle_inside/1.rgba16.png
|
||||
levels/castle_inside/10.rgba16.png
|
||||
levels/castle_inside/11.rgba16.png
|
||||
@@ -604,25 +599,22 @@ levels/castle_inside/38.rgba16.png
|
||||
levels/castle_inside/39.rgba16.png
|
||||
levels/castle_inside/4.rgba16.png
|
||||
levels/castle_inside/40.rgba16.png
|
||||
actors/vanilla_actors/castle_inside/5.rgba16.png
|
||||
actors/vanilla_actors/castle_inside/6.rgba16.png
|
||||
actors/vanilla_actors/castle_inside/7.rgba16.png
|
||||
levels/castle_inside/5.rgba16.png
|
||||
levels/castle_inside/6.rgba16.png
|
||||
levels/castle_inside/7.rgba16.png
|
||||
levels/castle_inside/8.rgba16.png
|
||||
levels/castle_inside/9.rgba16.png
|
||||
actors/vanilla_actors/castle_inside/castle_light.ia16.png
|
||||
levels/castle_inside/castle_light.ia16.png
|
||||
levels/ccm/0.rgba16.png
|
||||
levels/ccm/1.rgba16.png
|
||||
actors/vanilla_actors/ccm/1.rgba16.png
|
||||
levels/ccm/10.rgba16.png
|
||||
levels/ccm/11.rgba16.png
|
||||
actors/vanilla_actors/ccm/12.rgba16.png
|
||||
levels/ccm/12.rgba16.png
|
||||
levels/ccm/2.rgba16.png
|
||||
actors/vanilla_actors/ccm/2.rgba16.png
|
||||
actors/vanilla_actors/ccm/3.rgba16.png
|
||||
levels/ccm/3.rgba16.png
|
||||
levels/ccm/4.rgba16.png
|
||||
actors/vanilla_actors/ccm/5.rgba16.png
|
||||
actors/vanilla_actors/ccm/6.rgba16.png
|
||||
levels/ccm/5.rgba16.png
|
||||
levels/ccm/6.rgba16.png
|
||||
levels/ccm/7.rgba16.png
|
||||
levels/ccm/8.ia16.png
|
||||
levels/ccm/9.ia16.png
|
||||
@@ -631,12 +623,11 @@ levels/cotmc/1.rgba16.png
|
||||
levels/cotmc/2.rgba16.png
|
||||
levels/cotmc/3.rgba16.png
|
||||
levels/cotmc/4.rgba16.png
|
||||
actors/vanilla_actors/ddd/0.rgba16.png
|
||||
levels/ddd/0.rgba16.png
|
||||
levels/ddd/1.rgba16.png
|
||||
levels/ddd/2.rgba16.png
|
||||
actors/vanilla_actors/ddd/2.rgba16.png
|
||||
levels/ddd/3.rgba16.png
|
||||
actors/vanilla_actors/ddd/4.rgba16.png
|
||||
levels/ddd/4.rgba16.png
|
||||
levels/ending/cake.png
|
||||
levels/ending/cake_eu.png
|
||||
levels/ending/eu_023000.rgba16.png
|
||||
@@ -648,10 +639,10 @@ levels/ending/eu_028000.rgba16.png
|
||||
levels/hmc/0.rgba16.png
|
||||
levels/hmc/1.rgba16.png
|
||||
levels/hmc/2.rgba16.png
|
||||
actors/vanilla_actors/hmc/3.rgba16.png
|
||||
actors/vanilla_actors/hmc/4.rgba16.png
|
||||
actors/vanilla_actors/hmc/5.rgba16.png
|
||||
actors/vanilla_actors/hmc/6.rgba16.png
|
||||
levels/hmc/3.rgba16.png
|
||||
levels/hmc/4.rgba16.png
|
||||
levels/hmc/5.rgba16.png
|
||||
levels/hmc/6.rgba16.png
|
||||
levels/hmc/7.rgba16.png
|
||||
levels/intro/0.rgba16.png
|
||||
levels/intro/1.rgba16.png
|
||||
@@ -662,41 +653,40 @@ levels/intro/3_sh_tm.rgba16.png
|
||||
levels/intro/3_tm.rgba16.png
|
||||
levels/jrb/0.rgba16.png
|
||||
levels/jrb/1.rgba16.png
|
||||
actors/vanilla_actors/jrb/2.rgba16.png
|
||||
actors/vanilla_actors/jrb/3.rgba16.png
|
||||
actors/vanilla_actors/lll/0.rgba16.png
|
||||
actors/vanilla_actors/lll/1.rgba16.png
|
||||
actors/vanilla_actors/lll/10.rgba16.png
|
||||
actors/vanilla_actors/lll/11.rgba16.png
|
||||
actors/vanilla_actors/lll/12.rgba16.png
|
||||
actors/vanilla_actors/lll/13.rgba16.png
|
||||
actors/vanilla_actors/lll/14.rgba16.png
|
||||
actors/vanilla_actors/lll/15.rgba16.png
|
||||
actors/vanilla_actors/lll/16.rgba16.png
|
||||
actors/vanilla_actors/lll/17.rgba16.png
|
||||
actors/vanilla_actors/lll/18.rgba16.png
|
||||
actors/vanilla_actors/lll/19.rgba16.png
|
||||
actors/vanilla_actors/lll/2.rgba16.png
|
||||
actors/vanilla_actors/lll/20.rgba16.png
|
||||
actors/vanilla_actors/lll/21.rgba16.png
|
||||
actors/vanilla_actors/lll/22.rgba16.png
|
||||
actors/vanilla_actors/lll/23.rgba16.png
|
||||
actors/vanilla_actors/lll/24.rgba16.png
|
||||
actors/vanilla_actors/lll/25.rgba16.png
|
||||
levels/jrb/2.rgba16.png
|
||||
levels/jrb/3.rgba16.png
|
||||
levels/lll/0.rgba16.png
|
||||
levels/lll/1.rgba16.png
|
||||
levels/lll/10.rgba16.png
|
||||
levels/lll/11.rgba16.png
|
||||
levels/lll/12.rgba16.png
|
||||
levels/lll/13.rgba16.png
|
||||
levels/lll/14.rgba16.png
|
||||
levels/lll/15.rgba16.png
|
||||
levels/lll/16.rgba16.png
|
||||
levels/lll/17.rgba16.png
|
||||
levels/lll/18.rgba16.png
|
||||
levels/lll/19.rgba16.png
|
||||
levels/lll/2.rgba16.png
|
||||
levels/lll/20.rgba16.png
|
||||
levels/lll/21.rgba16.png
|
||||
levels/lll/22.rgba16.png
|
||||
levels/lll/23.rgba16.png
|
||||
levels/lll/24.rgba16.png
|
||||
levels/lll/25.rgba16.png
|
||||
levels/lll/26.rgba16.png
|
||||
levels/lll/27.ia16.png
|
||||
levels/lll/28.rgba16.png
|
||||
levels/lll/29.rgba16.png
|
||||
actors/vanilla_actors/lll/29.rgba16.png
|
||||
levels/lll/3.rgba16.png
|
||||
levels/lll/30.rgba16.png
|
||||
levels/lll/31.rgba16.png
|
||||
levels/lll/32.rgba16.png
|
||||
levels/lll/4.rgba16.png
|
||||
levels/lll/5.rgba16.png
|
||||
actors/vanilla_actors/lll/6.rgba16.png
|
||||
levels/lll/6.rgba16.png
|
||||
levels/lll/7.rgba16.png
|
||||
actors/vanilla_actors/lll/8.rgba16.png
|
||||
levels/lll/8.rgba16.png
|
||||
levels/lll/9.rgba16.png
|
||||
levels/menu/main_menu_seg7.00018.rgba16.png
|
||||
levels/menu/main_menu_seg7.00818.rgba16.png
|
||||
@@ -931,64 +921,59 @@ levels/menu/main_menu_seg7_us.0B800.ia8.png
|
||||
levels/pss/0.rgba16.png
|
||||
levels/pss/1.ia16.png
|
||||
levels/pss/2.rgba16.png
|
||||
actors/vanilla_actors/rr/1.rgba16.png
|
||||
levels/rr/1.rgba16.png
|
||||
levels/rr/2.rgba16.png
|
||||
actors/vanilla_actors/rr/quarter_flying_carpet.rgba16.png
|
||||
levels/rr/quarter_flying_carpet.rgba16.png
|
||||
levels/sl/0.rgba16.png
|
||||
levels/sl/1.rgba16.png
|
||||
actors/vanilla_actors/sl/2.rgba16.png
|
||||
levels/sl/2.rgba16.png
|
||||
levels/sl/3.rgba16.png
|
||||
levels/sl/4.rgba16.png
|
||||
levels/ssl/0.rgba16.png
|
||||
levels/ssl/1.ia16.png
|
||||
actors/vanilla_actors/ssl/10.rgba16.png
|
||||
actors/vanilla_actors/ssl/11.rgba16.png
|
||||
levels/ssl/10.rgba16.png
|
||||
levels/ssl/11.rgba16.png
|
||||
levels/ssl/2.rgba16.png
|
||||
levels/ssl/3.rgba16.png
|
||||
levels/ssl/4.rgba16.png
|
||||
actors/vanilla_actors/ssl/5.rgba16.png
|
||||
actors/vanilla_actors/ssl/6.rgba16.png
|
||||
levels/ssl/5.rgba16.png
|
||||
levels/ssl/6.rgba16.png
|
||||
levels/ssl/7.rgba16.png
|
||||
actors/vanilla_actors/ssl/8.rgba16.png
|
||||
actors/vanilla_actors/ssl/9.rgba16.png
|
||||
levels/ssl/8.rgba16.png
|
||||
levels/ssl/9.rgba16.png
|
||||
levels/thi/0.rgba16.png
|
||||
levels/thi/1.rgba16.png
|
||||
actors/vanilla_actors/thi/1.rgba16.png
|
||||
levels/totwc/0.rgba16.png
|
||||
levels/totwc/1.rgba16.png
|
||||
levels/totwc/2.rgba16.png
|
||||
levels/totwc/3.ia16.png
|
||||
actors/vanilla_actors/ttc/0.rgba16.png
|
||||
actors/vanilla_actors/ttc/1.rgba16.png
|
||||
levels/ttc/0.rgba16.png
|
||||
levels/ttc/1.rgba16.png
|
||||
levels/ttc/2.rgba16.png
|
||||
levels/ttm/0.ia16.png
|
||||
levels/ttm/1.rgba16.png
|
||||
levels/ttm/2.rgba16.png
|
||||
levels/ttm/3.rgba16.png
|
||||
actors/vanilla_actors/ttm/4.rgba16.png
|
||||
levels/ttm/4.rgba16.png
|
||||
levels/ttm/5.rgba16.png
|
||||
levels/ttm/6.rgba16.png
|
||||
levels/ttm/7.rgba16.png
|
||||
actors/vanilla_actors/ttm/8.rgba16.png
|
||||
levels/ttm/8.rgba16.png
|
||||
levels/vcutm/0.rgba16.png
|
||||
levels/vcutm/1.rgba16.png
|
||||
actors/vanilla_actors/vcutm/2.rgba16.png
|
||||
levels/vcutm/2.rgba16.png
|
||||
levels/vcutm/3.rgba16.png
|
||||
levels/wdw/0.rgba16.png
|
||||
levels/wdw/1.rgba16.png
|
||||
actors/vanilla_actors/wdw/1.rgba16.png
|
||||
actors/vanilla_actors/wdw/2.rgba16.png
|
||||
actors/vanilla_actors/wdw/3.rgba16.png
|
||||
levels/wdw/2.rgba16.png
|
||||
levels/wdw/3.rgba16.png
|
||||
levels/wdw/4.rgba16.png
|
||||
actors/vanilla_actors/wf/0.rgba16.png
|
||||
levels/wf/0.rgba16.png
|
||||
levels/wf/1.rgba16.png
|
||||
actors/vanilla_actors/wf/2.rgba16.png
|
||||
levels/wf/2.rgba16.png
|
||||
actors/vanilla_actors/wf/3.rgba16.png
|
||||
actors/vanilla_actors/wf/4.rgba16.png
|
||||
actors/vanilla_actors/wf/5.ia8.png
|
||||
levels/wf/3.rgba16.png
|
||||
levels/wf/4.rgba16.png
|
||||
levels/wf/5.ia8.png
|
||||
levels/wmotr/0.rgba16.png
|
||||
levels/wmotr/1.rgba16.png
|
||||
levels/wmotr/2.rgba16.png
|
||||
@@ -2164,6 +2149,3 @@ lib/libs2d_engine.a
|
||||
|
||||
# :Zone_Identifier files
|
||||
*Zone.Identifier
|
||||
|
||||
# user-specific config file
|
||||
include/config/config_local.h
|
||||
|
||||
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -1,3 +0,0 @@
|
||||
[submodule "lib/libpl2"]
|
||||
path = lib/libpl2
|
||||
url = https://gitlab.com/parallel-launcher/libpl2.git
|
||||
3
.vscode/c_cpp_properties.json
vendored
3
.vscode/c_cpp_properties.json
vendored
@@ -26,8 +26,7 @@
|
||||
"VERSION_US=1",
|
||||
"F3DEX_GBI_2=1",
|
||||
"F3DZEX_NON_GBI_2=1",
|
||||
"F3DEX_GBI_SHARED=1",
|
||||
"LIBPL=1"
|
||||
"F3DEX_GBI_SHARED=1"
|
||||
],
|
||||
"compilerPath": "/usr/bin/mips-linux-gnu-gcc",
|
||||
"cStandard": "gnu17",
|
||||
|
||||
@@ -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
|
||||
|
||||
15
Dockerfile
15
Dockerfile
@@ -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'
|
||||
|
||||
110
Makefile
110
Makefile
@@ -135,7 +135,7 @@ endif
|
||||
#==============================================================================#
|
||||
|
||||
# Default non-gcc opt flags
|
||||
DEFAULT_OPT_FLAGS = -Ofast -falign-functions=32
|
||||
DEFAULT_OPT_FLAGS = -Ofast
|
||||
# Note: -fno-associative-math is used here to suppress warnings, ideally we would enable this as an optimization but
|
||||
# this conflicts with -ftrapping-math apparently.
|
||||
# TODO: Figure out how to allow -fassociative-math to be enabled
|
||||
@@ -253,23 +253,11 @@ ifeq ($(HVQM),1)
|
||||
SRC_DIRS += src/hvqm
|
||||
endif
|
||||
|
||||
# LIBPL - whether to include libpl library for interfacing with Parallel Launcher
|
||||
# (library will be pulled into repo after building with this enabled for the first time)
|
||||
# 1 - includes code in ROM
|
||||
# 0 - does not
|
||||
LIBPL ?= 0
|
||||
LIBPL_DIR := lib/libpl2
|
||||
$(eval $(call validate-option,LIBPL,0 1))
|
||||
ifeq ($(LIBPL),1)
|
||||
DEFINES += LIBPL=1
|
||||
SRC_DIRS += $(LIBPL_DIR)
|
||||
endif
|
||||
|
||||
BUILD_DIR_BASE := build
|
||||
# BUILD_DIR is the location where all build artifacts are placed
|
||||
BUILD_DIR := $(BUILD_DIR_BASE)/$(VERSION)_$(CONSOLE)
|
||||
|
||||
COMPRESS ?= yay0
|
||||
COMPRESS ?= rnc1
|
||||
$(eval $(call validate-option,COMPRESS,mio0 yay0 gzip rnc1 rnc2 uncomp))
|
||||
ifeq ($(COMPRESS),gzip)
|
||||
DEFINES += GZIP=1
|
||||
@@ -347,18 +335,6 @@ ifeq ($(filter clean distclean print-%,$(MAKECMDGOALS)),)
|
||||
ifeq ($(DUMMY),FAIL)
|
||||
$(error Failed to build tools)
|
||||
endif
|
||||
|
||||
# Clone any needed submodules
|
||||
ifeq ($(LIBPL),1)
|
||||
ifeq ($(wildcard $(LIBPL_DIR)/*.h),)
|
||||
$(info Cloning libpl2 submodule...)
|
||||
DUMMY != git submodule update --init $(LIBPL_DIR) > /dev/null || echo FAIL
|
||||
ifeq ($(DUMMY),FAIL)
|
||||
$(error Failed to clone libpl2 submodule)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
$(info Building ROM...)
|
||||
|
||||
endif
|
||||
@@ -380,10 +356,9 @@ SOUND_BIN_DIR := $(BUILD_DIR)/sound
|
||||
TEXTURE_DIR := textures
|
||||
ACTOR_DIR := actors
|
||||
LEVEL_DIRS := $(patsubst levels/%,%,$(dir $(wildcard levels/*/header.h)))
|
||||
VNL_ACTRS_DIRS := $(patsubst actors/vanilla_actors/%,%,$(dir $(wildcard actors/vanilla_actors/*/header.h)))
|
||||
|
||||
# Directories containing source files
|
||||
SRC_DIRS += src src/boot src/game src/engine src/audio src/menu src/buffers lib/librtc actors levels bin data assets asm lib sound
|
||||
SRC_DIRS += src src/boot src/game src/engine src/audio src/menu src/buffers actors levels bin data assets asm lib sound
|
||||
LIBZ_SRC_DIRS := src/libz
|
||||
GODDARD_SRC_DIRS := src/goddard src/goddard/dynlists
|
||||
BIN_DIRS := bin bin/$(VERSION)
|
||||
@@ -393,17 +368,13 @@ include Makefile.split
|
||||
|
||||
# Source code files
|
||||
LEVEL_C_FILES := $(wildcard levels/*/leveldata.c) $(wildcard levels/*/script.c) $(wildcard levels/*/geo.c)
|
||||
VNL_ACTRS_C_FILES := $(wildcard actors/vanilla_actors/*/data.c) $(wildcard actors/vanilla_actors/*/geo.c)
|
||||
C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c)) $(LEVEL_C_FILES) $(VNL_ACTRS_C_FILES)
|
||||
C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c)) $(LEVEL_C_FILES)
|
||||
CPP_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.cpp))
|
||||
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
|
||||
|
||||
# Ignore all .inc.c files
|
||||
C_FILES := $(filter-out %.inc.c,$(C_FILES))
|
||||
|
||||
# Sound files
|
||||
SOUND_BANK_FILES := $(wildcard sound/sound_banks/*.json)
|
||||
SOUND_SAMPLE_DIRS := $(wildcard sound/samples/*)
|
||||
@@ -446,8 +417,6 @@ else ifneq ($(call find-command,mips-linux-gnu-ld),)
|
||||
CROSS := mips-linux-gnu-
|
||||
else ifneq ($(call find-command,mips64-linux-gnu-ld),)
|
||||
CROSS := mips64-linux-gnu-
|
||||
else ifneq ($(call find-command,mips64-none-elf-ld),)
|
||||
CROSS := mips64-none-elf-
|
||||
else ifneq ($(call find-command,mips-ld),)
|
||||
CROSS := mips-
|
||||
else
|
||||
@@ -508,15 +477,15 @@ 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-trigraphs
|
||||
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 += -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 -Wno-trigraphs
|
||||
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
|
||||
ASMFLAGS = -G 0 $(OPT_FLAGS) $(TARGET_CFLAGS) -mips3 $(DEF_INC_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-trigraphs
|
||||
ASMFLAGS = -G 0 $(OPT_FLAGS) $(TARGET_CFLAGS) -mips3 $(DEF_INC_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
|
||||
|
||||
ASFLAGS := -march=vr4300 -mabi=32 $(foreach i,$(INCLUDE_DIRS),-I$(i)) $(foreach d,$(DEFINES),--defsym $(d))
|
||||
RSPASMFLAGS := $(foreach d,$(DEFINES),-definelabel $(subst =, ,$(d)))
|
||||
@@ -537,6 +506,7 @@ N64CKSUM := $(TOOLS_DIR)/n64cksum
|
||||
N64GRAPHICS := $(TOOLS_DIR)/n64graphics
|
||||
N64GRAPHICS_CI := $(TOOLS_DIR)/n64graphics_ci
|
||||
BINPNG := $(TOOLS_DIR)/BinPNG.py
|
||||
TEXTCONV := $(TOOLS_DIR)/textconv
|
||||
AIFF_EXTRACT_CODEBOOK := $(TOOLS_DIR)/aiff_extract_codebook
|
||||
VADPCM_ENC := $(TOOLS_DIR)/vadpcm_enc
|
||||
EXTRACT_DATA_FOR_MIO := $(TOOLS_DIR)/extract_data_for_mio
|
||||
@@ -554,13 +524,7 @@ ifneq (,$(call find-command,armips))
|
||||
else
|
||||
RSPASM := $(TOOLS_DIR)/armips
|
||||
endif
|
||||
|
||||
ifneq (,$(call find-command,wslview))
|
||||
EMULATOR = "/mnt/c/Program Files (x86)/parallel-launcher/parallel-launcher.exe"
|
||||
else
|
||||
EMULATOR = parallel-launcher
|
||||
endif
|
||||
|
||||
EMULATOR = mupen64plus
|
||||
EMU_FLAGS =
|
||||
|
||||
ifneq (,$(call find-command,wslview))
|
||||
@@ -583,7 +547,7 @@ endif
|
||||
|
||||
# For non-IDO, use objcopy instead of extract_data_for_mio
|
||||
ifneq ($(COMPILER),ido)
|
||||
EXTRACT_DATA_FOR_MIO := $(OBJCOPY) -O binary --only-section=.data --only-section=.rodata
|
||||
EXTRACT_DATA_FOR_MIO := $(OBJCOPY) -O binary --only-section=.data
|
||||
endif
|
||||
|
||||
# Common build print status function
|
||||
@@ -658,6 +622,29 @@ $(BUILD_DIR)/src/libz/%.o: OPT_FLAGS := -Os
|
||||
$(BUILD_DIR)/src/libz/%.o: CFLAGS += -Wno-implicit-fallthrough -Wno-unused-parameter -Wno-pointer-sign
|
||||
endif
|
||||
|
||||
ifeq ($(VERSION),eu)
|
||||
TEXT_DIRS := text/de text/us text/fr
|
||||
|
||||
# EU encoded text inserted into individual segment 0x19 files,
|
||||
# and course data also duplicated in leveldata.c
|
||||
$(BUILD_DIR)/bin/eu/translation_en.o: $(BUILD_DIR)/text/us/define_text.inc.c
|
||||
$(BUILD_DIR)/bin/eu/translation_de.o: $(BUILD_DIR)/text/de/define_text.inc.c
|
||||
$(BUILD_DIR)/bin/eu/translation_fr.o: $(BUILD_DIR)/text/fr/define_text.inc.c
|
||||
$(BUILD_DIR)/levels/menu/leveldata.o: $(BUILD_DIR)/include/text_strings.h
|
||||
$(BUILD_DIR)/levels/menu/leveldata.o: $(BUILD_DIR)/text/us/define_courses.inc.c
|
||||
$(BUILD_DIR)/levels/menu/leveldata.o: $(BUILD_DIR)/text/de/define_courses.inc.c
|
||||
$(BUILD_DIR)/levels/menu/leveldata.o: $(BUILD_DIR)/text/fr/define_courses.inc.c
|
||||
else
|
||||
ifeq ($(VERSION),sh)
|
||||
TEXT_DIRS := text/jp
|
||||
$(BUILD_DIR)/bin/segment2.o: $(BUILD_DIR)/text/jp/define_text.inc.c
|
||||
else
|
||||
TEXT_DIRS := text/$(VERSION)
|
||||
# non-EU encoded text inserted into segment 0x02
|
||||
$(BUILD_DIR)/bin/segment2.o: $(BUILD_DIR)/text/$(VERSION)/define_text.inc.c
|
||||
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
|
||||
@@ -675,11 +662,17 @@ $(BUILD_DIR)/src/game/rendering_graph_node.o: OPT_FLAGS := $(GRAPH_NODE_OPT_FLAG
|
||||
# $(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) $(SOUND_SAMPLE_DIRS) $(addprefix levels/,$(LEVEL_DIRS)) $(addprefix actors/vanilla_actors/,$(VNL_ACTRS_DIRS)) rsp include) $(YAY0_DIR) $(addprefix $(YAY0_DIR)/,$(VERSION)) $(SOUND_BIN_DIR) $(SOUND_BIN_DIR)/sequences/$(VERSION)
|
||||
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)
|
||||
|
||||
# Make sure build directory exists before compiling anything
|
||||
DUMMY != mkdir -p $(ALL_DIRS)
|
||||
|
||||
$(BUILD_DIR)/include/text_strings.h: $(BUILD_DIR)/include/text_menu_strings.h
|
||||
$(BUILD_DIR)/src/menu/file_select.o: $(BUILD_DIR)/include/text_strings.h
|
||||
$(BUILD_DIR)/src/menu/star_select.o: $(BUILD_DIR)/include/text_strings.h
|
||||
$(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
|
||||
|
||||
|
||||
|
||||
#==============================================================================#
|
||||
@@ -724,11 +717,6 @@ $(LEVEL_ELF_FILES): $(BUILD_DIR)/levels/%/leveldata.elf: $(BUILD_DIR)/levels/%/l
|
||||
$(call print,Linking ELF file:,$<,$@)
|
||||
$(V)$(LD) -e 0 -Ttext=$(SEGMENT_ADDRESS) -Map $@.map --just-symbols=$(BUILD_DIR)/bin/$(TEXTURE_BIN).elf -o $@ $<
|
||||
|
||||
.SECONDEXPANSION:
|
||||
$(VANILLA_ACTORS_ELF_FILES): $(BUILD_DIR)/actors/vanilla_actors/%/data.elf: $(BUILD_DIR)/actors/vanilla_actors/%/data.o $(BUILD_DIR)/bin/$$(TEXTURE_BIN).elf
|
||||
$(call print,Linking ELF file:,$<,$@)
|
||||
$(V)$(LD) -e 0 -Ttext=$(SEGMENT_ADDRESS) -Map $@.map --just-symbols=$(BUILD_DIR)/bin/$(TEXTURE_BIN).elf -o $@ $<
|
||||
|
||||
$(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.elf
|
||||
$(call print,Extracting compressible data from:,$<,$@)
|
||||
$(V)$(EXTRACT_DATA_FOR_MIO) $< $@
|
||||
@@ -757,7 +745,7 @@ endif
|
||||
|
||||
$(BUILD_DIR)/%.table: %.aiff
|
||||
$(call print,Extracting codebook:,$<,$@)
|
||||
$(V)$(AIFF_EXTRACT_CODEBOOK) $< $@
|
||||
$(V)$(AIFF_EXTRACT_CODEBOOK) $< >$@
|
||||
|
||||
$(BUILD_DIR)/%.aifc: $(BUILD_DIR)/%.table %.aiff
|
||||
$(call print,Encoding ADPCM:,$(word 2,$^),$@)
|
||||
@@ -811,6 +799,20 @@ $(BUILD_DIR)/assets/demo_data.c: assets/demo_data.json $(wildcard assets/demos/*
|
||||
@$(PRINT) "$(GREEN)Generating demo data $(NO_COL)\n"
|
||||
$(V)$(PYTHON) $(TOOLS_DIR)/demo_data_converter.py assets/demo_data.json $(DEF_INC_CFLAGS) > $@
|
||||
|
||||
# Encode in-game text strings
|
||||
$(BUILD_DIR)/include/text_strings.h: include/text_strings.h.in
|
||||
$(call print,Encoding:,$<,$@)
|
||||
$(V)$(TEXTCONV) charmap.txt $< $@
|
||||
$(BUILD_DIR)/include/text_menu_strings.h: include/text_menu_strings.h.in
|
||||
$(call print,Encoding:,$<,$@)
|
||||
$(V)$(TEXTCONV) charmap_menu.txt $< $@
|
||||
$(BUILD_DIR)/text/%/define_courses.inc.c: text/define_courses.inc.c text/%/courses.h
|
||||
@$(PRINT) "$(GREEN)Preprocessing: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(CPP) $(CPPFLAGS) $< -o - -I text/$*/ | $(TEXTCONV) charmap.txt - $@
|
||||
$(BUILD_DIR)/text/%/define_text.inc.c: text/define_text.inc.c text/%/courses.h text/%/dialogs.h
|
||||
@$(PRINT) "$(GREEN)Preprocessing: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(CPP) $(CPPFLAGS) $< -o - -I text/$*/ | $(TEXTCONV) charmap.txt - $@
|
||||
|
||||
# Level headers
|
||||
$(BUILD_DIR)/include/level_headers.h: levels/level_headers.h.in
|
||||
$(call print,Preprocessing level headers:,$<,$@)
|
||||
@@ -887,7 +889,7 @@ $(BUILD_DIR)/asm/debug/map.o: asm/debug/map.s $(BUILD_DIR)/sm64_prelim.elf
|
||||
# Link SM64 ELF file
|
||||
$(ELF): $(BUILD_DIR)/sm64_prelim.elf $(BUILD_DIR)/asm/debug/map.o $(O_FILES) $(YAY0_OBJ_FILES) $(SEG_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(BUILD_DIR)/libz.a $(BUILD_DIR)/libgoddard.a
|
||||
@$(PRINT) "$(GREEN)Linking ELF file: $(BLUE)$@ $(NO_COL)\n"
|
||||
$(V)$(LD) --gc-sections -L $(BUILD_DIR) -T $(BUILD_DIR)/$(LD_SCRIPT) -T goddard.txt -Map $(BUILD_DIR)/sm64.$(VERSION).map --no-check-sections $(addprefix -R ,$(SEG_FILES)) -o $@ $(O_FILES) -L$(LIBS_DIR) -l$(ULTRALIB) -Llib $(LINK_LIBRARIES) -u sprintf -u osMapTLB -Llib/gcclib/$(LIBGCCDIR) -lgcc
|
||||
$(V)$(LD) --gc-sections -L $(BUILD_DIR) -T $(BUILD_DIR)/$(LD_SCRIPT) -T goddard.txt -Map $(BUILD_DIR)/sm64.$(VERSION).map --no-check-sections $(addprefix -R ,$(SEG_FILES)) -o $@ $(O_FILES) -L$(LIBS_DIR) -l$(ULTRALIB) -Llib $(LINK_LIBRARIES) -u sprintf -u osMapTLB -Llib/gcclib/$(LIBGCCDIR) -lgcc -lrtc
|
||||
|
||||
# Build ROM
|
||||
ifeq (n,$(findstring n,$(firstword -$(MAKEFLAGS))))
|
||||
|
||||
@@ -41,21 +41,15 @@ LEVEL_FILES := $(addsuffix leveldata,$(LEVEL_DIRS))
|
||||
|
||||
LEVEL_ELF_FILES := $(foreach level_dir,$(LEVEL_DIRS),$(BUILD_DIR)/levels/$(level_dir)leveldata.elf)
|
||||
|
||||
VANILLA_ACTORS_FILES := $(addsuffix data,$(VNL_ACTRS_DIRS))
|
||||
|
||||
VANILLA_ACTORS_ELF_FILES := $(foreach level_dir,$(VNL_ACTRS_DIRS),$(BUILD_DIR)/actors/vanilla_actors/$(level_dir)data.elf)
|
||||
|
||||
SEG_FILES := \
|
||||
$(SEGMENTS:%=$(BUILD_DIR)/bin/%.elf) \
|
||||
$(ACTOR_GROUPS:%=$(BUILD_DIR)/actors/%.elf) \
|
||||
$(LEVEL_FILES:%=$(BUILD_DIR)/levels/%.elf) \
|
||||
$(VANILLA_ACTORS_FILES:%=$(BUILD_DIR)/actors/vanilla_actors/%.elf)
|
||||
$(LEVEL_FILES:%=$(BUILD_DIR)/levels/%.elf)
|
||||
|
||||
YAY0_FILES := \
|
||||
$(SEGMENTS:%=$(BUILD_DIR)/bin/%.szp) \
|
||||
$(ACTOR_GROUPS:%=$(BUILD_DIR)/actors/%.szp) \
|
||||
$(LEVEL_FILES:%=$(BUILD_DIR)/levels/%.szp) \
|
||||
$(VANILLA_ACTORS_FILES:%=$(BUILD_DIR)/actors/vanilla_actors/%.szp)
|
||||
$(LEVEL_FILES:%=$(BUILD_DIR)/levels/%.szp)
|
||||
|
||||
YAY0_OBJ_FILES := $(YAY0_FILES:.szp=.szp.o)
|
||||
|
||||
@@ -249,11 +243,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 := 0x1B000000
|
||||
$(BUILD_DIR)/bin/translation_en.elf: SEGMENT_ADDRESS := 0x1B000000
|
||||
$(BUILD_DIR)/bin/translation_fr.elf: SEGMENT_ADDRESS := 0x1B000000
|
||||
$(BUILD_DIR)/bin/translation_jp.elf: SEGMENT_ADDRESS := 0x1B000000
|
||||
$(BUILD_DIR)/bin/translation_es.elf: SEGMENT_ADDRESS := 0x1B000000
|
||||
$(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
|
||||
@@ -278,36 +270,3 @@ IPL3_RAW_FILES := $(addprefix $(BUILD_DIR)/,$(patsubst %.png,%,$(IP
|
||||
|
||||
CRASH_TEXTURE_FILES := $(wildcard $(TEXTURE_DIR)/crash_custom/*.png)
|
||||
CRASH_TEXTURE_C_FILES := $(addprefix $(BUILD_DIR)/,$(patsubst %.png,%.inc.c,$(CRASH_TEXTURE_FILES)))
|
||||
|
||||
# --------------------------------------
|
||||
# Vanilla Objects Rules
|
||||
# --------------------------------------
|
||||
|
||||
define vanilla_objects_rules =
|
||||
VANILLA_ACTORS_$(1)_TEXTURE_FILES := $$(patsubst %.png,%.inc.c,$$(wildcard actors/vanilla_actors/$(1)/*.png))
|
||||
$$(BUILD_DIR)/actors/vanilla_actors/$(1)/data.o: $$(addprefix $$(BUILD_DIR)/,$$(VANILLA_ACTORS_$(1)_TEXTURE_FILES))
|
||||
$$(BUILD_DIR)/actors/vanilla_actors/$(1)/data.elf: SEGMENT_ADDRESS := 0x0e000000
|
||||
$$(BUILD_DIR)/actors/vanilla_actors/$(1)/data.elf: TEXTURE_BIN := $(2)
|
||||
endef
|
||||
|
||||
$(eval $(call vanilla_objects_rules,bob,generic))
|
||||
$(eval $(call vanilla_objects_rules,wf,grass))
|
||||
$(eval $(call vanilla_objects_rules,jrb,water))
|
||||
$(eval $(call vanilla_objects_rules,ccm,snow))
|
||||
$(eval $(call vanilla_objects_rules,bbh,spooky))
|
||||
$(eval $(call vanilla_objects_rules,hmc,cave))
|
||||
$(eval $(call vanilla_objects_rules,lll,fire))
|
||||
$(eval $(call vanilla_objects_rules,ssl,generic))
|
||||
$(eval $(call vanilla_objects_rules,ddd,water))
|
||||
$(eval $(call vanilla_objects_rules,sl,snow))
|
||||
$(eval $(call vanilla_objects_rules,wdw,grass))
|
||||
$(eval $(call vanilla_objects_rules,ttm,mountain))
|
||||
$(eval $(call vanilla_objects_rules,thi,grass))
|
||||
$(eval $(call vanilla_objects_rules,ttc,machine))
|
||||
$(eval $(call vanilla_objects_rules,rr,sky))
|
||||
$(eval $(call vanilla_objects_rules,bitdw,sky))
|
||||
$(eval $(call vanilla_objects_rules,bitfs,sky))
|
||||
$(eval $(call vanilla_objects_rules,bits,sky))
|
||||
$(eval $(call vanilla_objects_rules,vcutm,outside))
|
||||
$(eval $(call vanilla_objects_rules,castle_inside,inside))
|
||||
$(eval $(call vanilla_objects_rules,castle_grounds,outside))
|
||||
|
||||
11
README.md
11
README.md
@@ -17,9 +17,9 @@ 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**: Silhouette, shadow optimisation, better hanging, breath meter, 4 controller support
|
||||
- **axollyon**: Console testing, bugfixes, idea-guying, and had a hand in silhouettes
|
||||
@@ -36,6 +36,7 @@ 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.
|
||||
- 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.
|
||||
|
||||
**Puppycam**
|
||||
- Puppycam is available on the master branch now, you can toggle it in `config/config_camera.h`. *
|
||||
@@ -87,9 +88,9 @@ Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
|
||||
- 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. *
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
v2.3.0
|
||||
v2.1.1
|
||||
|
||||
@@ -105,7 +105,4 @@ extern const struct Animation *const unagi_seg5_anims_05012824[];
|
||||
extern const Gfx whirlpool_seg5_dl_05013B58[];
|
||||
extern const Gfx whirlpool_seg5_dl_05013CB8[];
|
||||
|
||||
extern const Trajectory jrb_seg7_trajectory_unagi_1[];
|
||||
extern const Trajectory jrb_seg7_trajectory_unagi_2[];
|
||||
|
||||
#endif
|
||||
|
||||
@@ -11,30 +11,3 @@
|
||||
#include "manta/geo.inc.c"
|
||||
#include "sushi/geo.inc.c"
|
||||
#include "unagi/geo.inc.c"
|
||||
|
||||
#include "surface_terrains.h"
|
||||
|
||||
// 0x0700D20C - 0x0700D23E
|
||||
const Trajectory jrb_seg7_trajectory_unagi_1[] = {
|
||||
TRAJECTORY_POS(0, /*pos*/ 5300, -3800, 1200),
|
||||
TRAJECTORY_POS(1, /*pos*/ 3700, -3600, 1700),
|
||||
TRAJECTORY_POS(2, /*pos*/ 3400, -3400, 3500),
|
||||
TRAJECTORY_POS(3, /*pos*/ 3900, -3600, 4400),
|
||||
TRAJECTORY_POS(4, /*pos*/ 5300, -3800, 4400),
|
||||
TRAJECTORY_POS(5, /*pos*/ 6200, -4000, 2700),
|
||||
TRAJECTORY_END(),
|
||||
};
|
||||
|
||||
// 0x0700D240 - 0x0700D28A
|
||||
const Trajectory jrb_seg7_trajectory_unagi_2[] = {
|
||||
TRAJECTORY_POS(0, /*pos*/ 5381, 0, 2758),
|
||||
TRAJECTORY_POS(1, /*pos*/ 5803, -3130, 3036),
|
||||
TRAJECTORY_POS(2, /*pos*/ 4876, -3045, 2706),
|
||||
TRAJECTORY_POS(3, /*pos*/ 4313, -3246, 2736),
|
||||
TRAJECTORY_POS(4, /*pos*/ 3792, -3413, 3668),
|
||||
TRAJECTORY_POS(5, /*pos*/ 4971, -3130, 3688),
|
||||
TRAJECTORY_POS(6, /*pos*/ 5392, -3130, 3326),
|
||||
TRAJECTORY_POS(7, /*pos*/ 6341, -3130, 2450),
|
||||
TRAJECTORY_POS(8, /*pos*/ 9431, -3130, 1400),
|
||||
TRAJECTORY_END(),
|
||||
};
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
#include <ultra64.h>
|
||||
#include "sm64.h"
|
||||
#include "surface_terrains.h"
|
||||
#include "moving_texture_macros.h"
|
||||
#include "surface_terrains.h"
|
||||
#include "textures.h"
|
||||
#include "dialog_ids.h"
|
||||
|
||||
#include "make_const_nonconst.h"
|
||||
|
||||
#include "actors/vanilla_actors/bbh/texture.inc.c"
|
||||
|
||||
#include "actors/vanilla_actors/bbh/staircase_step/model.inc.c"
|
||||
#include "actors/vanilla_actors/bbh/tilting_trap_platform/model.inc.c"
|
||||
#include "actors/vanilla_actors/bbh/tumbling_platform_far/model.inc.c"
|
||||
#include "actors/vanilla_actors/bbh/tumbling_platform_near/model.inc.c"
|
||||
#include "actors/vanilla_actors/bbh/moving_bookshelf/model.inc.c"
|
||||
#include "actors/vanilla_actors/bbh/mesh_elevator/model.inc.c"
|
||||
#include "actors/vanilla_actors/bbh/merry_go_round/model.inc.c"
|
||||
#include "actors/vanilla_actors/bbh/coffin/model.inc.c"
|
||||
#include "actors/vanilla_actors/bbh/staircase_step/collision.inc.c"
|
||||
#include "actors/vanilla_actors/bbh/tilting_trap_platform/collision.inc.c"
|
||||
#include "actors/vanilla_actors/bbh/tumbling_platform_near/collision.inc.c"
|
||||
#include "actors/vanilla_actors/bbh/moving_bookshelf/collision.inc.c"
|
||||
#include "actors/vanilla_actors/bbh/mesh_elevator/collision.inc.c"
|
||||
#include "actors/vanilla_actors/bbh/merry_go_round/collision.inc.c"
|
||||
#include "actors/vanilla_actors/bbh/coffin/collision.inc.c"
|
||||
@@ -1,37 +0,0 @@
|
||||
#include <ultra64.h>
|
||||
#include "sm64.h"
|
||||
#include "geo_commands.h"
|
||||
|
||||
#include "game/level_geo.h"
|
||||
#include "game/geo_misc.h"
|
||||
#include "game/camera.h"
|
||||
#include "game/moving_texture.h"
|
||||
#include "game/screen_transition.h"
|
||||
#include "game/paintings.h"
|
||||
|
||||
#include "make_const_nonconst.h"
|
||||
|
||||
#include "actors/vanilla_actors/bbh/header.h"
|
||||
|
||||
#include "actors/vanilla_actors/bbh/staircase_step/geo.inc.c"
|
||||
#include "actors/vanilla_actors/bbh/tilting_trap_platform/geo.inc.c"
|
||||
#include "actors/vanilla_actors/bbh/tumbling_platform_far/geo.inc.c"
|
||||
#include "actors/vanilla_actors/bbh/tumbling_platform_near/geo.inc.c"
|
||||
#include "actors/vanilla_actors/bbh/moving_bookshelf/geo.inc.c"
|
||||
#include "actors/vanilla_actors/bbh/mesh_elevator/geo.inc.c"
|
||||
#include "actors/vanilla_actors/bbh/merry_go_round/geo.inc.c"
|
||||
#include "actors/vanilla_actors/bbh/coffin/geo.inc.c"
|
||||
|
||||
#include "level_commands.h"
|
||||
|
||||
const LevelScript script_func_vo_bbh[] = {
|
||||
LOAD_MODEL_FROM_GEO(MODEL_BBH_STAIRCASE_STEP, geo_bbh_0005B0),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_BBH_TILTING_FLOOR_PLATFORM, geo_bbh_0005C8),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_BBH_TUMBLING_PLATFORM, geo_bbh_0005E0),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_BBH_TUMBLING_PLATFORM_PART, geo_bbh_0005F8),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_BBH_MOVING_BOOKSHELF, geo_bbh_000610),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_BBH_MESH_ELEVATOR, geo_bbh_000628),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_BBH_MERRY_GO_ROUND, geo_bbh_000640),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_BBH_WOODEN_TOMB, geo_bbh_000658),
|
||||
RETURN(),
|
||||
};
|
||||
@@ -1,29 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "types.h"
|
||||
|
||||
extern const GeoLayout geo_bbh_0005B0[];
|
||||
extern const GeoLayout geo_bbh_0005C8[];
|
||||
extern const GeoLayout geo_bbh_0005E0[];
|
||||
extern const GeoLayout geo_bbh_0005F8[];
|
||||
extern const GeoLayout geo_bbh_000610[];
|
||||
extern const GeoLayout geo_bbh_000628[];
|
||||
extern const GeoLayout geo_bbh_000640[];
|
||||
extern const GeoLayout geo_bbh_000658[];
|
||||
|
||||
extern const Gfx bbh_seg7_dl_0701F2E8[];
|
||||
extern const Gfx bbh_seg7_dl_0701F5F8[];
|
||||
extern const Gfx bbh_seg7_dl_0701F7E8[];
|
||||
extern const Gfx bbh_seg7_dl_0701FAB0[];
|
||||
extern const Gfx bbh_seg7_dl_0701FD28[];
|
||||
extern const Gfx bbh_seg7_dl_0701FFE8[];
|
||||
extern const Gfx bbh_seg7_dl_070202F0[];
|
||||
extern const Gfx bbh_seg7_dl_070206F0[];
|
||||
|
||||
extern const Collision bbh_seg7_collision_staircase_step[];
|
||||
extern const Collision bbh_seg7_collision_tilt_floor_platform[];
|
||||
extern const Collision bbh_seg7_collision_07026B1C[];
|
||||
extern const Collision bbh_seg7_collision_haunted_bookshelf[];
|
||||
extern const Collision bbh_seg7_collision_mesh_elevator[];
|
||||
extern const Collision bbh_seg7_collision_merry_go_round[];
|
||||
extern const Collision bbh_seg7_collision_coffin[];
|
||||
@@ -1,19 +0,0 @@
|
||||
// 0x07000000 - 0x07001000
|
||||
ALIGNED8 static const Texture bbh_seg7_texture_07000000[] = {
|
||||
#include "actors/vanilla_actors/bbh/0.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x07003000 - 0x07003400
|
||||
ALIGNED8 static const Texture bbh_seg7_texture_07003000[] = {
|
||||
#include "actors/vanilla_actors/bbh/4.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x07003400 - 0x07004400
|
||||
ALIGNED8 static const Texture bbh_seg7_texture_07003400[] = {
|
||||
#include "actors/vanilla_actors/bbh/5.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x07004400 - 0x07004800
|
||||
ALIGNED8 static const Texture bbh_seg7_texture_07004400[] = {
|
||||
#include "actors/vanilla_actors/bbh/6.rgba16.inc.c"
|
||||
};
|
||||
@@ -1,35 +0,0 @@
|
||||
#include <PR/ultratypes.h>
|
||||
#include <PR/gbi.h>
|
||||
|
||||
#include "dialog_ids.h"
|
||||
#include "surface_terrains.h"
|
||||
#include "macros.h"
|
||||
#include "moving_texture_macros.h"
|
||||
#include "surface_terrains.h"
|
||||
#include "textures.h"
|
||||
#include "types.h"
|
||||
|
||||
#include "make_const_nonconst.h"
|
||||
|
||||
#include "actors/vanilla_actors/bitdw/texture.inc.c"
|
||||
|
||||
#include "actors/vanilla_actors/bitdw/sliding_platform/model.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/seesaw_platform/model.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/square_platform/model.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/ferris_wheel_axle/model.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/ferris_platform/model.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/collapsing_stairs_1/model.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/collapsing_stairs_2/model.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/collapsing_stairs_3/model.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/collapsing_stairs_4/model.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/collapsing_stairs_5/model.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/sliding_platform/collision.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/seesaw_platform/collision.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/square_platform/collision.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/ferris_wheel_axle/collision.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/ferris_platform/collision.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/collapsing_stairs_1/collision.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/collapsing_stairs_2/collision.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/collapsing_stairs_3/collision.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/collapsing_stairs_4/collision.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/collapsing_stairs_5/collision.inc.c"
|
||||
@@ -1,41 +0,0 @@
|
||||
#include <ultra64.h>
|
||||
#include "sm64.h"
|
||||
#include "geo_commands.h"
|
||||
|
||||
#include "game/level_geo.h"
|
||||
#include "game/geo_misc.h"
|
||||
#include "game/camera.h"
|
||||
#include "game/moving_texture.h"
|
||||
#include "game/screen_transition.h"
|
||||
#include "game/paintings.h"
|
||||
|
||||
#include "make_const_nonconst.h"
|
||||
|
||||
#include "actors/vanilla_actors/bitdw/header.h"
|
||||
|
||||
#include "actors/vanilla_actors/bitdw/sliding_platform/geo.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/seesaw_platform/geo.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/square_platform/geo.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/ferris_wheel_axle/geo.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/ferris_platform/geo.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/collapsing_stairs_1/geo.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/collapsing_stairs_2/geo.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/collapsing_stairs_3/geo.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/collapsing_stairs_4/geo.inc.c"
|
||||
#include "actors/vanilla_actors/bitdw/collapsing_stairs_5/geo.inc.c"
|
||||
|
||||
#include "level_commands.h"
|
||||
|
||||
const LevelScript script_func_vo_bitdw[] = {
|
||||
LOAD_MODEL_FROM_GEO(MODEL_BITDW_SQUARE_PLATFORM, geo_bitdw_000558),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_BITDW_SEESAW_PLATFORM, geo_bitdw_000540),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_BITDW_SLIDING_PLATFORM, geo_bitdw_000528),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_BITDW_FERRIS_WHEEL_AXLE, geo_bitdw_000570),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_BITDW_BLUE_PLATFORM, geo_bitdw_000588),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_BITDW_STAIRCASE_FRAME4, geo_bitdw_0005A0),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_BITDW_STAIRCASE_FRAME3, geo_bitdw_0005B8),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_BITDW_STAIRCASE_FRAME2, geo_bitdw_0005D0),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_BITDW_STAIRCASE_FRAME1, geo_bitdw_0005E8),
|
||||
LOAD_MODEL_FROM_GEO(MODEL_BITDW_STAIRCASE, geo_bitdw_000600),
|
||||
RETURN(),
|
||||
};
|
||||
@@ -1,36 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "types.h"
|
||||
|
||||
extern const GeoLayout geo_bitdw_000528[];
|
||||
extern const GeoLayout geo_bitdw_000540[];
|
||||
extern const GeoLayout geo_bitdw_000558[];
|
||||
extern const GeoLayout geo_bitdw_000570[];
|
||||
extern const GeoLayout geo_bitdw_000588[];
|
||||
extern const GeoLayout geo_bitdw_0005A0[];
|
||||
extern const GeoLayout geo_bitdw_0005B8[];
|
||||
extern const GeoLayout geo_bitdw_0005D0[];
|
||||
extern const GeoLayout geo_bitdw_0005E8[];
|
||||
extern const GeoLayout geo_bitdw_000600[];
|
||||
|
||||
extern const Gfx bitdw_seg7_dl_0700AFA0[];
|
||||
extern const Gfx bitdw_seg7_dl_0700B220[];
|
||||
extern const Gfx bitdw_seg7_dl_0700B480[];
|
||||
extern const Gfx bitdw_seg7_dl_0700B8D8[];
|
||||
extern const Gfx bitdw_seg7_dl_0700BB58[];
|
||||
extern const Gfx bitdw_seg7_dl_0700C0E0[];
|
||||
extern const Gfx bitdw_seg7_dl_0700C670[];
|
||||
extern const Gfx bitdw_seg7_dl_0700CC00[];
|
||||
extern const Gfx bitdw_seg7_dl_0700D190[];
|
||||
extern const Gfx bitdw_seg7_dl_0700D3E8[];
|
||||
|
||||
extern const Collision bitdw_seg7_collision_0700F688[];
|
||||
extern const Collision bitdw_seg7_collision_0700F70C[];
|
||||
extern const Collision bitdw_seg7_collision_moving_pyramid[];
|
||||
extern const Collision bitdw_seg7_collision_0700F7F0[];
|
||||
extern const Collision bitdw_seg7_collision_0700F898[];
|
||||
extern const Collision bitdw_seg7_collision_0700F91C[];
|
||||
extern const Collision bitdw_seg7_collision_0700FA3C[];
|
||||
extern const Collision bitdw_seg7_collision_0700FB5C[];
|
||||
extern const Collision bitdw_seg7_collision_0700FC7C[];
|
||||
extern const Collision bitdw_seg7_collision_0700FD9C[];
|
||||
@@ -1,4 +0,0 @@
|
||||
// 0x07000000 - 0x07000002
|
||||
ALIGNED8 static const Texture bitdw_seg7_texture_07000000[] = {
|
||||
#include "actors/vanilla_actors/bitdw/0.rgba16.inc.c"
|
||||
};
|
||||
@@ -1,38 +0,0 @@
|
||||
#include <PR/ultratypes.h>
|
||||
#include <PR/gbi.h>
|
||||
|
||||
#include "dialog_ids.h"
|
||||
#include "surface_terrains.h"
|
||||
#include "macros.h"
|
||||
#include "moving_texture_macros.h"
|
||||
#include "surface_terrains.h"
|
||||
#include "textures.h"
|
||||
#include "types.h"
|
||||
|
||||
#include "make_const_nonconst.h"
|
||||
|
||||
#include "actors/vanilla_actors/bitfs/texture.inc.c"
|
||||
|
||||
#include "actors/vanilla_actors/bitfs/elevator/model.inc.c"
|
||||
#include "actors/vanilla_actors/bitfs/sinking_cage_platform/model.inc.c"
|
||||
#include "actors/vanilla_actors/bitfs/sinking_cage_pole/model.inc.c"
|
||||
#include "actors/vanilla_actors/bitfs/tilting_square_platform/model.inc.c"
|
||||
#include "actors/vanilla_actors/bitfs/tumbling_platform_near/model.inc.c"
|
||||
#include "actors/vanilla_actors/bitfs/tumbling_platform_far/model.inc.c"
|
||||
#include "actors/vanilla_actors/bitfs/stretching_platform/1.inc.c"
|
||||
#include "actors/vanilla_actors/bitfs/stretching_platform/2.inc.c"
|
||||
#include "actors/vanilla_actors/bitfs/moving_square_platform/model.inc.c"
|
||||
#include "actors/vanilla_actors/bitfs/sliding_platform/model.inc.c"
|
||||
#include "actors/vanilla_actors/bitfs/platform_on_track/model.inc.c"
|
||||
#include "actors/vanilla_actors/bitfs/sinking_platforms/model.inc.c"
|
||||
#include "actors/vanilla_actors/bitfs/seesaw_platform/model.inc.c"
|
||||
#include "actors/vanilla_actors/bitfs/elevator/collision.inc.c"
|
||||
#include "actors/vanilla_actors/bitfs/sinking_cage_platform/collision.inc.c"
|
||||
#include "actors/vanilla_actors/bitfs/tilting_square_platform/collision.inc.c"
|
||||
#include "actors/vanilla_actors/bitfs/tumbling_platform_near/collision.inc.c"
|
||||
#include "actors/vanilla_actors/bitfs/stretching_platform/collision.inc.c"
|
||||
#include "actors/vanilla_actors/bitfs/moving_square_platform/collision.inc.c"
|
||||
#include "actors/vanilla_actors/bitfs/sliding_platform/collision.inc.c"
|
||||
#include "actors/vanilla_actors/bitfs/platform_on_track/collision.inc.c"
|
||||
#include "actors/vanilla_actors/bitfs/sinking_platforms/collision.inc.c"
|
||||
#include "actors/vanilla_actors/bitfs/seesaw_platform/collision.inc.c"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user