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

1.1.0 #85

Closed
wants to merge 14 commits into from
2 changes: 1 addition & 1 deletion .github/workflows/multi-region-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Multi-Region Tests

on:
pull_request:
branches: [ master ]
branches: [ main ]

jobs:
build:
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ include(cmake/relmapper.cmake)
include(cmake/fonts.cmake)

project(TPGZ
VERSION 1.0.0
VERSION 1.1.0
DESCRIPTION "Twilight Princess speedrunning practice and testing tool"
HOMEPAGE_URL "tpgz.io"
LANGUAGES C CXX ASM)
Expand Down
22 changes: 22 additions & 0 deletions external/libtp_c/include/SSystem/SComponent/c_phase.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#ifndef C_PHASE_H
#define C_PHASE_H

#include "../../dolphin/types.h"

typedef int (*cPhs__Handler)(void*);

enum cPhs__Step {
/* 0x0 */ cPhs_INIT_e,
/* 0x1 */ cPhs_LOADING_e,
/* 0x2 */ cPhs_NEXT_e,
/* 0x3 */ cPhs_UNK3_e, // appears to be an alternate error code, unsure how it differs
/* 0x4 */ cPhs_COMPLEATE_e,
/* 0x5 */ cPhs_ERROR_e,
};

typedef struct request_of_phase_process_class {
cPhs__Handler* mpHandlerTable;
int id;
} request_of_phase_process_class;

#endif
3 changes: 2 additions & 1 deletion external/libtp_c/include/d/meter/d_meter2_info.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ class dMeter2Info_c {
u8& getDirectUseItem() { return mDirectUseItem; }
dMeterMap_c* getMeterMapClass() { return mMeterMap; }
void offUseButton(int pButton) { mUseButton &= ~(u16)pButton; }
void offMenuInForce(int flag) { mMenuInForce &= ~(1 << flag); }

/* 0x00 */ void* vtable;
/* 0x04 */ u8 unk4[4];
Expand Down Expand Up @@ -56,7 +57,7 @@ class dMeter2Info_c {
/* 0x90 */ u32 mTempBits;
/* 0x94 */ s16 mMsgKeyWaitTimer;
/* 0x96 */ u16 mHorseLifeCount;
/* 0x98 */ u16 unk152;
/* 0x98 */ u16 mMenuInForce;
/* 0x9A */ u16 mHotSpringTimer[4];
/* 0xA2 */ u16 mSub2DStatus;
/* 0xA4 */ u16 mFloatingFlowID;
Expand Down
122 changes: 122 additions & 0 deletions external/libtp_c/include/d/s/d_s_logo.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
#ifndef D_D_S_LOGO_H
#define D_D_S_LOGO_H

#include "../../f_op/f_op_scene.h"

class mDoDvdThd_mountXArchive_c;
class mDoDvdThd_toMainRam_c;
class dDlst_2D_c;
class ResTIMG;
class JKRExpHeap;
class JKRHeap;

class dScnLogo_c : public scene_class {
public:
enum {
/* 0x0 */ EXEC_WARNING_IN,
/* 0x1 */ EXEC_WARNING_DISP,
/* 0x2 */ EXEC_WARNING_OUT,
/* 0x3 */ EXEC_NINTENDO_IN,
/* 0x4 */ EXEC_NINTENDO_OUT,
/* 0x5 */ EXEC_DOLBY_IN,
/* 0x6 */ EXEC_DOLBY_OUT,
/* 0x7 */ EXEC_DOLBY_OUT2,
/* 0x8 */ EXEC_PROG_IN,
/* 0x9 */ EXEC_PROG_SEL,
/* 0xA */ EXEC_PROG_OUT,
/* 0xB */ EXEC_PROG_SET,
/* 0xC */ EXEC_PROG_SET2,
/* 0xD */ EXEC_PROG_CHANGE,
/* 0xE */ EXEC_DVD_WAIT,
/* 0xF */ EXEC_SCENE_CHANGE,
};

dScnLogo_c() {}
/* 802560B4 */ void preLoad_dyl_create();
/* 802560F8 */ void preLoad_dyl_remove();
/* 8025611C */ bool preLoad_dyl();
/* 80256198 */ void checkProgSelect();
/* 80256210 */ int draw();
/* 80256264 */ void progInDraw();
/* 8025631C */ void progSelDraw();
/* 802568E0 */ void progOutDraw();
/* 80256A3C */ void progSetDraw();
/* 80256AC0 */ void progSet2Draw();
/* 80256B3C */ void progChangeDraw();
/* 80256BF4 */ void warningInDraw();
/* 80256C68 */ void warningDispDraw();
/* 80256DC4 */ void warningOutDraw();
/* 80256E48 */ void nintendoInDraw();
/* 80256ECC */ void nintendoOutDraw();
/* 80256F50 */ void dolbyInDraw();
/* 80256FD4 */ void dolbyOutDraw();
/* 80257058 */ void dolbyOutDraw2();
/* 80257070 */ void dvdWaitDraw();
/* 80257284 */ void nextSceneChange();
/* 802572B8 */ ~dScnLogo_c();
/* 80257AE0 */ int create();
/* 80257C64 */ void logoInitGC();
/* 80257FEC */ void dvdDataLoad();
/* 802584D8 */ void setProgressiveMode(u8);
/* 802584FC */ u8 getProgressiveMode();
/* 80258520 */ bool isProgressiveMode();
/* 8025854C */ void setRenderMode();

public:
/* 0x1C4 */ request_of_phase_process_class field_0x1c4;
/* 0x1CC */ mDoDvdThd_toMainRam_c* sceneCommand;
/* 0x1D0 */ JKRExpHeap* field_0x1d0;
/* 0x1D4 */ JKRExpHeap* field_0x1d4;
/* 0x1D8 */ JKRHeap* mpHeap;
/* 0x1DC */ dDlst_2D_c* mWarning;
/* 0x1E0 */ dDlst_2D_c* mWarningStart;
/* 0x1E4 */ dDlst_2D_c* mNintendoLogo;
/* 0x1E8 */ dDlst_2D_c* mDolbyLogo;
/* 0x1EC */ dDlst_2D_c* mProgressiveChoice;
/* 0x1F0 */ dDlst_2D_c* mProgressiveYes;
/* 0x1F4 */ dDlst_2D_c* mProgressiveNo;
/* 0x1F8 */ dDlst_2D_c* mProgressiveSel;
/* 0x1FC */ request_of_phase_process_class* m_preLoad_dylPhase;
/* 0x200 */ ResTIMG* mProgressivePro;
/* 0x204 */ ResTIMG* mProgressiveInter;
/* 0x208 */ u8 mExecCommand;
/* 0x209 */ u8 field_0x209;
/* 0x20A */ u8 field_0x20a;
/* 0x20B */ u8 field_0x20b;
/* 0x20C */ u16 mTimer;
/* 0x20E */ u16 field_0x20e;
/* 0x210 */ u16 field_0x210;
/* 0x212 */ u16 field_0x212;
/* 0x214 */ u16 field_0x214;
/* 0x218 */ u32 field_0x218;
/* 0x21C */ void* buffer;
/* 0x220 */ mDoDvdThd_mountXArchive_c* mpField0Command;
/* 0x224 */ mDoDvdThd_mountXArchive_c* mpAlAnmCommand;
/* 0x228 */ u8 field_0x228[4];
/* 0x22C */ mDoDvdThd_mountXArchive_c* mpFmapResCommand;
/* 0x230 */ mDoDvdThd_mountXArchive_c* mpDmapResCommand;
/* 0x234 */ mDoDvdThd_mountXArchive_c* mpCollectResCommand;
/* 0x238 */ u8 field_0x238[4];
/* 0x23C */ mDoDvdThd_mountXArchive_c* mpItemIconCommand;
/* 0x240 */ mDoDvdThd_mountXArchive_c* mpRingResCommand;
/* 0x244 */ u8 field_0x244[4];
/* 0x248 */ mDoDvdThd_mountXArchive_c* mpPlayerNameCommand;
/* 0x24C */ mDoDvdThd_mountXArchive_c* mpItemInfResCommand;
/* 0x250 */ mDoDvdThd_mountXArchive_c* mpButtonCommand;
/* 0x254 */ u8 field_0x254[4];
/* 0x258 */ mDoDvdThd_mountXArchive_c* mpCardIconCommand;
/* 0x25C */ mDoDvdThd_mountXArchive_c* mpBmgResCommand;
/* 0x260 */ mDoDvdThd_mountXArchive_c* mpMsgComCommand;
/* 0x264 */ mDoDvdThd_mountXArchive_c* mpMsgResCommand[7];
/* 0x280 */ u8 field_0x280[0x10];
/* 0x290 */ mDoDvdThd_mountXArchive_c* mpFontResCommand;
/* 0x294 */ mDoDvdThd_mountXArchive_c* mpMain2DCommand;
/* 0x298 */ mDoDvdThd_mountXArchive_c* mpRubyResCommand;
/* 0x29C */ mDoDvdThd_toMainRam_c* mParticleCommand;
/* 0x2A0 */ mDoDvdThd_toMainRam_c* mItemTableCommand;
/* 0x2A4 */ mDoDvdThd_toMainRam_c* mEnemyItemCommand;
};

LIBTP_DEFINE_FUNC(warningInDraw__10dScnLogo_cFv, dScnLogo_c__warningInDraw_void_, void, dScnLogo_c__warningInDraw, (dScnLogo_c*));

#endif
22 changes: 22 additions & 0 deletions external/libtp_c/include/f_op/f_op_scene.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#ifndef F_F_OP_SCENE_H_
#define F_F_OP_SCENE_H_

#include "../f_op/f_op_scene_tag.h"

struct request_of_phase_process_class;
class mDoDvdThd_command_c;

typedef struct scene_process_profile_definition {
/* 0x00 */ node_process_profile_definition mBase;
/* 0x20 */ process_method_class* mpMtd; // Subclass methods
/* 0x24 */ u32 field_0x24; // padding?
} scene_process_profile_definition;

class scene_class {
public:
/* 0x000 */ process_node_class mBase;
/* 0x1AC */ process_method_class * mpMtd;
/* 0x1B0 */ scene_tag_class mScnTg;
};

#endif
12 changes: 12 additions & 0 deletions external/libtp_c/include/f_op/f_op_scene_tag.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#ifndef F_OP_SCENE_TAG_H
#define F_OP_SCENE_TAG_H

#include "../f_pc/f_pc_node.h"
#include "../SSystem/SComponent/c_phase.h"

class scene_tag_class {
public:
u8 field_0x00[0x14];
};

#endif
19 changes: 19 additions & 0 deletions external/libtp_c/include/f_pc/f_pc_node.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#ifndef F_PC_NODE_H_
#define F_PC_NODE_H_

#include "../f_pc/f_pc_base.h"

typedef struct process_node_class {
/* 0x00 */ base_process_class mBase;
/* 0xB8 */ nodedraw_method_class* mpNodeMtd;
/* 0xBC */ layer_class mLayer;
/* 0xE8 */ node_list_class mLayerNodeLists[16];
/* 0x1A8 */ s8 mUnk0;
} process_node_class;

typedef struct node_process_profile_definition {
/* 0x00 */ process_profile_definition mBase;
/* 0x1C */ process_method_class* sub_method; // Subclass methods
} node_process_profile_definition;

#endif
3 changes: 3 additions & 0 deletions modules/boot/include/menus/menu.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ enum MenuIndex {
MN_CREDITS_INDEX,
MN_COMBO_INDEX,

// Tools menu's sub menus
MN_CHECKERS_INDEX,

// This entry is used only to get a count of the number of valid entries.
MN_COUNT
};
Expand Down
9 changes: 1 addition & 8 deletions modules/boot/include/tools.h
Original file line number Diff line number Diff line change
@@ -1,22 +1,15 @@
#pragma once

enum ToolsIndex {
CHECKERS_INDEX,
RELOAD_AREA_INDEX,
FRAME_ADVANCE_INDEX,
FAST_BONK_INDEX,
FAST_MOVEMENT_INDEX,
GORGE_INDEX,
#ifdef WII_PLATFORM
BIT_INDEX,
#endif
COROTD_INDEX,
UMD_INDEX,
INPUT_VIEWER_INDEX,
LINK_DEBUG_INDEX,
HEAP_DEBUG_INDEX,
SAND_INDEX,
ROLL_INDEX,
MASH_CHECKER_INDEX,
TELEPORT_INDEX,
TURBO_MODE_INDEX,
TIMER_INDEX,
Expand Down
24 changes: 12 additions & 12 deletions modules/boot/src/menus/menu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@

// This array must correspond to the order of the MenuIndex enum.
const char* g_menuPaths[MN_COUNT] = {
"main", "cheats", "flags",
"inventory", "memory", "practice",
"scene", "settings", "tools",
"warp", "general_flags", "dungeon_flags",
"portal_flags", "flag_records", "flag_log",
"item_wheel", "pause", "amounts",
"watches", "memory_editor", "memfiles",
"any_saves", "any_bite_saves", "hundo_saves",
"ad_saves", "nosq_saves", "glitchless_saves",
"actor_spawn", "actor_list", "collision_view",
"projection_view", "trigger_view", "pos_settings",
"credits", "combo"
"main", "cheats", "flags",
"inventory", "memory", "practice",
"scene", "settings", "tools",
"warp", "general_flags", "dungeon_flags",
"portal_flags", "flag_records", "flag_log",
"item_wheel", "pause", "amounts",
"watches", "memory_editor", "memfiles",
"any_saves", "any_bite_saves", "hundo_saves",
"ad_saves", "nosq_saves", "glitchless_saves",
"actor_spawn", "actor_list", "collision_view",
"projection_view", "trigger_view", "pos_settings",
"credits", "combo", "checkers"
};

KEEP_FUNC Menu::Menu(Cursor& cursor) : cursor(cursor) {}
Loading