Compare commits

..

114 Commits

Author SHA1 Message Date
Arceveti
882c9d781e Merge branch 'develop/2.3.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2024-03-30 15:14:06 -07:00
Arceveti
88ac68be53 Merge branch 'develop/2.2.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2024-02-14 01:50:26 -08:00
Arceveti
c4d0df7c1d Merge branch 'develop/2.2.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-12-15 14:48:07 -08:00
Arceveti
95b21c5195 Merge branch 'master' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-12-15 14:47:58 -08:00
Arceveti
e6c6a8b691 Move segment2 paintings data to paintings.c.in 2023-09-28 10:57:13 -07:00
Arceveti
1fe6bc0c57 Merge branch 'develop/2.1.2' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-09-27 14:54:33 -07:00
Arceveti
0761d2fdec Fix(?) painting warp checkpoints 2023-09-27 14:54:29 -07:00
Arceveti
1fb29f9340 Merge branch 'master' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-09-26 20:11:18 -07:00
Arceveti
fa3fc8dac9 Merge branch 'master' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-09-25 17:38:15 -07:00
Arceveti
3731f9209f Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-09-22 15:33:47 -07:00
Arceveti
941207b50f Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-09-11 13:57:44 -07:00
Arceveti
bd83b07625 Some documentation + add IEEE754 unions + formatting 2023-09-07 15:24:43 -07:00
Arceveti
e02659d23d Improve painting struct definitions 2023-09-01 19:22:14 -07:00
Arceveti
117ae7339b Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-09-01 19:18:50 -07:00
Arceveti
a4e297747a Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-08-23 17:13:22 -07:00
Arceveti
17e4f7b811 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-07-12 16:36:31 -07:00
Arceveti
1e0e6803ad Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-04-30 22:30:10 -04:00
Arceveti
b518acfc7d use _Bool for 'shaded' 2023-04-26 12:28:20 -04:00
Arceveti
dc0d6c698c _Bool/enum usage 2023-04-16 14:55:39 -04:00
Arceveti
41dc7217be initiate_painting_warp pointer formatting 2023-04-10 14:18:36 -04:00
Arceveti
33b70550e8 Fix arg formatting in painting_calculate_triangle_normals 2023-04-10 14:08:19 -04:00
Arceveti
5f694b9333 pointer formatting changes 2023-04-07 18:33:06 -04:00
Arceveti
199486a299 improve gfx allocation (formatting) + add gsLoadBlockTexture 2023-03-28 12:35:28 -04:00
Arceveti
8a0547550d Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-03-27 18:27:15 -04:00
Arceveti
4744c9cd7f Remove unused externs 2023-03-17 13:39:21 -04:00
Arceveti
643e6a7a64 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-03-17 12:15:20 -04:00
Arceveti
2c52e0699d Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-03-07 13:48:04 -05:00
Arceveti
9e30c865fc Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-02-10 21:50:17 -05:00
Arceveti
16fdf6299a Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-01-26 12:46:53 -05:00
Arceveti
d5b4190fe2 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-01-26 02:54:31 -05:00
Arceveti
cc683d2415 'vec3f_local_pos_to_world_pos' and 'vec3f_world_pos_to_local_pos' documentation + fix some comments 2023-01-14 14:40:38 -05:00
Arceveti
bfdae60182 Painting scale changes 2023-01-06 16:23:07 -05:00
Arceveti
f0509d42f8 Don't use PAINTING_SIZE for fake CCM paintings 2022-12-16 02:21:43 -05:00
Arceveti
bb5ad7835a Formatting changes :) 2022-12-16 00:07:17 -05:00
Arceveti
04210115ec Clean up non-rippling painting dl 2022-12-15 22:10:24 -05:00
Arceveti
be01f6c5d2 Use object scale as painting scale instead of painting_model_view_transform 2022-12-15 19:05:35 -05:00
Arceveti
3a526ef10f Center scaled paintings during cutscenes 2022-12-15 17:57:03 -05:00
Arceveti
23ea8b0130 Add PAINTING_IMAGE_TYPE_INVISIBLE + format PaintingImage structs 2022-12-14 22:54:59 -05:00
Arceveti
be58ea7396 WARP_DEST_LEVEL_NUM_MASK Usage 2022-12-14 21:27:06 -05:00
Arceveti
09ca176cb9 Rename 'PaintingIDs' to 'PaintingImageIDs' 2022-12-14 18:36:35 -05:00
Arceveti
aaa2250c29 Automatically determine neighboring triangles for each vertex instead of using a hardcoded list 2022-12-14 18:29:17 -05:00
Arceveti
98a413af23 Fix some typos/formatting 2022-12-14 18:10:45 -05:00
Arceveti
dbfb89d19c Update some variable names 2022-12-14 15:35:29 -05:00
Arceveti
9aab0fd00c Rename 'painting_data_mesh' to 'painting_data_vertices' 2022-12-13 22:30:12 -05:00
Arceveti
4fe3d3f606 Remove redundant painting data from segment2.c 2022-12-13 22:25:35 -05:00
Arceveti
33d7f63156 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-12-13 19:24:35 -05:00
Arceveti
a5df7ffedf Add PAINTING_WOBBLE_WARP_THRESHOLD + Change paintings.h defines to use vanilla values + Change oPaintingFlags to oPaintingStoredAction + Combine painting_update_ripples into bhv_painting_loop 2022-12-13 19:24:09 -05:00
Arceveti
1ed0a72b94 rr_painting uses RIPPLE_TRIGGER_NONE 2022-12-13 16:17:38 -05:00
Arceveti
9cee1eed3c Smaller PAINTING_EDGE_MARGIN 2022-12-12 18:46:42 -05:00
Arceveti
c97839cd34 Replace 'oPaintingLocalMarioPosX' and 'oPaintingLocalMarioPosY' with local variables 2022-12-12 18:25:42 -05:00
Arceveti
0b6417a467 Remove 'oPaintingChangedFlags' + rename some object fields & enums 2022-12-12 18:07:59 -05:00
Arceveti
04d832154c Make some function names clearer 2022-12-12 17:46:10 -05:00
Arceveti
d19ec64310 use oAction instead of oPaintingState 2022-12-12 15:50:09 -05:00
Arceveti
ec318df0a6 Fix some comments in paintings.h 2022-12-12 15:36:20 -05:00
Arceveti
1d2c50eda8 Remove unused gsSPLightColor commands in dl_paintings_env_mapped_begin 2022-12-12 15:23:36 -05:00
Arceveti
11d7f84db1 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-12-12 14:56:19 -05:00
Arceveti
66828dab80 Rename some structs 2022-12-12 14:56:12 -05:00
Arceveti
e27ba77533 Make PaintingState enum names clearer 2022-12-12 00:42:56 -05:00
Arceveti
2d23771587 Painting UV cleanup 2022-12-12 00:39:38 -05:00
Arceveti
f396d89b42 Rename 'oPaintingData' to 'oPaintingImageInfo' 2022-12-11 20:07:10 -05:00
Arceveti
d63bb4d3fc skip s16 conversion for ripple magnitude 2022-12-11 20:02:00 -05:00
Arceveti
508fe3958c Make 'sPaintingMesh' and 'sPaintingTriNorms' into local variables 2022-12-11 20:01:39 -05:00
Arceveti
a73531aa41 small changes 2022-12-10 22:22:01 -05:00
Arceveti
eed1293624 Replace gEnteredPaintingObject with a MarioState field 2022-12-10 18:38:32 -05:00
Arceveti
5d12ebffc1 Make WDW water level detextion relative to the painting instead of absolute height. 2022-12-10 18:09:52 -05:00
Arceveti
16ebce4ccc Rename 'oPaintingRippleX' and 'oPaintingRippleY' to 'oPaintingRipplePosX' and 'oPaintingRipplePosY' 2022-12-10 17:50:48 -05:00
Arceveti
578e70ed4c RippleAnimationInfo struct changes 2022-12-10 17:49:58 -05:00
Arceveti
be3294399e Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-12-10 15:33:10 -05:00
Arceveti
3c17702b4d Remove gRipplingPaintingObject + clean up painting eject sound 2022-12-10 01:38:12 -05:00
Arceveti
f98b8b8dc5 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-12-10 00:48:01 -05:00
Arceveti
2988324b93 Improve painting texture map names + change imageCount check to switch 2022-12-10 00:18:44 -05:00
Arceveti
2436072bcd Move painting functionality except for rendering into bhv_painting_loop + remove area update counter fields + change relative mario and ripple positions to floats 2022-12-09 21:41:13 -05:00
Arceveti
a1ec042d13 Paintings use regular object warp nodes + remove painting groups + painting struct cleanup + fix gTTCSpeedSetting being changed on exit + change relative painting coords to s32 2022-12-09 17:43:21 -05:00
Arceveti
171d08dae2 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-12-06 15:18:32 -05:00
Arceveti
e3243cb917 Add PAINTING_VERTEX macro for painting triangle mesh 2022-12-05 00:41:49 -05:00
Arceveti
656c72ac91 Remove SAVE_FLAG_DDD_MOVED_BACK + allow paintings to move during some cutscenes. 2022-12-04 22:11:13 -05:00
Arceveti
590084fd6a Remove reset_painting and NO_SEGMENTED_MEMORY ifdef 2022-12-04 20:04:49 -05:00
Arceveti
d4c7a58e28 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-11-28 15:16:17 -05:00
Arceveti
ab9f3279f4 Rename 'resetTimer' arg to 'doResetTimer' in painting_state 2022-11-07 19:08:26 -08:00
Arceveti
c78624db2f Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-11-07 19:06:24 -08:00
Arceveti
69330d30ec fix SurfaceClass enum 2022-11-07 18:19:17 -08:00
Arceveti
e9dd49478f Fix painting object field offsets 2022-11-03 04:07:13 -07:00
Arceveti
11fb0377fc Fix RR painting using the wrong ID 2022-10-21 13:33:39 -07:00
Arceveti
d08afdef68 Rename 'gRipplingPainting' to 'gRipplingPaintingObject' and 'gEnteredPainting' to 'gEnteredPaintingObject' 2022-10-21 13:24:46 -07:00
Arceveti
3ea3c1fb3c Change painting object data pointer to const void 2022-10-10 15:30:17 -07:00
Arceveti
a6676efee3 Revert some formatting changes in camera.c 2022-10-08 13:08:30 -07:00
Arceveti
2222429d9d Fix ENABLE_VANILLA_LEVEL_SPECIFIC_CHECKS comment + Undo removal of trailing whitespace 2022-10-08 13:04:48 -07:00
Arceveti
d7b63e82ed Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-10-03 18:59:49 -07:00
Arceveti
8e6b62547f Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-09-30 22:54:12 -07:00
Arceveti
12e6c855b3 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-09-29 14:33:09 -07:00
Arceveti
c7115d4a2c Fix seams between painting sections on console 2022-09-29 14:32:54 -07:00
Arceveti
5ea50a7b69 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-09-28 21:15:34 -07:00
Arceveti
fc093b9fdb Add get_exponent for painting texture setup + dl_painting_not_rippling cleanup 2022-08-16 21:57:17 -07:00
Arceveti
4b651cc174 Clean up painting texel calculations 2022-08-16 15:48:50 -07:00
Arceveti
7fe7f6b083 Fix tiny seam between painting segments 2022-08-16 12:15:29 -07:00
Arceveti
d1b0bad2fd Automatic texture maps & non-rippling display lists for paintings 2022-08-14 01:41:05 -07:00
Arceveti
c330431603 Rename 'commands' to 'gfxCmds' 2022-08-10 18:49:28 -07:00
Arceveti
df051e3ad3 Partially update main paintings.c comment + more formatting 2022-08-10 17:03:03 -07:00
Arceveti
5e992b540a Revert change that was using unimplemented functionality in geo_painting_draw 2022-08-10 16:04:23 -07:00
Arceveti
168293d3bc Some paintings.c refactoring 2022-08-10 16:01:37 -07:00
Arceveti
f9cbf8f59c Use defines for fake CCM paintings' coords 2022-08-10 15:59:15 -07:00
Arceveti
ee96ec7417 Remove extra newline 2022-08-09 22:28:53 -07:00
Arceveti
da9e796457 Move ripple constants outside of Painting struct 2022-08-09 20:46:27 -07:00
Arceveti
d7503663a0 Combine ripple setup dls + paintings.c gfx commands formatting + use PAINTING_SIZE for vertex dls 2022-08-09 19:49:00 -07:00
Arceveti
e2c0fe02ab Combine duplicate painting texture map data and move it to segment2 2022-08-09 15:44:34 -07:00
Arceveti
57d7529bce Allow paintings to use 32 vertex buffer + optimization + formatting 2022-08-09 14:53:06 -07:00
Arceveti
6e9df1f812 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-08-09 14:27:18 -07:00
Arceveti
d118c79ce4 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-08-03 17:51:44 -07:00
Arceveti
d755fb4931 Make normalize_component return s8 instead of casting 2022-07-18 21:16:05 -07:00
Arceveti
786a569ed7 Revert formatting change in 'cutscene_exit_painting' 2022-07-18 21:12:09 -07:00
Arceveti
0ff4147366 Rename 'sPaintingEjectSoundPlayed' to 'gPaintingEjectSoundPlayed' 2022-07-18 21:11:23 -07:00
Arceveti
b340408c4f Merge branch 'develop/2.1.0' into develop/2.1.0-painting-objects 2022-07-05 19:39:18 -07:00
Arceveti
76809f51f6 Fix missing floor behind DDD painting 2022-07-05 19:27:20 -07:00
Arceveti
e176d806d7 Add painting objects + convert vanilla paintings into objects 2022-07-05 18:39:38 -07:00
100 changed files with 2631 additions and 5625 deletions

3
.gitignore vendored
View File

@@ -2149,6 +2149,3 @@ lib/libs2d_engine.a
# :Zone_Identifier files
*Zone.Identifier
# user-specific config file
include/config/config_local.h

View File

@@ -269,7 +269,7 @@ BUILD_DIR_BASE := build
# BUILD_DIR is the location where all build artifacts are placed
BUILD_DIR := $(BUILD_DIR_BASE)/$(VERSION)_$(CONSOLE)
COMPRESS ?= yay0
COMPRESS ?= rnc1
$(eval $(call validate-option,COMPRESS,mio0 yay0 gzip rnc1 rnc2 uncomp))
ifeq ($(COMPRESS),gzip)
DEFINES += GZIP=1
@@ -399,9 +399,6 @@ GODDARD_C_FILES := $(foreach dir,$(GODDARD_SRC_DIRS),$(wildcard $(dir)/*.c))
S_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.s))
GENERATED_C_FILES := $(BUILD_DIR)/assets/mario_anim_data.c $(BUILD_DIR)/assets/demo_data.c
# Ignore all .inc.c files
C_FILES := $(filter-out %.inc.c,$(C_FILES))
# Sound files
SOUND_BANK_FILES := $(wildcard sound/sound_banks/*.json)
SOUND_SAMPLE_DIRS := $(wildcard sound/samples/*)
@@ -444,8 +441,6 @@ else ifneq ($(call find-command,mips-linux-gnu-ld),)
CROSS := mips-linux-gnu-
else ifneq ($(call find-command,mips64-linux-gnu-ld),)
CROSS := mips64-linux-gnu-
else ifneq ($(call find-command,mips64-none-elf-ld),)
CROSS := mips64-none-elf-
else ifneq ($(call find-command,mips-ld),)
CROSS := mips-
else
@@ -553,13 +548,7 @@ ifneq (,$(call find-command,armips))
else
RSPASM := $(TOOLS_DIR)/armips
endif
ifneq (,$(call find-command,wslview))
EMULATOR = "/mnt/c/Program Files (x86)/parallel-launcher/parallel-launcher.exe"
else
EMULATOR = parallel-launcher
endif
EMULATOR = mupen64plus
EMU_FLAGS =
ifneq (,$(call find-command,wslview))
@@ -780,7 +769,7 @@ endif
$(BUILD_DIR)/%.table: %.aiff
$(call print,Extracting codebook:,$<,$@)
$(V)$(AIFF_EXTRACT_CODEBOOK) $< $@
$(V)$(AIFF_EXTRACT_CODEBOOK) $< >$@
$(BUILD_DIR)/%.aifc: $(BUILD_DIR)/%.table %.aiff
$(call print,Encoding ADPCM:,$(word 2,$^),$@)
@@ -924,7 +913,7 @@ $(BUILD_DIR)/asm/debug/map.o: asm/debug/map.s $(BUILD_DIR)/sm64_prelim.elf
# Link SM64 ELF file
$(ELF): $(BUILD_DIR)/sm64_prelim.elf $(BUILD_DIR)/asm/debug/map.o $(O_FILES) $(YAY0_OBJ_FILES) $(SEG_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(BUILD_DIR)/libz.a $(BUILD_DIR)/libgoddard.a
@$(PRINT) "$(GREEN)Linking ELF file: $(BLUE)$@ $(NO_COL)\n"
$(V)$(LD) --gc-sections -L $(BUILD_DIR) -T $(BUILD_DIR)/$(LD_SCRIPT) -T goddard.txt -Map $(BUILD_DIR)/sm64.$(VERSION).map --no-check-sections $(addprefix -R ,$(SEG_FILES)) -o $@ $(O_FILES) -L$(LIBS_DIR) -l$(ULTRALIB) -Llib $(LINK_LIBRARIES) -u sprintf -u osMapTLB -Llib/gcclib/$(LIBGCCDIR) -lgcc
$(V)$(LD) --gc-sections -L $(BUILD_DIR) -T $(BUILD_DIR)/$(LD_SCRIPT) -T goddard.txt -Map $(BUILD_DIR)/sm64.$(VERSION).map --no-check-sections $(addprefix -R ,$(SEG_FILES)) -o $@ $(O_FILES) -L$(LIBS_DIR) -l$(ULTRALIB) -Llib $(LINK_LIBRARIES) -u sprintf -u osMapTLB -Llib/gcclib/$(LIBGCCDIR) -lgcc -lrtc
# Build ROM
ifeq (n,$(findstring n,$(firstword -$(MAKEFLAGS))))

View File

@@ -21,7 +21,7 @@ This is a fork of the ultrasm64 repo by CrashOveride which includes the followin
- **Fazana**: PuppyLib, ucode swapping, audio load time optimisations (with Arctic), general hacker qol improvements, visual debug
- **Reonu**: Starting the project/repo, widescreen, reonucam, various defines for hacker QoL
- **JoshDuMan**: Decomp guy, general assistance
- **Arceveti**: Silhouette, shadow optimisation, better hanging, breath meter, 4 controller support
- **Arceveti**: Silhouette, shadow optimizations, better hanging, breath meter, painting objects, 4 controller support, implementation of frameperfection's rounded corners fix, naming most unknowns, various hacker QOL improvements, and various optimizations/fixes
- **axollyon**: Console testing, bugfixes, idea-guying, and had a hand in silhouettes
- **Wiseguy**: World scale reimplementation, silhouette, graph node optimisations, instant input patch, cake screen fix, segmented code support, and various optimizations/fixes
- **Kaze**: Graph node optimisations, automatic optimal collision distance

View File

@@ -1 +1 @@
v2.3.0
v2.2.0

View File

@@ -226,6 +226,9 @@ extern const Gfx mushroom_1up_seg3_dl_0302A660[];
// number
extern const GeoLayout number_geo[];
// painting
extern const GeoLayout painting_geo[];
// pebble
extern const Gfx pebble_seg3_dl_0301CB00[];

View File

@@ -18,6 +18,7 @@
#include "leaves/geo.inc.c"
#include "mario_cap/geo.inc.c"
#include "number/geo.inc.c"
#include "painting/geo.inc.c"
#include "mushroom_1up/geo.inc.c"
#include "star/geo.inc.c"
#include "dirt/geo.inc.c"

View File

@@ -0,0 +1,9 @@
#include "game/paintings.h"
const GeoLayout painting_geo[] = {
GEO_CULLING_RADIUS(2000),
GEO_OPEN_NODE(),
GEO_ASM(0, geo_painting_draw),
GEO_CLOSE_NODE(),
GEO_END(),
};

File diff suppressed because it is too large Load Diff

539
bin/segment2/paintings.c.in Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -8,6 +8,7 @@
#include "game/behavior_actions.h"
#include "game/mario_actions_cutscene.h"
#include "game/mario_misc.h"
#include "game/paintings.h"
#include "game/object_helpers.h"
#include "game/debug.h"
#include "menu/file_select.h"
@@ -2227,16 +2228,6 @@ const BehaviorScript bhvWaterLevelPillar[] = {
END_LOOP(),
};
const BehaviorScript bhvDddWarp[] = {
BEGIN(OBJ_LIST_SURFACE),
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
SET_FLOAT(oCollisionDistance, 30000),
BEGIN_LOOP(),
CALL_NATIVE(bhv_ddd_warp_loop),
CALL_NATIVE(load_object_collision_model),
END_LOOP(),
};
const BehaviorScript bhvMoatGrills[] = {
BEGIN(OBJ_LIST_SURFACE),
#ifdef UNLOCK_ALL
@@ -2694,7 +2685,7 @@ const BehaviorScript bhvSushiShark[] = {
const BehaviorScript bhvJrbSlidingBox[] = {
BEGIN(OBJ_LIST_SURFACE),
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_NO_AUTO_DISPLACEMENT),
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
LOAD_COLLISION_DATA(jrb_seg7_collision_floating_box),
SET_HOME(),
BEGIN_LOOP(),
@@ -3494,6 +3485,15 @@ const BehaviorScript bhvUnlockDoorStar[] = {
END_LOOP(),
};
const BehaviorScript bhvPainting[] = {
BEGIN(OBJ_LIST_LEVEL),
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
CALL_NATIVE(bhv_painting_init),
BEGIN_LOOP(),
CALL_NATIVE(bhv_painting_loop),
END_LOOP(),
};
const BehaviorScript bhvInstantActiveWarp[] = {
BREAK(),
};
@@ -5437,7 +5437,11 @@ const BehaviorScript bhvTTCPendulum[] = {
const BehaviorScript bhvTTCTreadmill[] = {
BEGIN(OBJ_LIST_SURFACE),
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_NO_AUTO_DISPLACEMENT)),
#ifdef PLATFORM_DISPLACEMENT_2
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE | OBJ_FLAG_VELOCITY_PLATFORM)),
#else
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
#endif
SET_FLOAT(oCollisionDistance, 750),
CALL_NATIVE(bhv_ttc_treadmill_init),
DELAY(1),

View File

@@ -177,15 +177,9 @@ def main():
# presence of the correct roms automatically
# Make sure tools exist
tools = [ "n64graphics", "skyconv", "mio0", "aifc_decode" ]
if os.name == 'nt':
tools = [tool + ".exe" for tool in tools]
make = "mingw32-make"
else:
make = "make"
cmd = [make, "-s", "-C", "tools/"] + tools
subprocess.check_call(cmd)
subprocess.check_call(
["make", "-s", "-C", "tools/", "n64graphics", "skyconv", "mio0", "aifc_decode"]
)
# Go through the assets in roughly alphabetical order (but assets in the same
# mio0 file still go together).

View File

@@ -173,7 +173,6 @@ extern const BehaviorScript bhvBowserKeyUnlockDoor[];
extern const BehaviorScript bhvBowserKeyCourseExit[];
extern const BehaviorScript bhvInvisibleObjectsUnderBridge[];
extern const BehaviorScript bhvWaterLevelPillar[];
extern const BehaviorScript bhvDddWarp[];
extern const BehaviorScript bhvMoatGrills[];
extern const BehaviorScript bhvClockMinuteHand[];
extern const BehaviorScript bhvClockHourHand[];
@@ -294,6 +293,7 @@ extern const BehaviorScript bhvYellowBall[];
extern const BehaviorScript bhvMario[];
extern const BehaviorScript bhvToadMessage[];
extern const BehaviorScript bhvUnlockDoorStar[];
extern const BehaviorScript bhvPainting[];
extern const BehaviorScript bhvInstantActiveWarp[];
extern const BehaviorScript bhvAirborneWarp[];
extern const BehaviorScript bhvHardAirKnockBackWarp[];

View File

@@ -19,10 +19,6 @@
#include "config/config_objects.h"
#include "config/config_rom.h"
// Local config - include a gitignore'd config file that's specific to just the user (if the file exists)
#if __has_include("config/config_local.h")
#include "config/config_local.h"
#endif
// WARNING: Compatibility safeguards - don't remove this file unless you know what you're doing
/* WARNING: Compatibility safeguards - don't remove this file unless you know what you're doing */
#include "config/config_safeguards.h"

View File

@@ -7,7 +7,7 @@
/**
* Enables some mechanics that change behavior depending on hardcoded level numbers.
* TODO: separate this into separate defines, behavior params, or make these mechanics otherwise dynamic.
*/
*/
// #define ENABLE_VANILLA_LEVEL_SPECIFIC_CHECKS
/**

View File

@@ -136,8 +136,14 @@
*/
#define BUGFIX_DIALOG_TIME_STOP
/**
* Enables Platform Displacement 2, an upgrade to the physics involving moving platforms and how Mario interacts with them.
*/
#define PLATFORM_DISPLACEMENT_2
/**
* Inertia defines; allow Mario to preserve his momemtum when leaving moving platforms.
* These require Platform Displacement 2 to be enabled.
*/
#define MARIO_INERTIA_UPWARD
// #define MARIO_INERTIA_LATERAL

View File

@@ -1837,6 +1837,7 @@ typedef union {
/*
* Macros to assemble the graphics display list
*/
#define SIZEOF_GFX_CMD(_cmd) sizeof((Gfx[]){gs##_cmd})
/*
* DMA macros

View File

@@ -46,7 +46,7 @@ enum LevelCommands {
/*0x24*/ LEVEL_CMD_PLACE_OBJECT,
/*0x25*/ LEVEL_CMD_INIT_MARIO,
/*0x26*/ LEVEL_CMD_CREATE_WARP_NODE,
/*0x27*/ LEVEL_CMD_CREATE_PAINTING_WARP_NODE,
/*0x27*/ LEVEL_CMD_27,
/*0x28*/ LEVEL_CMD_CREATE_INSTANT_WARP,
/*0x29*/ LEVEL_CMD_LOAD_AREA,
/*0x2A*/ LEVEL_CMD_UNLOAD_AREA,
@@ -112,6 +112,8 @@ enum WarpCheckpointFlags {
WARP_CHECKPOINT = (1 << 7), // 0x80
};
#define WARP_DEST_LEVEL_NUM_MASK 0x7F
// Head defines
enum GoddardScene {
REGULAR_FACE = 0x2,
@@ -363,8 +365,12 @@ enum GoddardScene {
CMD_BBBB(LEVEL_CMD_CREATE_WARP_NODE, 0x08, id, destLevel), \
CMD_BBBB(destArea, destNode, flags, 0x00)
// Backwards compatibility:
#define PAINTING_WARP_NODE(id, destLevel, destArea, destNode, flags) \
CMD_BBBB(LEVEL_CMD_CREATE_PAINTING_WARP_NODE, 0x08, id, destLevel), \
WARP_NODE(id, destLevel, destArea, destNode, flags)
#define CMD27(id, destLevel, destArea, destNode, flags) \
CMD_BBBB(LEVEL_CMD_27, 0x08, id, destLevel), \
CMD_BBBB(destArea, destNode, flags, 0x00)
#define INSTANT_WARP(index, destArea, displaceX, displaceY, displaceZ) \

View File

@@ -550,6 +550,8 @@
#define MODEL_SILVER_COIN_NO_SHADOW 0xE3 // silver_coin_no_shadow_geo
#endif
#define MODEL_PAINTING 0xE4
// Menu Models (overwrites Level Geometry IDs)
#define MODEL_MAIN_MENU_MARIO_SAVE_BUTTON MODEL_LEVEL_GEOMETRY_03 // main_menu_geo_0001D0
#define MODEL_MAIN_MENU_RED_ERASE_BUTTON MODEL_LEVEL_GEOMETRY_04 // main_menu_geo_000290

View File

@@ -1861,6 +1861,7 @@ typedef union {
/*
* Macros to assemble the graphics display list
*/
#define SIZEOF_GFX_CMD(_cmd) sizeof((Gfx[]){gs##_cmd})
/*
* DMA macros

View File

@@ -47,7 +47,7 @@ enum ObjFlags {
OBJ_FLAG_1000 = (1 << 12), // 0x00001000
OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO = (1 << 13), // 0x00002000
OBJ_FLAG_PERSISTENT_RESPAWN = (1 << 14), // 0x00004000
OBJ_FLAG_NO_AUTO_DISPLACEMENT = (1 << 15), // 0x00008000
OBJ_FLAG_VELOCITY_PLATFORM = (1 << 15), // 0x00008000
OBJ_FLAG_DONT_CALC_COLL_DIST = (1 << 16), // 0x00010000
OBJ_FLAG_SILHOUETTE = (1 << 19), // 0x00080000
OBJ_FLAG_OCCLUDE_SILHOUETTE = (1 << 20), // 0x00100000
@@ -2062,10 +2062,11 @@ enum oActionsSnowmansBottom {
#define WATER_BOMB_ACT_EXPLODE 0x3
/* TTC Painting Clock Arm */
/* oAction */
#define CLOCK_ARM_ACT_CHECK_DEFAULT 0x0
#define CLOCK_ARM_ACT_MOVING 0x1
#define CLOCK_ARM_ACT_STOP 0x2
enum oActionsTTCPaintingClockArm {
TTC_PAINTING_CLOCK_ARM_WAIT,
TTC_PAINTING_CLOCK_ARM_ACT_MOVING,
TTC_PAINTING_CLOCK_ARM_ACT_STOPPED,
};
/* TTC rotating solid */
/* oBehParams2ndByte */

Some files were not shown because too many files have changed in this diff Show More