You've already forked ultrasm64-2
mirror of
https://github.com/HackerN64/ultrasm64-2.git
synced 2026-01-21 10:38:08 -08:00
Refresh 13
This commit is contained in:
38
CHANGES
38
CHANGES
@@ -1,3 +1,41 @@
|
||||
Refresh 13
|
||||
|
||||
- No more nonmatchings remain for US, JP, or EU builds. Three(!!!) remain for Shindou (SH).
|
||||
|
||||
*) SHINDOU MATCHING (#1081)
|
||||
*) Makefile gcc fixes (#1114)
|
||||
|
||||
1.) Update diff.py (#1113)
|
||||
2.) Add support for generating C arrays from n64graphics and add Texture typedef (#1032)
|
||||
3.) Update README and Dockerfile with recomp info (#1105)
|
||||
4.) Support building tools with MSYS2 (#1112)
|
||||
5.) Support building tools with clang and macOS (#1106)
|
||||
6.) Clean tools directory when running distclean target (#1104)
|
||||
7.) Make build output cleaner (#1095)
|
||||
8.) Added 2 surface defines to bowser.inc.c (#1111)
|
||||
9.) fix fake matchings (#1108)
|
||||
10.) Use statically recompiled IDO instead of qemu-irix (#1099)
|
||||
11.) Add VERBOSE=1 to Jenkinsfile
|
||||
12.) updated intro_geo to use layer defines for geo flags (#1090)
|
||||
13.) Fix F3DZEX (#1097)
|
||||
14.) layer_transpose should take an s8 (#1093)
|
||||
15.) Fix tools/ build (#1082)
|
||||
16.) Relabel and document fish.inc.c (#1077)
|
||||
17.) Ensure all calls to .py files use $(PYTHON) (#1080)
|
||||
18.) Name Mario, Peach, and instrument sound files (#1078)
|
||||
19.) Goddard labeling, part 2 (#1076)
|
||||
20.) Fix envfx_snow and envfx_bubbles fake matches (#1075)
|
||||
21.) Use array subscripts instead of pointer math in 2 files (#1074)
|
||||
22.) refactor Makefile a bit (#1068)
|
||||
23.) Further improvements on field names (#1059)
|
||||
24.) Label and document manta_ray.inc.c (#1073)
|
||||
25.) Fix level_script and behavior fake matches (#1072)
|
||||
26.) Proper cell defines and more floor lower limit values. (#1065)
|
||||
27.) Document and re-label some goddard/intro code (#1069)
|
||||
28.) Match remaining functions (#1070)
|
||||
29.) match 'spawn_special_objects' (#1071)
|
||||
30.) Document parts of external.c and format sound defines (#1067)
|
||||
|
||||
Refresh 12
|
||||
|
||||
1.) Debug box improvements (#1066)
|
||||
|
||||
15
Dockerfile
15
Dockerfile
@@ -5,20 +5,13 @@ RUN apt-get update && \
|
||||
binutils-mips-linux-gnu \
|
||||
bsdmainutils \
|
||||
build-essential \
|
||||
libaudiofile-dev \
|
||||
python3 \
|
||||
wget
|
||||
|
||||
RUN wget \
|
||||
https://github.com/n64decomp/qemu-irix/releases/download/v2.11-deb/qemu-irix-2.11.0-2169-g32ab296eef_amd64.deb \
|
||||
-O qemu.deb && \
|
||||
echo 8170f37cf03a08cc2d7c1c58f10d650ea0d158f711f6916da9364f6d8c85f741 qemu.deb | sha256sum --check && \
|
||||
dpkg -i qemu.deb && \
|
||||
rm qemu.deb
|
||||
libcapstone-dev \
|
||||
pkgconf \
|
||||
python3
|
||||
|
||||
RUN mkdir /sm64
|
||||
WORKDIR /sm64
|
||||
ENV PATH="/sm64/tools:${PATH}"
|
||||
|
||||
CMD echo 'usage: docker run --rm --mount type=bind,source="$(pwd)",destination=/sm64 sm64 make VERSION=${VERSION:-us} -j4\n' \
|
||||
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'
|
||||
|
||||
16
Jenkinsfile
vendored
16
Jenkinsfile
vendored
@@ -11,25 +11,31 @@ pipeline {
|
||||
sh 'ln -s "$ROMS_DIR/Super Mario 64 (J) [!].z64" baserom.jp.z64'
|
||||
sh 'ln -s "$ROMS_DIR/Super Mario 64 (U) [!].z64" baserom.us.z64'
|
||||
sh 'ln -s "$ROMS_DIR/Super Mario 64 (E) (M3) [!].z64" baserom.eu.z64'
|
||||
sh 'ln -s "$ROMS_DIR/Super Mario 64 - Shindou Edition (J) [!].z64" baserom.sh.z64'
|
||||
// verify no assets were committed to repo
|
||||
sh '[ -z "$(find {actors,levels,textures}/ -name \'*.png\')" ]'
|
||||
sh '[ -z "$(find assets/ -name \'*.m64\' -or \'*.bin\')" ]'
|
||||
sh './extract_assets.py jp us eu'
|
||||
sh './extract_assets.py jp us eu sh'
|
||||
}
|
||||
}
|
||||
stage('Build U Source') {
|
||||
steps {
|
||||
sh 'make -j4 VERSION=us'
|
||||
sh 'make -j4 VERSION=us VERBOSE=1 COLOR=0'
|
||||
}
|
||||
}
|
||||
stage('Build S Source') {
|
||||
steps {
|
||||
sh 'make -j4 VERSION=sh VERBOSE=1 COLOR=0'
|
||||
}
|
||||
}
|
||||
stage('Build E Source') {
|
||||
steps {
|
||||
sh 'make -j4 VERSION=eu'
|
||||
sh 'make -j4 VERSION=eu VERBOSE=1 COLOR=0'
|
||||
}
|
||||
}
|
||||
stage('Build J Source') {
|
||||
steps {
|
||||
sh 'make -j4 VERSION=jp'
|
||||
sh 'make -j4 VERSION=jp VERBOSE=1 COLOR=0'
|
||||
}
|
||||
}
|
||||
stage('Test Enhancements') {
|
||||
@@ -41,7 +47,7 @@ pipeline {
|
||||
git clean -fd .
|
||||
git checkout -- .
|
||||
echo 'y' | tools/apply_patch.sh "$f"
|
||||
make -j4 VERSION=us COMPARE=0
|
||||
make -j4 VERSION=us COMPARE=0 VERBOSE=1
|
||||
done
|
||||
'''
|
||||
}
|
||||
|
||||
238
Makefile.split
238
Makefile.split
@@ -3,9 +3,15 @@
|
||||
# --------------------------------------
|
||||
|
||||
# obtain a list of segments from the *.c files in bin directory
|
||||
SEGMENTS := $(notdir $(basename $(wildcard bin/*.c))) $(addprefix $(VERSION)/,$(notdir $(basename $(wildcard bin/$(VERSION)/*.c)))) $(addsuffix _skybox,$(notdir $(basename $(wildcard textures/skyboxes/*.png))))
|
||||
ACTORS := $(filter %/,$(wildcard actors/*/))
|
||||
TEXTURE_DIRS := $(addprefix textures/,$(SEGMENTS)) $(ACTORS) textures/crash_screen textures/intro_raw textures/ipl3_raw
|
||||
SEGMENTS := \
|
||||
$(notdir $(basename $(wildcard bin/*.c))) \
|
||||
$(addprefix $(VERSION)/,$(notdir $(basename $(wildcard bin/$(VERSION)/*.c)))) \
|
||||
$(addsuffix _skybox,$(notdir $(basename $(wildcard textures/skyboxes/*.png))))
|
||||
|
||||
# Directories containing PNG files
|
||||
TEXTURE_DIRS := \
|
||||
$(wildcard textures/*/) \
|
||||
$(filter %/,$(wildcard actors/*/))
|
||||
|
||||
# NOTE: textures assume naming convention "texture.<encoding>.png" generates "texture.<encoding>"
|
||||
|
||||
@@ -32,12 +38,19 @@ ACTOR_GROUPS := \
|
||||
common1
|
||||
|
||||
LEVEL_FILES := $(addsuffix leveldata,$(LEVEL_DIRS))
|
||||
MIO0_FILES := $(addprefix $(MIO0_DIR)/,$(addsuffix .mio0,$(SEGMENTS))) $(addprefix $(BUILD_DIR)/actors/,$(addsuffix .mio0,$(ACTOR_GROUPS))) $(addprefix $(BUILD_DIR)/levels/,$(addsuffix .mio0,$(LEVEL_FILES)))
|
||||
|
||||
SEG_FILES := \
|
||||
$(SEGMENTS:%=$(BUILD_DIR)/bin/%.elf) \
|
||||
$(ACTOR_GROUPS:%=$(BUILD_DIR)/actors/%.elf) \
|
||||
$(LEVEL_FILES:%=$(BUILD_DIR)/levels/%.elf)
|
||||
|
||||
MIO0_FILES := \
|
||||
$(SEGMENTS:%=$(BUILD_DIR)/bin/%.mio0) \
|
||||
$(ACTOR_GROUPS:%=$(BUILD_DIR)/actors/%.mio0) \
|
||||
$(LEVEL_FILES:%=$(BUILD_DIR)/levels/%.mio0)
|
||||
|
||||
MIO0_OBJ_FILES := $(MIO0_FILES:.mio0=.mio0.o)
|
||||
|
||||
SEGMENT_ELF_FILES := $(addprefix $(BUILD_DIR)/bin/,$(addsuffix .elf,$(SEGMENTS)))
|
||||
ACTOR_ELF_FILES := $(addprefix $(BUILD_DIR)/actors/,$(addsuffix .elf,$(ACTOR_GROUPS)))
|
||||
LEVEL_ELF_FILES := $(addprefix $(BUILD_DIR)/levels/,$(addsuffix .elf,$(LEVEL_FILES)))
|
||||
|
||||
# --------------------------------------
|
||||
# Actor Rules
|
||||
@@ -65,61 +78,61 @@ PEACH_DIRS := bird peach yoshi
|
||||
BOWSER_DIRS := bowser_flame impact_ring yellow_sphere bowser bomb impact_smoke
|
||||
MARIO_DIRS := mario bubble walk_smoke burn_smoke stomp_smoke water_wave sparkle water_splash white_particle_small sparkle_animation
|
||||
|
||||
# Actor Files
|
||||
AMP_CHUCKYA_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(AMP_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png)))
|
||||
BOBOMBS_BUBBLE_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(KING_BOBOMB_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png)))
|
||||
BOO_BOOKEND_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(BOO_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png)))
|
||||
CAPSWITCH_SPRINGBOARD_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(CAPSWITCH_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png)))
|
||||
COINS_PIPE_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(COINS_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png)))
|
||||
BOWSER_FLAMES_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(BOWSER_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png)))
|
||||
BUBBA_WIGGLER_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(BUBBA_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png)))
|
||||
BULLY_BLARGG_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(BULLY_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png)))
|
||||
CHILLYCHIEF_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(CHILLYCHIEF_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png)))
|
||||
HOOT_THWOMP_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(HOOT_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png)))
|
||||
KOOPA_LOG_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(KOOPA_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png)))
|
||||
KLEPTO_EYEROK_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(KLEPTO_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png)))
|
||||
LAKITU_TOAD_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(LAKITU_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png)))
|
||||
MARIO_WATER_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(MARIO_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png)))
|
||||
MOLE_UKIKI_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(MOLE_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png)))
|
||||
MR_I_SWOOP_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(MR_I_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png)))
|
||||
PEACH_TOADSTOOL_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(PEACH_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png)))
|
||||
SEA_CREATURES_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(SEA_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png)))
|
||||
SKEETER_FISH_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(SKEETER_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png)))
|
||||
SPINDRIFT_PENGUIN_FILES := $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(SPINDRIFT_DIRS)),$(patsubst %.png,%.inc.c,$(wildcard $(dir)/*.png)))
|
||||
# Actor Textures
|
||||
AMP_CHUCKYA_TEXTURES := $(foreach dir,$(AMP_DIRS), $(wildcard actors/$(dir)/*.png))
|
||||
BOBOMBS_BUBBLE_TEXTURES := $(foreach dir,$(KING_BOBOMB_DIRS),$(wildcard actors/$(dir)/*.png))
|
||||
BOO_BOOKEND_TEXTURES := $(foreach dir,$(BOO_DIRS), $(wildcard actors/$(dir)/*.png))
|
||||
CAPSWITCH_SPRINGBOARD_TEXTURES := $(foreach dir,$(CAPSWITCH_DIRS), $(wildcard actors/$(dir)/*.png))
|
||||
COINS_PIPE_TEXTURES := $(foreach dir,$(COINS_DIRS), $(wildcard actors/$(dir)/*.png))
|
||||
BOWSER_FLAMES_TEXTURES := $(foreach dir,$(BOWSER_DIRS), $(wildcard actors/$(dir)/*.png))
|
||||
BUBBA_WIGGLER_TEXTURES := $(foreach dir,$(BUBBA_DIRS), $(wildcard actors/$(dir)/*.png))
|
||||
BULLY_BLARGG_TEXTURES := $(foreach dir,$(BULLY_DIRS), $(wildcard actors/$(dir)/*.png))
|
||||
CHILLYCHIEF_TEXTURES := $(foreach dir,$(CHILLYCHIEF_DIRS),$(wildcard actors/$(dir)/*.png))
|
||||
HOOT_THWOMP_TEXTURES := $(foreach dir,$(HOOT_DIRS), $(wildcard actors/$(dir)/*.png))
|
||||
KOOPA_LOG_TEXTURES := $(foreach dir,$(KOOPA_DIRS), $(wildcard actors/$(dir)/*.png))
|
||||
KLEPTO_EYEROK_TEXTURES := $(foreach dir,$(KLEPTO_DIRS), $(wildcard actors/$(dir)/*.png))
|
||||
LAKITU_TOAD_TEXTURES := $(foreach dir,$(LAKITU_DIRS), $(wildcard actors/$(dir)/*.png))
|
||||
MARIO_WATER_TEXTURES := $(foreach dir,$(MARIO_DIRS), $(wildcard actors/$(dir)/*.png))
|
||||
MOLE_UKIKI_TEXTURES := $(foreach dir,$(MOLE_DIRS), $(wildcard actors/$(dir)/*.png))
|
||||
MR_I_SWOOP_TEXTURES := $(foreach dir,$(MR_I_DIRS), $(wildcard actors/$(dir)/*.png))
|
||||
PEACH_TOADSTOOL_TEXTURES := $(foreach dir,$(PEACH_DIRS), $(wildcard actors/$(dir)/*.png))
|
||||
SEA_CREATURES_TEXTURES := $(foreach dir,$(SEA_DIRS), $(wildcard actors/$(dir)/*.png))
|
||||
SKEETER_FISH_TEXTURES := $(foreach dir,$(SKEETER_DIRS), $(wildcard actors/$(dir)/*.png))
|
||||
SPINDRIFT_PENGUIN_TEXTURES := $(foreach dir,$(SPINDRIFT_DIRS), $(wildcard actors/$(dir)/*.png))
|
||||
|
||||
# Actor dependencies
|
||||
$(BUILD_DIR)/actors/group0.o: $(addprefix $(BUILD_DIR)/,$(MARIO_WATER_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(MARIO_DIRS)),$(wildcard $(dir)/*.c))
|
||||
$(BUILD_DIR)/actors/group1.o: $(addprefix $(BUILD_DIR)/,$(HOOT_THWOMP_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(HOOT_DIRS)),$(wildcard $(dir)/*.c))
|
||||
$(BUILD_DIR)/actors/group2.o: $(addprefix $(BUILD_DIR)/,$(BULLY_BLARGG_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(BULLY_DIRS)),$(wildcard $(dir)/*.c))
|
||||
$(BUILD_DIR)/actors/group3.o: $(addprefix $(BUILD_DIR)/,$(BOBOMBS_BUBBLE_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(KING_BOBOMB_DIRS)),$(wildcard $(dir)/*.c))
|
||||
$(BUILD_DIR)/actors/group4.o: $(addprefix $(BUILD_DIR)/,$(SEA_CREATURES_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(SEA_DIRS)),$(wildcard $(dir)/*.c))
|
||||
$(BUILD_DIR)/actors/group5.o: $(addprefix $(BUILD_DIR)/,$(KLEPTO_EYEROK_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(KLEPTO_DIRS)),$(wildcard $(dir)/*.c))
|
||||
$(BUILD_DIR)/actors/group6.o: $(addprefix $(BUILD_DIR)/,$(MOLE_UKIKI_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(MOLE_DIRS)),$(wildcard $(dir)/*.c))
|
||||
$(BUILD_DIR)/actors/group7.o: $(addprefix $(BUILD_DIR)/,$(SPINDRIFT_PENGUIN_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(SPINDRIFT_DIRS)),$(wildcard $(dir)/*.c))
|
||||
$(BUILD_DIR)/actors/group8.o: $(addprefix $(BUILD_DIR)/,$(CAPSWITCH_SPRINGBOARD_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(CAPSWITCH_DIRS)),$(wildcard $(dir)/*.c))
|
||||
$(BUILD_DIR)/actors/group9.o: $(addprefix $(BUILD_DIR)/,$(BOO_BOOKEND_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(BOO_DIRS)),$(wildcard $(dir)/*.c))
|
||||
$(BUILD_DIR)/actors/group10.o: $(addprefix $(BUILD_DIR)/,$(PEACH_TOADSTOOL_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(PEACH_DIRS)),$(wildcard $(dir)/*.c))
|
||||
$(BUILD_DIR)/actors/group11.o: $(addprefix $(BUILD_DIR)/,$(BUBBA_WIGGLER_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(BUBBA_DIRS)),$(wildcard $(dir)/*.c))
|
||||
$(BUILD_DIR)/actors/group12.o: $(addprefix $(BUILD_DIR)/,$(BOWSER_FLAMES_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(BOWSER_DIRS)),$(wildcard $(dir)/*.c))
|
||||
$(BUILD_DIR)/actors/group13.o: $(addprefix $(BUILD_DIR)/,$(SKEETER_FISH_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(SKEETER_DIRS)),$(wildcard $(dir)/*.c))
|
||||
$(BUILD_DIR)/actors/group14.o: $(addprefix $(BUILD_DIR)/,$(KOOPA_LOG_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(KOOPA_DIRS)),$(wildcard $(dir)/*.c))
|
||||
$(BUILD_DIR)/actors/group15.o: $(addprefix $(BUILD_DIR)/,$(LAKITU_TOAD_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(LAKITU_DIRS)),$(wildcard $(dir)/*.c))
|
||||
$(BUILD_DIR)/actors/group16.o: $(addprefix $(BUILD_DIR)/,$(CHILLYCHIEF_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(CHILLYCHIEF_DIRS)),$(wildcard $(dir)/*.c))
|
||||
$(BUILD_DIR)/actors/group17.o: $(addprefix $(BUILD_DIR)/,$(MR_I_SWOOP_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(MR_I_DIRS)),$(wildcard $(dir)/*.c))
|
||||
$(BUILD_DIR)/actors/common0.o: $(addprefix $(BUILD_DIR)/,$(AMP_CHUCKYA_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(AMP_DIRS)),$(wildcard $(dir)/*.c))
|
||||
$(BUILD_DIR)/actors/common1.o: $(addprefix $(BUILD_DIR)/,$(COINS_PIPE_FILES)) $(foreach dir,$(addprefix $(ACTOR_DIR)/,$(COINS_DIRS)),$(wildcard $(dir)/*.c))
|
||||
$(BUILD_DIR)/actors/group0.o: $(MARIO_WATER_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/actors/group1.o: $(HOOT_THWOMP_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/actors/group2.o: $(BULLY_BLARGG_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/actors/group3.o: $(BOBOMBS_BUBBLE_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/actors/group4.o: $(SEA_CREATURES_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/actors/group5.o: $(KLEPTO_EYEROK_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/actors/group6.o: $(MOLE_UKIKI_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/actors/group7.o: $(SPINDRIFT_PENGUIN_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/actors/group8.o: $(CAPSWITCH_SPRINGBOARD_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/actors/group9.o: $(BOO_BOOKEND_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/actors/group10.o: $(PEACH_TOADSTOOL_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/actors/group11.o: $(BUBBA_WIGGLER_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/actors/group12.o: $(BOWSER_FLAMES_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/actors/group13.o: $(SKEETER_FISH_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/actors/group14.o: $(KOOPA_LOG_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/actors/group15.o: $(LAKITU_TOAD_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/actors/group16.o: $(CHILLYCHIEF_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/actors/group17.o: $(MR_I_SWOOP_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/actors/common0.o: $(AMP_CHUCKYA_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/actors/common1.o: $(COINS_PIPE_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
|
||||
# Actor Elf Files
|
||||
$(BUILD_DIR)/actors/group0.elf: SEGMENT_ADDRESS := 0x04000000
|
||||
$(BUILD_DIR)/actors/group1.elf: SEGMENT_ADDRESS := 0x05000000
|
||||
$(BUILD_DIR)/actors/group2.elf: SEGMENT_ADDRESS := 0x05000000
|
||||
$(BUILD_DIR)/actors/group3.elf: SEGMENT_ADDRESS := 0x05000000
|
||||
$(BUILD_DIR)/actors/group4.elf: SEGMENT_ADDRESS := 0x05000000
|
||||
$(BUILD_DIR)/actors/group5.elf: SEGMENT_ADDRESS := 0x05000000
|
||||
$(BUILD_DIR)/actors/group6.elf: SEGMENT_ADDRESS := 0x05000000
|
||||
$(BUILD_DIR)/actors/group7.elf: SEGMENT_ADDRESS := 0x05000000
|
||||
$(BUILD_DIR)/actors/group8.elf: SEGMENT_ADDRESS := 0x05000000
|
||||
$(BUILD_DIR)/actors/group9.elf: SEGMENT_ADDRESS := 0x05000000
|
||||
$(BUILD_DIR)/actors/group0.elf: SEGMENT_ADDRESS := 0x04000000
|
||||
$(BUILD_DIR)/actors/group1.elf: SEGMENT_ADDRESS := 0x05000000
|
||||
$(BUILD_DIR)/actors/group2.elf: SEGMENT_ADDRESS := 0x05000000
|
||||
$(BUILD_DIR)/actors/group3.elf: SEGMENT_ADDRESS := 0x05000000
|
||||
$(BUILD_DIR)/actors/group4.elf: SEGMENT_ADDRESS := 0x05000000
|
||||
$(BUILD_DIR)/actors/group5.elf: SEGMENT_ADDRESS := 0x05000000
|
||||
$(BUILD_DIR)/actors/group6.elf: SEGMENT_ADDRESS := 0x05000000
|
||||
$(BUILD_DIR)/actors/group7.elf: SEGMENT_ADDRESS := 0x05000000
|
||||
$(BUILD_DIR)/actors/group8.elf: SEGMENT_ADDRESS := 0x05000000
|
||||
$(BUILD_DIR)/actors/group9.elf: SEGMENT_ADDRESS := 0x05000000
|
||||
$(BUILD_DIR)/actors/group10.elf: SEGMENT_ADDRESS := 0x05000000
|
||||
$(BUILD_DIR)/actors/group11.elf: SEGMENT_ADDRESS := 0x05000000
|
||||
$(BUILD_DIR)/actors/group12.elf: SEGMENT_ADDRESS := 0x06000000
|
||||
@@ -148,7 +161,8 @@ endef
|
||||
ifneq ($(MAKECMDGOALS),clean)
|
||||
ifneq ($(MAKECMDGOALS),distclean)
|
||||
$(BUILD_DIR)/level_rules.mk: levels/level_rules.mk levels/level_defines.h
|
||||
$(CPP) $(VERSION_CFLAGS) -I . -o $@ $<
|
||||
@$(PRINT) "$(GREEN)Preprocessing level make rules: $(BLUE)$@ $(NO_COL)\n"
|
||||
@$(CPP) $(VERSION_CFLAGS) -I . -o $@ $<
|
||||
include $(BUILD_DIR)/level_rules.mk
|
||||
endif
|
||||
endif
|
||||
@@ -165,77 +179,79 @@ $(eval $(call level_rules,menu,generic)) # Menu (File Select)
|
||||
|
||||
# Ending cake textures are generated in a special way
|
||||
$(BUILD_DIR)/levels/ending/cake_eu.inc.c: levels/ending/cake_eu.png
|
||||
$(SKYCONV) --type cake-eu --split $^ $(BUILD_DIR)/levels/ending
|
||||
@$(PRINT) "$(GREEN)Splitting $(YELLOW)$< $(GREEN)to: $(BLUE)$@ $(NO_COL)\n"
|
||||
@$(SKYCONV) --type cake-eu --split $^ $(BUILD_DIR)/levels/ending
|
||||
$(BUILD_DIR)/levels/ending/cake.inc.c: levels/ending/cake.png
|
||||
$(SKYCONV) --type cake --split $^ $(BUILD_DIR)/levels/ending
|
||||
@$(PRINT) "$(GREEN)Splitting $(YELLOW)$< $(GREEN)to: $(BLUE)$@ $(NO_COL)\n"
|
||||
@$(SKYCONV) --type cake --split $^ $(BUILD_DIR)/levels/ending
|
||||
|
||||
# --------------------------------------
|
||||
# Texture Bin Rules
|
||||
# --------------------------------------
|
||||
|
||||
# Others
|
||||
SEGMENT2_FILES := $(patsubst %.png,%.inc.c,$(wildcard $(TEXTURE_DIR)/segment2/*.png))
|
||||
TITLE_SCREEN_BG_FILES := $(patsubst %.png,%.inc.c,$(wildcard $(TEXTURE_DIR)/title_screen_bg/*.png))
|
||||
SPOOKY_FILES := $(patsubst %.png,%.inc.c,$(wildcard $(TEXTURE_DIR)/spooky/*.png))
|
||||
GENERIC_FILES := $(patsubst %.png,%.inc.c,$(wildcard $(TEXTURE_DIR)/generic/*.png))
|
||||
OUTSIDE_FILES := $(patsubst %.png,%.inc.c,$(wildcard $(TEXTURE_DIR)/outside/*.png))
|
||||
SNOW_FILES := $(patsubst %.png,%.inc.c,$(wildcard $(TEXTURE_DIR)/snow/*.png))
|
||||
EFFECT_FILES := $(patsubst %.png,%.inc.c,$(wildcard $(TEXTURE_DIR)/effect/*.png))
|
||||
CAVE_FILES := $(patsubst %.png,%.inc.c,$(wildcard $(TEXTURE_DIR)/cave/*.png))
|
||||
INSIDE_FILES := $(patsubst %.png,%.inc.c,$(wildcard $(TEXTURE_DIR)/inside/*.png))
|
||||
WATER_FILES := $(patsubst %.png,%.inc.c,$(wildcard $(TEXTURE_DIR)/water/*.png))
|
||||
FIRE_TEXTURES_FILES := $(patsubst %.png,%.inc.c,$(wildcard $(TEXTURE_DIR)/fire/*.png))
|
||||
SKY_FILES := $(patsubst %.png,%.inc.c,$(wildcard $(TEXTURE_DIR)/sky/*.png))
|
||||
MACHINE_FILES := $(patsubst %.png,%.inc.c,$(wildcard $(TEXTURE_DIR)/machine/*.png))
|
||||
MOUNTAIN_FILES := $(patsubst %.png,%.inc.c,$(wildcard $(TEXTURE_DIR)/mountain/*.png))
|
||||
GRASS_FILES := $(patsubst %.png,%.inc.c,$(wildcard $(TEXTURE_DIR)/grass/*.png))
|
||||
SEGMENT2_TEXTURES := $(wildcard $(TEXTURE_DIR)/segment2/*.png)
|
||||
TITLE_SCREEN_BG_TEXTURES := $(wildcard $(TEXTURE_DIR)/title_screen_bg/*.png)
|
||||
SPOOKY_TEXTURES := $(wildcard $(TEXTURE_DIR)/spooky/*.png)
|
||||
GENERIC_TEXTURES := $(wildcard $(TEXTURE_DIR)/generic/*.png)
|
||||
OUTSIDE_TEXTURES := $(wildcard $(TEXTURE_DIR)/outside/*.png)
|
||||
SNOW_TEXTURES := $(wildcard $(TEXTURE_DIR)/snow/*.png)
|
||||
EFFECT_TEXTURES := $(wildcard $(TEXTURE_DIR)/effect/*.png)
|
||||
CAVE_TEXTURES := $(wildcard $(TEXTURE_DIR)/cave/*.png)
|
||||
INSIDE_TEXTURES := $(wildcard $(TEXTURE_DIR)/inside/*.png)
|
||||
WATER_TEXTURES := $(wildcard $(TEXTURE_DIR)/water/*.png)
|
||||
FIRE_TEXTURES_TEXTURES := $(wildcard $(TEXTURE_DIR)/fire/*.png)
|
||||
SKY_TEXTURES := $(wildcard $(TEXTURE_DIR)/sky/*.png)
|
||||
MACHINE_TEXTURES := $(wildcard $(TEXTURE_DIR)/machine/*.png)
|
||||
MOUNTAIN_TEXTURES := $(wildcard $(TEXTURE_DIR)/mountain/*.png)
|
||||
GRASS_TEXTURES := $(wildcard $(TEXTURE_DIR)/grass/*.png)
|
||||
|
||||
# Texture Files
|
||||
$(BUILD_DIR)/bin/segment2.o: $(addprefix $(BUILD_DIR)/,$(SEGMENT2_FILES))
|
||||
$(BUILD_DIR)/bin/title_screen_bg.o: $(addprefix $(BUILD_DIR)/,$(TITLE_SCREEN_BG_FILES))
|
||||
$(BUILD_DIR)/bin/spooky.o: $(addprefix $(BUILD_DIR)/,$(SPOOKY_FILES))
|
||||
$(BUILD_DIR)/bin/generic.o: $(addprefix $(BUILD_DIR)/,$(GENERIC_FILES))
|
||||
$(BUILD_DIR)/bin/outside.o: $(addprefix $(BUILD_DIR)/,$(OUTSIDE_FILES))
|
||||
$(BUILD_DIR)/bin/snow.o: $(addprefix $(BUILD_DIR)/,$(SNOW_FILES))
|
||||
$(BUILD_DIR)/bin/effect.o: $(addprefix $(BUILD_DIR)/,$(EFFECT_FILES))
|
||||
$(BUILD_DIR)/bin/cave.o: $(addprefix $(BUILD_DIR)/,$(CAVE_FILES))
|
||||
$(BUILD_DIR)/bin/inside.o: $(addprefix $(BUILD_DIR)/,$(INSIDE_FILES))
|
||||
$(BUILD_DIR)/bin/water.o: $(addprefix $(BUILD_DIR)/,$(WATER_FILES))
|
||||
$(BUILD_DIR)/bin/fire.o: $(addprefix $(BUILD_DIR)/,$(FIRE_TEXTURES_FILES))
|
||||
$(BUILD_DIR)/bin/sky.o: $(addprefix $(BUILD_DIR)/,$(SKY_FILES))
|
||||
$(BUILD_DIR)/bin/machine.o: $(addprefix $(BUILD_DIR)/,$(MACHINE_FILES))
|
||||
$(BUILD_DIR)/bin/mountain.o: $(addprefix $(BUILD_DIR)/,$(MOUNTAIN_FILES))
|
||||
$(BUILD_DIR)/bin/grass.o: $(addprefix $(BUILD_DIR)/,$(GRASS_FILES))
|
||||
$(BUILD_DIR)/bin/segment2.o: $(SEGMENT2_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/bin/title_screen_bg.o: $(TITLE_SCREEN_BG_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/bin/spooky.o: $(SPOOKY_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/bin/generic.o: $(GENERIC_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/bin/outside.o: $(OUTSIDE_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/bin/snow.o: $(SNOW_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/bin/effect.o: $(EFFECT_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/bin/cave.o: $(CAVE_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/bin/inside.o: $(INSIDE_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/bin/water.o: $(WATER_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/bin/fire.o: $(FIRE_TEXTURES_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/bin/sky.o: $(SKY_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/bin/machine.o: $(MACHINE_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/bin/mountain.o: $(MOUNTAIN_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
$(BUILD_DIR)/bin/grass.o: $(GRASS_TEXTURES:%.png=$(BUILD_DIR)/%.inc.c)
|
||||
|
||||
# Others
|
||||
$(BUILD_DIR)/bin/segment2.elf: SEGMENT_ADDRESS := 0x02000000
|
||||
$(BUILD_DIR)/bin/title_screen_bg.elf: SEGMENT_ADDRESS := 0x0A000000
|
||||
$(BUILD_DIR)/bin/segment2.elf: SEGMENT_ADDRESS := 0x02000000
|
||||
$(BUILD_DIR)/bin/title_screen_bg.elf: SEGMENT_ADDRESS := 0x0A000000
|
||||
$(BUILD_DIR)/bin/debug_level_select.elf: SEGMENT_ADDRESS := 0x07000000
|
||||
$(BUILD_DIR)/bin/effect.elf: SEGMENT_ADDRESS := 0x0B000000
|
||||
$(BUILD_DIR)/bin/spooky.elf: SEGMENT_ADDRESS := 0x09000000
|
||||
$(BUILD_DIR)/bin/generic.elf: SEGMENT_ADDRESS := 0x09000000
|
||||
$(BUILD_DIR)/bin/outside.elf: SEGMENT_ADDRESS := 0x09000000
|
||||
$(BUILD_DIR)/bin/snow.elf: SEGMENT_ADDRESS := 0x09000000
|
||||
$(BUILD_DIR)/bin/cave.elf: SEGMENT_ADDRESS := 0x09000000
|
||||
$(BUILD_DIR)/bin/inside.elf: SEGMENT_ADDRESS := 0x09000000
|
||||
$(BUILD_DIR)/bin/water.elf: SEGMENT_ADDRESS := 0x09000000
|
||||
$(BUILD_DIR)/bin/fire.elf: SEGMENT_ADDRESS := 0x09000000
|
||||
$(BUILD_DIR)/bin/sky.elf: SEGMENT_ADDRESS := 0x09000000
|
||||
$(BUILD_DIR)/bin/machine.elf: SEGMENT_ADDRESS := 0x09000000
|
||||
$(BUILD_DIR)/bin/mountain.elf: SEGMENT_ADDRESS := 0x09000000
|
||||
$(BUILD_DIR)/bin/grass.elf: SEGMENT_ADDRESS := 0x09000000
|
||||
|
||||
$(BUILD_DIR)/bin/effect.elf: SEGMENT_ADDRESS := 0x0B000000
|
||||
$(BUILD_DIR)/bin/spooky.elf: SEGMENT_ADDRESS := 0x09000000
|
||||
$(BUILD_DIR)/bin/generic.elf: SEGMENT_ADDRESS := 0x09000000
|
||||
$(BUILD_DIR)/bin/outside.elf: SEGMENT_ADDRESS := 0x09000000
|
||||
$(BUILD_DIR)/bin/snow.elf: SEGMENT_ADDRESS := 0x09000000
|
||||
$(BUILD_DIR)/bin/cave.elf: SEGMENT_ADDRESS := 0x09000000
|
||||
$(BUILD_DIR)/bin/inside.elf: SEGMENT_ADDRESS := 0x09000000
|
||||
$(BUILD_DIR)/bin/water.elf: SEGMENT_ADDRESS := 0x09000000
|
||||
$(BUILD_DIR)/bin/fire.elf: SEGMENT_ADDRESS := 0x09000000
|
||||
$(BUILD_DIR)/bin/sky.elf: SEGMENT_ADDRESS := 0x09000000
|
||||
$(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/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
|
||||
# --------------------------------------
|
||||
|
||||
$(BUILD_DIR)/bin/%_skybox.c: textures/skyboxes/%.png
|
||||
$(SKYCONV) --type sky --split $^ $(BUILD_DIR)/bin
|
||||
@$(PRINT) "$(GREEN)Splitting $(YELLOW)$< $(GREEN)to: $(BLUE)$@ $(NO_COL)\n"
|
||||
@$(SKYCONV) --type sky --split $^ $(BUILD_DIR)/bin
|
||||
|
||||
$(BUILD_DIR)/bin/%_skybox.elf: SEGMENT_ADDRESS := 0x0A000000
|
||||
|
||||
|
||||
59
README.md
59
README.md
@@ -1,21 +1,22 @@
|
||||
# Super Mario 64
|
||||
|
||||
- This repo contains a full decompilation of Super Mario 64 (J), (U), and (E) with minor exceptions in the audio subsystem.
|
||||
- This repo contains a full decompilation of Super Mario 64 (J), (U), and (E).
|
||||
- Naming and documentation of the source code and data structures are in progress.
|
||||
- Efforts to decompile the Shindou ROM steadily advance toward a matching build.
|
||||
- Efforts to decompile the Shindou ROM steadily advance.
|
||||
|
||||
It builds the following ROMs:
|
||||
|
||||
* sm64.jp.z64 `sha1: 8a20a5c83d6ceb0f0506cfc9fa20d8f438cafe51`
|
||||
* sm64.us.z64 `sha1: 9bef1128717f958171a4afac3ed78ee2bb4e86ce`
|
||||
* sm64.eu.z64 `sha1: 4ac5721683d0e0b6bbb561b58a71740845dceea9`
|
||||
* sm64.sh.z64 `sha1: 3f319ae697533a255a1003d09202379d78d5a2e0`
|
||||
|
||||
This repo does not include all assets necessary for compiling the ROMs.
|
||||
A prior copy of the game is required to extract the assets.
|
||||
|
||||
## Quick Start (for Ubuntu)
|
||||
|
||||
1. Install prerequisites: `sudo apt install -y build-essential git binutils-mips-linux-gnu python3 libaudiofile-dev`
|
||||
1. Install prerequisites: `sudo apt install -y build-essential git binutils-mips-linux-gnu python3`
|
||||
2. Clone the repo from within Linux: `git clone https://github.com/n64decomp/sm64.git`
|
||||
3. Place a Super Mario 64 ROM called `baserom.<VERSION>.z64` into the project folder for asset extraction, where `VERSION` can be `us`, `jp`, or `eu`.
|
||||
4. Run `make` to build. Qualify the version through `make VERSION=<VERSION>`. Add `-j4` to improve build speed (hardware dependent).
|
||||
@@ -44,33 +45,25 @@ There are 3 steps to set up a working build.
|
||||
|
||||
The build system has the following package requirements:
|
||||
* binutils-mips
|
||||
* capstone
|
||||
* pkgconf
|
||||
* python3 >= 3.6
|
||||
* libaudiofile
|
||||
* qemu-irix
|
||||
|
||||
Dependency installation instructions for common Linux distros are provided below:
|
||||
|
||||
##### Debian / Ubuntu
|
||||
To install build dependencies:
|
||||
```
|
||||
sudo apt install -y build-essential git binutils-mips-linux-gnu python3 libaudiofile-dev
|
||||
```
|
||||
|
||||
Download latest package from [qemu-irix Releases.](https://github.com/n64decomp/qemu-irix/releases)
|
||||
|
||||
Install this package with:
|
||||
```
|
||||
sudo dpkg -i qemu-irix-2.11.0-2169-g32ab296eef_amd64.deb
|
||||
sudo apt install -y binutils-mips-linux-gnu build-essential git libcapstone-dev pkgconf python3
|
||||
```
|
||||
|
||||
##### Arch Linux
|
||||
To install build dependencies:
|
||||
```
|
||||
sudo pacman -S base-devel python audiofile
|
||||
sudo pacman -S base-devel capstone python
|
||||
```
|
||||
Install the following AUR packages:
|
||||
* [mips64-elf-binutils](https://aur.archlinux.org/packages/mips64-elf-binutils) (AUR)
|
||||
* [qemu-irix-git](https://aur.archlinux.org/packages/qemu-irix-git) (AUR)
|
||||
|
||||
|
||||
##### Other Linux distributions
|
||||
@@ -106,23 +99,47 @@ The full list of configurable variables are listed below, with the default being
|
||||
* ``VERSION``: ``us``, ``jp``, ``eu``, ``sh`` (WIP)
|
||||
* ``GRUCODE``: ``f3d_old``, ``f3d_new``, ``f3dex``, ``f3dex2``, ``f3dzex``
|
||||
* ``COMPARE``: ``1`` (compare ROM hash), ``0`` (do not compare ROM hash)
|
||||
* ``NON_MATCHING``: Use functionally equivalent C implementations for non-matchings. Also will avoid instances of undefined behavior.
|
||||
* ``NON_MATCHING``: Use functionally equivalent C implementations for non-matchings (Currently there aren't any non-matchings, but this will apply to Shindou and iQue). Also will avoid instances of undefined behavior.
|
||||
* ``CROSS``: Cross-compiler tool prefix (Example: ``mips64-elf-``).
|
||||
* ``QEMU_IRIX``: Path to a ``qemu-irix`` binary.
|
||||
|
||||
### macOS
|
||||
|
||||
Installing Docker is the recommended avenue for macOS users. This project does not support macOS natively due to lack of macOS host support.
|
||||
With macOS, you may either use Homebrew or [Docker](#docker-installation).
|
||||
|
||||
#### Homebrew
|
||||
|
||||
#### Step 1: Install dependencies
|
||||
Install [Homebrew](https://brew.sh) and the following dependencies:
|
||||
```
|
||||
brew update
|
||||
brew install capstone coreutils gcc make pkg-config tehzz/n64-dev/mips64-elf-binutils
|
||||
```
|
||||
|
||||
#### Step 2: Copy baserom(s) for asset extraction
|
||||
|
||||
For each version (jp/us/eu) for which you want to build a ROM, put an existing ROM at
|
||||
`./baserom.<VERSION>.z64` for asset extraction.
|
||||
|
||||
##### Step 3: Build the ROM
|
||||
|
||||
Use Homebrew's GNU make because the version included with macOS is too old.
|
||||
|
||||
```
|
||||
gmake VERSION=jp -j4 # build (J) version instead with 4 jobs
|
||||
```
|
||||
|
||||
### Docker Installation
|
||||
|
||||
#### Create Docker image
|
||||
|
||||
Create the docker image with `docker build -t sm64`.
|
||||
After installing and starting Docker, create the docker image. This only needs to be done once.
|
||||
```
|
||||
docker build -t sm64 .
|
||||
```
|
||||
|
||||
#### Build
|
||||
|
||||
To build, mount the local filesystem into the Docker container and build the ROM with `docker run`.
|
||||
To build, mount the local filesystem into the Docker container and build the ROM with `docker run sm64 make`.
|
||||
|
||||
##### macOS example for (U):
|
||||
```
|
||||
@@ -132,7 +149,7 @@ docker run --rm --mount type=bind,source="$(pwd)",destination=/sm64 sm64 make VE
|
||||
##### Linux example for (U):
|
||||
For a Linux host, Docker needs to be instructed which user should own the output files:
|
||||
```
|
||||
docker run --rm --mount type=bind,source="$(pwd)",destination=/sm64 --user $UID:$UID sm64 make VERSION=us -j4
|
||||
docker run --rm --mount type=bind,source="$(pwd)",destination=/sm64 --user $UID:$GID sm64 make VERSION=us -j4
|
||||
```
|
||||
|
||||
Resulting artifacts can be found in the `build` directory.
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
// Amp
|
||||
|
||||
// 0x08000F18
|
||||
ALIGNED8 static const u8 amp_seg8_texture_08000F18[] = {
|
||||
ALIGNED8 static const Texture amp_seg8_texture_08000F18[] = {
|
||||
#include "actors/amp/amp_electricity.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x08001318
|
||||
ALIGNED8 static const u8 amp_seg8_texture_08001318[] = {
|
||||
ALIGNED8 static const Texture amp_seg8_texture_08001318[] = {
|
||||
#include "actors/amp/amp_eyes.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x08001B18
|
||||
ALIGNED8 static const u8 amp_seg8_texture_08001B18[] = {
|
||||
ALIGNED8 static const Texture amp_seg8_texture_08001B18[] = {
|
||||
#include "actors/amp/amp_body.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x08002318
|
||||
ALIGNED8 static const u8 amp_seg8_texture_08002318[] = {
|
||||
ALIGNED8 static const Texture amp_seg8_texture_08002318[] = {
|
||||
#include "actors/amp/amp_mouth.rgba16.inc.c"
|
||||
};
|
||||
|
||||
|
||||
@@ -7,12 +7,12 @@ static const Lights1 blue_coin_switch_seg8_lights_08000000 = gdSPDefLights1(
|
||||
);
|
||||
|
||||
// 0x08000018
|
||||
ALIGNED8 static const u8 blue_coin_switch_seg8_texture_08000018[] = {
|
||||
ALIGNED8 static const Texture blue_coin_switch_seg8_texture_08000018[] = {
|
||||
#include "actors/blue_coin_switch/blue_coin_switch_side.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x08000418
|
||||
ALIGNED8 static const u8 blue_coin_switch_seg8_texture_08000418[] = {
|
||||
ALIGNED8 static const Texture blue_coin_switch_seg8_texture_08000418[] = {
|
||||
#include "actors/blue_coin_switch/blue_coin_switch_top.rgba16.inc.c"
|
||||
};
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ static const Lights1 blue_fish_seg3_lights_0301B5C8 = gdSPDefLights1(
|
||||
);
|
||||
|
||||
// 0x0301B5E0
|
||||
ALIGNED8 static const u8 blue_fish_seg3_texture_0301B5E0[] = {
|
||||
ALIGNED8 static const Texture blue_fish_seg3_texture_0301B5E0[] = {
|
||||
#include "actors/blue_fish/blue_fish.rgba16.inc.c"
|
||||
};
|
||||
|
||||
|
||||
@@ -1,32 +1,32 @@
|
||||
// Bobomb
|
||||
|
||||
// 0x0801DA60
|
||||
ALIGNED8 static const u8 bobomb_seg8_texture_0801DA60[] = {
|
||||
ALIGNED8 static const Texture bobomb_seg8_texture_0801DA60[] = {
|
||||
#include "actors/bobomb/bob-omb_left_side.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x0801EA60
|
||||
ALIGNED8 static const u8 bobomb_seg8_texture_0801EA60[] = {
|
||||
ALIGNED8 static const Texture bobomb_seg8_texture_0801EA60[] = {
|
||||
#include "actors/bobomb/bob-omb_right_side.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x0801FA60
|
||||
ALIGNED8 static const u8 bobomb_seg8_texture_0801FA60[] = {
|
||||
ALIGNED8 static const Texture bobomb_seg8_texture_0801FA60[] = {
|
||||
#include "actors/bobomb/bob-omb_buddy_left_side.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x08020A60
|
||||
ALIGNED8 static const u8 bobomb_seg8_texture_08020A60[] = {
|
||||
ALIGNED8 static const Texture bobomb_seg8_texture_08020A60[] = {
|
||||
#include "actors/bobomb/bob-omb_buddy_right_side.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x08021A60
|
||||
ALIGNED8 static const u8 bobomb_seg8_texture_08021A60[] = {
|
||||
ALIGNED8 static const Texture bobomb_seg8_texture_08021A60[] = {
|
||||
#include "actors/bobomb/bob-omb_eyes.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x08022260
|
||||
ALIGNED8 static const u8 bobomb_seg8_texture_08022260[] = {
|
||||
ALIGNED8 static const Texture bobomb_seg8_texture_08022260[] = {
|
||||
#include "actors/bobomb/bob-omb_eyes_blink.rgba16.inc.c"
|
||||
};
|
||||
|
||||
|
||||
@@ -7,17 +7,17 @@ static const Lights1 bomb_seg6_lights_06057AA8 = gdSPDefLights1(
|
||||
);
|
||||
|
||||
// 0x06057AC0
|
||||
ALIGNED8 static const u8 bomb_seg6_texture_06057AC0[] = {
|
||||
ALIGNED8 static const Texture bomb_seg6_texture_06057AC0[] = {
|
||||
#include "actors/bomb/bomb_left_side.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06058AC0
|
||||
ALIGNED8 static const u8 bomb_seg6_texture_06058AC0[] = {
|
||||
ALIGNED8 static const Texture bomb_seg6_texture_06058AC0[] = {
|
||||
#include "actors/bomb/bomb_right_side.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06059AC0
|
||||
ALIGNED8 static const u8 bomb_seg6_texture_06059AC0[] = {
|
||||
ALIGNED8 static const Texture bomb_seg6_texture_06059AC0[] = {
|
||||
#include "actors/bomb/bomb_spike.rgba16.inc.c"
|
||||
};
|
||||
|
||||
|
||||
@@ -7,12 +7,12 @@ static const Lights1 boo_seg5_lights_05009B28 = gdSPDefLights1(
|
||||
);
|
||||
|
||||
// 0x05009B40
|
||||
ALIGNED8 static const u8 boo_seg5_texture_05009B40[] = {
|
||||
ALIGNED8 static const Texture boo_seg5_texture_05009B40[] = {
|
||||
#include "actors/boo/boo_eyes.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x0500AB40
|
||||
ALIGNED8 static const u8 boo_seg5_texture_0500AB40[] = {
|
||||
ALIGNED8 static const Texture boo_seg5_texture_0500AB40[] = {
|
||||
#include "actors/boo/boo_mouth.rgba16.inc.c"
|
||||
};
|
||||
|
||||
|
||||
@@ -7,12 +7,12 @@ static const Lights1 boo_castle_seg6_lights_06015658 = gdSPDefLights1(
|
||||
);
|
||||
|
||||
// 0x06015670
|
||||
ALIGNED8 static const u8 boo_castle_seg6_texture_06015670[] = {
|
||||
ALIGNED8 static const Texture boo_castle_seg6_texture_06015670[] = {
|
||||
#include "actors/boo_castle/bbh_boo_eyes.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06016670
|
||||
ALIGNED8 static const u8 boo_castle_seg6_texture_06016670[] = {
|
||||
ALIGNED8 static const Texture boo_castle_seg6_texture_06016670[] = {
|
||||
#include "actors/boo_castle/bbh_boo_mouth.rgba16.inc.c"
|
||||
};
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ static const Lights1 book_seg5_lights_05002558 = gdSPDefLights1(
|
||||
);
|
||||
|
||||
// 0x05002570
|
||||
ALIGNED8 static const u8 book_seg5_texture_05002570[] = {
|
||||
ALIGNED8 static const Texture book_seg5_texture_05002570[] = {
|
||||
#include "actors/book/book_cover.rgba16.inc.c"
|
||||
};
|
||||
|
||||
|
||||
@@ -25,27 +25,27 @@ UNUSED static const Lights1 bookend_lights_unused4 = gdSPDefLights1(
|
||||
);
|
||||
|
||||
// 0x05000060
|
||||
ALIGNED8 static const u8 bookend_seg5_texture_05000060[] = {
|
||||
ALIGNED8 static const Texture bookend_seg5_texture_05000060[] = {
|
||||
#include "actors/bookend/bookend_spine.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x05000460
|
||||
ALIGNED8 static const u8 bookend_seg5_texture_05000460[] = {
|
||||
ALIGNED8 static const Texture bookend_seg5_texture_05000460[] = {
|
||||
#include "actors/bookend/bookend_tooth.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x05000860
|
||||
ALIGNED8 static const u8 bookend_seg5_texture_05000860[] = {
|
||||
ALIGNED8 static const Texture bookend_seg5_texture_05000860[] = {
|
||||
#include "actors/bookend/bookend_mouth.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x05000C60
|
||||
ALIGNED8 static const u8 bookend_seg5_texture_05000C60[] = {
|
||||
ALIGNED8 static const Texture bookend_seg5_texture_05000C60[] = {
|
||||
#include "actors/bookend/bookend_pages.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x05001060
|
||||
ALIGNED8 static const u8 bookend_seg5_texture_05001060[] = {
|
||||
ALIGNED8 static const Texture bookend_seg5_texture_05001060[] = {
|
||||
#include "actors/bookend/bookend_cover.rgba16.inc.c"
|
||||
};
|
||||
|
||||
|
||||
@@ -1,149 +1,149 @@
|
||||
// Bowser (King Koopa)
|
||||
|
||||
// 0x0601F438
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_0601F438[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_0601F438[] = {
|
||||
#include "actors/bowser/bowser_shell.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x0601FC38
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_0601FC38[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_0601FC38[] = {
|
||||
#include "actors/bowser/bowser_eyebrow.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06020C38
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_06020C38[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_06020C38[] = {
|
||||
#include "actors/bowser/bowser_muzzle.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06021438
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_06021438[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_06021438[] = {
|
||||
#include "actors/bowser/bowser_nostrils.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06022438
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_06022438[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_06022438[] = {
|
||||
#include "actors/bowser/bowser_body.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06022C38
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_06022C38[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_06022C38[] = {
|
||||
#include "actors/bowser/bowser_armband_spike.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06023C38
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_06023C38[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_06023C38[] = {
|
||||
#include "actors/bowser/bowser_armband.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06024438
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_06024438[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_06024438[] = {
|
||||
#include "actors/bowser/bowser_tongue.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06025438
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_06025438[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_06025438[] = {
|
||||
#include "actors/bowser/bowser_chest.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06025C38
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_06025C38[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_06025C38[] = {
|
||||
#include "actors/bowser/bowser_shell_edge.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// unreferenced, seen in pre-Spaceworld 1995 B-roll footage build
|
||||
// 0x06026438
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_06026438[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_06026438[] = {
|
||||
#include "actors/bowser/bowser_blue_eye_unused.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// unreferenced (stubbed texture? possibly original texture for mouth)
|
||||
// 0x06027438
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_06027438[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_06027438[] = {
|
||||
#include "actors/bowser/bowser_mouth_unused.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06028438
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_06028438[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_06028438[] = {
|
||||
#include "actors/bowser/bowser_upper_face.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06028C38
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_06028C38[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_06028C38[] = {
|
||||
#include "actors/bowser/bowser_hair.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06029C38
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_06029C38[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_06029C38[] = {
|
||||
#include "actors/bowser/bowser_claw_edge.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x0602AC38
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_0602AC38[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_0602AC38[] = {
|
||||
#include "actors/bowser/bowser_claw_horn_tooth.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x0602BC38
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_0602BC38[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_0602BC38[] = {
|
||||
#include "actors/bowser/bowser_claw_horn_angle.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x0602CC38
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_0602CC38[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_0602CC38[] = {
|
||||
#include "actors/bowser/bowser_eye_left_0.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x0602DC38
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_0602DC38[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_0602DC38[] = {
|
||||
#include "actors/bowser/bowser_eye_half_closed_0.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x0602EC38
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_0602EC38[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_0602EC38[] = {
|
||||
#include "actors/bowser/bowser_eye_closed_0.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x0602FC38
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_0602FC38[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_0602FC38[] = {
|
||||
#include "actors/bowser/bowser_eye_center_0.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06030C38
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_06030C38[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_06030C38[] = {
|
||||
#include "actors/bowser/bowser_eye_right_0.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06031C38
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_06031C38[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_06031C38[] = {
|
||||
#include "actors/bowser/bowser_eye_far_left_0.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06032C38
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_06032C38[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_06032C38[] = {
|
||||
#include "actors/bowser/bowser_eye_left_1.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06033C38
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_06033C38[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_06033C38[] = {
|
||||
#include "actors/bowser/bowser_eye_half_closed_1.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06034C38
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_06034C38[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_06034C38[] = {
|
||||
#include "actors/bowser/bowser_eye_closed_1.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06035C38
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_06035C38[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_06035C38[] = {
|
||||
#include "actors/bowser/bowser_eye_center_1.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06036C38
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_06036C38[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_06036C38[] = {
|
||||
#include "actors/bowser/bowser_eye_right_1.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06037C38
|
||||
ALIGNED8 static const u8 bowser_seg6_texture_06037C38[] = {
|
||||
ALIGNED8 static const Texture bowser_seg6_texture_06037C38[] = {
|
||||
#include "actors/bowser/bowser_eye_far_left_1.rgba16.inc.c"
|
||||
};
|
||||
|
||||
|
||||
@@ -1,74 +1,74 @@
|
||||
// Bowser Flame
|
||||
|
||||
// TODO: Are these seperate textures or unified 64x64 ones?
|
||||
// TODO: These 64x64 textures are referenced as two different texture addresses in the DLs
|
||||
|
||||
// 0x06000000
|
||||
ALIGNED8 static const u8 flame_seg6_texture_06000000[] = {
|
||||
ALIGNED8 static const Texture flame_seg6_texture_06000000[] = {
|
||||
#include "actors/bowser_flame/bowser_flame_0.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06002000
|
||||
ALIGNED8 static const u8 flame_seg6_texture_06002000[] = {
|
||||
ALIGNED8 static const Texture flame_seg6_texture_06002000[] = {
|
||||
#include "actors/bowser_flame/bowser_flame_1.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06004000
|
||||
ALIGNED8 static const u8 flame_seg6_texture_06004000[] = {
|
||||
ALIGNED8 static const Texture flame_seg6_texture_06004000[] = {
|
||||
#include "actors/bowser_flame/bowser_flame_2.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06006000
|
||||
ALIGNED8 static const u8 flame_seg6_texture_06006000[] = {
|
||||
ALIGNED8 static const Texture flame_seg6_texture_06006000[] = {
|
||||
#include "actors/bowser_flame/bowser_flame_3.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06008000
|
||||
ALIGNED8 static const u8 flame_seg6_texture_06008000[] = {
|
||||
ALIGNED8 static const Texture flame_seg6_texture_06008000[] = {
|
||||
#include "actors/bowser_flame/bowser_flame_4.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x0600A000
|
||||
ALIGNED8 static const u8 flame_seg6_texture_0600A000[] = {
|
||||
ALIGNED8 static const Texture flame_seg6_texture_0600A000[] = {
|
||||
#include "actors/bowser_flame/bowser_flame_5.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x0600C000
|
||||
ALIGNED8 static const u8 flame_seg6_texture_0600C000[] = {
|
||||
ALIGNED8 static const Texture flame_seg6_texture_0600C000[] = {
|
||||
#include "actors/bowser_flame/bowser_flame_6.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x0600E000
|
||||
ALIGNED8 static const u8 flame_seg6_texture_0600E000[] = {
|
||||
ALIGNED8 static const Texture flame_seg6_texture_0600E000[] = {
|
||||
#include "actors/bowser_flame/bowser_flame_7.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06010000
|
||||
ALIGNED8 static const u8 flame_seg6_texture_06010000[] = {
|
||||
ALIGNED8 static const Texture flame_seg6_texture_06010000[] = {
|
||||
#include "actors/bowser_flame/bowser_flame_8.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06012000
|
||||
ALIGNED8 static const u8 flame_seg6_texture_06012000[] = {
|
||||
ALIGNED8 static const Texture flame_seg6_texture_06012000[] = {
|
||||
#include "actors/bowser_flame/bowser_flame_9.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06014000
|
||||
ALIGNED8 static const u8 flame_seg6_texture_06014000[] = {
|
||||
ALIGNED8 static const Texture flame_seg6_texture_06014000[] = {
|
||||
#include "actors/bowser_flame/bowser_flame_10.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06016000
|
||||
ALIGNED8 static const u8 flame_seg6_texture_06016000[] = {
|
||||
ALIGNED8 static const Texture flame_seg6_texture_06016000[] = {
|
||||
#include "actors/bowser_flame/bowser_flame_11.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x06018000
|
||||
ALIGNED8 static const u8 flame_seg6_texture_06018000[] = {
|
||||
ALIGNED8 static const Texture flame_seg6_texture_06018000[] = {
|
||||
#include "actors/bowser_flame/bowser_flame_12.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x0601A000
|
||||
ALIGNED8 static const u8 flame_seg6_texture_0601A000[] = {
|
||||
ALIGNED8 static const Texture flame_seg6_texture_0601A000[] = {
|
||||
#include "actors/bowser_flame/bowser_flame_13.rgba16.inc.c"
|
||||
};
|
||||
|
||||
@@ -120,7 +120,7 @@ const Gfx flame_seg6_dl_0601C108[] = {
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_06000000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0B0),
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_06000000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06000000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0C8),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0E0),
|
||||
gsSPEndDisplayList(),
|
||||
@@ -132,7 +132,7 @@ const Gfx flame_seg6_dl_0601C1A8[] = {
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_06002000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0B0),
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_06002000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06002000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0C8),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0E0),
|
||||
gsSPEndDisplayList(),
|
||||
@@ -144,7 +144,7 @@ const Gfx flame_seg6_dl_0601C248[] = {
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_06004000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0B0),
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_06004000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06004000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0C8),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0E0),
|
||||
gsSPEndDisplayList(),
|
||||
@@ -156,7 +156,7 @@ const Gfx flame_seg6_dl_0601C2E8[] = {
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_06006000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0B0),
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_06006000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06006000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0C8),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0E0),
|
||||
gsSPEndDisplayList(),
|
||||
@@ -168,7 +168,7 @@ const Gfx flame_seg6_dl_0601C388[] = {
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_06008000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0B0),
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_06008000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06008000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0C8),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0E0),
|
||||
gsSPEndDisplayList(),
|
||||
@@ -180,7 +180,7 @@ const Gfx flame_seg6_dl_0601C428[] = {
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_0600A000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0B0),
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_0600A000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsDPLoadTextureBlock((u8*)flame_seg6_texture_0600A000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0C8),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0E0),
|
||||
gsSPEndDisplayList(),
|
||||
@@ -192,7 +192,7 @@ const Gfx flame_seg6_dl_0601C4C8[] = {
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_0600C000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0B0),
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_0600C000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsDPLoadTextureBlock((u8*)flame_seg6_texture_0600C000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0C8),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0E0),
|
||||
gsSPEndDisplayList(),
|
||||
@@ -204,7 +204,7 @@ const Gfx flame_seg6_dl_0601C568[] = {
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_0600E000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0B0),
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_0600E000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsDPLoadTextureBlock((u8*)flame_seg6_texture_0600E000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0C8),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0E0),
|
||||
gsSPEndDisplayList(),
|
||||
@@ -216,7 +216,7 @@ const Gfx flame_seg6_dl_0601C608[] = {
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_06010000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0B0),
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_06010000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06010000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0C8),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0E0),
|
||||
gsSPEndDisplayList(),
|
||||
@@ -228,7 +228,7 @@ const Gfx flame_seg6_dl_0601C6A8[] = {
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_06012000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0B0),
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_06012000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06012000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0C8),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0E0),
|
||||
gsSPEndDisplayList(),
|
||||
@@ -240,7 +240,7 @@ const Gfx flame_seg6_dl_0601C748[] = {
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_06014000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0B0),
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_06014000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06014000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0C8),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0E0),
|
||||
gsSPEndDisplayList(),
|
||||
@@ -252,7 +252,7 @@ const Gfx flame_seg6_dl_0601C7E8[] = {
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_06016000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0B0),
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_06016000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06016000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0C8),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0E0),
|
||||
gsSPEndDisplayList(),
|
||||
@@ -264,7 +264,7 @@ const Gfx flame_seg6_dl_0601C888[] = {
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_06018000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0B0),
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_06018000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsDPLoadTextureBlock((u8*)flame_seg6_texture_06018000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0C8),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0E0),
|
||||
gsSPEndDisplayList(),
|
||||
@@ -276,7 +276,7 @@ const Gfx flame_seg6_dl_0601C928[] = {
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_0601A000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPVertex(flame_seg6_vertex_0601C000, 8, 0),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0B0),
|
||||
gsDPLoadTextureBlock(flame_seg6_texture_0601A000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsDPLoadTextureBlock((u8*)flame_seg6_texture_0601A000 + 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_CLAMP, G_TX_CLAMP, 6, 5, G_TX_NOLOD, G_TX_NOLOD),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0C8),
|
||||
gsSPDisplayList(flame_seg6_dl_0601C0E0),
|
||||
gsSPEndDisplayList(),
|
||||
|
||||
@@ -7,12 +7,12 @@ static const Lights1 breakable_box_seg8_lights_08011A80 = gdSPDefLights1(
|
||||
);
|
||||
|
||||
// 0x08011A90
|
||||
ALIGNED8 static const u8 breakable_box_seg8_texture_08011A90[] = {
|
||||
ALIGNED8 static const Texture breakable_box_seg8_texture_08011A90[] = {
|
||||
#include "actors/breakable_box/crazy_box_surface.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x08012290
|
||||
ALIGNED8 static const u8 breakable_box_seg8_texture_08012290[] = {
|
||||
ALIGNED8 static const Texture breakable_box_seg8_texture_08012290[] = {
|
||||
#include "actors/breakable_box/cork_box_surface.rgba16.inc.c"
|
||||
};
|
||||
|
||||
|
||||
@@ -13,22 +13,22 @@ static const Lights1 bub_seg6_lights_0600E290 = gdSPDefLights1(
|
||||
);
|
||||
|
||||
// 0x0600E2A8
|
||||
ALIGNED8 static const u8 bub_seg6_texture_0600E2A8[] = {
|
||||
ALIGNED8 static const Texture bub_seg6_texture_0600E2A8[] = {
|
||||
#include "actors/bub/bub_eye_border.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x0600EAA8
|
||||
ALIGNED8 static const u8 bub_seg6_texture_0600EAA8[] = {
|
||||
ALIGNED8 static const Texture bub_seg6_texture_0600EAA8[] = {
|
||||
#include "actors/bub/bub_fins.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x0600F2A8
|
||||
ALIGNED8 static const u8 bub_seg6_texture_0600F2A8[] = {
|
||||
ALIGNED8 static const Texture bub_seg6_texture_0600F2A8[] = {
|
||||
#include "actors/bub/bub_eyes.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x060102A8
|
||||
ALIGNED8 static const u8 bub_seg6_texture_060102A8[] = {
|
||||
ALIGNED8 static const Texture bub_seg6_texture_060102A8[] = {
|
||||
#include "actors/bub/bub_scales.rgba16.inc.c"
|
||||
};
|
||||
|
||||
|
||||
@@ -8,28 +8,28 @@ UNUSED static const u64 bubba_unused_1 = 0;
|
||||
// Bubba
|
||||
|
||||
// 0x05000008
|
||||
ALIGNED8 static const u8 bubba_seg5_texture_05000008[] = {
|
||||
ALIGNED8 static const Texture bubba_seg5_texture_05000008[] = {
|
||||
#include "actors/bubba/bubba_sunglasses.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// unused eye texture, assumed leftover from when actor file was copied from bub
|
||||
// 0x05000408
|
||||
ALIGNED8 static const u8 bubba_seg5_texture_05000408[] = {
|
||||
ALIGNED8 static const Texture bubba_seg5_texture_05000408[] = {
|
||||
#include "actors/bubba/bubba_eyes_unused.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x05001408
|
||||
ALIGNED8 static const u8 bubba_seg5_texture_05001408[] = {
|
||||
ALIGNED8 static const Texture bubba_seg5_texture_05001408[] = {
|
||||
#include "actors/bubba/bubba_eye_border.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x05001C08
|
||||
ALIGNED8 static const u8 bubba_seg5_texture_05001C08[] = {
|
||||
ALIGNED8 static const Texture bubba_seg5_texture_05001C08[] = {
|
||||
#include "actors/bubba/bubba_fins.rgba16.inc.c"
|
||||
};
|
||||
|
||||
// 0x05002408
|
||||
ALIGNED8 static const u8 bubba_seg5_texture_05002408[] = {
|
||||
ALIGNED8 static const Texture bubba_seg5_texture_05002408[] = {
|
||||
#include "actors/bubba/bubba_scales.rgba16.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