Refresh 13

This commit is contained in:
n64
2020-12-03 14:26:38 -05:00
parent 8b872a71e8
commit 6d87c424b8
552 changed files with 32958 additions and 18073 deletions

38
CHANGES
View File

@@ -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)

View File

@@ -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
View File

@@ -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
'''
}

903
Makefile

File diff suppressed because it is too large Load Diff

View File

@@ -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

View File

@@ -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.

View File

@@ -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"
};

View File

@@ -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"
};

View File

@@ -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"
};

View File

@@ -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"
};

View File

@@ -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"
};

View File

@@ -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"
};

View File

@@ -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"
};

View File

@@ -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"
};

View File

@@ -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"
};

View File

@@ -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"
};

View File

@@ -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(),

View File

@@ -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"
};

View File

@@ -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"
};

View File

@@ -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