Merge branch 'develop/2.1.0' of https://github.com/HackerN64/HackerSM64 into develop/2.1.0-four-controllers-base

This commit is contained in:
Arceveti
2023-09-05 12:57:54 -07:00
142 changed files with 20123 additions and 3946 deletions

View File

@@ -21,6 +21,15 @@
*/
// #define DISABLE_MARIO_PITCH_SHIFTING
/**
* Enables the additional spacial processing that takes place with sound effects in vanilla.
* SM64's implementation of this isn't the best, which causes some sounds like the waterfall in castle grounds to sound more unpleasant than necessary.
* This is not the same thing as enabling stereo audio, but it does represent the sole differences between the Stereo and Headset sound options.
* Because of this, the Headset sound option will also not appear in the file select menu with this disabled.
* Leaving this disabled may also be slightly beneficial for CPU performance.
*/
// #define ENABLE_STEREO_HEADSET_EFFECTS
/**
* Increase audio heap size to allow for larger/more custom sequences/banks/sfx to be imported without causing issues (not supported for SH).
* Note that this is REQUIRED in order to use the extended 0C audio bank. Do not disable this if you're planning on using it.

View File

@@ -42,7 +42,7 @@
/**
* When this option is enabled, LODs will ONLY work on console.
* When this option is disabled, LODs will work regardless of whether console or emulator is used.
* Regardless of whether this setting is enabled or not, you can use gIsConsole to wrap your own code in a console check.
* Regardless of whether this setting is enabled or not, you can use gEmulator to wrap your own code in a console check.
*/
#define AUTO_LOD
@@ -133,3 +133,30 @@
* 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
/**
* Limits the horizontal fov on emulator like on console. May break viewport widescreen hacks.
*/
// #define HORIZONTAL_CULLING_ON_EMULATOR
/**
* Makes objects bellow the screen be culled.
*/
#define VERTICAL_CULLING
/**
* If the first command of an object´s geolayout is not GEO_CULLING_RADIUS, DEFAULT_CULLING_RADIUS
* will be used instead.
*/
#define DEFAULT_CULLING_RADIUS 300
/**
* Eases the textured screen transitions to make them look smoother.
*/
#define EASE_IN_OUT_TRANSITIONS
/**
* Makes use of the tex edge render mode to deliver smooth transition textures
*/
// #define SHARP_TRANSITION_TEXTURES

View File

@@ -17,7 +17,13 @@
#define EXIT_COURSE_WHILE_MOVING
/**
* Decides which level, area and warp ID the "Exit Course" option takes you to (has no effect if you disable Exit Course).
* Decides whether to treat exiting course as if the player had died.
* If enabled, the player will get warped to the failure warp node when selecting EXIT COURSE. (Has no effect if you disable Exit Course)
*/
// #define DEATH_ON_EXIT_COURSE
/**
* Decides which level, area and warp ID the "Exit Course" option takes you to (has no effect if you disable Exit Course or enable DEATH_ON_EXIT_COURSE).
* Ensure that the warp exists, or else the game will crash.
*/
#define EXIT_COURSE_LEVEL LEVEL_CASTLE

View File

@@ -73,6 +73,7 @@ enum LevelCommands {
/*0x3E*/ LEVEL_CMD_CHANGE_AREA_SKYBOX,
/*0x3F*/ LEVEL_CMD_PUPPYLIGHT_ENVIRONMENT,
/*0x40*/ LEVEL_CMD_PUPPYLIGHT_NODE,
/*0x41*/ LEVEL_CMD_SET_ECHO,
};
enum LevelActs {
@@ -448,6 +449,9 @@ enum GoddardScene {
#define STOP_MUSIC(fadeOutTime) \
CMD_BBH(LEVEL_CMD_FADEOUT_MUSIC, 0x04, fadeOutTime)
#define SET_ECHO(console, emulator) \
CMD_BBBB(LEVEL_CMD_SET_ECHO, 0x04, console, emulator)
#define MACRO_OBJECTS(objList) \
CMD_BBH(LEVEL_CMD_SET_MACRO_OBJECTS, 0x08, 0x0000), \
CMD_PTR(objList)

View File

@@ -33,6 +33,7 @@
* General data types for R4300
*/
#ifndef _LANGUAGE_ASSEMBLY
typedef signed char s8;
typedef unsigned char u8;
typedef signed short int s16;
@@ -76,7 +77,7 @@ typedef volatile s8 vs8;
typedef volatile s16 vs16;
typedef volatile s32 vs32;
typedef volatile s64 vs64;
#endif // _LANGUAGE_ASSEMBLY
/*************************************************************************
* Common definitions

View File

@@ -797,6 +797,9 @@
#define /*0x0F8*/ oRespawnerMinSpawnDist OBJECT_FIELD_F32(0x1C)
#define /*0x0FC*/ oRespawnerBehaviorToRespawn OBJECT_FIELD_CVPTR(0x1D)
/* Orange Number */
#define /*0x110*/ oOrangeNumberOffset OBJECT_FIELD_S32(0x22)
/* Openable Grill */
#define /*0x088*/ oOpenableGrillIsOpen OBJECT_FIELD_S32(0x00)
#define /*0x0F4*/ oOpenableGrillFloorSwitchObj OBJECT_FIELD_OBJ(0x1B)
@@ -998,6 +1001,7 @@
/* Hidden Star */
// Secrets/Red Coins
#define /*0x0F4*/ oHiddenStarTriggerCounter OBJECT_FIELD_S32(0x1B)
#define /*0x0F8*/ oHiddenStarTriggerTotal OBJECT_FIELD_S32(0x1C)
/* Sealed Door Star */
#define /*0x108*/ oUnlockDoorStarState OBJECT_FIELD_U32(0x20)

View File

@@ -282,8 +282,12 @@
.endm
.macro chan_stereoheadseteffects a
#ifdef ENABLE_STEREO_HEADSET_EFFECTS
.byte 0xd0
.byte \a
#else
// Feel free to hijack this command for something else if it's not being used!
#endif
.endm
.macro chan_setnoteallocationpolicy a
@@ -684,7 +688,7 @@
// envelope commands
.macro envelope_disable a
.byte 0x0, 0x0
.byte 0xff, 0xfc
.byte \a >> 8, \a & 0xff
.endm

File diff suppressed because it is too large Load Diff

View File

@@ -4,62 +4,56 @@
#include "text_menu_strings.h"
#if defined(PUPPYCAM)
#define NC_CAMX_EN _("Camera X Sensitivity")
#define NC_CAMY_EN _("Camera Y Sensitivity")
#define NC_INVERTX_EN _("Invert X Axis")
#define NC_INVERTY_EN _("Invert Y Axis")
#define NC_CAMC_EN _("Camera Centre Speed")
#define NC_ANALOGUE_EN _("Analogue Camera")
#define NC_SCHEME_EN _("Control Scheme")
#define OPTION_ENABLED_EN _("Enabled")
#define OPTION_DISABLED_EN _("Disabled")
#define OPTION_SCHEME1_EN _("Double Tap")
#define OPTION_SCHEME2_EN _("Single Press")
#define OPTION_SCHEME3_EN _("Classic")
#define OPTION_LANGUAGE_EN _("Language")
#define NC_WIDE_EN _("Widescreen")
#define NC_HIGHLIGHT_L _(">")
#define NC_HIGHLIGHT_R _("<")
#define NC_BUTTON_EN _("[R]: Options")
#define NC_BUTTON2_EN _("[R]: Return")
#define NC_OPTION_EN _("OPTIONS")
#define NC_CAMX_EN _("Camera Sensitivity")
#define NC_INVERTX_EN _("Invert Camera")
#define NC_CAMC_EN _("Camera Auto Turn")
#define NC_ANALOGUE_EN _("Analogue Camera")
#define NC_SCHEME_EN _("Control Scheme")
#define OPTION_ENABLED_EN _("Enabled")
#define OPTION_DISABLED_EN _("Disabled")
#define OPTION_SCHEME1_EN _("Double Tap")
#define OPTION_SCHEME2_EN _("Single Press")
#define OPTION_SCHEME3_EN _("Classic")
#define OPTION_LANGUAGE_EN _("Language")
#define NC_WIDE_EN _("Widescreen")
#define NC_HIGHLIGHT_L _(">")
#define NC_HIGHLIGHT_R _("<")
#define NC_BUTTON_EN _("[R]: Options")
#define NC_BUTTON2_EN _("[R]: Return")
#define NC_OPTION_EN _("OPTIONS")
#if MULTILANG
#define NC_CAMX_FR _("Sensibilite sur l'axe X")
#define NC_CAMY_FR _("Sensibilite sur l'axe Y")
#define NC_INVERTX_FR _("Invertir Axe X")
#define NC_INVERTY_FR _("Invertir Axe Y")
#define NC_CAMC_FR _("Vitesse de Centrage")
#define NC_ANALOGUE_FR _("Camera Analogue")
#define NC_SCHEME_FR _("Control Scheme")
#define OPTION_ENABLED_FR _("Active")
#define OPTION_DISABLED_FR _("Desactive")
#define OPTION_SCHEME1_FR _("Double Tap")
#define OPTION_SCHEME2_FR _("Single Press")
#define OPTION_SCHEME3_FR _("Classic")
#define OPTION_LANGUAGE_FR _("Language")
#define NC_WIDE_FR _("Widescreen")
#define NC_BUTTON_FR _("[R]: Options")
#define NC_BUTTON2_FR _("[R]: Retournez")
#define NC_OPTION_FR _("OPTIONS")
#define NC_CAMX_FR _("Sensibilite")
#define NC_INVERTX_FR _("Camera invertir")
#define NC_CAMC_FR _("Vitesse de Centrage")
#define NC_ANALOGUE_FR _("Camera Analogue")
#define NC_SCHEME_FR _("Control Scheme")
#define OPTION_ENABLED_FR _("Active")
#define OPTION_DISABLED_FR _("Desactive")
#define OPTION_SCHEME1_FR _("Double Tap")
#define OPTION_SCHEME2_FR _("Single Press")
#define OPTION_SCHEME3_FR _("Classic")
#define OPTION_LANGUAGE_FR _("Language")
#define NC_WIDE_FR _("Widescreen")
#define NC_BUTTON_FR _("[R]: Options")
#define NC_BUTTON2_FR _("[R]: Retournez")
#define NC_OPTION_FR _("OPTIONS")
#define NC_CAMX_DE _("Camera X Sensitivity")
#define NC_CAMY_DE _("Camera Y Sensitivity")
#define NC_INVERTY_DE _("Invert Y Axis")
#define NC_INVERTX_DE _("Invert X Axis")
#define NC_CAMC_DE _("Camera Centre Speed")
#define NC_ANALOGUE_DE _("Analogue Camera")
#define NC_SCHEME_DE _("Control Scheme")
#define OPTION_ENABLED_DE _("Enabled")
#define OPTION_DISABLED_DE _("Disabled")
#define OPTION_SCHEME1_DE _("Double Tap")
#define OPTION_SCHEME2_DE _("Single Press")
#define OPTION_SCHEME3_DE _("Classic")
#define OPTION_LANGUAGE_DE _("Language")
#define NC_WIDE_DE _("Widescreen")
#define NC_BUTTON_DE _("[R]: Options")
#define NC_BUTTON2_DE _("[R]: Return")
#define NC_OPTION_DE _("OPTIONS")
#define NC_CAMX_DE _("Camera Sensitivity")
#define NC_INVERTX_DE _("Invert Camera")
#define NC_CAMC_DE _("Camera Centre Speed")
#define NC_ANALOGUE_DE _("Analogue Camera")
#define NC_SCHEME_DE _("Control Scheme")
#define OPTION_ENABLED_DE _("Enabled")
#define OPTION_DISABLED_DE _("Disabled")
#define OPTION_SCHEME1_DE _("Double Tap")
#define OPTION_SCHEME2_DE _("Single Press")
#define OPTION_SCHEME3_DE _("Classic")
#define OPTION_LANGUAGE_DE _("Language")
#define NC_WIDE_DE _("Widescreen")
#define NC_BUTTON_DE _("[R]: Options")
#define NC_BUTTON2_DE _("[R]: Return")
#define NC_OPTION_DE _("OPTIONS")
#endif
#endif