Compare commits

...

50 Commits

Author SHA1 Message Date
someone2639
7ef2077353 2.0.8 (fix more compiler warnings) (#543)
* fix Waddress in mario_step.c

* fix Winfinite-recursion in unused dynlist_proc function

* in fact remove the offending function entirely

* fix warnings in RNC decompress functions

* update version

* fix version in VERSION.txt

premature on my part, will update it to 2.0.10 next time

Co-authored-by: someone2639 <someone2639@gmail.com>
2022-12-06 21:41:55 +01:00
Reonu
a15db3c56b 2.0.7 (fix compiler warnings) (#542)
2.0.7
2022-12-05 16:28:01 +01:00
thecozies
e87dfa74d8 v2.0.7 2022-12-05 08:39:28 -06:00
thecozies
e3e1aa02ac Add GCC opt flag to suppress warnings 2022-12-05 08:38:41 -06:00
axollyon
d3d2bb9247 Update VERSION.txt
HackerSM64 2.0.6
2022-12-04 11:50:20 +01:00
Gregory Heskett
dc1a824ce9 HackerSM64 2.0.6 (#539)
* revert random_u16 to be a u16 (#538)

* Added safety gcc math flags (#537)

* removed useless compilation flags that could cause performance loss

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
Co-authored-by: thecozies <collinpferguson@gmail.com>
2022-12-04 23:05:59 +13:00
axollyon
efd4e3f9dc Update VERSION.txt (#534) 2022-11-24 02:46:09 +01:00
Gregory Heskett
b1146308a7 HackerSM64 2.0.5 (#517)
* Bugfix: race condition with accessing cleared audio memory pools

* Bugfix: skyboxes access tiles out of range when looking straight down (#518)

* Vscode fixes (#516)

* Revert s32 angles and remove Angle typedef usage (#529)

* Fix some surface shadowing (#531)

* Delete rtc.h

* Remove `wait_for_audio_frames()`

Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
Co-authored-by: Arceveti <73617174+Arceveti@users.noreply.github.com>
Co-authored-by: JoshDuMan <40190173+JoshDuMan@users.noreply.github.com>
2022-11-24 09:57:44 +13:00
axollyon
b8e22f2fbd Update version to 2.0.4 (#515) 2022-10-27 01:17:08 -04:00
arthurtilly
1a71619f47 Imminent fixes for bugs found on master branch (#512)
* The vanilla level checks define for Yoshi is inverted, causing him to require 120 stars when it is off and appear at 0 stars when it's on

*  The downwarp fix results in Mario levitating in midair when grabbing Bowser midair. While downwarps should still be fixed, the change should be reverted immediately until a better fix is made.

*  Some checks of Mario's floor class were using the wrong defines, which can lead to unexpected behavior in the event anyone wants to reorder surface types. By default the SURFACE_CLASS_SLIPPERY and SURFACE_SLIPPERY defines have the same value, which is why this mistake is hard to notice.

*  The firsty frames define was implemented poorly, not allowing for vanilla firsty behavior no matter what the values were set to. This has been reverted, while avoiding the UB in the original vanilla code.

*  Removed the ledge grab changes that fix QSLGs and change the false ledgegrab define since Arceveti wanted to in his PR
2022-10-26 19:12:29 +13:00
Gregory Heskett
7d6579971a Remove Wiseguy from codeowners file :( (#490)
* Remove Wiseguy from codeowners file :(
* Add ArcticJaguar725 as the primary CODEWOWNER for the moment
2022-09-21 09:10:06 -05:00
thecozies
a549e1a95a Merge pull request #454 from HackerN64/develop/2.0.3
HackerSM64 2.0.3 Release: Audio Crash
2022-07-19 11:44:14 -05:00
thecozies
83fea6d310 v2.0.3 2022-07-19 11:35:48 -05:00
gheskett
8698cc0f89 Bugfix: patch_audio_bank crash (hopefully) resolved for good 2022-07-15 00:25:18 -04:00
Mr-Wiseguy
62d6ee135f HackerSM64 2.0.2 release 2022-06-28 09:43:19 -04:00
thecozies
3d330e0b84 Merge pull request #387 from HackerN64/develop/2.0.1
HackerSM64 2.0.2 Release
2022-06-28 08:40:54 -05:00
Arceveti
1691e48326 Fix inverted tilting pyramids when platform displacement 2 is disabled (#397) 2022-06-28 09:30:49 -04:00
Reonu
e5af0e8ca5 Add :Zone_Identifier files to gitignore (#428) 2022-06-28 09:28:54 -04:00
Mr-Wiseguy
cf570b4406 Added dcache coherency emulation test that disables instant input if passed (fixes Ares) (#427) 2022-06-28 12:57:14 +01:00
Reonu
1012fb7957 Add extra hud defines (#409)
* Added extra HUD defines

* moved the defines to hud.h
2022-06-27 22:17:44 -04:00
Reonu
aa1a48afeb Fix shindou audio bzero size (#426) 2022-06-27 22:15:47 -04:00
Mr-Wiseguy
5e1258e806 Merge branch 'master' into develop/2.0.1 2022-06-17 01:11:34 -04:00
Arceveti
c938bbf407 Add missing check for 9 vert shadows in LEGACY_SHADOW_IDS ifdef (#406)
* Add missing check for 9 vert shadows in LEGACY_SHADOW_IDS ifdef

* Add legacy shadow ids to ShadowType enum
2022-06-09 15:52:10 +01:00
KazeEmanuar
a1ab7c51f0 Made raycasts not hit backfaces
* Update name of lighting engine branch in readme
2022-06-09 10:04:58 -04:00
Arceveti
4cfbc656a9 Re-implement FALL_DAMAGE_HEIGHT_SMALL usage in play_far_fall_sound (#407) 2022-05-19 17:12:28 -04:00
Arceveti
fe6aee22e1 Remove redundant snufit offset vector (fixes gcc11 compiler warning) (#395) 2022-05-02 15:36:59 -04:00
Arceveti
ad3aa42eff Fix construct_float by changing addiu to ori (#394) 2022-05-02 14:56:04 -04:00
Mr-Wiseguy
031cc24fa6 New profiler (#390)
* Implemented new lightweight CPU/RDP profiler

* Integrated new profiler into puppyprint debug and improved profiler visuals, removed existing puppyprint profiling code
2022-05-01 00:42:58 -04:00
thecozies
8d06db06e1 Added specific extracted assets to gitignore (#386)
* Added specific extracted assets to gitignore

* Add .orig files to gitignore

Co-authored-by: Arceveti <73617174+Arceveti@users.noreply.github.com>

Co-authored-by: Arceveti <73617174+Arceveti@users.noreply.github.com>
2022-04-28 17:50:27 +03:00
Arceveti
642a85fec6 Fix build warnings & errors when building non-US versions (#305)
* Fix build warnings & errors when building non-US versions

* Revert ADSR_STATE_LOOP change in adsr_update in effects.c + add fallthrough comments + clean up ifdefs

* null initialization for loadedPool in heap.c

* Better placement of null initialization of arg0 in alloc_bank_or_seq
2022-04-15 12:46:17 -04:00
Reonu
3092929822 Tie JRB dark skybox with ENABLE_VANILLA_LEVEL_SPECIFIC_CHECKS (#378)
The JRB skybox is darkened if you haven't collected JRB's first star. This behaviour should be under `ENABLE_VANILLA_LEVEL_SPECIFIC_CHECKS`
2022-04-14 18:53:11 -04:00
CrashOveride95
51f8ccfbb0 Comment out username printing during debug builds because people use their real names on their computers
I still wanna give people the option so
2022-04-10 17:37:14 -04:00
CrashOveride95
2118234f9b Remove datetime from version.c to make debug builds reproducible 2022-04-10 17:37:14 -04:00
Gregory Heskett
ac0299e5b5 Bugfix: 2x+ skyboxes given insufficient memory space (#372) 2022-03-30 18:41:22 -04:00
Fazana
f98d43c9de Puppycamera hotfixes (#367)
* fixed some embarassing typos
2022-03-27 03:20:28 -04:00
someone2639
bf8ea238e5 Fix some bad comment descriptions in math_util (#328) 2022-03-25 13:23:34 -04:00
Mr-Wiseguy
b3cb639e6e Fixed makefile issue causing audio files to be compiled with different flags the first time they're built (#318) 2022-03-18 14:15:08 -04:00
Arceveti
12595397cd Fix OBJECTS_REJ build error & warning + silhouette incompatibility (#324)
* Fix OBJECTS_REJ build error & warning

* Fix Mario rendering
2022-03-18 11:03:39 -07:00
Arceveti
65eb5a755f Reimplement 'FIX_WATER_RINGS' (#325)
* Reimplement 'FIX_WATER_RINGS'
2022-03-18 11:02:38 -07:00
Gregory Heskett
eaf9d3e4f9 Merge pull request #352 from gheskett/develop/mingw-custom-audio-fix
Fix custom audio files not compiling under MinGW (in case it ever matters)
2022-03-18 12:47:54 -05:00
Arceveti
8cfd9af4ee Uncomment the last gSPPopMatrix in render_hud_cannon_reticle (#351) 2022-03-15 17:38:38 -04:00
gheskett
3f0143ec0f Fix custom audio files not compiling under MinGW (in case it ever matters) 2022-03-13 18:57:17 -04:00
tuxlovesyou
33b2a07759 Added LOAD_MIO0_TEXTURE alias for backwards-compatibility (#349)
Sometimes tools like Fast64 will export script.c files with
LOAD_MIO0_TEXTURE() macro "calls" even when you have "YAY0" toggled
under the export menu.  To keep this from being a roadblock for
compilation, LOAD_MIO0_TEXTURE() is defined in this commit as an alias
to the LOAD_YAY0_TEXTURE() macro! :-)
2022-03-11 22:10:46 -05:00
axollyon
a0e8600776 Saves default conf on boot now, simplify condition (#321) 2022-03-08 08:49:10 -06:00
Arceveti
4265019923 Fix NON_STOP_STARS & bhvCelebrationStar related issues with Bowser keys (#299)
Fix NON_STOP_STARS issues & bhvCelebrationStar related issues with Bowser keys
2022-01-22 14:07:55 -08:00
Reonu
ad91c636ad Update name of lighting engine branch in readme
sorry for pushing to master :(((((((((((((
2022-01-22 11:11:51 +02:00
Arceveti
730f020b6d Fix formatting inconsistencies in config files (#303)
Fix formatting inconsistencies in config files
2022-01-21 20:00:25 -08:00
Arceveti
483b72e7da Fix render menu buttons functions (#300) 2022-01-19 14:41:14 -08:00
Arceveti
36d41a7f94 Renamed HackerSM64 modified assets so they don't conflict with vanilla assets (#293) 2022-01-16 21:30:06 -08:00
Arceveti
af34a81c06 Fix credits text ifdef (#301) 2022-01-16 21:29:06 -08:00
103 changed files with 3347 additions and 1373 deletions

2126
.gitignore vendored

File diff suppressed because it is too large Load Diff

View File

@@ -33,7 +33,7 @@
"compilerPath": "/usr/bin/mips-linux-gnu-gcc",
"cStandard": "gnu17",
"cppStandard": "gnu++14",
"intelliSenseMode": "linux-gcc-x64"
"intelliSenseMode": "linux-gcc-x86"
}
],
"version": 4

View File

@@ -4,7 +4,7 @@
# These owners will be the default owners for everything in the repo.
* @Reonu
* @thecozies
* @Mr-Wiseguy
* @gheskett
# Order is important. The last matching pattern has the most precedence.
# So if a pull request only touches javascript files, only these owners

View File

@@ -135,10 +135,14 @@ LINK_LIBRARIES = $(foreach i,$(LIBRARIES),-l$(i))
# Default non-gcc opt flags
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
SAFETY_OPT_FLAGS = -ftrapping-math -fno-associative-math
# Main opt flags
GCC_MAIN_OPT_FLAGS = \
-Ofast \
$(DEFAULT_OPT_FLAGS) $(SAFETY_OPT_FLAGS) \
--param case-values-threshold=20 \
--param max-completely-peeled-insns=10 \
--param max-unrolled-insns=10 \
@@ -149,7 +153,7 @@ GCC_MAIN_OPT_FLAGS = \
# Surface Collision
GCC_COLLISION_OPT_FLAGS = \
-Ofast \
$(DEFAULT_OPT_FLAGS) $(SAFETY_OPT_FLAGS) \
--param case-values-threshold=20 \
--param max-completely-peeled-insns=100 \
--param max-unrolled-insns=100 \
@@ -162,7 +166,7 @@ GCC_COLLISION_OPT_FLAGS = \
# Math Util
GCC_MATH_UTIL_OPT_FLAGS = \
-Ofast \
$(DEFAULT_OPT_FLAGS) $(SAFETY_OPT_FLAGS) \
-fno-unroll-loops \
-fno-peel-loops \
--param case-values-threshold=20 \
@@ -174,7 +178,7 @@ GCC_MATH_UTIL_OPT_FLAGS = \
# Rendering graph node
GCC_GRAPH_NODE_OPT_FLAGS = \
-Ofast \
$(DEFAULT_OPT_FLAGS) $(SAFETY_OPT_FLAGS) \
--param case-values-threshold=20 \
--param max-completely-peeled-insns=100 \
--param max-unrolled-insns=100 \
@@ -630,7 +634,8 @@ $(BUILD_DIR)/src/usb/usb.o: CFLAGS += -Wno-unused-variable -Wno-sign-compare -Wn
$(BUILD_DIR)/src/usb/debug.o: OPT_FLAGS := -O0
$(BUILD_DIR)/src/usb/debug.o: CFLAGS += -Wno-unused-parameter -Wno-maybe-uninitialized
# File specific opt flags
$(BUILD_DIR)/src/audio/*.o: OPT_FLAGS := -Os -fno-jump-tables
$(BUILD_DIR)/src/audio/heap.o: OPT_FLAGS := -Os -fno-jump-tables
$(BUILD_DIR)/src/audio/synthesis.o: OPT_FLAGS := -Os -fno-jump-tables
$(BUILD_DIR)/src/engine/surface_collision.o: OPT_FLAGS := $(COLLISION_OPT_FLAGS)
$(BUILD_DIR)/src/engine/math_util.o: OPT_FLAGS := $(MATH_UTIL_OPT_FLAGS)
@@ -869,8 +874,16 @@ $(ELF): $(BUILD_DIR)/sm64_prelim.elf $(BUILD_DIR)/asm/debug/map.o $(O_FILES) $(Y
$(V)$(LD) --gc-sections -L $(BUILD_DIR) -T undefined_syms.txt -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))))
# run with -n / --dry-run
$(ROM):
@$(PRINT) "$(BLUE)DRY RUNS ARE DISABLED$(NO_COL)\n"
else
# not running with -n / --dry-run
$(ROM): $(ELF)
$(call print,Building ROM:,$<,$@)
endif
ifeq ($(CONSOLE),n64)
$(V)$(OBJCOPY) --pad-to=0x101000 --gap-fill=0xFF $< $@ -O binary
else ifeq ($(CONSOLE),bb)

View File

@@ -14,7 +14,7 @@ This is a fork of the ultrasm64 repo by CrashOveride which includes the followin
- **ArcticJaguar725**: Most audio configuration and layout changes, colored ia4 text, floombas, various bugfixes, and more
- **CowQuack**: Adjustable skybox sizes, area-specific skybox function
- **thecozies**: Water surface types, general maintenance, and time
- **MrComit**: General use object defines, JUMP_KICK_FIX, LEDGE_GRABS_CHECK_SLOPE_ANGLE
- **MrComit**: General use object defines, JUMP_KICK_FIX
- **aglab2**: Bugfixes (particularly puppycam), refactor stuff
- **someone2639**: math.s and crash screen disam, stack trace, map packing, shiftable segments 2, S2DEX engine
- **Arthurtilly**: Platform Displacement 2
@@ -29,11 +29,12 @@ This is a fork of the ultrasm64 repo by CrashOveride which includes the followin
- **CrashOveride**: creating the [ultrasm64](https://github.com/CrashOveride95/ultrasm64) repo
- **falcobuster**: Original coordinate overflow fix (world scale), ASM version of extended bounds
- **anonymous_moose**: porting falco's extended bounds to decomp
- **tuxlovesyou**: `LOAD_MIO0_TEXTURE` macro and moral support
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-wip](https://github.com/Reonu/HackerSM64/tree/base/lighting-engine-wip)). Instructions on how to use it are in the readme of that branch.
- 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**
@@ -60,7 +61,6 @@ Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
- Toggle to disable fall damage and the fall damage sound *
- Nonstop stars *
- Removed course-specific camera processing *
- You can increase the number of frames that you have to perform a firsty *
- Ability to set Mario's movement speed when hanging from a ceiling *
- Tighter hanging controls (Mario will face the direction of the analog stick directly while hanging from a ceiling) *
- reonucam3: custom camera by Reonu. This is included as a .patch file in the enhancements folder, you need to apply it if you want this camera.

View File

@@ -1 +1 @@
v2.0.1
v2.0.8

View File

Before

Width:  |  Height:  |  Size: 995 B

After

Width:  |  Height:  |  Size: 995 B

View File

@@ -10,7 +10,7 @@ ALIGNED8 static const Texture flyguy_seg8_texture_0800E088[] = {
// 0x0800F088
ALIGNED8 static const Texture flyguy_seg8_texture_0800F088[] = {
#include "actors/flyguy/flyguy_face.rgba16.inc.c"
#include "actors/flyguy/flyguy_face.custom.rgba16.inc.c"
};
// 0x0800F888

View File

@@ -96,7 +96,7 @@ static const Vtx warp_pipe_seg3_vertex_03007DC0[] = {
// 0x03007E40
ALIGNED8 static const Texture warp_pipe_seg3_texture_03007E40[] = {
#include "actors/warp_pipe/warp_pipe_side.rgba16.inc.c"
#include "actors/warp_pipe/warp_pipe_side.custom.rgba16.inc.c"
};
// 0x03008E40 - 0x03008F98

View File

Before

Width:  |  Height:  |  Size: 1012 B

After

Width:  |  Height:  |  Size: 1012 B

View File

@@ -4,12 +4,12 @@
* AUDIO SETTINGS *
******************/
// Fixes the castle music sometimes triggering after getting a dialog
// Fixes the castle music sometimes triggering after getting a dialog.
#define CASTLE_MUSIC_FIX
// Increase audio heap size to allow for more concurrent notes to be played and for more custom sequences/banks to be imported (not supported for SH)
// Increases the audio heap size to allow for more concurrent notes to be played and for more custom sequences/banks to be imported (not supported for SH).
#define EXPAND_AUDIO_HEAP
// Use a much better implementation of reverb over vanilla's fake echo reverb. Great for caves or eerie levels, as well as just a better audio experience in general.
// Uses a much better implementation of reverb over vanilla's fake echo reverb. Great for caves or eerie levels, as well as just a better audio experience in general.
// Reverb parameters can be configured in audio/synthesis.c to meet desired aesthetic/performance needs. Currently US/JP only. Hurts emulator and console performance.
//#define BETTER_REVERB
// #define BETTER_REVERB

View File

@@ -3,11 +3,11 @@
/**********************
* BENCHMARK SETTINGS *
**********************/
/**
* Enabling this will enable a set of defines in order to run a benchmark on the game
* Currently this just starts the credits, and enables puppyprint debug
*/
/**
* Enabling this will enable a set of defines in order to run a benchmark on the game.
* Currently this just starts the credits, and enables PUPPYPRINT_DEBUG.
*/
// #define ENABLE_CREDITS_BENCHMARK
#ifdef ENABLE_CREDITS_BENCHMARK

View File

@@ -4,37 +4,37 @@
* CAMERA SETTINGS *
*******************/
// Force the camera mode to your choice (except when swimming or flying)
// Forces the camera mode to your choice (except when swimming or flying).
// It does this by setting the area's camera->defMode to this mode, and also
// changes hardcoded modes to use c->defMode
// Note: removes door cutscenes due to the way they're designed to work with specific modes
// Search for FORCED_CAMERA_MODE in camera.c for more information
// changes hardcoded modes to use c->defMode.
// Note: removes door cutscenes due to the way they're designed to work with specific modes.
// Search for FORCED_CAMERA_MODE in camera.c for more information.
#define FORCED_CAMERA_MODE CAMERA_MODE_8_DIRECTIONS
// Changes hardcoded camera mode reverting to instead use the area's default mode (defMode)
// If you're using a FORCED_CAMERA_MODE, this must be on for it to work
// Changes hardcoded camera mode reverting to instead use the area's default mode (defMode).
// If you're using a FORCED_CAMERA_MODE, this must be on for it to work.
#define USE_COURSE_DEFAULT_MODE
/***** Movement specific camera modes: *****/
// Camera mode when Mario is < 400 units away from the water surface (default is CAMERA_MODE_WATER_SURFACE)
// Camera mode when Mario is < 400 units away from the water surface (default is CAMERA_MODE_WATER_SURFACE).
#define WATER_SURFACE_CAMERA_MODE CAMERA_MODE_WATER_SURFACE
// Camera mode when Mario is > 800 units away from the water surface (default is CAMERA_MODE_BEHIND_MARIO)
// Camera mode when Mario is > 800 units away from the water surface (default is CAMERA_MODE_BEHIND_MARIO).
#define DEEP_WATER_CAMERA_MODE CAMERA_MODE_BEHIND_MARIO
// Camera mode when Mario is flying (default is CAMERA_MODE_BEHIND_MARIO)
// Camera mode when Mario is flying (default is CAMERA_MODE_BEHIND_MARIO).
#define FLYING_CAMERA_MODE CAMERA_MODE_BEHIND_MARIO
/*******************************************/
// Makes the camera approach Mario's height much more quickly
// Makes the camera approach Mario's height much more quickly.
#define FAST_VERTICAL_CAMERA_MOVEMENT
// Enables "parallel lakitu camera" or "aglab cam" which lets you move the camera smoothly with the dpad
// Enables "parallel lakitu camera" or "aglab cam" which lets you move the camera smoothly with the D-pad.
#define PARALLEL_LAKITU_CAM
// Enables Puppy Camera 2, a rewritten camera that can be freely configured and modified.
// #define PUPPYCAM
// Note: Reonucam is available, but because we had no time to test it properly, it's included as a patch rather than being in the code by default.
// Run this command to apply the patch if you want to use it:
// Run this command to apply the patch if you want to use it:
// tools/apply_patch.sh enhancements/reonucam.patch
// Consider it a beta, but it should work fine. Please report any bugs with it. Applying the patch will simply add a define here, so you can still turn it off even after patching.
@@ -42,13 +42,13 @@
/***** Vanilla config options *****/
/**********************************/
// Included for ENABLE_VANILLA_LEVEL_SPECIFIC_CHECKS define
// Included for ENABLE_VANILLA_LEVEL_SPECIFIC_CHECKS define.
#include "config_game.h"
// Allow course specific camera processing
// You will likely want this disabled in non-vanilla hacks
// Allow course specific camera processing.
// You will likely want this disabled in non-vanilla hacks.
// This is automatically enabled when ENABLE_VANILLA_LEVEL_SPECIFIC_CHECKS is enabled,
// but feel free to override it if you really want to for some reason
// but feel free to override it if you really want to for some reason/
#ifdef ENABLE_VANILLA_LEVEL_SPECIFIC_CHECKS
#define ENABLE_VANILLA_CAM_PROCESSING
#endif

View File

@@ -8,10 +8,10 @@
// The defined number is the forward speed threshold before the change is active, since it's only noticeable at lower speeds.
#define FAST_FLOOR_ALIGN 10
// Automatically calculate the optimal collision distance for an object based on its vertices.
// Automatically calculates the optimal collision distance for an object based on its vertices.
#define AUTO_COLLISION_DISTANCE
// Allow all surfaces types to have force, (doesn't require setting force, just allows it to be optional).
// Allows all surfaces types to have force, (doesn't require setting force, just allows it to be optional).
#define ALL_SURFACES_HAVE_FORCE
// Number of walls that can push Mario at once. Vanilla is 4.

View File

@@ -6,8 +6,8 @@
// -- CUTSCENE SKIPS --
// Skip peach letter cutscene
// Skips the peach letter cutscene.
#define PEACH_SKIP
// Uncomment this if you want to skip the title screen (Super Mario 64 logo)
//#define SKIP_TITLE_SCREEN
// Skips the title/splash screen (Super Mario 64 logo).
// #define SKIP_TITLE_SCREEN

View File

@@ -7,46 +7,50 @@
// Enables most debug options, including PUPPYPRINT_DEBUG.
// #define DEBUG_ALL
// Disables all debug options (except PUPPYPRINT)
// Disables all debug options (except PUPPYPRINT).
#define DISABLE_ALL
// Enables a comprehensive standalone profiler. Automatically enabled by PUPPYPRINT_DEBUG.
// If not using PUPPYPRINT_DEBUG, press L to toggle the profiler.
// #define USE_PROFILER
// TEST LEVEL
// Uncomment this define and set a test level in order to boot straight into said level.
// This allows you to quickly test the level you're working on.
// If you want the game to boot normally, just comment out the define again.
// #define TEST_LEVEL LEVEL_BOB
// Enable debug level select. Hold L while the game boots to turn it on.
// Enables debug level select. Hold L while the game boots to turn it on.
#define DEBUG_LEVEL_SELECT
// Enable debug free move (DPad up to enter, A to exit).
// Enables debug free move (D-pad up to enter, A to exit).
#define ENABLE_DEBUG_FREE_MOVE
// Include a custom, enhanced performance profiler. (Enables PUPPYPRINT by default in config_safeguards).
// Enables a custom, enhanced performance profiler. (Enables PUPPYPRINT by default in config_safeguards).
// #define PUPPYPRINT_DEBUG 1
// Use cycles instead of microseconds in Puppyprint debug output.
// Uses cycles instead of microseconds in Puppyprint debug output.
// #define PUPPYPRINT_DEBUG_CYCLES
// A vanilla style debug mode. It doesn't rely on a text engine, but it's much less powerful that PUPPYPRINT_DEBUG.
// Press DPAD left to show the debug UI.
// A vanilla style debug mode. It doesn't rely on a text engine, but it's much less powerful that PUPPYPRINT_DEBUG.
// Press D-pad left to show the debug UI.
// #define VANILLA_STYLE_CUSTOM_DEBUG
// Visual debug enables some collision visuals. Tapping Right on the dpad will cycle between visual hitboxes, visual surfaces, both, and neither.
// Visual debug enables some collision visuals. Tapping Right on the D-pad will cycle between visual hitboxes, visual surfaces, both, and neither.
// If puppyprint is enabled, then this can be cycled only while the screen is active.
// #define VISUAL_DEBUG
// Open all courses and doors. Used for debugging purposes to unlock all content.
// Opens all courses and doors. Used for debugging purposes to unlock all content.
#define UNLOCK_ALL
// Same as above, but also reads all save file flags as complete.
// This will not overwrite existing save file data unless you save over it.
// #define COMPLETE_SAVE_FILE
// Removes the limit on FPS
// Removes the limit on FPS.
// #define UNLOCK_FPS
// Include vanilla debug functionality.
// Includes vanilla debug functionality.
// #define VANILLA_DEBUG
// Forces a crash when the game starts. Useful for debugging the crash screen.

View File

@@ -4,65 +4,62 @@
* GAME SETTINGS *
*****************/
/**
/**
* Enables some mechanics that change behavior depending on hardcoded level numbers.
* You may also need to change sLevelsWithRooms in object_helpers.c
* TODO: separate this into separate defines, behavior params, or make these mechanics otherwise dynamic
* You may also need to change sLevelsWithRooms in object_helpers.c.
* TODO: separate this into separate defines, behavior params, or make these mechanics otherwise dynamic.
*/
// #define ENABLE_VANILLA_LEVEL_SPECIFIC_CHECKS
// Disable lives and hide the lives counter
// Disables lives and hides the lives counter.
#define DISABLE_LIVES
// Save number of lives to the save file (Does nothing if DISABLE_LIVES is enabled)
// Saves the number of lives to the save file (Does nothing if DISABLE_LIVES is enabled).
#define SAVE_NUM_LIVES
// The number of lives Mario starts with after a game over or starting the game for the first time (must be lower than 127)
// This is the number of lives Mario starts with after a game over or starting the game for the first time (must be lower than 127).
#define DEFAULT_NUM_LIVES 4
// This can be 0..127
// This can be 0..127.
#define MAX_NUM_LIVES 100
// This can be 0..32767
// This can be 0..32767.
#define MAX_NUM_COINS 999
// Air/Breath meter is separate from health meter when underwater
// Air/breath meter is separate from health meter when underwater.
// #define BREATH_METER
// Number of coins to spawn the "100 coin" star. If you remove the define altogether, then there won't be a 100 coin star at all.
#define X_COIN_STAR 100
/*
* Stars don't kick you out of the level (does not play nicely with vanilla)
* In v2.0 there are numerous issues with this define that can be seen here https://github.com/Reonu/HackerSM64/issues/258
* Use at your own risk.
*/
// Stars don't kick you out of the level (does not play nicely with vanilla).
// #define NON_STOP_STARS
// Uncomment this if you want global star IDs (useful for creating an open world hack ala MVC)
// Bowser keys always exit the level. Only has an effect if NON_STOP_STARS is enabled.
// #define KEYS_EXIT_LEVEL
// Uncomment this if you want global star IDs (useful for creating an open world hack ala MVC).
// #define GLOBAL_STAR_IDS
// Number of possible unique model ID's (keep it higher than 256)
// Number of possible unique model ID's (keep it higher than 256).
#define MODEL_ID_COUNT 256
// Number of supported areas per level.
#define AREA_COUNT 8
// Makes signs and NPCs easier to talk to.
// NOTE: Currently has issues with talking to Bowser post-fight,
// https://github.com/Reonu/HackerSM64/issues/273
// #define EASIER_DIALOG_TRIGGER
// Show an "A" when Mario is able to talk [requires EASIER_DIALOG_TRIGGER]
// Shows an "A" when Mario is able to talk [requires EASIER_DIALOG_TRIGGER].
// #define DIALOG_INDICATOR
// Include the English characters that were missing from US segment2
// J, Q, V, X, Z, ¨, !, !!, ?, &, %, ., and the beta key.
// [MAKE SURE TO HAVE EU AND JP/SH BASEROMS TO OBTAIN THE ASSETS]
// [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.
// #define COMPLETE_EN_US_SEGMENT2
/// Removes multi-language cake screen
// Removes multi-language cake screen.
#define EU_CUSTOM_CAKE_FIX
// Adds multiple languages to the game. Just a placeholder for the most part, because it only works with EU, and must be enabled with EU.
@@ -71,5 +68,6 @@
// Prevents infinite death loops by always restoring Mario's health when he's warped to any kind of warp while dead.
#define PREVENT_DEATH_LOOP
// The level that the game starts in after file select. The levelscript needs to have a MARIO_POS command for this to work.
// The level that the game starts with immediately after file select.
// The levelscript needs to have a MARIO_POS command for this to work.
#define START_LEVEL LEVEL_CASTLE_GROUNDS

View File

@@ -4,11 +4,11 @@
* GODDARD SETTINGS *
********************/
// Uncomment this if you want to keep the mario head and not skip it
// Enables Goddard (the Mario head).
// #define KEEP_MARIO_HEAD
// Goddard easter egg from Shindou (has no effect if KEEP_MARIO_HEAD is disabled)
// Enables the Goddard easter egg from Shindou (has no effect if KEEP_MARIO_HEAD is disabled).
#define GODDARD_EASTER_EGG
// Disables the demo that plays when idle on the start screen (has no effect if KEEP_MARIO_HEAD is disabled)
// Disables the demo that plays when idle on the start screen (has no effect if KEEP_MARIO_HEAD is disabled).
#define DISABLE_DEMO

View File

@@ -4,21 +4,21 @@
* GRAPHICS SETTINGS *
*********************/
// Size of how large the master display list (gDisplayListHead) can be. 6400 is vanilla
// The size of the master display list (gDisplayListHead). 6400 is vanilla.
#define GFX_POOL_SIZE 10000
// Show a watermark in the title screen that reads "Made with HackerSM64", instead of the copyright message
// Show a watermark on the title screen that reads "Made with HackerSM64", instead of the copyright message.
#define INTRO_CREDIT
// Spawn floombas in the title screen
// Spawns floombas on the title screen.
#define INTRO_FLOOMBAS
// Enable widescreen (16:9) support
// Enables widescreen (16:9) support.
#define WIDE
// Skybox size modifier, changing this will add support for larger skybox images. NOTE: Vanilla skyboxes may break if you change this option. Be sure to rescale them accordingly.
// Whenever you change this, make sure to run "make -C tools clean" to rebuild the skybox tool (alternatively go into skyconv.c and change the file in any way (like adding/deleting a space) to specifically rebuild that tool).
// When increasing this, you should probably also increase the GFX pool size. (the GFX_POOL_SIZE define above)
// When increasing this, you should probably also increase the GFX pool size (the GFX_POOL_SIZE define above).
#define SKYBOX_SIZE 1
// When this option is enabled, LODs will ONLY work on console.
@@ -26,17 +26,17 @@
// Regardless of whether this setting is enabled or not, you can use gIsConsole to wrap your own code in a console check.
#define AUTO_LOD
// Include Puppyprint, a display library for text and large images.
// Automatically included when PUPPYPRINT_DEBUG is enabled
// Enables Puppyprint, a display library for text and large images.
// Automatically enabled when PUPPYPRINT_DEBUG is enabled.
// #define PUPPYPRINT
// Disable AA (Improves console performance but causes visible seams between unconnected geometry).
// Disables AA (Improves console performance but causes visible seams between unconnected geometry).
// #define DISABLE_AA
// Makes the coins ia8 64x64 instead of ia16 32x32. Uses new ia8 textures so that vanilla coins look better.
#define IA8_COINS
// Similar to the above, but 30 FPS (Textures by InTheBeef, cleaned up by Arceveti)
// Similar to the above, but 30 FPS (Textures by InTheBeef, cleaned up by Arceveti).
#define IA8_30FPS_COINS
// Use .rej microcode for certain objects (experimental - only should be used when F3DEX_GBI_2 is defined).
@@ -45,7 +45,7 @@
// #define OBJECTS_REJ
/**
* Mario's silhouette when behind solid objects/surfaces
* Mario's silhouette when behind solid objects/surfaces.
* Also enables new render layers, such as LAYER_ALPHA_DECAL.
* The number is the intensity of the silhouette, from 0-255.
* NOTE: The overlap between Mario's model parts is visible on certain HLE plugins.
@@ -63,24 +63,28 @@
// Fixes the game reading the ia8 burn smoke texture as an rgba16.
#define BURN_SMOKE_FIX
// Disable the fix to Koopa's unshelled model.
// Disables the fix to Koopa's unshelled model.
#define KOOPA_KEEP_PINK_SHORTS
// Uses the star object's model in the star dance cutscene.
// This has a side effect of making the star dance star also transparent when Mario collects a transparent star.
// #define STAR_DANCE_USES_STARS_MODEL
// Lightweight directional lighting engine by Fazana. Intended for giving proximity and positional pointlights to small objects.
// NOTE: Stil breaks occasionally, and PUPPYLIGHT_NODE doesn't work in areas that aren't area 1.
// NOTE: Still breaks occasionally, and PUPPYLIGHT_NODE might not work in areas that aren't area 1.
// #define PUPPYLIGHTS
// Uses the correct "up" vector for the guLookAtReflect call in geo_process_master_list_sub.
// It is sideways in vanilla, and since vanilla's environment map textures are sideways too, they will appear as sideways in-game if this is enabled.
// It is sideways in vanilla, and since vanilla's environment map textures are sideways too, those will appear as sideways in-game if this is enabled.
// Make sure your custom environment map textures are the correct orientation.
// #define FIX_REFLECT_MTX
// This improves performance a bit, and does not seem to break anything.
#define DISABLE_GRAPH_NODE_TYPE_FUNCTIONAL
// Disables object shadows. You'll probably only want this either as a last resort for performance or if you're making a super stylized hack.
// Disables all object shadows. You'll probably only want this either as a last resort for performance or if you're making a super stylized hack.
// #define DISABLE_SHADOWS
// Use old shadow IDs for Fast64 compatibility. This is a temporary fix until Fast64 is updated to use the enum defines.
// Uses old shadow IDs for Fast64 compatibility. This is a temporary fix until Fast64 is updated to use the enum defines.
// NOTE: When this is enabled, The 49th hardcoded rectangle shadow will act as a regular circular shadow, due to Mario's shadow ID being 99 in vanilla.
#define LEGACY_SHADOW_IDS

View File

@@ -6,10 +6,9 @@
// Various interaction related settings, bug fixes or QoL changes
/**
* This bug allows mario to move when initiating a dialog,
* just as long as mario doesn't enter an action that can
* be interrupted with text
* Uncomment this to fix this bug, and frustrate speedrunners
/**
* This fixes a bug which allows mario to move when initiating
* a dialog. just as long as mario doesn't enter an action that
* can be interrupted with text.
*/
// #define BUGFIX_DIALOG_TIME_STOP

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