Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Debug Boot (DebugOpeningState) #136

Open
wants to merge 8 commits into
base: develop/2.1.0
Choose a base branch
from

Conversation

Trueffeloot
Copy link

This PR adds my Debug Boot which I previously shared on discord: https://discord.com/channels/879505781916053544/996101154238894110/1243562597006053436

I had to change a lot of stuff in the macros in order to get this working. It uses the map select macro together with the map select because the debug boot and the map select work together in a few ways. One should not be without the other based on this code.
I couldn't find any bugs but I didn't test the debug boot that much in the end if I'm being honest. If bugs appear, reach out to me on discord

Copy link
Collaborator

@Yanis002 Yanis002 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

imo this entire thing should be named "Boot Menu" instead of having inconsistent names (currently there's "boot menu", "debug boot" and "debug opening")

Comment on lines 189 to +200
CFLAGS += -DPACKAGE_VERSION='$(PACKAGE_VERSION)' -DCOMPRESS_$(COMPRESSION_TYPE)=1
CPPFLAGS += -DPACKAGE_VERSION='$(PACKAGE_VERSION)' -DCOMPRESS_$(COMPRESSION_TYPE)=1
CFLAGS_IDO += -DPACKAGE_VERSION='$(PACKAGE_VERSION)' -DCOMPRESS_$(COMPRESSION_TYPE)=1
CFLAGS += -DPACKAGE_NAME='$(PACKAGE_NAME)' -DCOMPRESS_$(COMPRESSION_TYPE)=1
CPPFLAGS += -DPACKAGE_NAME='$(PACKAGE_NAME)' -DCOMPRESS_$(COMPRESSION_TYPE)=1
CFLAGS_IDO += -DPACKAGE_NAME='$(PACKAGE_NAME)' -DCOMPRESS_$(COMPRESSION_TYPE)=1
CFLAGS += -DPACKAGE_COMMIT_AUTHOR='$(PACKAGE_COMMIT_AUTHOR)' -DCOMPRESS_$(COMPRESSION_TYPE)=1
CPPFLAGS += -DPACKAGE_COMMIT_AUTHOR='$(PACKAGE_COMMIT_AUTHOR)' -DCOMPRESS_$(COMPRESSION_TYPE)=1
CFLAGS_IDO += -DPACKAGE_COMMIT_AUTHOR='$(PACKAGE_COMMIT_AUTHOR)' -DCOMPRESS_$(COMPRESSION_TYPE)=1
CFLAGS += -DPACKAGE_AUTHOR='$(PACKAGE_AUTHOR)' -DCOMPRESS_$(COMPRESSION_TYPE)=1
CPPFLAGS += -DPACKAGE_AUTHOR='$(PACKAGE_AUTHOR)' -DCOMPRESS_$(COMPRESSION_TYPE)=1
CFLAGS_IDO += -DPACKAGE_AUTHOR='$(PACKAGE_AUTHOR)' -DCOMPRESS_$(COMPRESSION_TYPE)=1
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is confusing me a lot, why not just do -DPACKAGE_VERSION='$(PACKAGE_VERSION)' -DPACKAGE_NAME='$(PACKAGE_NAME)' -DPACKAGE_COMMIT_AUTHOR='$(PACKAGE_COMMIT_AUTHOR)' -DPACKAGE_AUTHOR='$(PACKAGE_AUTHOR)' -DCOMPRESS_$(COMPRESSION_TYPE)=1?

@@ -88,7 +88,7 @@
#endif

// Enable the map select feature if booting to map select or using map select for file 1
#if (BOOT_TO_MAP_SELECT || MAP_SELECT_ON_FILE_1) && !ENABLE_MAP_SELECT
#if (BOOT_TO_DEBUG_OPENING || MAP_SELECT_ON_FILE_1) && !ENABLE_MAP_SELECT
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

with this change if you set BOOT_TO_MAP_SELECT to true it won't enable the map select automatically anymore

@@ -16,3 +16,6 @@
/* 0x03 */ DEFINE_GAMESTATE_INTERNAL(Play, GAMESTATE_PLAY)
/* 0x04 */ DEFINE_GAMESTATE(TitleSetup, GAMESTATE_TITLE_SETUP, opening)
/* 0x05 */ DEFINE_GAMESTATE(FileSelect, GAMESTATE_FILE_SELECT, file_choose)
#if IS_MAP_SELECT_ENABLED
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

did you meant to use IS_DEBUG_BOOT_ENABLED?

extern const char gBuildMakeOption[];
extern const char gBuildGitVersion[];
extern const char gBuildTeam[];
#if IS_MAP_SELECT_ENABLED
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IS_DEBUG_BOOT_ENABLED? also some of these might be used on the rotating n64 logo screen (like the build author and the date)

@@ -334,6 +334,17 @@ typedef struct {
/* 0x01E2 */ char unk_1E2[0x06];
} ConsoleLogoState; // size = 0x1E8

#if IS_MAP_SELECT_ENABLED
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IS_DEBUG_BOOT_ENABLED? also it's probably worth to move the structs/functions declarations to a dedicated header

@@ -56,8 +56,7 @@ void MapSelect_Init(GameState* thisx) {
// turning the sfx volume back on
SEQCMD_SET_SEQPLAYER_VOLUME(SEQ_PLAYER_BGM_MAIN, 0, 10);

#if BOOT_TO_MAP_SELECT
gSaveContext.fileNum = 0xFF;
#if BOOT_TO_DEBUG_OPENING
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what if I wanna use boot to map select instead of the boot menu? I'm a bit confused by this

if (ENABLE_F3DEX3) {
GfxPrint_SetColor(printer, gRainbow.color.r, gRainbow.color.g, gRainbow.color.b, 255);
GfxPrint_SetPos(printer, WIDE_MULT(7, WIDE_GET_16_9), 25);
GfxPrint_Printf(printer, "Powered by F3DEX3!");
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you should add the rainbow "powered by f3dex3" print to the boot menu

if (this->exit) {
#if ENABLE_HACKER_DEBUG
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not using IS_DEBUG here?

if (this->exit) {
#if ENABLE_HACKER_DEBUG
#if BOOT_TO_SCENE
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a bit confused about why this is needed, I assume it's supposed to replace the stuff you removed from TitleSetup_SetupTitleScreen? in this case why not booting to the boot menu for every debug cases and determine if it should show the menu or directly jump to the execution process based on which setting you're using?


GfxPrint_SetColor(printer, 220, 0, 17, 255);
GfxPrint_SetPos(printer, 12, 1);
GfxPrint_Printf(printer, "Zelda Debug Boot");
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this should be named "HackerOoT Boot Menu"

@Yanis002 Yanis002 added waiting for author Waiting for the author to answer questions, do changes, ... 2.1.0 labels Jun 22, 2024
@Yanis002
Copy link
Collaborator

oh also something I'd like to have is going back to the first page if you press "R" on the last one and vice versa

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2.1.0 waiting for author Waiting for the author to answer questions, do changes, ...
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants