Compare commits

..

1 Commits

Author SHA1 Message Date
thecozies
4f1a08ada2 rename flips src dir 2023-09-27 07:09:40 -05:00
174 changed files with 5604 additions and 6662 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, various optimizations including shadows, implementation of better wall collision, better hanging, breath meter, 4 controller support, major input refactoring, controller reassignment, controller icons, alternate rumble graphics
- **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

@@ -6,7 +6,6 @@
#include "types.h"
#include "game/ingame_menu.h"
#include "game/puppyprint.h"
#include "game/segment2.h"
#include "make_const_nonconst.h"
@@ -31,7 +30,7 @@ const u8 small_font_kerning_default[] = {
/*A*/ 7, /*B*/ 7, /*C*/ 7, /*D*/ 7, /*E*/ 6, /*F*/ 5, /*G*/ 8, /*H*/ 6, /*I*/ 6, /*J*/ 5, /*K*/ 7, /*L*/ 6, /*M*/ 7, /*N*/ 7, /*O*/ 7, /*P*/ 6,
/*Q*/ 8, /*R*/ 6, /*S*/ 7, /*T*/ 7, /*U*/ 7, /*V*/ 7, /*W*/ 8, /*X*/ 7, /*Y*/ 7, /*Z*/ 7, /*[*/ 0, /*\\*/ 0, /*]*/ 0, /*^*/ 8, /*_*/ 0, /*`*/ 0,
/*a*/ 7, /*b*/ 7, /*c*/ 6, /*d*/ 7, /*e*/ 7, /*f*/ 7, /*g*/ 7, /*h*/ 7, /*i*/ 3, /*j*/ 5, /*k*/ 8, /*l*/ 4, /*m*/ 7, /*n*/ 7, /*o*/ 7, /*p*/ 7,
/*q*/ 7, /*r*/ 6, /*s*/ 6, /*t*/ 6, /*u*/ 6, /*v*/ 7, /*w*/ 8, /*x*/ 6, /*y*/ 8, /*z*/ 7, /*{*/ 0, /*|*/ 0, /*}*/ 0, /*~*/ 8,
/*q*/ 7, /*r*/ 6, /*s*/ 6, /*t*/ 6, /*u*/ 6, /*v*/ 7, /*w*/ 8, /*x*/ 6, /*y*/ 8, /*z*/ 7, /*~*/ 8,
};
const u16 small_font_offsets_default[] = {
@@ -50,7 +49,7 @@ static const u8 small_font_kerning_outline[] = {
/*A*/ 6, /*B*/ 6, /*C*/ 6, /*D*/ 6, /*E*/ 6, /*F*/ 6, /*G*/ 6, /*H*/ 6, /*I*/ 5, /*J*/ 7, /*K*/ 6, /*L*/ 6, /*M*/ 6, /*N*/ 6, /*O*/ 6, /*P*/ 6,
/*Q*/ 6, /*R*/ 6, /*S*/ 6, /*T*/ 6, /*U*/ 6, /*V*/ 6, /*W*/ 6, /*X*/ 6, /*Y*/ 6, /*Z*/ 6, /*[*/ 0, /*\\*/ 0, /*]*/ 0, /*^*/ 7, /*_*/ 0, /*`*/ 0,
/*a*/ 5, /*b*/ 5, /*c*/ 5, /*d*/ 5, /*e*/ 5, /*f*/ 5, /*g*/ 5, /*h*/ 5, /*i*/ 2, /*j*/ 6, /*k*/ 4, /*l*/ 2, /*m*/ 5, /*n*/ 5, /*o*/ 5, /*p*/ 5,
/*q*/ 5, /*r*/ 5, /*s*/ 5, /*t*/ 5, /*u*/ 5, /*v*/ 5, /*w*/ 5, /*x*/ 5, /*y*/ 5, /*z*/ 5, /*{*/ 0, /*|*/ 0, /*}*/ 0, /*~*/ 6,
/*q*/ 5, /*r*/ 5, /*s*/ 5, /*t*/ 5, /*u*/ 5, /*v*/ 5, /*w*/ 5, /*x*/ 5, /*y*/ 5, /*z*/ 5, /*~*/ 6,
};
const u16 small_font_offsets_outline[] = {
@@ -69,7 +68,7 @@ static const u8 small_font_kerning_plain[] = {
/*A*/ 6, /*B*/ 6, /*C*/ 6, /*D*/ 6, /*E*/ 6, /*F*/ 6, /*G*/ 6, /*H*/ 6, /*I*/ 4, /*J*/ 6, /*K*/ 6, /*L*/ 6, /*M*/ 7, /*N*/ 7, /*O*/ 6, /*P*/ 6,
/*Q*/ 6, /*R*/ 6, /*S*/ 6, /*T*/ 6, /*U*/ 6, /*V*/ 6, /*W*/ 7, /*X*/ 6, /*Y*/ 6, /*Z*/ 6, /*[*/ 0, /*\\*/ 0, /*]*/ 0, /*^*/ 7, /*_*/ 0, /*`*/ 0,
/*a*/ 6, /*b*/ 6, /*c*/ 6, /*d*/ 6, /*e*/ 6, /*f*/ 6, /*g*/ 6, /*h*/ 6, /*i*/ 3, /*j*/ 4, /*k*/ 6, /*l*/ 5, /*m*/ 7, /*n*/ 6, /*o*/ 6, /*p*/ 6,
/*q*/ 6, /*r*/ 6, /*s*/ 6, /*t*/ 6, /*u*/ 6, /*v*/ 6, /*w*/ 7, /*x*/ 6, /*y*/ 6, /*z*/ 6, /*{*/ 0, /*|*/ 0, /*}*/ 0, /*~*/ 7,
/*q*/ 6, /*r*/ 6, /*s*/ 6, /*t*/ 6, /*u*/ 6, /*v*/ 6, /*w*/ 7, /*x*/ 6, /*y*/ 6, /*z*/ 6, /*~*/ 7,
};
const u16 small_font_offsets_plain[] = {
@@ -88,7 +87,7 @@ static const u8 small_font_kerning_vanilla[] = {
/*A*/ 5, /*B*/ 5, /*C*/ 5, /*D*/ 5, /*E*/ 5, /*F*/ 5, /*G*/ 5, /*H*/ 5, /*I*/ 3, /*J*/ 5, /*K*/ 5, /*L*/ 5, /*M*/ 7, /*N*/ 7, /*O*/ 6, /*P*/ 5,
/*Q*/ 6, /*R*/ 5, /*S*/ 5, /*T*/ 5, /*U*/ 5, /*V*/ 5, /*W*/ 7, /*X*/ 6, /*Y*/ 5, /*Z*/ 5, /*[*/ 0, /*\\*/ 0, /*]*/ 0, /*^*/ 7, /*_*/ 0, /*`*/ 0,
/*a*/ 5, /*b*/ 4, /*c*/ 4, /*d*/ 4, /*e*/ 4, /*f*/ 5, /*g*/ 5, /*h*/ 4, /*i*/ 3, /*j*/ 4, /*k*/ 3, /*l*/ 2, /*m*/ 6, /*n*/ 4, /*o*/ 4, /*p*/ 4,
/*q*/ 5, /*r*/ 4, /*s*/ 4, /*t*/ 4, /*u*/ 4, /*v*/ 4, /*w*/ 7, /*x*/ 5, /*y*/ 4, /*z*/ 5, /*{*/ 0, /*|*/ 0, /*}*/ 0, /*~*/ 6,
/*q*/ 5, /*r*/ 4, /*s*/ 4, /*t*/ 4, /*u*/ 4, /*v*/ 4, /*w*/ 7, /*x*/ 5, /*y*/ 4, /*z*/ 5, /*~*/ 6,
};
const u16 small_font_offsets_vanilla[] = {
@@ -2375,8 +2374,8 @@ static const Vtx vertex_ia8_char[] = {
#else
{{{ 0, 0, 0}, 0, { 0, 256}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 8, 0, 0}, 0, { 0, 0}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 8, 16, 0}, 0, { 512, 0}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 0, 16, 0}, 0, { 512, 256}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 8, 16, 0}, 0, { 480, 0}, {0xff, 0xff, 0xff, 0xff}}},
{{{ 0, 16, 0}, 0, { 480, 256}, {0xff, 0xff, 0xff, 0xff}}},
#endif
};
@@ -2395,11 +2394,11 @@ const Gfx dl_ia_text_begin[] = {
// 0x020073E8 - 0x02007418
const Gfx dl_ia_text_tex_settings[] = {
gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 3, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 4, G_TX_NOLOD),
gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, (G_TX_WRAP | G_TX_MIRROR), 3, G_TX_NOLOD, (G_TX_WRAP | G_TX_MIRROR), 4, G_TX_NOLOD),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, ((16 * 8 + G_IM_SIZ_4b_INCR) >> G_IM_SIZ_4b_SHIFT) - 1, CALC_DXT(16, G_IM_SIZ_4b_BYTES)),
gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_4b, 1, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 3, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 4, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, (16 - 1) << G_TEXTURE_IMAGE_FRAC, (8 - 1) << G_TEXTURE_IMAGE_FRAC),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, ((((16 * 8) + G_IM_SIZ_4b_INCR) >> G_IM_SIZ_4b_SHIFT) - 1), CALC_DXT(16, G_IM_SIZ_4b_BYTES)),
gsDPSetTile(G_IM_FMT_IA, G_IM_SIZ_4b, 1, 0, G_TX_RENDERTILE, 0, (G_TX_WRAP | G_TX_MIRROR), 3, G_TX_NOLOD, (G_TX_WRAP | G_TX_MIRROR), 4, G_TX_NOLOD),
gsDPSetTileSize(0, 0, 0, ((16 - 1) << G_TEXTURE_IMAGE_FRAC), ((8 - 1) << G_TEXTURE_IMAGE_FRAC)),
gsSPVertex(vertex_ia8_char, 4, 0),
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
gsSPEndDisplayList(),
@@ -2670,7 +2669,7 @@ ALIGNED8 static const Texture texture_shadow_quarter_square[] = {
};
#endif
UNUSED ALIGNED8 const Texture texture_radial_light[] = {
UNUSED ALIGNED8 static const Texture texture_radial_light[] = {
#include "textures/segment2/light_quarter_circle.ia16.inc.c"
};
@@ -2969,8 +2968,7 @@ const Gfx dl_ia8_up_arrow_end[] = {
gsSPEndDisplayList(),
};
#include "segment2/controllers.c.in"
#include "segment2/rumble_pak.c.in"
// 0x02014958 - 0x02014960
// 0x02014970 - 0x020149A8
const Gfx dl_paintings_rippling_begin[] = {

View File

@@ -1,55 +0,0 @@
#ifdef ENABLE_STATUS_REPOLLING_GUI
ALIGNED8 const Texture texture_controller_port[] = {
#include "textures/segment2/controller_port.rgba16.inc.c"
};
ALIGNED8 const Texture texture_controller_unknown[] = {
#include "textures/segment2/controller_unknown.rgba16.inc.c"
};
ALIGNED8 const Texture texture_controller_n64_normal[] = {
#include "textures/segment2/controller_n64_normal.rgba16.inc.c"
};
ALIGNED8 const Texture texture_controller_n64_mouse[] = {
#include "textures/segment2/controller_n64_mouse.rgba16.inc.c"
};
ALIGNED8 const Texture texture_controller_n64_voice[] = {
#include "textures/segment2/controller_n64_voice.rgba16.inc.c"
};
ALIGNED8 const Texture texture_controller_n64_keyboard[] = {
#include "textures/segment2/controller_n64_keyboard.rgba16.inc.c"
};
ALIGNED8 const Texture texture_controller_gba[] = {
#include "textures/segment2/controller_gba.rgba16.inc.c"
};
ALIGNED8 const Texture texture_controller_gcn_normal[] = {
#include "textures/segment2/controller_gcn_normal.rgba16.inc.c"
};
ALIGNED8 const Texture texture_controller_gcn_receiver[] = {
#include "textures/segment2/controller_gcn_receiver.rgba16.inc.c"
};
ALIGNED8 const Texture texture_controller_gcn_wavebird[] = {
#include "textures/segment2/controller_gcn_wavebird.rgba16.inc.c"
};
ALIGNED8 const Texture texture_controller_gcn_wheel[] = {
#include "textures/segment2/controller_gcn_wheel.rgba16.inc.c"
};
ALIGNED8 const Texture texture_controller_gcn_keyboard[] = {
#include "textures/segment2/controller_gcn_keyboard.rgba16.inc.c"
};
ALIGNED8 const Texture texture_controller_gcn_dancepad[] = {
#include "textures/segment2/controller_gcn_dancepad.rgba16.inc.c"
};
#endif // ENABLE_STATUS_REPOLLING_GUI

View File

@@ -1,40 +0,0 @@
#ifdef ENABLE_RUMBLE
//! TODO: Move rumble pak graphic textures to src/menu/intro_geo.c once build order is fixed.
ALIGNED8 const Texture title_texture_rumble_pak_en[] = {
#include "textures/segment2/rumble_pak_en.rgba16.inc.c"
};
#if MULTILANG //! TODO: Use these after ASCII/multilang is merged.
#ifdef ENABLE_FRENCH
ALIGNED8 const Texture title_texture_rumble_pak_fr[] = {
#include "textures/segment2/rumble_pak_fr.rgba16.inc.c"
};
#endif // ENABLE_FRENCH
#ifdef ENABLE_GERMAN
ALIGNED8 const Texture title_texture_rumble_pak_de[] = {
#include "textures/segment2/rumble_pak_de.rgba16.inc.c"
};
#endif // ENABLE_GERMAN
#ifdef ENABLE_JAPANESE
ALIGNED8 const Texture title_texture_rumble_pak_jp[] = {
#include "textures/segment2/rumble_pak_jp.rgba16.inc.c"
};
#endif // ENABLE_JAPANESE
#if defined(ENABLE_SPANISH_SPAIN) || defined(ENABLE_SPANISH_LATIN_AMERICA)
ALIGNED8 const Texture title_texture_rumble_pak_es[] = {
#include "textures/segment2/rumble_pak_es.rgba16.inc.c"
};
#endif // (ENABLE_SPANISH_SPAIN || ENABLE_SPANISH_LATIN_AMERICA)
#endif // MULTILANG
ALIGNED8 const Texture title_texture_rumble_pak_controller[] = {
#include "textures/segment2/rumble_pak_controller.rgba16.inc.c"
};
#endif // ENABLE_RUMBLE

View File

@@ -121,6 +121,8 @@ const Texture *const game_over_texture_table[] = {
title_texture_game_over_0, title_texture_game_over_1, title_texture_game_over_2, title_texture_game_over_3,
};
UNUSED static const u64 title_screen_bg_unused_0 = 0;
#ifdef GODDARD_EASTER_EGG
const Gfx title_screen_bg_dl_face_easter_egg_begin[] = {
gsDPPipeSync(),
@@ -140,3 +142,26 @@ const Gfx title_screen_bg_dl_face_easter_egg_end[] = {
gsSPEndDisplayList(),
};
#endif
#if defined(VERSION_SH)
ALIGNED8 static const Texture title_texture_rumble_pak[] = {
#include "textures/title_screen_bg/title_screen_bg.06648.rgba16.inc.c"
};
const Gfx title_screen_bg_dl_rumble_pak[] = {
gsDPPipeSync(),
gsDPSetCycleType(G_CYC_COPY),
gsDPSetTexturePersp(G_TP_NONE),
gsDPSetTextureFilter(G_TF_POINT),
gsDPSetRenderMode(G_RM_NOOP, G_RM_NOOP2),
gsDPSetScissor(G_SC_NON_INTERLACE, 0, 0, 319, 239),
gsDPLoadTextureTile(title_texture_rumble_pak, G_IM_FMT_RGBA, G_IM_SIZ_16b, 80, 0, 0, 0, 79, 23, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 7, 5, G_TX_NOLOD, G_TX_NOLOD),
gsSPTextureRectangle(220 << 2, 200 << 2, 299 << 2, 223 << 2, G_TX_RENDERTILE, 0, 0, 4 << 10, 1 << 10),
gsDPPipeSync(),
gsDPSetCycleType(G_CYC_1CYCLE),
gsDPSetTexturePersp(G_TP_PERSP),
gsDPSetTextureFilter(G_TF_BILERP),
gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2),
gsSPEndDisplayList(),
};
#endif

View File

@@ -66,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,
@@ -181,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) \
@@ -386,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[] = {
@@ -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

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

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

@@ -7,7 +7,7 @@
/**
* Enables Goddard (the Mario head).
*/
#define KEEP_MARIO_HEAD
// #define KEEP_MARIO_HEAD
/**
* Enables the Goddard easter egg from Shindou (has no effect if KEEP_MARIO_HEAD is disabled).

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.

View File

@@ -17,7 +17,7 @@
/**
* Moving Coins flicker and disappear when they hit lava instead of being instantly deleted.
*/
// #define COIN_LAVA_FLICKER
#define COIN_LAVA_FLICKER
/**
* Allows for retries on collecting the remaining blue coins from a blue coin switch.
@@ -56,7 +56,7 @@
/**
* Causes leaf particles to occasionally fall from trees which contain Hoot.
*/
// #define HOOT_TREE_PARTICLES
#define HOOT_TREE_PARTICLES
/**************
* -- MR I --

View File

@@ -19,45 +19,23 @@
/**
* Enables Rumble Pak Support.
* Currently not recommended, as it may cause random crashes.
*/
#define ENABLE_RUMBLE
// #define ENABLE_RUMBLE (1 || VERSION_SH)
/**
* The maximum number of supported players/controllers. 1-4.
* This will save performance if the player has extra unused controllers plugged in.
* NOTE: Default is 1, maximum is 4.
* NOTE: If this is 1, the first controller with input after boot will become player 1. Otherwise, player numbers are automatically assigned via port order.
* NOTE: It is highly recommended to enable ENABLE_STATUS_REPOLLING_GUI if this is greater than 1.
* NOTE: Default is 2, maximum is 4.
* NOTE: This needs to be at least 2 for now for gamecube controller swap to work.
*/
#define MAX_NUM_PLAYERS 1
/**
* Enables a GUI that, while opem, allows plugging/unplugging controllers and changing the controller order.
* Triggered by unplugging any active controller.
*/
#define ENABLE_STATUS_REPOLLING_GUI
/**
* Allows the player to use the button combo defined in input.h to trigger status repolling at any time during gameplay.
*/
#define ENABLE_STATUS_REPOLLING_COMBO_IN_GAMEPLAY
/**
* Highlights the currently pressed buttons on controllers in the status repolling GUI.
*/
#define CONTROLLERS_INPUT_DISPLAY
#define MAX_NUM_PLAYERS 2
/**
* Informs supported emulators to default to GameCube controller inputs.
*/
// #define EMU_DEFAULT_TO_GCN
/**
* RCVI hack. Increases performance on emulator, and does nothing on console.
* Might break on some emulators. Use at your own risk, and don't use it unless you actually need the extra performance.
*/
// #define RCVI_HACK
/**
* Screen Size Defines.
*/
@@ -70,3 +48,9 @@
*/
#define BORDER_HEIGHT_CONSOLE 0
#define BORDER_HEIGHT_EMULATOR 0
/**
* RCVI hack. Increases performance on emulator, and does nothing on console.
* Might break on some emulators. Use at your own risk, and don't use it unless you actually need the extra performance.
*/
// #define RCVI_HACK

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