Compare commits

..

1 Commits

Author SHA1 Message Date
thecozies
4f1a08ada2 rename flips src dir 2023-09-27 07:09:40 -05:00
138 changed files with 8084 additions and 3501 deletions

3
.gitmodules vendored
View File

@@ -1,3 +0,0 @@
[submodule "lib/libpl"]
path = lib/libpl
url = https://gitlab.com/parallel-launcher/libpl.git

View File

@@ -26,8 +26,7 @@
"VERSION_US=1",
"F3DEX_GBI_2=1",
"F3DZEX_NON_GBI_2=1",
"F3DEX_GBI_SHARED=1",
"LIBPL=1"
"F3DEX_GBI_SHARED=1"
],
"compilerPath": "/usr/bin/mips-linux-gnu-gcc",
"cStandard": "gnu17",

View File

@@ -1,18 +1,17 @@
FROM ubuntu:22.04 as build
FROM ubuntu:18.04 as build
RUN apt-get update && \
apt-get install -y \
binutils-mips-linux-gnu \
bsdextrautils \
bsdmainutils \
build-essential \
gcc-mips-linux-gnu \
libcapstone-dev \
pkgconf \
python3
RUN mkdir /hackersm64
WORKDIR /hackersm64
ENV PATH="/hackersm64/tools:${PATH}"
RUN mkdir /sm64
WORKDIR /sm64
ENV PATH="/sm64/tools:${PATH}"
CMD echo 'Usage: docker run --rm -v ${PWD}:/hackersm64 hackersm64 make VERSION=us -j4\n' \
'See https://github.com/HackerN64/HackerSM64/blob/master/README.md for more information'
CMD echo 'usage: docker run --rm --mount type=bind,source="$(pwd)",destination=/sm64 sm64 make VERSION=us -j4\n' \
'see https://github.com/n64decomp/sm64/blob/master/README.md for advanced usage'

View File

@@ -135,7 +135,7 @@ endif
#==============================================================================#
# Default non-gcc opt flags
DEFAULT_OPT_FLAGS = -Ofast -falign-functions=32
DEFAULT_OPT_FLAGS = -Ofast
# Note: -fno-associative-math is used here to suppress warnings, ideally we would enable this as an optimization but
# this conflicts with -ftrapping-math apparently.
# TODO: Figure out how to allow -fassociative-math to be enabled
@@ -253,18 +253,6 @@ ifeq ($(HVQM),1)
SRC_DIRS += src/hvqm
endif
# LIBPL - whether to include libpl library for interfacing with Parallel Launcher
# (library will be pulled into repo after building with this enabled for the first time)
# 1 - includes code in ROM
# 0 - does not
LIBPL ?= 0
LIBPL_DIR := lib/libpl
$(eval $(call validate-option,LIBPL,0 1))
ifeq ($(LIBPL),1)
DEFINES += LIBPL=1
SRC_DIRS += $(LIBPL_DIR)
endif
BUILD_DIR_BASE := build
# BUILD_DIR is the location where all build artifacts are placed
BUILD_DIR := $(BUILD_DIR_BASE)/$(VERSION)_$(CONSOLE)
@@ -347,18 +335,6 @@ ifeq ($(filter clean distclean print-%,$(MAKECMDGOALS)),)
ifeq ($(DUMMY),FAIL)
$(error Failed to build tools)
endif
# Clone any needed submodules
ifeq ($(LIBPL),1)
ifeq ($(wildcard $(LIBPL_DIR)/*.h),)
$(info Cloning libpl submodule...)
DUMMY != git submodule update --init $(LIBPL_DIR) > /dev/null || echo FAIL
ifeq ($(DUMMY),FAIL)
$(error Failed to clone libpl submodule)
endif
endif
endif
$(info Building ROM...)
endif

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 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
- **Arceveti**: Silhouette, shadow optimisation, better hanging, breath meter, 4 controller support
- **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
@@ -36,6 +36,7 @@ Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
**Lighting Engine by Wiseguy**
- Lighting Engine is available on a separate branch ([base/lighting-engine](https://github.com/Reonu/HackerSM64/tree/base/lighting-engine)). Instructions on how to use it are in the readme of that branch.
- Alternatively, the main repo has `Puppylights` available, which is a more lightweight, but limited lighting library intended to be used to modify existing light properties. You can look at `puppylights.c` to find out how to use it.
**Puppycam**
- Puppycam is available on the master branch now, you can toggle it in `config/config_camera.h`. *

View File

@@ -1 +1 @@
v2.2.0
v2.1.1

View File

@@ -226,9 +226,6 @@ 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,7 +18,6 @@
#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

@@ -1,9 +0,0 @@
#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

File diff suppressed because it is too large Load Diff

View File

@@ -143,8 +143,7 @@ const Gfx title_screen_bg_dl_face_easter_egg_end[] = {
};
#endif
// Not part of segment2, but define still covers same use case
#if (defined(COMPLETE_EN_US_SEGMENT2) && ENABLE_RUMBLE)
#if defined(VERSION_SH)
ALIGNED8 static const Texture title_texture_rumble_pak[] = {
#include "textures/title_screen_bg/title_screen_bg.06648.rgba16.inc.c"
};

View File

@@ -8,7 +8,6 @@
#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"
@@ -67,7 +66,6 @@
#define BC_HH(a, b) (_SHIFTL(a, 16, 16) | _SHIFTL(b, 0, 16))
#define BC_W(a) ((uintptr_t)(u32)(a))
#define BC_PTR(a) ((uintptr_t)(a))
#define BC_BPTR(a, b) (_SHIFTL(a, 24, 8) + OS_K0_TO_PHYSICAL(b))
enum BehaviorCommands {
/*0x00*/ BHV_CMD_BEGIN,
@@ -182,7 +180,8 @@ enum BehaviorCommands {
// Executes a native game function.
#define CALL_NATIVE(func) \
BC_BPTR(BHV_CMD_CALL_NATIVE, func)
BC_B(BHV_CMD_CALL_NATIVE), \
BC_PTR(func)
// Adds a float to the specified field.
#define ADD_FLOAT(field, value) \
@@ -387,7 +386,8 @@ enum BehaviorCommands {
// Spawns a water droplet with the given parameters.
#define SPAWN_WATER_DROPLET(dropletParams) \
BC_BPTR(BHV_CMD_SPAWN_WATER_DROPLET, dropletParams)
BC_B(BHV_CMD_SPAWN_WATER_DROPLET), \
BC_PTR(dropletParams)
const BehaviorScript bhvStarDoor[] = {
@@ -2228,6 +2228,16 @@ 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
@@ -3485,15 +3495,6 @@ 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(),
};
@@ -5872,7 +5873,7 @@ const BehaviorScript bhvRacingPenguin[] = {
OR_INT(oFlags, (OBJ_FLAG_COMPUTE_ANGLE_TO_MARIO | OBJ_FLAG_ACTIVE_FROM_AFAR | OBJ_FLAG_COMPUTE_DIST_TO_MARIO | OBJ_FLAG_SET_FACE_YAW_TO_MOVE_YAW | OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE)),
LOAD_ANIMATIONS(oAnimations, penguin_seg5_anims_05008B74),
ANIMATE(PENGUIN_ANIM_IDLE),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 200, /*Gravity*/ -800, /*Bounciness*/ -5, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 0, /*Unused*/ 0, 0),
SET_OBJ_PHYSICS(/*Wall hitbox radius*/ 300, /*Gravity*/ -800, /*Bounciness*/ -5, /*Drag strength*/ 0, /*Friction*/ 0, /*Buoyancy*/ 0, /*Unused*/ 0, 0),
SCALE(/*Unused*/ 0, /*Field*/ 400),
CALL_NATIVE(bhv_racing_penguin_init),
BEGIN_LOOP(),

View File

@@ -173,6 +173,7 @@ 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[];
@@ -293,7 +294,6 @@ 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

@@ -17,9 +17,3 @@
* Skips the title/splash screen (Super Mario 64 logo).
*/
// #define SKIP_TITLE_SCREEN
/**
* Skips the File Select screen
*/
// #define SKIP_FILE_SELECT

View File

@@ -14,10 +14,6 @@
*/
// #define DISABLE_ALL
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
* Enables a comprehensive standalone profiler. Automatically enabled by PUPPYPRINT_DEBUG.
* If not using PUPPYPRINT_DEBUG, press L + D-Pad Up to toggle the profiler.
@@ -89,8 +85,3 @@
* Forces a crash when the game starts. Useful for debugging the crash screen.
*/
// #define DEBUG_FORCE_CRASH_ON_BOOT
/**
* Intentionally crash the game whenever a runtime assertion fails (also invoked by the DEBUG define in the Makefile).
*/
#define DEBUG_ASSERTIONS

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
/**
@@ -71,7 +71,7 @@
// #define DIALOG_INDICATOR
/**
* Include the English characters that were missing from US segment2 and the rumble pak texture if using rumble.
* Include the English characters that were missing from US segment2
* J, Q, V, X, Z, ¨, !, !!, ?, &, %, ., and the beta key.
* [MAKE SURE TO INCLUDE EU AND JP/SH BASEROMS IN THE REPO TO OBTAIN THE ASSETS]
* If this is disabled, backup assets will be used.

View File

@@ -60,12 +60,12 @@
/**
* Makes the coins ia8 64x64 instead of ia16 32x32. Uses new ia8 textures so that vanilla coins look better.
*/
// #define IA8_COINS
#define IA8_COINS
/**
* Similar to the above, but 30 FPS (Textures by InTheBeef, cleaned up by Arceveti).
*/
// #define IA8_30FPS_COINS
#define IA8_30FPS_COINS
/**
* Use .rej microcode for certain objects (experimental - only should be used when F3DEX_GBI_2 is defined).
@@ -141,10 +141,9 @@
#define DEFAULT_CULLING_RADIUS 300
/**
* Eases the textured screen transitions to make them look smoother.
* Extends the full radius for mario, bowser and the star transitions.
* Eases the textured screen transitions to make them look smoother.
*/
// #define POLISHED_TRANSITIONS
#define EASE_IN_OUT_TRANSITIONS
/**
* Uses frustratio of 2 instead of 1.

View File

@@ -14,7 +14,7 @@
/**
* Decides whether you can exit course while moving (has no effect if you disable Exit Course).
*/
// #define EXIT_COURSE_WHILE_MOVING
#define EXIT_COURSE_WHILE_MOVING
/**
* Decides whether to treat exiting course as if the player had died.

View File

@@ -26,12 +26,12 @@
* - Precise turning control.
* - Prevents falling from the edges.
*/
// #define BETTER_HANGING
#define BETTER_HANGING
/**
* Change the movement speed when hanging from a ceiling (the vanilla value is 4.0f, has no effect if BETTER_HANGING is enabled).
*/
#define HANGING_SPEED 4.0f
#define HANGING_SPEED 12.0f
/**
* Prevents Mario from falling asleep while idle.
@@ -81,12 +81,12 @@
/**
* If A and Z are pressed on the same frame while running, Mario will long jump instead of ground pound.
*/
// #define EASIER_LONG_JUMPS
#define EASIER_LONG_JUMPS
/**
* Enables the ability to hold Z while twirling to descend faster.
*/
// #define Z_TWIRL
#define Z_TWIRL
/**
* Disables bonks when ground pounding next to a wall.
@@ -101,7 +101,7 @@
/**
* Allows Mario to grab hangable ceilings from any state.
*/
// #define HANGING_FIX
#define HANGING_FIX
/**
* The maximum angle the player can wall kick, in degrees. 0..90. To allow 45 degree wall kicks, you must supply `46` to allow 45 and under.
@@ -113,11 +113,6 @@
*/
#define DONT_LEDGE_GRAB_STEEP_SLOPES
/**
* Buffers an A input if you jump off a slope during the landing lag
*/
// #define SLOPE_BUFFER
/**
* Disables BLJs and crushes SimpleFlips's dreams.
*/
@@ -134,7 +129,7 @@
* be interrupted with text
* Uncomment this to fix this bug, and frustrate speedrunners
*/
#define BUGFIX_DIALOG_TIME_STOP
// #define BUGFIX_DIALOG_TIME_STOP
/**
* Enables Platform Displacement 2, an upgrade to the physics involving moving platforms and how Mario interacts with them.

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