You've already forked HackerSM64
mirror of
https://github.com/HackerN64/HackerSM64.git
synced 2026-01-21 10:35:32 -08:00
Compare commits
124 Commits
v2.1.2
...
develop/2.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8e794c98a6 | ||
|
|
accd6cf2b8 | ||
|
|
2d3ffbbb99 | ||
|
|
14140887dd | ||
|
|
d29a552813 | ||
|
|
3e5d14e650 | ||
|
|
197d8074e3 | ||
|
|
c5d9f535ee | ||
|
|
8257f77c57 | ||
|
|
78747e9836 | ||
|
|
c96118bcd8 | ||
|
|
4c8233fe6a | ||
|
|
524e35c974 | ||
|
|
fc5ffa7438 | ||
|
|
d07e6383f6 | ||
|
|
1de4b9144b | ||
|
|
88c2cdb0a0 | ||
|
|
3a5a2f14dd | ||
|
|
b9ba17a4d6 | ||
|
|
4af18b6fc9 | ||
|
|
5064fcfb69 | ||
|
|
05bbe16e29 | ||
|
|
9cf3753d6e | ||
|
|
325ee7c5ec | ||
|
|
bf924a8ec3 | ||
|
|
c39b289441 | ||
|
|
5ba00edf20 | ||
|
|
15a81037ef | ||
|
|
b2707990f2 | ||
|
|
1d7a690361 | ||
|
|
08f0e3efa4 | ||
|
|
6148582f5e | ||
|
|
913cda93b8 | ||
|
|
d7c840b8f1 | ||
|
|
b73d8dd178 | ||
|
|
9fc928ed70 | ||
|
|
76dae5e8dd | ||
|
|
7df16608a7 | ||
|
|
1646702393 | ||
|
|
dcfcf50a80 | ||
|
|
4f2c48c733 | ||
|
|
72f8ea130f | ||
|
|
36c98b6cd1 | ||
|
|
14016271d5 | ||
|
|
db2a739b8a | ||
|
|
78cc957d31 | ||
|
|
9ac34c716e | ||
|
|
ec7d3f9d92 | ||
|
|
06baddbd8f | ||
|
|
becbbcd7a9 | ||
|
|
f5138796aa | ||
|
|
6a27545a24 | ||
|
|
4cd22cc615 | ||
|
|
3006b54729 | ||
|
|
ff1e8e9d0a | ||
|
|
a7b6966326 | ||
|
|
060ad08534 | ||
|
|
b82a23bb71 | ||
|
|
925a0f6b42 | ||
|
|
d5715288ef | ||
|
|
3291f8e5d8 | ||
|
|
9c0973bd91 | ||
|
|
b613216190 | ||
|
|
8880155348 | ||
|
|
d38a547c50 | ||
|
|
cc7717452a | ||
|
|
73f472f920 | ||
|
|
39534d11b5 | ||
|
|
d4c1c3d926 | ||
|
|
644261add4 | ||
|
|
7e54895596 | ||
|
|
d08985697d | ||
|
|
2c45eb8612 | ||
|
|
7f06ef4de2 | ||
|
|
cff7b4c8e4 | ||
|
|
67dca9c174 | ||
|
|
b987ef0941 | ||
|
|
9dda77bbba | ||
|
|
7b565fd9c6 | ||
|
|
003e22ee1a | ||
|
|
21eb8a857c | ||
|
|
dcc4fb4736 | ||
|
|
c4e65e85f4 | ||
|
|
be717b43d9 | ||
|
|
afb3171ce1 | ||
|
|
81f4492509 | ||
|
|
1f932c07c8 | ||
|
|
7c2ed24d82 | ||
|
|
51f25743b9 | ||
|
|
00a284c03f | ||
|
|
2326b93252 | ||
|
|
9f91aef9c1 | ||
|
|
5ede12dd7b | ||
|
|
0b2d7c6eac | ||
|
|
bf02836593 | ||
|
|
20634b17c2 | ||
|
|
eb4db98792 | ||
|
|
7efdcb0a11 | ||
|
|
915c12bb8a | ||
|
|
fb01e4861c | ||
|
|
c230e8a34b | ||
|
|
d63fe92ba6 | ||
|
|
b4b212dc91 | ||
|
|
80dcf30d51 | ||
|
|
0ed866632c | ||
|
|
f67339c0e6 | ||
|
|
910a3dba7e | ||
|
|
83ae58f656 | ||
|
|
eeb51f9918 | ||
|
|
da6a4b0297 | ||
|
|
ea404967da | ||
|
|
e10ae1b000 | ||
|
|
8d07b2e41d | ||
|
|
0e775ebd1b | ||
|
|
2fdfcd563e | ||
|
|
b01f22d920 | ||
|
|
aae309ad66 | ||
|
|
476bbb1a42 | ||
|
|
cdf22e45e7 | ||
|
|
ba423e75ef | ||
|
|
0405a756cb | ||
|
|
22c4b9093b | ||
|
|
9def0428c9 | ||
|
|
e38ae6e489 |
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
[submodule "lib/libpl"]
|
||||
path = lib/libpl
|
||||
url = https://gitlab.com/parallel-launcher/libpl.git
|
||||
3
.vscode/c_cpp_properties.json
vendored
3
.vscode/c_cpp_properties.json
vendored
@@ -26,7 +26,8 @@
|
||||
"VERSION_US=1",
|
||||
"F3DEX_GBI_2=1",
|
||||
"F3DZEX_NON_GBI_2=1",
|
||||
"F3DEX_GBI_SHARED=1"
|
||||
"F3DEX_GBI_SHARED=1",
|
||||
"LIBPL=1"
|
||||
],
|
||||
"compilerPath": "/usr/bin/mips-linux-gnu-gcc",
|
||||
"cStandard": "gnu17",
|
||||
|
||||
15
Dockerfile
15
Dockerfile
@@ -1,17 +1,18 @@
|
||||
FROM ubuntu:18.04 as build
|
||||
FROM ubuntu:22.04 as build
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -y \
|
||||
binutils-mips-linux-gnu \
|
||||
bsdmainutils \
|
||||
bsdextrautils \
|
||||
build-essential \
|
||||
gcc-mips-linux-gnu \
|
||||
libcapstone-dev \
|
||||
pkgconf \
|
||||
python3
|
||||
|
||||
RUN mkdir /sm64
|
||||
WORKDIR /sm64
|
||||
ENV PATH="/sm64/tools:${PATH}"
|
||||
RUN mkdir /hackersm64
|
||||
WORKDIR /hackersm64
|
||||
ENV PATH="/hackersm64/tools:${PATH}"
|
||||
|
||||
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'
|
||||
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'
|
||||
|
||||
80
Makefile
80
Makefile
@@ -135,7 +135,7 @@ endif
|
||||
#==============================================================================#
|
||||
|
||||
# Default non-gcc opt flags
|
||||
DEFAULT_OPT_FLAGS = -Ofast
|
||||
DEFAULT_OPT_FLAGS = -Ofast -falign-functions=32
|
||||
# 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,6 +253,18 @@ 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/libpl
|
||||
$(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)
|
||||
@@ -335,6 +347,18 @@ 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 libpl submodule...)
|
||||
DUMMY != git submodule update --init $(LIBPL_DIR) > /dev/null || echo FAIL
|
||||
ifeq ($(DUMMY),FAIL)
|
||||
$(error Failed to clone libpl submodule)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
$(info Building ROM...)
|
||||
|
||||
endif
|
||||
@@ -477,15 +501,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
|
||||
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 += -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
|
||||
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 += -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
|
||||
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
|
||||
|
||||
ASFLAGS := -march=vr4300 -mabi=32 $(foreach i,$(INCLUDE_DIRS),-I$(i)) $(foreach d,$(DEFINES),--defsym $(d))
|
||||
RSPASMFLAGS := $(foreach d,$(DEFINES),-definelabel $(subst =, ,$(d)))
|
||||
@@ -506,7 +530,6 @@ 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
|
||||
@@ -547,7 +570,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
|
||||
EXTRACT_DATA_FOR_MIO := $(OBJCOPY) -O binary --only-section=.data --only-section=.rodata
|
||||
endif
|
||||
|
||||
# Common build print status function
|
||||
@@ -622,29 +645,6 @@ $(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
|
||||
@@ -662,17 +662,11 @@ $(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) $(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)
|
||||
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)) 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
|
||||
|
||||
|
||||
|
||||
#==============================================================================#
|
||||
@@ -799,20 +793,6 @@ $(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:,$<,$@)
|
||||
|
||||
@@ -243,9 +243,11 @@ $(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/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
|
||||
$(BUILD_DIR)/bin/translation_de.elf: SEGMENT_ADDRESS := 0x19000000
|
||||
$(BUILD_DIR)/bin/translation_en.elf: SEGMENT_ADDRESS := 0x19000000
|
||||
$(BUILD_DIR)/bin/translation_fr.elf: SEGMENT_ADDRESS := 0x19000000
|
||||
$(BUILD_DIR)/bin/translation_jp.elf: SEGMENT_ADDRESS := 0x19000000
|
||||
$(BUILD_DIR)/bin/translation_es.elf: SEGMENT_ADDRESS := 0x19000000
|
||||
|
||||
# --------------------------------------
|
||||
# Skybox Rules
|
||||
|
||||
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**: Platform Displacement 2
|
||||
- **Arthurtilly**: ASCII / UTF-8 support, Multilang, 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, reonucam, various defines for hacker QoL
|
||||
- **Reonu**: Starting the project + widescreen, reonucam, various defines for hacker QoL, and a custom Spanish (Spain) translation of the game.
|
||||
- **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,7 +36,6 @@ 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`. *
|
||||
@@ -88,9 +87,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: `"@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.
|
||||
- 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.
|
||||
- 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.1.2
|
||||
v2.2.0
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
// SM64 (EU) Segment 19 - Deutsch
|
||||
|
||||
#include "macros.h"
|
||||
|
||||
#include "game/ingame_menu.h"
|
||||
|
||||
#include "make_const_nonconst.h"
|
||||
|
||||
// Include text/define_text.inc.c, preprocessed with -I text/de/ to get the
|
||||
// right translation strings, with symbols renamed as below.
|
||||
#define seg2_course_name_table course_name_table_eu_de
|
||||
#define seg2_act_name_table act_name_table_eu_de
|
||||
#define seg2_dialog_table dialog_table_eu_de
|
||||
|
||||
#include "text/de/define_text.inc.c"
|
||||
@@ -1,15 +0,0 @@
|
||||
// SM64 (EU) Segment 19 - English
|
||||
|
||||
#include "macros.h"
|
||||
|
||||
#include "game/ingame_menu.h"
|
||||
|
||||
#include "make_const_nonconst.h"
|
||||
|
||||
// Include text/define_text.inc.c, preprocessed with -I text/us/ to get the
|
||||
// right translation strings, with symbols renamed as below.
|
||||
#define seg2_course_name_table course_name_table_eu_en
|
||||
#define seg2_act_name_table act_name_table_eu_en
|
||||
#define seg2_dialog_table dialog_table_eu_en
|
||||
|
||||
#include "text/us/define_text.inc.c"
|
||||
@@ -1,15 +0,0 @@
|
||||
// SM64 (EU) Segment 19 - Français
|
||||
|
||||
#include "macros.h"
|
||||
|
||||
#include "game/ingame_menu.h"
|
||||
|
||||
#include "make_const_nonconst.h"
|
||||
|
||||
// Include text/define_text.inc.c, preprocessed with -I text/fr/ to get the
|
||||
// right translation strings, with symbols renamed as below.
|
||||
#define seg2_course_name_table course_name_table_eu_fr
|
||||
#define seg2_act_name_table act_name_table_eu_fr
|
||||
#define seg2_dialog_table dialog_table_eu_fr
|
||||
|
||||
#include "text/fr/define_text.inc.c"
|
||||
1768
bin/segment2.c
1768
bin/segment2.c
File diff suppressed because it is too large
Load Diff
@@ -143,7 +143,8 @@ const Gfx title_screen_bg_dl_face_easter_egg_end[] = {
|
||||
};
|
||||
#endif
|
||||
|
||||
#if defined(VERSION_SH)
|
||||
// Not part of segment2, but define still covers same use case
|
||||
#if (defined(COMPLETE_EN_US_SEGMENT2) && ENABLE_RUMBLE)
|
||||
ALIGNED8 static const Texture title_texture_rumble_pak[] = {
|
||||
#include "textures/title_screen_bg/title_screen_bg.06648.rgba16.inc.c"
|
||||
};
|
||||
|
||||
17
bin/translation_de.c
Normal file
17
bin/translation_de.c
Normal file
@@ -0,0 +1,17 @@
|
||||
// SM64 (EU) Segment 19 - Deutsch
|
||||
|
||||
#include "macros.h"
|
||||
|
||||
#include "game/ingame_menu.h"
|
||||
#include "sounds.h"
|
||||
#include "seq_ids.h"
|
||||
|
||||
#define COURSE_NAME_TABLE course_name_table_de
|
||||
#define ACT_NAME_TABLE act_name_table_de
|
||||
#define DIALOG_TABLE dialog_table_de
|
||||
|
||||
#define DIALOG_FILE "de/dialogs.h"
|
||||
#define COURSE_FILE "de/courses.h"
|
||||
#include "text/define_text.inc.c"
|
||||
#undef DIALOG_FILE
|
||||
#undef COURSE_FILE
|
||||
17
bin/translation_en.c
Normal file
17
bin/translation_en.c
Normal file
@@ -0,0 +1,17 @@
|
||||
// SM64 (EU) Segment 19 - English
|
||||
|
||||
#include "macros.h"
|
||||
|
||||
#include "game/ingame_menu.h"
|
||||
#include "sounds.h"
|
||||
#include "seq_ids.h"
|
||||
|
||||
#define COURSE_NAME_TABLE course_name_table_en
|
||||
#define ACT_NAME_TABLE act_name_table_en
|
||||
#define DIALOG_TABLE dialog_table_en
|
||||
|
||||
#define DIALOG_FILE "us/dialogs.h"
|
||||
#define COURSE_FILE "us/courses.h"
|
||||
#include "text/define_text.inc.c"
|
||||
#undef DIALOG_FILE
|
||||
#undef COURSE_FILE
|
||||
17
bin/translation_es.c
Normal file
17
bin/translation_es.c
Normal file
@@ -0,0 +1,17 @@
|
||||
// SM64 (EU) Segment 19 - Español (España) (Not vanilla: Translation created and added by Reonu)
|
||||
|
||||
#include "macros.h"
|
||||
|
||||
#include "game/ingame_menu.h"
|
||||
#include "sounds.h"
|
||||
#include "seq_ids.h"
|
||||
|
||||
#define COURSE_NAME_TABLE course_name_table_es
|
||||
#define ACT_NAME_TABLE act_name_table_es
|
||||
#define DIALOG_TABLE dialog_table_es
|
||||
|
||||
#define DIALOG_FILE "es/dialogs.h"
|
||||
#define COURSE_FILE "es/courses.h"
|
||||
#include "text/define_text.inc.c"
|
||||
#undef DIALOG_FILE
|
||||
#undef COURSE_FILE
|
||||
17
bin/translation_fr.c
Normal file
17
bin/translation_fr.c
Normal file
@@ -0,0 +1,17 @@
|
||||
// SM64 (EU) Segment 19 - Français
|
||||
|
||||
#include "macros.h"
|
||||
|
||||
#include "game/ingame_menu.h"
|
||||
#include "sounds.h"
|
||||
#include "seq_ids.h"
|
||||
|
||||
#define COURSE_NAME_TABLE course_name_table_fr
|
||||
#define ACT_NAME_TABLE act_name_table_fr
|
||||
#define DIALOG_TABLE dialog_table_fr
|
||||
|
||||
#define DIALOG_FILE "fr/dialogs.h"
|
||||
#define COURSE_FILE "fr/courses.h"
|
||||
#include "text/define_text.inc.c"
|
||||
#undef DIALOG_FILE
|
||||
#undef COURSE_FILE
|
||||
17
bin/translation_jp.c
Normal file
17
bin/translation_jp.c
Normal file
@@ -0,0 +1,17 @@
|
||||
// SM64 (EU) Segment 19 - 日本語 (Japanese)
|
||||
|
||||
#include "macros.h"
|
||||
|
||||
#include "game/ingame_menu.h"
|
||||
#include "sounds.h"
|
||||
#include "seq_ids.h"
|
||||
|
||||
#define COURSE_NAME_TABLE course_name_table_jp
|
||||
#define ACT_NAME_TABLE act_name_table_jp
|
||||
#define DIALOG_TABLE dialog_table_jp
|
||||
|
||||
#define DIALOG_FILE "jp/dialogs.h"
|
||||
#define COURSE_FILE "jp/courses.h"
|
||||
#include "text/define_text.inc.c"
|
||||
#undef DIALOG_FILE
|
||||
#undef COURSE_FILE
|
||||
357
charmap.txt
357
charmap.txt
@@ -1,357 +0,0 @@
|
||||
'0' = 0x00
|
||||
'0' = 0x00
|
||||
'1' = 0x01
|
||||
'1' = 0x01
|
||||
'2' = 0x02
|
||||
'2' = 0x02
|
||||
'3' = 0x03
|
||||
'3' = 0x03
|
||||
'4' = 0x04
|
||||
'4' = 0x04
|
||||
'5' = 0x05
|
||||
'5' = 0x05
|
||||
'6' = 0x06
|
||||
'6' = 0x06
|
||||
'7' = 0x07
|
||||
'7' = 0x07
|
||||
'8' = 0x08
|
||||
'8' = 0x08
|
||||
'9' = 0x09
|
||||
'9' = 0x09
|
||||
'A' = 0x0A
|
||||
'A' = 0x0A
|
||||
'B' = 0x0B
|
||||
'B' = 0x0B
|
||||
'C' = 0x0C
|
||||
'C' = 0x0C
|
||||
'D' = 0x0D
|
||||
'D' = 0x0D
|
||||
'E' = 0x0E
|
||||
'E' = 0x0E
|
||||
'F' = 0x0F
|
||||
'F' = 0x0F
|
||||
'G' = 0x10
|
||||
'G' = 0x10
|
||||
'H' = 0x11
|
||||
'H' = 0x11
|
||||
'I' = 0x12
|
||||
'I' = 0x12
|
||||
'J' = 0x13
|
||||
'J' = 0x13
|
||||
'K' = 0x14
|
||||
'K' = 0x14
|
||||
'L' = 0x15
|
||||
'L' = 0x15
|
||||
'M' = 0x16
|
||||
'M' = 0x16
|
||||
'N' = 0x17
|
||||
'N' = 0x17
|
||||
'O' = 0x18
|
||||
'O' = 0x18
|
||||
'P' = 0x19
|
||||
'P' = 0x19
|
||||
'Q' = 0x1A
|
||||
'Q' = 0x1A
|
||||
'R' = 0x1B
|
||||
'R' = 0x1B
|
||||
'S' = 0x1C
|
||||
'S' = 0x1C
|
||||
'T' = 0x1D
|
||||
'T' = 0x1D
|
||||
'U' = 0x1E
|
||||
'U' = 0x1E
|
||||
'V' = 0x1F
|
||||
'V' = 0x1F
|
||||
'W' = 0x20
|
||||
'W' = 0x20
|
||||
'X' = 0x21
|
||||
'X' = 0x21
|
||||
'Y' = 0x22
|
||||
'Y' = 0x22
|
||||
'Z' = 0x23
|
||||
'Z' = 0x23
|
||||
'a' = 0x24
|
||||
'b' = 0x25
|
||||
'c' = 0x26
|
||||
'd' = 0x27
|
||||
'e' = 0x28
|
||||
'f' = 0x29
|
||||
'g' = 0x2A
|
||||
'h' = 0x2B
|
||||
'i' = 0x2C
|
||||
'j' = 0x2D
|
||||
'k' = 0x2E
|
||||
'l' = 0x2F
|
||||
'm' = 0x30
|
||||
'n' = 0x31
|
||||
'o' = 0x32
|
||||
'p' = 0x33
|
||||
'q' = 0x34
|
||||
'r' = 0x35
|
||||
's' = 0x36
|
||||
't' = 0x37
|
||||
'u' = 0x38
|
||||
'v' = 0x39
|
||||
'w' = 0x3A
|
||||
'x' = 0x3B
|
||||
'y' = 0x3C
|
||||
'z' = 0x3D
|
||||
'\'' = 0x3E
|
||||
'.' = 0x3F
|
||||
|
||||
# Mario face US/EU menu string (Note: NOT multi-text, each char has a part of the face)
|
||||
'☺' = 0x40, 0x41
|
||||
|
||||
'あ' = 0x40
|
||||
'い' = 0x41
|
||||
'う' = 0x42
|
||||
'え' = 0x43
|
||||
'お' = 0x44
|
||||
'か' = 0x45
|
||||
'き' = 0x46
|
||||
'く' = 0x47
|
||||
'け' = 0x48
|
||||
'こ' = 0x49
|
||||
'さ' = 0x4A
|
||||
'し' = 0x4B
|
||||
'す' = 0x4C
|
||||
'せ' = 0x4D
|
||||
'そ' = 0x4E
|
||||
'た' = 0x4F
|
||||
'ち' = 0x50
|
||||
'つ' = 0x51
|
||||
'て' = 0x52
|
||||
'と' = 0x53
|
||||
'な' = 0x54
|
||||
'に' = 0x55
|
||||
'ぬ' = 0x56
|
||||
'ね' = 0x57
|
||||
'の' = 0x58
|
||||
'は' = 0x59
|
||||
'ひ' = 0x5A
|
||||
'ふ' = 0x5B
|
||||
'へ' = 0x5C
|
||||
'ほ' = 0x5D
|
||||
'ま' = 0x5E
|
||||
'み' = 0x5F
|
||||
'む' = 0x60
|
||||
'め' = 0x61
|
||||
'も' = 0x62
|
||||
'や' = 0x63
|
||||
'ゆ' = 0x64
|
||||
'よ' = 0x65
|
||||
'ら' = 0x66
|
||||
'り' = 0x67
|
||||
'る' = 0x68
|
||||
'れ' = 0x69
|
||||
'ろ' = 0x6A
|
||||
'わ' = 0x6B
|
||||
'を' = 0x6C
|
||||
'ん' = 0x6D
|
||||
'。' = 0x6E
|
||||
',' = 0x6F
|
||||
'、' = 0x6F
|
||||
'ア' = 0x70
|
||||
'イ' = 0x71
|
||||
'ウ' = 0x72
|
||||
'エ' = 0x73
|
||||
'オ' = 0x74
|
||||
'カ' = 0x75
|
||||
'キ' = 0x76
|
||||
'ク' = 0x77
|
||||
'ケ' = 0x78
|
||||
'コ' = 0x79
|
||||
'サ' = 0x7A
|
||||
'シ' = 0x7B
|
||||
'ス' = 0x7C
|
||||
'セ' = 0x7D
|
||||
'ソ' = 0x7E
|
||||
'タ' = 0x7F
|
||||
'チ' = 0x80
|
||||
'ツ' = 0x81
|
||||
'テ' = 0x82
|
||||
'ト' = 0x83
|
||||
'ナ' = 0x84
|
||||
'ニ' = 0x85
|
||||
'ヌ' = 0x86
|
||||
'ネ' = 0x87
|
||||
'ノ' = 0x88
|
||||
'ハ' = 0x89
|
||||
'ヒ' = 0x8A
|
||||
'フ' = 0x8B
|
||||
'ヘ' = 0x8C
|
||||
'ホ' = 0x8D
|
||||
'マ' = 0x8E
|
||||
'ミ' = 0x8F
|
||||
'ム' = 0x90
|
||||
'メ' = 0x91
|
||||
'モ' = 0x92
|
||||
'ヤ' = 0x93
|
||||
'ユ' = 0x94
|
||||
'ヨ' = 0x95
|
||||
'ラ' = 0x96
|
||||
'リ' = 0x97
|
||||
'ル' = 0x98
|
||||
'レ' = 0x99
|
||||
'ロ' = 0x9A
|
||||
'ワ' = 0x9B
|
||||
# 0x9C is unused, only defined in jp menu char lut
|
||||
'ヲ' = 0x9C
|
||||
'ン' = 0x9D
|
||||
' ' = 0x9E
|
||||
' ' = 0x9E
|
||||
'-' = 0x9F
|
||||
'ー' = 0x9F
|
||||
'ぇ' = 0xA0
|
||||
'っ' = 0xA1
|
||||
'ゃ' = 0xA2
|
||||
'ゅ' = 0xA3
|
||||
'ょ' = 0xA4
|
||||
'ぁ' = 0xA5
|
||||
'ぃ' = 0xA6
|
||||
'ぅ' = 0xA7
|
||||
'ぉ' = 0xA8
|
||||
'ェ' = 0xD0
|
||||
'ッ' = 0xD1
|
||||
'ャ' = 0xD2
|
||||
'ュ' = 0xD3
|
||||
'ョ' = 0xD4
|
||||
'ァ' = 0xD5
|
||||
'ィ' = 0xD6
|
||||
'ゥ' = 0xD7
|
||||
'ォ' = 0xD8
|
||||
'@' = 0xDF
|
||||
'[%]' = 0xE0
|
||||
'(' = 0xE1
|
||||
'(' = 0xE1
|
||||
')(' = 0xE2
|
||||
')(' = 0xE2
|
||||
')' = 0xE3
|
||||
')' = 0xE3
|
||||
'+' = 0xE4
|
||||
'↔' = 0xE4
|
||||
'&' = 0xE5
|
||||
':' = 0xE6
|
||||
'゛' = 0xF0
|
||||
'゜' = 0xF1
|
||||
'!' = 0xF2
|
||||
'!' = 0xF2
|
||||
'%' = 0xF3
|
||||
'%' = 0xF3
|
||||
'?' = 0xF4
|
||||
'?' = 0xF4
|
||||
'『' = 0xF5
|
||||
'』' = 0xF6
|
||||
'~' = 0xF7
|
||||
'~' = 0xF7
|
||||
'…' = 0xF8
|
||||
'$' = 0xF9
|
||||
'★' = 0xFA
|
||||
'×' = 0xFB
|
||||
'・' = 0xFC
|
||||
'☆' = 0xFD
|
||||
'\n' = 0xFE
|
||||
|
||||
# hiragana or katakana with dakuten
|
||||
'が' = 0xF0, 0x45
|
||||
'ぎ' = 0xF0, 0x46
|
||||
'ぐ' = 0xF0, 0x47
|
||||
'げ' = 0xF0, 0x48
|
||||
'ご' = 0xF0, 0x49
|
||||
'ざ' = 0xF0, 0x4A
|
||||
'じ' = 0xF0, 0x4B
|
||||
'ず' = 0xF0, 0x4C
|
||||
'ぜ' = 0xF0, 0x4D
|
||||
'ぞ' = 0xF0, 0x4E
|
||||
'だ' = 0xF0, 0x4F
|
||||
'ぢ' = 0xF0, 0x50
|
||||
'づ' = 0xF0, 0x51
|
||||
'で' = 0xF0, 0x52
|
||||
'ど' = 0xF0, 0x53
|
||||
'ば' = 0xF0, 0x59
|
||||
'び' = 0xF0, 0x5A
|
||||
'ぶ' = 0xF0, 0x5B
|
||||
'べ' = 0xF0, 0x5C
|
||||
'ぼ' = 0xF0, 0x5D
|
||||
'ガ' = 0xF0, 0x75
|
||||
'ギ' = 0xF0, 0x76
|
||||
'グ' = 0xF0, 0x77
|
||||
'ゲ' = 0xF0, 0x78
|
||||
'ゴ' = 0xF0, 0x79
|
||||
'ザ' = 0xF0, 0x7A
|
||||
'ジ' = 0xF0, 0x7B
|
||||
'ズ' = 0xF0, 0x7C
|
||||
'ゼ' = 0xF0, 0x7D
|
||||
'ゾ' = 0xF0, 0x7E
|
||||
'ダ' = 0xF0, 0x7F
|
||||
'ヂ' = 0xF0, 0x80
|
||||
'ヅ' = 0xF0, 0x81
|
||||
'デ' = 0xF0, 0x82
|
||||
'ド' = 0xF0, 0x83
|
||||
'バ' = 0xF0, 0x89
|
||||
'ビ' = 0xF0, 0x8A
|
||||
'ブ' = 0xF0, 0x8B
|
||||
'ベ' = 0xF0, 0x8C
|
||||
'ボ' = 0xF0, 0x8D
|
||||
|
||||
# hiragana or katakana with handakuten
|
||||
'ぱ' = 0xF1, 0x59
|
||||
'ぴ' = 0xF1, 0x5A
|
||||
'ぷ' = 0xF1, 0x5B
|
||||
'ぺ' = 0xF1, 0x5C
|
||||
'ぽ' = 0xF1, 0x5D
|
||||
'パ' = 0xF1, 0x89
|
||||
'ピ' = 0xF1, 0x8A
|
||||
'プ' = 0xF1, 0x8B
|
||||
'ペ' = 0xF1, 0x8C
|
||||
'ポ' = 0xF1, 0x8D
|
||||
|
||||
# overwritten US symbols
|
||||
# these symbols overwrite
|
||||
# a previous symbol.
|
||||
'^' = 0x50
|
||||
'|' = 0x51
|
||||
'<' = 0x52
|
||||
'>' = 0x53
|
||||
'[A]' = 0x54
|
||||
'[B]' = 0x55
|
||||
'[C]' = 0x56
|
||||
'[Z]' = 0x57
|
||||
'[R]' = 0x58
|
||||
'/' = 0xD0
|
||||
|
||||
# multi-text US symbols
|
||||
'the' = 0xD1
|
||||
'you' = 0xD2
|
||||
|
||||
# EU ROM symbols
|
||||
'à' = 0x60
|
||||
'â' = 0x61
|
||||
'ä' = 0x62
|
||||
'À' = 0x64
|
||||
'Â' = 0x65
|
||||
'Ä' = 0x66
|
||||
'è' = 0x70
|
||||
'ê' = 0x71
|
||||
'ë' = 0x72
|
||||
'é' = 0x73
|
||||
'È' = 0x74
|
||||
'Ê' = 0x75
|
||||
'Ë' = 0x76
|
||||
'É' = 0x77
|
||||
'ù' = 0x80
|
||||
'û' = 0x81
|
||||
'ü' = 0x82
|
||||
'Ù' = 0x84
|
||||
'Û' = 0x85
|
||||
'Ü' = 0x86
|
||||
'ô' = 0x91
|
||||
'ö' = 0x92
|
||||
'Ô' = 0x95
|
||||
'Ö' = 0x96
|
||||
'î' = 0xA1
|
||||
'ï' = 0xA2
|
||||
'ß' = 0xEC
|
||||
'Ç' = 0xED
|
||||
'ç' = 0xEE
|
||||
'„' = 0xF0
|
||||
@@ -1,30 +0,0 @@
|
||||
# Menu HUD chars, only used in JP
|
||||
# Char values used by text_menu_strings.h.in
|
||||
'フ' = 0x00
|
||||
'ァ' = 0x01
|
||||
'イ' = 0x02
|
||||
'ル' = 0x03
|
||||
'セ' = 0x04
|
||||
'レ' = 0x05
|
||||
'ク' = 0x06
|
||||
'ト' = 0x07
|
||||
'を' = 0x08
|
||||
'コ' = 0x09
|
||||
'ピ' = 0x0A
|
||||
'ー' = 0x0B
|
||||
'す' = 0x0C
|
||||
'る' = 0x0D
|
||||
'け' = 0x0E
|
||||
'マ' = 0x0F
|
||||
'リ' = 0x10
|
||||
'オ' = 0x11
|
||||
'ス' = 0x12
|
||||
'ア' = 0x13
|
||||
'み' = 0x14
|
||||
'ど' = 0x15
|
||||
'の' = 0x16
|
||||
'?' = 0x17
|
||||
'サ' = 0x18
|
||||
'ウ' = 0x19
|
||||
'ン' = 0x1A
|
||||
'ド' = 0x1B
|
||||
@@ -66,6 +66,7 @@
|
||||
#define BC_HH(a, b) (_SHIFTL(a, 16, 16) | _SHIFTL(b, 0, 16))
|
||||
#define BC_W(a) ((uintptr_t)(u32)(a))
|
||||
#define BC_PTR(a) ((uintptr_t)(a))
|
||||
#define BC_BPTR(a, b) (_SHIFTL(a, 24, 8) + OS_K0_TO_PHYSICAL(b))
|
||||
|
||||
enum BehaviorCommands {
|
||||
/*0x00*/ BHV_CMD_BEGIN,
|
||||
@@ -180,8 +181,7 @@ enum BehaviorCommands {
|
||||
|
||||
// Executes a native game function.
|
||||
#define CALL_NATIVE(func) \
|
||||
BC_B(BHV_CMD_CALL_NATIVE), \
|
||||
BC_PTR(func)
|
||||
BC_BPTR(BHV_CMD_CALL_NATIVE, func)
|
||||
|
||||
// Adds a float to the specified field.
|
||||
#define ADD_FLOAT(field, value) \
|
||||
@@ -386,8 +386,7 @@ enum BehaviorCommands {
|
||||
|
||||
// Spawns a water droplet with the given parameters.
|
||||
#define SPAWN_WATER_DROPLET(dropletParams) \
|
||||
BC_B(BHV_CMD_SPAWN_WATER_DROPLET), \
|
||||
BC_PTR(dropletParams)
|
||||
BC_BPTR(BHV_CMD_SPAWN_WATER_DROPLET, dropletParams)
|
||||
|
||||
|
||||
const BehaviorScript bhvStarDoor[] = {
|
||||
@@ -5873,7 +5872,7 @@ const BehaviorScript bhvRacingPenguin[] = {
|
||||
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | 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)),
|
||||
LOAD_ANIMATIONS(oAnimations, penguin_seg5_anims_05008B74),
|
||||
ANIMATE(PENGUIN_ANIM_IDLE),
|
||||
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 300, /*Gravity*/ -800, /*Bounciness*/ -5, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 0, /*Unused*/ 0, 0),
|
||||
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 200, /*Gravity*/ -800, /*Bounciness*/ -5, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 0, /*Unused*/ 0, 0),
|
||||
SCALE(/*Unused*/ 0, /*Field*/ 400),
|
||||
CALL_NATIVE(bhv_racing_penguin_init),
|
||||
BEGIN_LOOP(),
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user