Added IMMEDIATELOAD debug flag to skip all intro stuff

This commit is contained in:
MysterD 2020-07-30 20:42:39 -07:00
parent c80d11a87c
commit 2d2dff6647
6 changed files with 32 additions and 2 deletions

View file

@ -34,6 +34,8 @@ OSX_BUILD ?= 0
TARGET_ARCH ?= native TARGET_ARCH ?= native
TARGET_BITS ?= 0 TARGET_BITS ?= 0
# Disable immediate load by default
IMMEDIATELOAD ?= 0
# Disable better camera by default # Disable better camera by default
BETTERCAMERA ?= 0 BETTERCAMERA ?= 0
# Disable no drawing distance by default # Disable no drawing distance by default
@ -540,6 +542,12 @@ endif
# Check for enhancement options # Check for enhancement options
# Check for immediate load option
ifeq ($(IMMEDIATELOAD),1)
CC_CHECK += -DIMMEDIATELOAD
CFLAGS += -DIMMEDIATELOAD
endif
# Check for Puppycam option # Check for Puppycam option
ifeq ($(BETTERCAMERA),1) ifeq ($(BETTERCAMERA),1)
CC_CHECK += -DBETTERCAMERA CC_CHECK += -DBETTERCAMERA

View file

@ -1 +1 @@
make BETTERCAMERA=1 NODRAWINGDISTANCE=1 DEBUG=1 && winpty cgdb ./build/us_pc/sm64.us.f3dex2e.exe -ex 'run' -ex 'quit' make BETTERCAMERA=1 NODRAWINGDISTANCE=1 DEBUG=1 IMMEDIATELOAD=1 && winpty cgdb ./build/us_pc/sm64.us.f3dex2e.exe -ex 'run' -ex 'quit'

View file

@ -1 +1 @@
make BETTERCAMERA=1 NODRAWINGDISTANCE=1 DEBUG=1 && winpty cgdb ./build/us_pc/sm64.us.f3dex2e.exe -ex 'break render_pause_courses_and_castle' make BETTERCAMERA=1 NODRAWINGDISTANCE=1 DEBUG=1 IMMEDIATELOAD=1 && winpty cgdb ./build/us_pc/sm64.us.f3dex2e.exe -ex 'break render_pause_courses_and_castle'

View file

@ -3,7 +3,11 @@
#include "segment_symbols.h" #include "segment_symbols.h"
#include "level_commands.h" #include "level_commands.h"
#ifdef IMMEDIATELOAD
#include "levels/menu/header.h"
#else
#include "levels/intro/header.h" #include "levels/intro/header.h"
#endif
#include "make_const_nonconst.h" #include "make_const_nonconst.h"
@ -12,6 +16,11 @@ const LevelScript level_script_entry[] = {
SLEEP(/*frames*/ 2), SLEEP(/*frames*/ 2),
BLACKOUT(/*active*/ FALSE), BLACKOUT(/*active*/ FALSE),
SET_REG(/*value*/ 0), SET_REG(/*value*/ 0),
#ifdef IMMEDIATELOAD
EXECUTE(/*seg*/ 0x14, /*script*/ _introSegmentRomStart, /*scriptEnd*/ _introSegmentRomEnd, /*entry*/ level_main_menu_entry_1),
JUMP(/*target*/ level_main_menu_entry_1),
#else
EXECUTE(/*seg*/ 0x14, /*script*/ _introSegmentRomStart, /*scriptEnd*/ _introSegmentRomEnd, /*entry*/ level_intro_entry_1), EXECUTE(/*seg*/ 0x14, /*script*/ _introSegmentRomStart, /*scriptEnd*/ _introSegmentRomEnd, /*entry*/ level_intro_entry_1),
JUMP(/*target*/ level_script_entry), JUMP(/*target*/ level_script_entry),
#endif
}; };

View file

@ -44,13 +44,17 @@ const LevelScript level_main_menu_entry_1[] = {
FREE_LEVEL_POOL(), FREE_LEVEL_POOL(),
LOAD_AREA(/*area*/ 1), LOAD_AREA(/*area*/ 1),
SET_MENU_MUSIC(/*seq*/ 0x0021), SET_MENU_MUSIC(/*seq*/ 0x0021),
#ifndef IMMEDIATELOAD
TRANSITION(/*transType*/ WARP_TRANSITION_FADE_FROM_COLOR, /*time*/ 16, /*color*/ 0xFF, 0xFF, 0xFF), TRANSITION(/*transType*/ WARP_TRANSITION_FADE_FROM_COLOR, /*time*/ 16, /*color*/ 0xFF, 0xFF, 0xFF),
#endif
CALL(/*arg*/ 0, /*func*/ lvl_init_menu_values_and_cursor_pos), CALL(/*arg*/ 0, /*func*/ lvl_init_menu_values_and_cursor_pos),
CALL_LOOP(/*arg*/ 0, /*func*/ lvl_update_obj_and_load_file_selected), CALL_LOOP(/*arg*/ 0, /*func*/ lvl_update_obj_and_load_file_selected),
GET_OR_SET(/*op*/ OP_SET, /*var*/ VAR_CURR_SAVE_FILE_NUM), GET_OR_SET(/*op*/ OP_SET, /*var*/ VAR_CURR_SAVE_FILE_NUM),
STOP_MUSIC(/*fadeOutTime*/ 0x00BE), STOP_MUSIC(/*fadeOutTime*/ 0x00BE),
#ifndef IMMEDIATELOAD
TRANSITION(/*transType*/ WARP_TRANSITION_FADE_INTO_COLOR, /*time*/ 16, /*color*/ 0xFF, 0xFF, 0xFF), TRANSITION(/*transType*/ WARP_TRANSITION_FADE_INTO_COLOR, /*time*/ 16, /*color*/ 0xFF, 0xFF, 0xFF),
SLEEP(/*frames*/ 16), SLEEP(/*frames*/ 16),
#endif
CLEAR_LEVEL(), CLEAR_LEVEL(),
SLEEP_BEFORE_EXIT(/*frames*/ 1), SLEEP_BEFORE_EXIT(/*frames*/ 1),
SET_REG(/*value*/ LEVEL_CASTLE_GROUNDS), SET_REG(/*value*/ LEVEL_CASTLE_GROUNDS),

View file

@ -1115,9 +1115,13 @@ void check_sound_mode_menu_clicked_buttons(struct Object *soundModeButton) {
* retuning sSelectedFileNum to a save value defined in fileNum. * retuning sSelectedFileNum to a save value defined in fileNum.
*/ */
void load_main_menu_save_file(struct Object *fileButton, s32 fileNum) { void load_main_menu_save_file(struct Object *fileButton, s32 fileNum) {
#ifdef IMMEDIATELOAD
sSelectedFileNum = fileNum;
#else
if (fileButton->oMenuButtonState == MENU_BUTTON_STATE_FULLSCREEN) { if (fileButton->oMenuButtonState == MENU_BUTTON_STATE_FULLSCREEN) {
sSelectedFileNum = fileNum; sSelectedFileNum = fileNum;
} }
#endif
} }
/** /**
@ -1593,6 +1597,11 @@ void handle_cursor_button_input(void) {
sClickPos[1] = sCursorPos[1]; sClickPos[1] = sCursorPos[1];
sCursorClickingTimer = 1; sCursorClickingTimer = 1;
} }
#ifdef IMMEDIATELOAD
sClickPos[0] = sCursorPos[0];
sClickPos[1] = sCursorPos[1];
sCursorClickingTimer = 1;
#endif
} }
} }