Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
e12f42b
RPSysSystem::softResetCallback 100%, beginning RPSysHomeMenuMgr and R…
Aug 27, 2026
82f311d
Fixed build.yml
Aug 27, 2026
30cbf73
fixed for real
Aug 27, 2026
2cfc671
softResetCallBack 100%, HomeMenuMgr WIP
Aug 27, 2026
0dfecfd
More work on RPSysSystem, reverting build.yml
Aug 28, 2026
f94f347
Implementing requested changes
Aug 28, 2026
57290a6
updating
Aug 29, 2026
248352d
updating again
Aug 29, 2026
8aeeff4
Merge branch 'master' of https://github.com/doldecomp/ogws
Aug 29, 2026
6a892f8
fix symbols
Aug 29, 2026
733d2fc
Merge branch 'master' of https://github.com/doldecomp/ogws
Aug 29, 2026
5ff9ac8
Merge branch 'master' of https://github.com/doldecomp/ogws
Aug 30, 2026
44d2c43
Creating separate branch for pull rq
Sep 3, 2026
aa29a64
Hot fix (isOpen was deleted)
Sep 3, 2026
14f0f37
Fixed bug that was introduced like a week ago that was causing checks…
Sep 3, 2026
775d8e8
Hotfix: LoadResource() and beginDrawScreen() are 100% matched
Sep 3, 2026
0d67c24
implementing feedback
Sep 4, 2026
4f6c907
Merge https://github.com/doldecomp/ogws into home-menu
Sep 4, 2026
6597d63
headers defined: hotfix to RPSysAppMiiManager (not push-ready)
Sep 5, 2026
87f1dba
Merge branch 'doldecomp:master' into home-menu
Tanline666 Sep 5, 2026
cfc5c74
Rewrite RPMii constructor, shell for VI (too many esoteric register o…
Sep 5, 2026
356967f
Merge branch 'home-menu' of https://github.com/Tanline666/ogws into h…
Sep 5, 2026
d1bfd42
Fixing header
Sep 5, 2026
868db77
Delete documentation
Sep 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions config/RSPE01_01/symbols.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7194,7 +7194,7 @@ __ct__13RPSysSaveDataFv = .text:0x8018CB90; // type:function size:0xDC
fn_8018CC6C = .text:0x8018CC6C; // type:function size:0x68
fn_8018CCD4 = .text:0x8018CCD4; // type:function size:0x254
fn_8018CF28 = .text:0x8018CF28; // type:function size:0xF4
fn_8018D01C = .text:0x8018D01C; // type:function size:0x18
draw__13RPSysPauseMgrFv = .text:0x8018D01C; // type:function size:0x18
fn_8018D034 = .text:0x8018D034; // type:function size:0x1EC
fn_8018D220 = .text:0x8018D220; // type:function size:0x1F8
fn_8018D418 = .text:0x8018D418; // type:function size:0x8
Expand Down Expand Up @@ -7635,7 +7635,7 @@ fn_801A0C20 = .text:0x801A0C20; // type:function size:0xC0
fn_801A0CE0 = .text:0x801A0CE0; // type:function size:0x150
fn_801A0E30 = .text:0x801A0E30; // type:function size:0x300
fn_801A1130 = .text:0x801A1130; // type:function size:0x53C
fn_801A166C = .text:0x801A166C; // type:function size:0x50
draw__14RPSysPauseMenuFv = .text:0x801A166C; // type:function size:0x50
fn_801A16BC = .text:0x801A16BC; // type:function size:0x3A0
fn_801A1A5C = .text:0x801A1A5C; // type:function size:0x350
fn_801A1DAC = .text:0x801A1DAC; // type:function size:0x234
Expand Down
2 changes: 1 addition & 1 deletion configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -1205,7 +1205,7 @@ def MatchingFor(*versions):
Object(Matching, "Pack/RPKernel/RPSysLytWindow.cpp"),
Object(Matching, "Pack/RPKernel/RPSysKokeshiCtrlDataMgr.cpp"),
Object(Matching, "Pack/RPKernel/RPSysKokeshiCtrlMgr.cpp"),
Object(NonMatching, "Pack/RPKernel/RPSysAppMiiManager.cpp"),
Object(Matching, "Pack/RPKernel/RPSysAppMiiManager.cpp"),
Object(Matching, "Pack/RPKernel/RPSysPairingMgr.cpp"),
Object(NonMatching, "Pack/RPKernel/RPSysControllerMgr.cpp"),
Object(NonMatching, "Pack/RPKernel/RPSysNWC24Manager.cpp"),
Expand Down
1 change: 1 addition & 0 deletions include/Pack/RPKernel.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
#include <Pack/RPKernel/RPSysNWC24Manager.h>
#include <Pack/RPKernel/RPSysOfficialDB.h>
#include <Pack/RPKernel/RPSysPairingMgr.h>
#include <Pack/RPKernel/RPSysPauseMenu.h>
#include <Pack/RPKernel/RPSysParticleManager.h>
#include <Pack/RPKernel/RPSysStringUtility.h>
#include <Pack/RPKernel/RPSysSystem.h>
Expand Down
2 changes: 1 addition & 1 deletion include/Pack/RPKernel/RPSysAppMiiManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class RPSysAppMiiManager {
/**
* @brief Destructor
*/
virtual ~RPSysAppMiiManager() {} // at 0x8
virtual ~RPSysAppMiiManager(); // at 0x8

/**
* @brief Loads the Mii data resources
Expand Down
60 changes: 60 additions & 0 deletions include/Pack/RPKernel/RPSysPauseMenu.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
#ifndef RP_KERNEL_PAUSE_MENU_H
#define RP_KERNEL_PAUSE_MENU_H

Comment thread
Tanline666 marked this conversation as resolved.
#include <nw4r/lyt.h>
#include <Pack/types_pack.h>

//! @addtogroup rp_kernel
//! @{

// Forward declarations
class RPSysLayout;
class RPSysLytBounding;
class RPSysLytAnmObj;
class RPSysLytTextBox;

/**
* @brief Library that handles pause menu layout.
*/

class RPSysPauseMenu {
virtual ~RPSysPauseMenu();

public:
void draw();

private:
RPSysLayout* mLayout; // at 0x4
RPSysLytAnmObj* mAnmObj_0x04;
RPSysLytAnmObj* mAnmObj_0x08;
void* mUNK_0x10;
nw4r::lyt::Pane* mPane_0x14;
nw4r::lyt::Pane* mPane_0x18;
bool mUNK_0x1C;
bool mUNK_0x1D;
u8 mPAD_0x1E[2];
nw4r::lyt::Pane* mPane_0x20;
RPSysLytBounding* mBounding; // at 0x24
RPSysLytTextBox* mTextBox; // at 0x28
bool mUNK_0x2C;
bool mUNK_0x2D;
u8 mPAD_0x2E[10];
bool mUNK_0x38;
bool mUNK_0x39;
u8 mPAD_0x3A[26];
bool mUNK_0x54;
bool mUNK_0x55;
u8 mPAD_0x56[26];
void* mUtlCursor; //! At 0x70. RPUtlLytFrameCursor is not defined yet.
u8 mPAD_0x74[4];
bool mUNK_0x78;
u8 mPAD_0x79[4];
bool mUNK_0x7D;
bool mUNK_0x7E;
bool mUNK_0x7F;
u8 mPAD_0x80[8];
};

//! @}

#endif
11 changes: 7 additions & 4 deletions include/Pack/RPSystem/RPSysPauseMgr.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#define RP_SYSTEM_PAUSE_MGR_H
#include <Pack/types_pack.h>

#include <Pack/RPKernel.h>
#include <Pack/RPSingleton.h>

//! @addtogroup rp_system
Expand All @@ -14,15 +15,17 @@ class RPSysPauseMgr {
RP_SINGLETON_DECL_EX(RPSysPauseMgr);

public:
void init();
void draw();
bool isPause() const {
return unk8 & 1;
return mPause & 1;
}

private:
u32 unk8;
u32 unkC;
BOOL mPause;
u32 mUNK_0x0C;
f32 mFloats_0x10[120];
void *mLytPause;
RPSysPauseMenu *mPauseMenu;
};

//! @}
Expand Down
16 changes: 13 additions & 3 deletions src/Pack/RPKernel/RPSysAppMiiManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,25 @@
* @param num Mii buffer capacity
* @param pHeap Heap to use for allocations
*/
RPSysAppMiiManager::RPSysAppMiiManager(u16 num, EGG::Heap* pHeap)
: mNumData(num), mppStoreData(NULL), mppCharData(NULL) {
RPSysAppMiiManager::RPSysAppMiiManager(u16 num, EGG::Heap* pHeap) : mNumData(num) {
//! Private variables require out-of-declaration setting
//! because ProjectLocal is accessed here as well.
RPSysProjectLocal *local = RP_GET_INSTANCE(RPSysProjectLocal);
mppStoreData = NULL;
mppCharData = NULL;

// Only Wii Sports uses character data (no checksum)
if (RP_GET_INSTANCE(RPSysProjectLocal)->getPack() ==
if (local->getPack() ==
RPSysSceneCreator::EPackID_SportsPack) {

mppCharData = new (pHeap) RFLCharData*[num];
} else {
mppStoreData = new (pHeap) RFLStoreData*[num];
}
}

/**
* @brief Destructor
*/
//! Should be defined here: wrong order otherwise
RPSysAppMiiManager::~RPSysAppMiiManager() {}
11 changes: 11 additions & 0 deletions src/Pack/RPKernel/RPSysPauseMenu.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#include <Pack/RPKernel.h>

void RPSysPauseMenu::draw() {
if (!mUNK_0x78) {
mLayout->draw();
//! todo(texline): define RPUtlLytFrameCursor
// mUtlCursor->draw();
}
}

RPSysPauseMenu::~RPSysPauseMenu() {}
18 changes: 18 additions & 0 deletions src/Pack/RPSystem/RPSysPauseMgr.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#include <Pack/RPKernel.h>
#include <Pack/RPSingleton.h>
#include <Pack/RPSystem.h>

RP_SINGLETON_IMPL_EX(RPSysPauseMgr);

void RPSysPauseMgr::draw() {
if (isPause()) {
mPauseMenu->draw();
}
}

/**
* @brief Destructor
*/
RPSysPauseMgr::~RPSysPauseMgr() {
//TODO(texline): delete mPauseMenu (it does not have a singleton)
}
16 changes: 16 additions & 0 deletions src/revolution/VI/vi.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#include <revolution/VI.h>

static VIRetraceCallback PreCB;
static void* CurrBufAddr;

VIRetraceCallback VISetPreRetraceCallback(VIRetraceCallback callback) {
VIRetraceCallback currCB = PreCB;
BOOL enabled = OSDisableInterrupts();
PreCB = callback;
OSRestoreInterrupts(enabled);
return currCB;
}

void* VIGetCurrentFrameBuffer(void) {
return CurrBufAddr;
}
Loading