This commit is contained in:
TakaRikka
2025-12-08 20:38:14 -08:00
551 changed files with 16419 additions and 4145 deletions
+59 -17
View File
@@ -50,11 +50,18 @@ struct JASGenericMemPool {
void* alloc(u32);
void free(void*, u32);
u32 getFreeMemCount() const {
return freeMemCount;
}
u32 getTotalMemCount() const {
return totalMemCount;
}
/* 0x00 */ void* field_0x0;
/* 0x04 */ u32 freeMemCount;
/* 0x08 */ u32 totalMemCount;
/* 0x0C */ u32 usedMemCount;
};
namespace JASThreadingModel {
@@ -87,6 +94,13 @@ namespace JASThreadingModel {
A0* mMutex;
};
};
template <typename A0>
struct SingleThreaded {
struct Lock {
Lock(const A0& param_0) {}
};
};
}; // namespace JASThreadingModel
/**
@@ -96,17 +110,32 @@ namespace JASThreadingModel {
template <typename T>
class JASMemPool : public JASGenericMemPool {
public:
void newMemPool(int param_0) { JASGenericMemPool::newMemPool(sizeof(T), param_0); }
void newMemPool(int param_0) {
typename JASThreadingModel::SingleThreaded<JASMemPool<T> >::Lock lock(*this);
JASGenericMemPool::newMemPool(sizeof(T), param_0);
}
void* alloc(u32 n) {
JUT_ASSERT(182, n == sizeof(T));
typename JASThreadingModel::SingleThreaded<JASMemPool<T> >::Lock lock(*this);
return JASGenericMemPool::alloc(n);
}
void free(void* ptr, u32 n) {
JUT_ASSERT(187, n == sizeof(T));
typename JASThreadingModel::SingleThreaded<JASMemPool<T> >::Lock lock(*this);
JASGenericMemPool::free(ptr, n);
}
u32 getFreeMemCount() const {
typename JASThreadingModel::SingleThreaded<JASMemPool<T> >::Lock lock(*this);
return JASGenericMemPool::getFreeMemCount();
}
u32 getTotalMemCount() const {
typename JASThreadingModel::SingleThreaded<JASMemPool<T> >::Lock lock(*this);
return JASGenericMemPool::getTotalMemCount();
}
};
namespace JASKernel { JKRHeap* getSystemHeap(); };
@@ -255,25 +284,35 @@ template <typename T>
class JASPoolAllocObject {
public:
static void* operator new(size_t n) {
JASMemPool<T>* memPool = getMemPool_();
return memPool->alloc(sizeof(T));
JASMemPool<T>& memPool_ = getMemPool_();
return memPool_.alloc(n);
}
static void* operator new(size_t n, void* ptr) {
return ptr;
}
static void operator delete(void* ptr, size_t n) {
JASMemPool<T>* memPool_ = getMemPool_();
memPool_->free(ptr, sizeof(T));
JASMemPool<T>& memPool_ = getMemPool_();
memPool_.free(ptr, n);
}
static void newMemPool(int param_0) {
JASMemPool<T>* memPool_ = getMemPool_();
memPool_->newMemPool(param_0);
JASMemPool<T>& memPool_ = getMemPool_();
memPool_.newMemPool(param_0);
}
static u32 getFreeMemCount() {
JASMemPool<T>& memPool_ = getMemPool_();
return memPool_.getFreeMemCount();
}
static u32 getTotalMemCount() {
JASMemPool<T>& memPool_ = getMemPool_();
return memPool_.getTotalMemCount();
}
private:
static JASMemPool<T>* getMemPool_() {
// Fakematch? Is memPool_ both an in-function static and an out-of-function static?
static JASMemPool<T> memPool_;
static JASMemPool<T>& getMemPool_() {
static JASMemPool<T> memPool_;
return &memPool_;
return memPool_;
}
};
@@ -308,25 +347,28 @@ template <typename T>
class JASPoolAllocObject_MultiThreaded {
public:
static void* operator new(size_t n) {
JASMemPool_MultiThreaded<T>* memPool_ = getMemPool();
return memPool_->alloc(sizeof(T));
JASMemPool_MultiThreaded<T>& memPool_ = getMemPool();
return memPool_.alloc(sizeof(T));
}
static void* operator new(size_t n, void* ptr) {
return ptr;
}
static void operator delete(void* ptr, size_t n) {
JASMemPool_MultiThreaded<T>* memPool_ = getMemPool();
memPool_->free(ptr, sizeof(T));
JASMemPool_MultiThreaded<T>& memPool_ = getMemPool();
memPool_.free(ptr, sizeof(T));
}
static void newMemPool(int n) {
getMemPool()->newMemPool(n);
JASMemPool_MultiThreaded<T>& memPool_ = getMemPool();
memPool_.newMemPool(n);
}
private:
static JASMemPool_MultiThreaded<T>* getMemPool() {
// Fakematch? Is memPool_ both an in-function static and an out-of-function static?
static JASMemPool_MultiThreaded<T> memPool_;
static JASMemPool_MultiThreaded<T>& getMemPool() {
static JASMemPool_MultiThreaded<T> memPool_;
return &memPool_;
return memPool_;
}
};
+12
View File
@@ -37,11 +37,23 @@ public:
u8* getCur() { return field_0x04; }
u32 readByte() { return *field_0x04++; }
u32 read16() {
#ifdef __MWERKS__
return *((u16*)field_0x04)++;
#else
u16* value = (u16*)field_0x04;
field_0x04 += 2;
return *value;
#endif
}
u32 read24() {
field_0x04--;
#ifdef __MWERKS__
return (*((u32*)field_0x04)++) & 0x00ffffff;
#else
u32* value = (u32*)field_0x04;
field_0x04 += 4;
return (*value) & 0x00ffffff;
#endif
}
u16 getLoopCount() const {
if (field_0x08 == 0) {
+7
View File
@@ -15,10 +15,17 @@ public:
template<class T>
class TPointer_delete : public TPointer<T> {
public:
#ifdef __MWERKS__
TPointer_delete(T* ptr) : TPointer(ptr) {}
~TPointer_delete() {
delete mPtr;
}
#else
TPointer_delete(T* ptr) : TPointer<T>(ptr) {}
~TPointer_delete() {
delete this->mPtr;
}
#endif
};
}
+1 -1
View File
@@ -1,7 +1,7 @@
#ifndef JHIRMCC_H
#define JHIRMCC_H
#include <dolphin.h>
#include <dolphin/dolphin.h>
struct JHIMccContext;
+1 -1
View File
@@ -1,7 +1,7 @@
#ifndef JORHOSTINFO_H
#define JORHOSTINFO_H
#include <dolphin.h>
#include <dolphin/dolphin.h>
#define HOSTINFO_REQ_COMPUTER_NAME 0
#define HOSTINFO_REQ_USERNAME 1
+4 -4
View File
@@ -31,28 +31,28 @@ struct TSinCosTable {
T sinShort(s16 v) const { return table[(u16)v >> (16U - N)].first; }
T cosShort(s16 v) const { return table[(u16)v >> (16U - N)].second; }
inline T sinLap(T v) {
inline T sinLap(T v) const {
if (v < (T)0.0) {
return -table[(u16)(-(T)(1 << N) * v) & ((1 << N) - 1)].first;
}
return table[(u16)((T)(1 << N) * v) & ((1 << N) - 1)].first;
}
inline T sinDegree(T degree) {
inline T sinDegree(T degree) const {
if (degree < (T)0.0) {
return -table[(u16)(-((T)(1 << N) / (T)360.0) * degree) & ((1 << N) - 1)].first;
}
return table[(u16)(((T)(1 << N) / (T)360.0) * degree) & ((1 << N) - 1)].first;
}
inline T cosDegree(T degree) {
inline T cosDegree(T degree) const {
if (degree < (T)0.0) {
degree = -degree;
}
return table[(u16)(((T)(1 << N) / (T)360.0) * degree) & ((1 << N) - 1)].second;
}
inline T sinRadian(T radian) {
inline T sinRadian(T radian) const {
if (radian < (T)0.0) {
return -table[(u16)(-(T)(1 << N) / TAngleConstant_<T>::RADIAN_DEG360() * radian) & ((1 << N) - 1)].first;
}
+1 -1
View File
@@ -42,7 +42,7 @@ public:
TRandom_(u32 value) : RandomT(value) {}
u8 get_uint8(u8 param_0) {
return get_ufloat_1() * param_0;
return this->get_ufloat_1() * param_0;
}
};
+1 -1
View File
@@ -1,7 +1,7 @@
#ifndef JMESSAGE_H
#define JMESSAGE_H
#include <dolphin.h>
#include <dolphin/dolphin.h>
// Struct definitions might be wrong
typedef struct bmg_header_t {
+1 -1
View File
@@ -1,7 +1,7 @@
#ifndef JMESSAGE_LOCALE_H
#define JMESSAGE_LOCALE_H
#include <dolphin.h>
#include <dolphin/dolphin.h>
namespace JMessage {
@@ -27,7 +27,7 @@ public:
return ret;
}
const void* getContent() const {
return (const void*)((int)getBlockEnd_() + align_roundUp(get_IDSize(), 4));
return (const void*)((intptr_t)getBlockEnd_() + align_roundUp(get_IDSize(), 4));
}
};
+1 -1
View File
@@ -1,7 +1,7 @@
#ifndef JSUPPORT_H
#define JSUPPORT_H
#include <dolphin.h>
#include <dolphin/dolphin.h>
#include <stdint.h>
/**
+2
View File
@@ -221,6 +221,8 @@ struct Z2Audience : public JAIAudience, public JASGlobalInstance<Z2Audience> {
virtual u32 calcPriority(JAIAudible* audible);
virtual void mixChannelOut(const JASSoundParams& outParams, JAIAudible* audible, int channelNum);
bool isActive() const;
Z2SpotMic* getLinkMic() { return mLinkMic; }
JGeometry::TVec3<f32> getAudioCamPos(int camID) {
return *mAudioCamera[camID].getPos();
+1 -1
View File
@@ -114,7 +114,7 @@ public:
u32 checkStateFlg0(daBoomerang_FLG0 i_flag) const { return m_stateFlg0 & i_flag; }
void onStateFlg0(daBoomerang_FLG0 flag) { m_stateFlg0 |= flag; }
void offStateFlg0(daBoomerang_FLG0 flag) { m_stateFlg0 &= ~flag; }
u32 getReturnFlg() { return checkStateFlg0(FLG0_1); }
u32 getReturnFlg() const { return checkStateFlg0(FLG0_1); }
void onWindCatch() { onStateFlg0(WIND_CATCH); }
bool checkForceDelete() const { return m_forceDelete; }
void onForceDelete() { m_forceDelete = true; }
+58 -57
View File
@@ -12,54 +12,55 @@
*
* @details
*
*/
*/
class e_gb_class {
public:
e_gb_class();
/* 0x000 */ fopEn_enemy_c actor;
/* 0x5AC */ request_of_phase_process_class mPhase;
/* 0x5B4 */ u8 field_0x5b4;
/* 0x5B5 */ u8 field_0x5b5;
/* 0x5B6 */ u8 field_0x5b6;
/* 0x5B7 */ u8 field_0x5b7;
/* 0x5B8 */ mDoExt_McaMorf* mpModelMorf1;
/* 0x5BC */ mDoExt_McaMorf* mpModelMorf2;
/* 0x5C0 */ mDoExt_brkAnm* mBrkAnm;
/* 0x5C4 */ Z2CreatureEnemy mSound;
/* 0x5AC */ request_of_phase_process_class phase;
/* 0x5B4 */ u8 arg0;
/* 0x5B5 */ u8 arg1;
/* 0x5B6 */ u8 arg2;
/* 0x5B7 */ u8 arg3;
/* 0x5B8 */ mDoExt_McaMorf* anmP;
/* 0x5BC */ mDoExt_McaMorf* flowerAnmP;
/* 0x5C0 */ mDoExt_brkAnm* brkAnmP;
/* 0x5C4 */ Z2CreatureEnemy sound;
/* 0x668 */ s8 field_0x668;
/* 0x66C */ J3DModel* field_0x66c;
/* 0x66C */ J3DModel* keyModelP;
/* 0x670 */ s8 field_0x670;
/* 0x674 */ cXyz field_0x674;
/* 0x674 */ cXyz keyPos;
/* 0x680 */ f32 field_0x680;
/* 0x684 */ s16 field_0x684;
/* 0x686 */ s16 field_0x686;
/* 0x688 */ int field_0x688;
/* 0x68C */ int field_0x68c;
/* 0x684 */ s16 keyYRot;
/* 0x686 */ s16 keyXRot;
/* 0x688 */ int headAnmNo;
/* 0x68C */ int bodyAnmNo;
/* 0x690 */ u8 field_0x690[0x694 - 0x690];
/* 0x694 */ u32 mShadowKey;
/* 0x698 */ s16 field_0x698;
/* 0x69A */ s16 field_0x69a;
/* 0x69C */ s16 field_0x69c;
/* 0x69E */ s16 field_0x69e;
/* 0x6A0 */ s16 field_0x6a0;
/* 0x694 */ u32 shadowKey;
/* 0x698 */ s16 frameCounter;
/* 0x69A */ s16 headAction;
/* 0x69C */ s16 mode;
/* 0x69E */ s16 flowerAction;
/* 0x6A0 */ s16 flowerMode;
/* 0x6A2 */ u8 field_0x6a2[0x6a8 - 0x6a2];
/* 0x6A8 */ cXyz field_0x6a8;
/* 0x6A8 */ cXyz currentPosTarget;
/* 0x6B4 */ u8 field_0x6b4[0x6b8 - 0x6b4];
/* 0x6B8 */ s16 field_0x6b8;
/* 0x6BA */ s16 field_0x6ba;
/* 0x6BC */ f32 field_0x6bc;
/* 0x6C0 */ f32 field_0x6c0;
/* 0x6C4 */ s16 field_0x6c4[5];
/* 0x6CE */ s16 field_0x6ce;
/* 0x6D0 */ s16 field_0x6d0;
/* 0x6B8 */ s16 angleYTarget;
/* 0x6BA */ s16 angleXTarget;
/* 0x6BC */ f32 distToPlayer;
/* 0x6C0 */ f32 currentPosTargetStep;
/* 0x6C4 */ s16 timer[5];
/* 0x6CE */ s16 invulnerabilityTimer;
/* 0x6D0 */ s16 flowerInvulnerabilityTimer;
/* 0x6D4 */ cXyz field_0x6d4;
/* 0x6E0 */ s8 field_0x6e0;
/* 0x6E4 */ cXyz field_0x6e4[18];
/* 0x7BC */ csXyz field_0x7bc[18];
/* 0x828 */ J3DModel* field_0x828[18];
/* 0x828 */ J3DModel* stemModelP[18];
/* 0x870 */ u8 field_0x870[0x8b8 - 0x870];
/* 0x8B8 */ f32 field_0x8b8[18];
/* 0x8B8 */ f32 stemModelSize[18];
/* 0x900 */ s16 field_0x900[18];
/* 0x924 */ s16 field_0x924;
/* 0x928 */ f32 field_0x928;
@@ -67,48 +68,48 @@ public:
/* 0x932 */ s8 field_0x932[3];
/* 0x935 */ s8 field_0x935[3];
/* 0x938 */ s8 field_0x938;
/* 0x939 */ s8 field_0x939;
/* 0x939 */ s8 stemModelIdx;
/* 0x93C */ f32 field_0x93c;
/* 0x940 */ f32 field_0x940;
/* 0x944 */ f32 field_0x944;
/* 0x948 */ s16 field_0x948;
/* 0x94A */ s16 field_0x94a;
/* 0x94C */ f32 field_0x94c;
/* 0x950 */ s16 field_0x950;
/* 0x952 */ s16 field_0x952;
/* 0x950 */ s16 yRot;
/* 0x952 */ s16 xRot;
/* 0x954 */ u8 field_0x954;
/* 0x955 */ s8 field_0x955;
/* 0x955 */ s8 keyStatus;
/* 0x956 */ u8 field_0x956[0x964 - 0x956];
/* 0x964 */ f32 field_0x964;
/* 0x968 */ s8 field_0x968;
/* 0x969 */ u8 field_0x969[0x970 - 0x969];
/* 0x970 */ dCcD_Stts mStts;
/* 0x9AC */ dCcD_Sph mHeadSph;
/* 0xAE4 */ dCcD_Cyl mBodyCyl;
/* 0xC20 */ s8 field_0xc20;
/* 0xC24 */ dCcU_AtInfo mAtInfo;
/* 0xC48 */ dBgS_AcchCir mAcchCir;
/* 0xC88 */ dBgS_ObjAcch mObjAcch;
/* 0xE60 */ u8 field_0xe60[2];
/* 0x968 */ s8 status;
/* 0x96A */ csXyz field_0x96a;
/* 0x970 */ dCcD_Stts stts;
/* 0x9AC */ dCcD_Sph headSph;
/* 0xAE4 */ dCcD_Cyl bodyCyl;
/* 0xC20 */ s8 atSetBitFlag;
/* 0xC24 */ dCcU_AtInfo atInfo;
/* 0xC48 */ dBgS_AcchCir acchcir;
/* 0xC88 */ dBgS_ObjAcch objAcch;
/* 0xE60 */ u8 field_0xe60[0xe62 - 0xe60];
/* 0xE62 */ u32 field_0xe62[2];
/* 0xE6C */ u32 field_0xe6c;
/* 0xE70 */ u32 field_0xe70;
/* 0xE74 */ u32 field_0xe74;
/* 0xE78 */ u32 field_0xe78;
/* 0xE7C */ u32 field_0xe7c[5];
/* 0xE90 */ s16 mDemoMode;
/* 0xE92 */ s16 field_0xe92;
/* 0xE94 */ cXyz mDemoCamEye;
/* 0xEA0 */ cXyz mDemoCamCenter;
/* 0xEAC */ cXyz field_0xeac;
/* 0xEB8 */ cXyz field_0xeb8;
/* 0xEC4 */ cXyz field_0xec4;
/* 0xED0 */ cXyz field_0xed0;
/* 0xE90 */ s16 demoMode;
/* 0xE92 */ s16 demoCounter;
/* 0xE94 */ cXyz demoCamEye;
/* 0xEA0 */ cXyz demoCamCenter;
/* 0xEAC */ cXyz demoCamEyeTarget;
/* 0xEB8 */ cXyz demoCamCenterTarget;
/* 0xEC4 */ cXyz demoCamEyeTargetDist;
/* 0xED0 */ cXyz demoCamCenterTargetDist;
/* 0xEDC */ u8 field_0xedc[0xee4 - 0xedc];
/* 0xEE4 */ f32 field_0xee4;
/* 0xEE8 */ f32 mDemoCamFovy;
/* 0xEE4 */ f32 demoCamStepScale;
/* 0xEE8 */ f32 demoCamFovy;
/* 0xEEC */ u8 field_0xeec[0xef5 - 0xeec];
/* 0xEF5 */ u8 field_0xef5;
/* 0xEF5 */ u8 hioInit;
};
STATIC_ASSERT(sizeof(e_gb_class) == 0xef8);
+6 -5
View File
@@ -17,7 +17,8 @@
*
* @details Enemy - Tile Worm
*
*/
*/
class daE_HZ_c : public fopEn_enemy_c {
public:
void setBck(int, u8, f32, f32);
@@ -75,9 +76,9 @@ private:
/* 0x674 */ daObjCarry_c* mpCarryActor;
/* 0x678 */ cXyz field_0x678;
/* 0x684 */ cXyz mSmokeEffectPosition;
/* 0x690 */ csXyz field_0x690;
/* 0x696 */ csXyz field_0x696;
/* 0x69C */ csXyz field_0x69c;
/* 0x690 */ csXyz mBackbone1YZRot;
/* 0x696 */ csXyz mBackbone2YZRot;
/* 0x69C */ csXyz mBackbone3YZRot;
/* 0x6A4 */ f32 mPlayerDist;
/* 0x6A8 */ f32 field_0x6a8;
/* 0x6AC */ f32 mGroundCross;
@@ -102,7 +103,7 @@ private:
/* 0x6E2 */ s16 mCameraOnTimer;
/* 0x6E4 */ u8 field_0x6e4;
/* 0x6E5 */ u8 mSetModelAnmMtx;
/* 0x6E6 */ u8 field_0x6E6[0x6E7 - 0x6E6];
/* 0x6E6 */ u8 field_0x6E6;
/* 0x6E7 */ u8 mDisableShadow; // Shadow is active when this is false
/* 0x6E8 */ u8 field_0x6e8;
/* 0x6E9 */ u8 field_0x6e9;
+5 -4
View File
@@ -36,7 +36,8 @@ enum daE_SM2_ACTION {
*
* @details
*
*/
*/
class e_sm2_class {
public:
bool checkYellow() { return type == TYPE_YELLOW; }
@@ -63,9 +64,9 @@ public:
/* 0x68E */ s16 combine_off_timer;
/* 0x690 */ s16 angle_to_pl;
/* 0x694 */ f32 dist_to_pl;
/* 0x698 */ u8 field_0x698[0x6A4 - 0x698];
/* 0x6A4 */ s16 field_0x6a4;
/* 0x6A6 */ s16 field_0x6a6;
/* 0x698 */ cXyz field_0x698;
/* 0x6A4 */ s16 mCurrentAngleYTarget;
/* 0x6A6 */ s16 mCurrentAngleYTargetStep;
/* 0x6A8 */ s8 field_0x6a8;
/* 0x6A9 */ u8 field_0x6a9;
/* 0x6AA */ u8 field_0x6aa;
+1 -1
View File
@@ -24,7 +24,7 @@ public:
int isDelete();
int Delete();
int Execute();
int _Execute();
void _Execute();
void callEvt_changeYami();
fpc_ProcID create_Yamijin(int);
BOOL col_check();
+2 -2
View File
@@ -223,7 +223,7 @@ public:
break;
}
/* dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town */
if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[281]) && uVar3 == 9) {
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[281]) && uVar3 == 9) {
uVar3 = 0xb;
}
} else {
@@ -257,7 +257,7 @@ public:
break;
}
/* dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town */
if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[281]) && uVar3 == 10) {
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[281]) && uVar3 == 10) {
uVar3 = 12;
}
}
+1 -1
View File
@@ -695,7 +695,7 @@ public:
f32 getSpinnerRideSpeed() const;
bool checkSpinnerReflectEffect();
static bool checkBoomerangCharge();
static u8 checkBoomerangChargeTime();
static bool checkBoomerangChargeTime();
static daBoomerang_c* getThrowBoomerangActor();
static void cancelBoomerangLockActor(fopAc_ac_c*);
static void setPlayerDamage(int, int);
+6 -4
View File
@@ -14,7 +14,9 @@ class dMsgScrnExplain_c;
class dMenu_Fmap2DBack_c : public dDlst_base_c, public dMenuMapCommon_c {
public:
dMenu_Fmap2DBack_c();
void setRegionTexData(u8, ResTIMG*, f32, f32, f32, f32, f32, f32, f32, f32, f32);
void setRegionTexData(u8, f32, f32, f32, f32, f32, f32, f32, f32, f32);
void calcAllMapPos();
f32 calcAllMapScaleRate();
void calcAllMapPos2DFirst(f32, f32, f32*, f32*);
@@ -142,8 +144,8 @@ public:
u8 getSpotCursor() { return mSpotCursor; }
u8 getSelectRegion() { return mSelectRegion; }
bool getAllPathShowFlag() { return mAllPathShowFlag; }
f32 getRegionOriginX(u8 i_region) { return mRegionOriginX[i_region]; }
f32 getRegionOriginZ(u8 i_region) { return mRegionOriginZ[i_region]; }
f32 getRegionOriginX(int i_region) { return mRegionOriginX[i_region]; }
f32 getRegionOriginZ(int i_region) { return mRegionOriginZ[i_region]; }
void setArrowAlpha(f32 i_alpha) { mArrowAlpha = i_alpha; }
void setSpotTextureFadeAlpha(f32 i_alpha) { mSpotTextureFadeAlpha = i_alpha; }
@@ -155,8 +157,8 @@ public:
void onArrowDrawFlag() { mArrowDrawFlag = true; }
bool isArrowDrawFlag() { return mArrowDrawFlag; }
void onShowRegionFlag(int region_bit) { mRegionFlag |= ((1 << region_bit) & 0xFF); }
bool isShowRegionFlag(int region_bit) { return mRegionFlag & ((1 << region_bit) & 0xFF); }
void onShowRegionFlag(int region_bit) { mRegionFlag |= (u8)(1 << region_bit); }
BOOL isShowRegionFlag(int region_bit) { return mRegionFlag & (u8)(1 << region_bit) ? TRUE : FALSE; }
void mapBlink() {}
+1 -1
View File
@@ -302,7 +302,7 @@ void dMeter2Info_set2DVibrationM();
void dMeter2Info_offUseButton(int pButton);
bool dMeter2Info_is2DActiveTouchArea();
u8 dMeter2Info_getRecieveLetterNum();
bool dMeter2Info_getPixel(f32 i_posX, f32 i_posY, f32 param_2, f32 param_3, f32 i_sizeX,
u8 dMeter2Info_getPixel(f32 i_posX, f32 i_posY, f32 param_2, f32 param_3, f32 i_sizeX,
f32 i_sizeY, struct ResTIMG const* i_resTimg);
const char* dMeter2Info_getPlusTextureName();
const char* dMeter2Info_getNumberTextureName(int i_num);
+3 -3
View File
@@ -34,7 +34,7 @@ public:
JGeometry::TBox2<f32>* getBounds(J2DPane*);
Vec getGlobalVtx(Mtx* param_0, u8 param_1, bool param_2, s16 param_3) {
return getGlobalVtx(getPanePtr(), param_0, param_1, param_2, param_3);
return getGlobalVtx(mPane, param_0, param_1, param_2, param_3);
}
Vec getGlobalVtxCenter(bool param_0, s16 param_1) {
@@ -60,8 +60,8 @@ public:
f32 getPosX() { return getPanePtr()->getBounds().i.x; }
f32 getPosY() { return getPanePtr()->getBounds().i.y; }
f32 getSizeX() { return getPanePtr()->getWidth(); }
f32 getSizeY() { return getPanePtr()->getHeight(); }
f32 getSizeX() { return mPane->getWidth(); }
f32 getSizeY() { return mPane->getHeight(); }
f32 getRotateZ() { return getPanePtr()->getRotateZ(); }
+6 -1
View File
@@ -1027,7 +1027,12 @@ public:
#if VERSION > VERSION_GCN_JPN
const
#endif
static u16 saveBitLabels[822];
#if PLATFORM_SHIELD
s16
#else
u16
#endif
static saveBitLabels[822];
};
class dSv_event_tmp_flag_c {
+1
View File
@@ -86,6 +86,7 @@ struct fOpAcm_HIO_entry_c : public mDoHIO_entry_c {
#if DEBUG
void removeHIO(const fopAc_ac_c* i_this) { removeHIO(*i_this); }
void removeHIO(const fopAc_ac_c& i_this) { removeHIO(i_this.base); }
void removeHIO(const fopEn_enemy_c& i_this) { removeHIO(i_this.base); }
void removeHIO(const leafdraw_class& i_this) { removeHIO(i_this.base); }
void removeHIO(const base_process_class& i_this) { removeHIO(i_this.state); }
void removeHIO(const state_class& state) {
+1 -1
View File
@@ -2,7 +2,7 @@
#ifndef F_PC_DEBUG_SV_H_
#define F_PC_DEBUG_SV_H_
#include <dolphin.h>
#include <dolphin/dolphin.h>
#if DEBUG
+6
View File
@@ -113,4 +113,10 @@ static const float INF = 2000000000.0f;
(void*)0; (void*)0; (void*)0; (void*)0; (void*)0; (void*)0; (void*)0; (void*)0; (void*)0; (void*)0; \
(void*)0; (void*)0; (void*)0; (void*)0; (void*)0; (void*)0; (void*)0; (void*)0; (void*)0; (void*)0;
#ifdef __MWERKS__
#define SJIS(character, value) character
#else
#define SJIS(character, value) ((u32)value)
#endif
#endif
+85 -26
View File
@@ -66,6 +66,8 @@ extern "C" {
#define DVD_COMMAND_BS_CHANGE_DISK 15
#define DVD_COMMAND_UNK_16 16
#define DVD_RESETCOVER_TIMELAG_TICKS2 OSMillisecondsToTicks(100)
typedef struct DVDDiskID {
char gameName[4];
char company[2];
@@ -137,6 +139,29 @@ typedef struct DVDDriveInfo {
/* 0x08 */ u8 padding[24];
} DVDDriveInfo;
typedef struct DVDCommandInfo DVDCommandInfo;
struct DVDCommandInfo {
u32 command;
u32 offset;
u32 length;
u32 intType;
u32 tick;
};
typedef struct DVDErrorInfo DVDErrorInfo;
struct DVDErrorInfo {
char gameName[4];
u8 diskNumber;
u8 gameVersion;
u8 reserved0[2];
u32 error;
u32 dateTime;
u32 status;
u32 unk_0x14;
u32 nextOffset;
DVDCommandInfo lastCommand[5];
};
typedef struct DVDGamePartition {
ESTicket ticket;
u32 tmdSize;
@@ -157,25 +182,50 @@ typedef struct DVDGameTOC {
DVDPartitionInfo* partitionInfos;
} DVDGameTOC;
#define ROUND(n, a) (((u32)(n) + (a)-1) & ~((a)-1))
typedef struct DVDPartitionParams DVDPartitionParams;
struct DVDPartitionParams {
ESTicket ticket;
u8 padding0[ROUND(sizeof(ESTicket), 32) - sizeof(ESTicket)];
ESTicketView ticketView;
u8 padding1[ROUND(sizeof(ESTicketView), 32) - sizeof(ESTicketView)];
u32 numTmdBytes;
u8 padding2[28];
ESTitleMeta tmd;
u8 padding3[ROUND(sizeof(ESTitleMeta), 32) - sizeof(ESTitleMeta)];
u32 numCertBytes;
u8 padding4[28];
u8 certificates[4096];
u32 dataWordOffset;
u8 padding5[28];
u8 h3Hash[98304];
};
typedef struct diRegVals {
u32 ImmRegVal;
u32 CoverRegVal;
u32 pad[6];
} diRegVals_t;
typedef struct diCommand {
u8 theCommand;
u8 pad1[3];
u32 arg[5];
u32 pad2[2];
} diCommand_t;
typedef struct DVDVideoReportKey {
u8 data[32];
} DVDVideoReportKey;
// DVD
void DVDInit(void);
int DVDReadAbsAsyncPrio(DVDCommandBlock* block, void* addr, s32 length, s32 offset, DVDCBCallback callback, s32 prio);
int DVDSeekAbsAsyncPrio(DVDCommandBlock* block, s32 offset, DVDCBCallback callback, s32 prio);
int DVDReadAbsAsyncForBS(DVDCommandBlock* block, void* addr, s32 length, s32 offset, DVDCBCallback callback);
int DVDReadDiskID(DVDCommandBlock* block, DVDDiskID* diskID, DVDCBCallback callback);
int DVDPrepareStreamAbsAsync(DVDCommandBlock* block, u32 length, u32 offset, DVDCBCallback callback);
int DVDCancelStreamAsync(DVDCommandBlock* block, DVDCBCallback callback);
s32 DVDCancelStream(DVDCommandBlock* block);
int DVDStopStreamAtEndAsync(DVDCommandBlock* block, DVDCBCallback callback);
s32 DVDStopStreamAtEnd(DVDCommandBlock* block);
int DVDGetStreamErrorStatusAsync(DVDCommandBlock* block, DVDCBCallback callback);
s32 DVDGetStreamErrorStatus(DVDCommandBlock* block);
int DVDGetStreamPlayAddrAsync(DVDCommandBlock* block, DVDCBCallback callback);
s32 DVDGetStreamPlayAddr(DVDCommandBlock* block);
int DVDGetStreamStartAddrAsync(DVDCommandBlock* block, DVDCBCallback callback);
s32 DVDGetStreamStartAddr(DVDCommandBlock* block);
int DVDGetStreamLengthAsync(DVDCommandBlock* block, DVDCBCallback callback);
s32 DVDGetStreamLength(DVDCommandBlock* block);
int DVDChangeDiskAsyncForBS(DVDCommandBlock* block, DVDCBCallback callback);
int DVDChangeDiskAsync(DVDCommandBlock* block, DVDDiskID* id, DVDCBCallback callback);
s32 DVDChangeDisk(DVDCommandBlock* block, DVDDiskID* id);
@@ -191,7 +241,7 @@ BOOL DVDSetAutoInvalidation(BOOL autoInval);
void DVDPause(void);
void DVDResume(void);
int DVDCancelAsync(DVDCommandBlock* block, DVDCBCallback callback);
s32 DVDCancel(volatile DVDCommandBlock* block);
s32 DVDCancel(DVDCommandBlock* block);
int DVDCancelAllAsync(DVDCBCallback callback);
s32 DVDCancelAll(void);
DVDDiskID* DVDGetCurrentDiskID(void);
@@ -199,6 +249,7 @@ BOOL DVDCheckDisk(void);
// DVD FATAL
int DVDSetAutoFatalMessaging(BOOL enable);
BOOL __DVDGetAutoFatalMessaging(void);
// DVD FS
s32 DVDConvertPathToEntrynum(const char* pathPtr);
@@ -218,9 +269,6 @@ int DVDOpenDir(const char* dirName, DVDDir* dir);
int DVDReadDir(DVDDir* dir, DVDDirEntry* dirent);
int DVDCloseDir(DVDDir* dir);
void DVDRewindDir(DVDDir* dir);
void* DVDGetFSTLocation(void);
BOOL DVDPrepareStreamAsync(DVDFileInfo* fileInfo, u32 length, u32 offset, DVDCallback callback);
s32 DVDPrepareStream(DVDFileInfo* fileInfo, u32 length, u32 offset);
s32 DVDGetTransferredSize(DVDFileInfo* fileinfo);
#define DVDReadAsync(fileInfo, addr, length, offset, callback) \
@@ -233,16 +281,11 @@ DVDDiskID* DVDGenerateDiskID(DVDDiskID* id, const char* game, const char* compan
// DVD LOW
BOOL DVDLowRead(void* addr, u32 length, u32 offset, DVDLowCallback callback);
BOOL DVDLowSeek(u32 offset, DVDLowCallback callback);
BOOL DVDLowWaitCoverClose(DVDLowCallback callback);
BOOL DVDLowReadDiskID(DVDDiskID* diskID, DVDLowCallback callback);
BOOL DVDLowStopMotor(DVDLowCallback callback);
BOOL DVDLowRequestError(DVDLowCallback callback);
BOOL DVDLowInquiry(DVDDriveInfo* info, DVDLowCallback callback);
BOOL DVDLowAudioStream(u32 subcmd, u32 length, u32 offset, DVDLowCallback callback);
BOOL DVDLowRequestAudioStatus(u32 subcmd, DVDLowCallback callback);
BOOL DVDLowAudioBufferConfig(BOOL enable, u32 size, DVDLowCallback callback);
void DVDLowReset(void);
DVDLowCallback DVDLowSetResetCoverCallback(DVDLowCallback callback);
BOOL DVDLowAudioBufferConfig(u8 enable, u32 size, DVDLowCallback callback);
BOOL DVDLowReset(DVDLowCallback callback);
BOOL DVDLowBreak(void);
DVDLowCallback DVDLowClearCallback(void);
u32 DVDLowGetCoverStatus(void);
@@ -250,8 +293,24 @@ u32 DVDLowGetCoverStatus(void);
// DVD QUEUE
void DVDDumpWaitingQueue(void);
// unsorted revo
// DVD BROADWAY
BOOL DVDLowFinalize(void);
BOOL DVDLowInit(void);
BOOL DVDLowUnmaskStatusInterrupts(void);
BOOL DVDLowMaskCoverInterrupt(void);
BOOL DVDLowClearCoverInterrupt(DVDLowCallback callback);
BOOL DVDLowSetSpinupFlag(u32 spinUp);
u32 DVDLowGetImmBufferReg(void);
BOOL DVDLowSetMaximumRotation(u32 subcmd, DVDLowCallback callback);
u32 DVDLowGetCoverRegister(void);
BOOL DVDLowPrepareCoverRegister(DVDLowCallback callback);
BOOL DVDLowGetNoDiscBufferSizes(const u32 partitionWordOffset, u32* numTmdBytes, u32* numCertBytes, DVDLowCallback callback);
BOOL DVDLowGetNoDiscOpenPartitionParams(const u32 partitionWordOffset, ESTicket* eTicket, u32* numTmdBytes, ESTitleMeta* tmd, u32* numCertBytes, u8* certificates, u32* dataWordOffset, u8* h3HashPtr, DVDLowCallback callback);
BOOL DVDLowReportKey(DVDVideoReportKey* reportKey, u32 format, u32 lsn, DVDLowCallback callback);
u32 DVDLowGetControlRegister(void);
u32 DVDLowGetStatusRegister(void);
BOOL DVDLowPrepareControlRegister(DVDLowCallback callback);
BOOL DVDLowPrepareStatusRegister(DVDLowCallback callback);
BOOL DVDLowUnencryptedRead(void*, u32, u32, DVDLowCallback);
BOOL DVDLowClosePartition(DVDLowCallback);
BOOL DVDLowOpenPartitionWithTmdAndTicketView(const u32, const ESTicketView* const, const u32, const ESTitleMeta* const, const u32, const u8* const, DVDLowCallback);
+100
View File
@@ -0,0 +1,100 @@
#ifndef _REVOLUTION_FS_H_
#define _REVOLUTION_FS_H_
#include <revolution/types.h>
#include <revolution/private/iostypes.h>
#include <revolution/private/iosrestypes.h>
#ifdef __cplusplus
extern "C" {
#endif
#define ISFS_ERROR_OK 0
#define ISFS_ERROR_INVALID -101
#define ISFS_ERROR_ACCESS -102
#define ISFS_ERROR_CORRUPT -103
#define ISFS_ERROR_NOTREADY -104
#define ISFS_ERROR_EXISTS -105
#define ISFS_ERROR_NOEXISTS -106
#define ISFS_ERROR_MAXFILES -107
#define ISFS_ERROR_MAXBLOCKS -108
#define ISFS_ERROR_MAXFD -109
#define ISFS_ERROR_MAXDEPTH -110
#define ISFS_ERROR_OPENFD -111
#define ISFS_ERROR_BADBLOCK -112
#define ISFS_ERROR_ECC -113
#define ISFS_ERROR_ECC_CRIT -114
#define ISFS_ERROR_NOTEMPTY -115
#define ISFS_ERROR_HMAC -116
#define ISFS_ERROR_UNKNOWN -117
#define ISFS_ERROR_BUSY -118
#define ISFS_ERROR_SHUTDOWN -119
#define ISFS_INODE_NAMELEN 12
typedef s32 ISFSError;
typedef void (*ISFSCallback) (ISFSError, void *ctxt);
typedef struct {
u32 blockSize;
u32 freeBlocks;
u32 occupiedBlcocks;
u32 badBlocks;
u32 reservedBlocks;
u32 freeInodes;
u32 occupedInodes;
} ISFSStats;
typedef struct {
u32 size;
u32 offset;
} ISFSFileStats;
typedef struct {
IOSUid ownerId;
IOSGid groupId;
u8 path[64];
u8 ownerAccess;
u8 groupAccess;
u8 othersAccess;
u8 attr;
} ISFSPathAttrArgs;
typedef struct {
u8 path1[64];
u8 path2[64];
} ISFSPathsArgs;
ISFSError ISFS_OpenLib(void);
s32 ISFS_CreateDir(const u8* dname, u32 dirAttr, u32 ownerAcc, u32 groupAcc, u32 othersAcc);
s32 ISFS_CreateDirAsync(const u8* dname, u32 dirAttr, u32 ownerAcc, u32 groupAcc, u32 othersAcc, ISFSCallback cb, void* fsCtxt);
s32 ISFS_ReadDir(const u8* dname, u8* nameList, u32* num);
s32 ISFS_ReadDirAsync(const u8* dname, u8* nameList, u32* num, ISFSCallback cb, void* fsCtxt);
s32 ISFS_GetAttr(const u8* name, IOSUid* ownerId, IOSGid* groupId, u32* attr, u32* ownerAcc, u32* groupAcc, u32* othersAcc);
s32 ISFS_GetAttrAsync(const u8* name, IOSUid* ownerId, IOSGid* groupId, u32* attr, u32* ownerAcc, u32* groupAcc, u32* othersAcc, ISFSCallback cb, void* fsCtxt);
s32 ISFS_Delete(const u8* name);
s32 ISFS_DeleteAsync(const u8* name, ISFSCallback cb, void* fsCtxt);
s32 ISFS_Rename(const u8* oldName, const u8* newName);
s32 ISFS_RenameAsync(const u8* oldName, const u8* newName, ISFSCallback cb, void* fsCtxt);
s32 ISFS_GetUsage(const u8* dname, u32* nblocks, u32* ninodes);
s32 ISFS_CreateFile(const u8* fname, u32 fileAttr, u32 ownerAcc, u32 groupAcc, u32 othersAcc);
s32 ISFS_CreateFileAsync(const u8* fname, u32 fileAttr, u32 ownerAcc, u32 groupAcc, u32 othersAcc, ISFSCallback cb, void* fsCtxt);
IOSFd ISFS_Open(const u8* fname, u32 access);
IOSFd ISFS_OpenAsync(const u8* fname, u32 access, ISFSCallback cb, void* fsCtxt);
s32 ISFS_GetFileStats(IOSFd fd, ISFSFileStats* stats);
s32 ISFS_GetFileStatsAsync(IOSFd fd, ISFSFileStats* stats, ISFSCallback cb, void* fsCtxt);
s32 ISFS_Seek(IOSFd fd, s32 offset, u32 whence);
s32 ISFS_SeekAsync(IOSFd fd, s32 offset, u32 whence, ISFSCallback cb, void* fsCtxt);
s32 ISFS_Read(s32 fd, u8* pBuffer, u32 bufSize);
s32 ISFS_ReadAsync(IOSFd fd, u8* buf, u32 size, ISFSCallback cb, void* fsCtxt);
s32 ISFS_Write(IOSFd fd, const u8* buf, u32 size);
s32 ISFS_WriteAsync(IOSFd fd, const u8* buf, u32 size, ISFSCallback cb, void* fsCtxt);
s32 ISFS_Close(IOSFd fd);
s32 ISFS_CloseAsync(IOSFd fd, ISFSCallback cb, void* fsCtxt);
s32 ISFS_ShutdownAsync(ISFSCallback cb, void* fsCtxt);
#ifdef __cplusplus
}
#endif
#endif // _REVOLUTION_FS_H_
+24
View File
@@ -0,0 +1,24 @@
#ifndef _REVOLUTION_IPC_H_
#define _REVOLUTION_IPC_H_
#include <revolution/ipc/ipcclt.h>
#include <revolution/ipc/ipcProfile.h>
#include <revolution/ipc/memory.h>
#ifdef __cplusplus
extern "C" {
#endif
void IPCInit(void);
void IPCReInit(void);
u32 IPCReadReg(u32 regIdx);
void IPCWriteReg(u32 regIdx, u32 data);
void* IPCGetBufferHi(void);
void* IPCGetBufferLo(void);
void IPCSetBufferLo(void* newLo);
#ifdef __cplusplus
}
#endif
#endif // _REVOLUTION_IPC_H_
+19
View File
@@ -0,0 +1,19 @@
#ifndef _REVOLUTION_IPCPROFILE_H_
#define _REVOLUTION_IPCPROFILE_H_
#ifdef __cplusplus
extern "C" {
#endif
#include <revolution/types.h>
void IPCiProfInit(void);
void IPCiProfQueueReq(void* req, s32 handle);
void IPCiProfReply(void* req, s32 handle);
void IPCiProfAck(void);
#ifdef __cplusplus
}
#endif
#endif // _REVOLUTION_IPCPROFILE_H_
+37
View File
@@ -0,0 +1,37 @@
#ifndef _REVOLUTION_IPCCLT_H_
#define _REVOLUTION_IPCCLT_H_
#ifdef __cplusplus
extern "C" {
#endif
#include <revolution/types.h>
#include <revolution/private/iosrestypes.h>
#include <revolution/private/iostypes.h>
typedef IOSError (*IOSIpcCb)(IOSError, void*);
IOSError IPCCltInit(void);
IOSError IPCCltReInit(void);
IOSError IOS_OpenAsync(const char* pPath, u32 flags, IOSIpcCb cb, void* callback_arg);
IOSError IOS_Open(const char* path, u32 flags);
IOSError IOS_CloseAsync(IOSFd fd, IOSIpcCb cb, void* cbArg);
IOSError IOS_Close(IOSFd fd);
IOSError IOS_ReadAsync(IOSFd fd, void* buf, u32 len, IOSIpcCb cb, void* cbArg);
IOSError IOS_Read(IOSFd fd, void* buf, u32 len);
IOSError IOS_WriteAsync(IOSFd fd, void* buf, u32 len, IOSIpcCb cb, void* cbArg);
IOSError IOS_Write(IOSFd fd, void* buf, u32 len);
IOSError IOS_SeekAsync(IOSFd fd, s32 offset, u32 whence, IOSIpcCb cb, void* cbArg);
IOSError IOS_Seek(IOSFd fd, s32 offset, u32 whence);
IOSError IOS_IoctlAsync(IOSFd fd, s32 cmd, void* input, u32 inputLen, void* output, u32 outputLen, IOSIpcCb cb, void* cbArg);
IOSError IOS_Ioctl(IOSFd fd, s32 cmd, void* input, u32 inputLen, void* output, u32 outputLen);
IOSError IOS_IoctlvAsync(IOSFd fd, s32 cmd, u32 readCount, u32 writeCount, IOSIoVector* vect, IOSIpcCb cb, void* cbArg);
IOSError IOS_Ioctlv(IOSFd fd, s32 cmd, u32 readCount, u32 writeCount, IOSIoVector* vect);
IOSError IOS_IoctlvReboot(IOSFd fd, s32 cmd, u32 readCount, u32 writeCount, IOSIoVector* vect);
#ifdef __cplusplus
}
#endif
#endif // _REVOLUTION_IPCCLT_H_
+18
View File
@@ -0,0 +1,18 @@
#ifndef _REVOLUTION_IPCMEMORY_H_
#define _REVOLUTION_IPCMEMORY_H_
#include <revolution/private/iostypes.h>
#ifdef __cplusplus
extern "C" {
#endif
IOSError iosFree(IOSHeapId id, void* ptr);
void* iosAllocAligned(IOSHeapId id, u32 size, u32 alignment);
IOSHeapId iosCreateHeap(void* ptr, u32 size);
#ifdef __cplusplus
}
#endif
#endif // _REVOLUTION_IPCMEMORY_H_
+67 -22
View File
@@ -2,6 +2,7 @@
#define _REVOLUTION_NAND_H_
#include <revolution/types.h>
#include <revolution/fs.h>
#ifdef __cplusplus
extern "C" {
@@ -122,11 +123,56 @@ typedef struct {
typedef void (*NANDCallback)(s32, NANDCommandBlock*);
typedef void (*NANDAsyncCallback)(s32 result, struct NANDCommandBlock* block);
typedef void (*NANDLoggingCallback)(BOOL, s32);
// NAND
s32 NANDCreate(const char* path, const u8 perm, const u8 attr);
s32 NANDPrivateCreate(const char* path, u8 perm, u8 attr);
s32 NANDPrivateCreateAsync(const char *path, u8 perm, u8 attr, NANDCallback cb, NANDCommandBlock* block);
s32 NANDDelete(const char* path);
s32 NANDPrivateDelete(const char* path);
s32 NANDPrivateDeleteAsync(const char* path, NANDCallback cb, NANDCommandBlock* block);
s32 NANDRead(NANDFileInfo* info, void* buf, const u32 length);
s32 NANDReadAsync(NANDFileInfo* info, void* buf, const u32 length,
NANDCallback cb, NANDCommandBlock* block);
s32 NANDWrite(NANDFileInfo* info, const void* buf, const u32 length);
s32 NANDWriteAsync(NANDFileInfo* info, const void* buf, const u32 length,
NANDCallback cb, NANDCommandBlock* block);
s32 NANDSeek(NANDFileInfo* info, const s32 offset, const s32 whence);
s32 NANDSeekAsync(NANDFileInfo* info, const s32 offset, const s32 whence,
NANDCallback cb, NANDCommandBlock* block);
s32 NANDPrivateCreateDir(const char* path, u8 perm, u8 attr);
s32 NANDPrivateCreateDirAsync(const char *path, u8 perm, u8 attr, NANDCallback cb, NANDCommandBlock *block);
s32 NANDMove(const char* path, const char* destDir);
s32 NANDGetLength(NANDFileInfo* info, u32* length);
s32 NANDGetLengthAsync(NANDFileInfo* info, u32* length, NANDCallback cb,
NANDCommandBlock* block);
s32 NANDGetStatus(const char* path, NANDStatus* stat);
s32 NANDPrivateGetStatus(const char* path, NANDStatus* stat);
s32 NANDPrivateGetStatusAsync(const char* path, NANDStatus* stat,
NANDCallback cb, NANDCommandBlock* block);
void NANDSetUserData(NANDCommandBlock* block, void* data);
void* NANDGetUserData(const NANDCommandBlock* block);
// NANDCore
s32 NANDInit(void);
s32 NANDGetHomeDir(char[NAND_MAX_PATH]);
s32 NANDPrivateGetTypeAsync(const char* path, u8* type, NANDCallback cb, NANDCommandBlock* block);
void NANDInitBanner(NANDBanner* bnr, u32 const flag, const u16* title, const u16* comment);
s32 NANDCreate(const char*, u8, u8);
s32 NANDPrivateCreate(const char*, u8, u8);
// NANDCheck
s32 NANDCheck(const u32 fsBlock, const u32 inode, u32* answer);
// NANDOpenClose
s32 NANDOpen(const char*, NANDFileInfo*, u8);
s32 NANDPrivateOpen(const char*, NANDFileInfo*, u8);
s32 NANDOpenAsync(const char*, NANDFileInfo*, u8, NANDCallback, NANDCommandBlock*);
@@ -134,31 +180,30 @@ s32 NANDPrivateOpenAsync(const char*, NANDFileInfo*, const u8, NANDCallback, NAN
s32 NANDClose(NANDFileInfo*);
s32 NANDCloseAsync(NANDFileInfo*, NANDCallback, NANDCommandBlock*);
s32 NANDRead(NANDFileInfo*, void*, u32);
s32 NANDReadAsync(NANDFileInfo*, void*, u32, NANDCallback, NANDCommandBlock*);
s32 NANDGetLength(NANDFileInfo*, u32*);
s32 NANDSimpleSafeOpen(const char* path, NANDFileInfo* info, const u8 accType, void* buf, const u32 length);
s32 NANDSimpleSafeClose(NANDFileInfo* info);
s32 NANDPrivateSafeOpenAsync(const char* path, NANDFileInfo* info, const u8 accType, void* buf, const u32 length, NANDCallback cb, NANDCommandBlock* block);
s32 NANDSafeCloseAsync(NANDFileInfo* info, NANDCallback cb, NANDCommandBlock* block);
s32 NANDDelete(const char*);
// NANDLogging
BOOL NANDLoggingAddMessageAsync(NANDLoggingCallback cb, s32 errorCode, const char* fmt, ...);
s32 NANDMove(const char*, const char*);
// NANDErrorMessage
BOOL NANDSetAutoErrorMessaging(BOOL show);
void __NANDPrintErrorMessage(s32 errorCode);
s32 NANDCheck(u32, u32, u32*);
s32 NANDWrite(NANDFileInfo*, const void*, u32);
s32 NANDWriteAsync(NANDFileInfo*, const void*, u32, NANDCallback, NANDCommandBlock*);
s32 NANDSeekAsync(NANDFileInfo*, s32, s32, NANDCallback, NANDCommandBlock*);
s32 NANDPrivateGetStatus(const char*, NANDStatus*);
s32 NANDPrivateDelete(const char*);
s32 NANDPrivateCreate(const char*, u8, u8);
s32 NANDGetHomeDir(char[NAND_MAX_PATH]);
s32 NANDGetStatus(const char*, NANDStatus*);
s32 NANDSecretGetUsage(const char*, u32*, u32*);
const char* nandGetHomeDir();
void nandGenerateAbsPath(char* absPath, const char* path);
BOOL nandIsPrivatePath(const char* path);
BOOL nandIsInitialized(void);
s32 nandConvertErrorCode(const ISFSError err);
void nandGetRelativeName(char* name, const char* path);
BOOL nandIsUnderPrivatePath(const char* path);
BOOL nandIsRelativePath(const char* path);
void nandGetParentDirectory(char* parentDir, const char* absPath);
BOOL nandIsAbsolutePath(const char* path);
#ifdef __cplusplus
}
+17 -3
View File
@@ -46,6 +46,7 @@ typedef u32 OSTick;
#include <revolution/os/OSStateFlags.h>
#include <revolution/os/OSIpc.h>
#include <revolution/os/OSNandbootInfo.h>
#include <revolution/os/OSNet.h>
// private macro, maybe shouldn't be defined here?
#define OFFSET(addr, align) (((u32)(addr) & ((align)-1)))
@@ -68,16 +69,29 @@ OSThread* __OSCurrentThread AT_ADDRESS(OS_BASE_CACHED | 0x00E4);
u32 __OSSimulatedMemSize AT_ADDRESS(OS_BASE_CACHED | 0x00F0);
u32 __OSBusClock AT_ADDRESS(OS_BASE_CACHED | 0x00F8);
u32 __OSCoreClock AT_ADDRESS(OS_BASE_CACHED | 0x00FC);
volatile u16 __OSDeviceCode AT_ADDRESS(OS_BASE_CACHED | 0x30E6);
vu16 __OSDeviceCode AT_ADDRESS(OS_BASE_CACHED | 0x30E6);
vu8 __OSLockedFlag AT_ADDRESS(OS_BASE_CACHED | 0x3187);
u16 __OSWirelessPadFixMode AT_ADDRESS(OS_BASE_CACHED | 0x30E0);
vu32 __OSLaunchPartitionType AT_ADDRESS(OS_BASE_CACHED | 0x3194);
vu8 __OSDeviceCheckCode AT_ADDRESS(OS_BASE_CACHED | 0x319C);
// unknowns
OSThread* __gUnkThread1 AT_ADDRESS(OS_BASE_CACHED | 0x00D8);
int __gUnknown800030C0[2] AT_ADDRESS(OS_BASE_CACHED | 0x30C0);
u8 __gUnknown800030E3 AT_ADDRESS(OS_BASE_CACHED | 0x30E3);
#else
#define __OSBusClock (*(u32 *)(OS_BASE_CACHED | 0x00F8))
#define __OSCoreClock (*(u32 *)(OS_BASE_CACHED | 0x00FC))
#define __OSPhysicalMemSize (*(u32*)(OS_BASE_CACHED | 0x0028))
#define __OSTVMode (*(volatile int*)(OS_BASE_CACHED | 0x00CC))
#define __OSActiveThreadQueue (*(OSThreadQueue*)(OS_BASE_CACHED | 0x00DC))
#define __OSCurrentThread ((OSThread*)(OS_BASE_CACHED | 0x00E4))
#define __OSSimulatedMemSize (*(u32*)(OS_BASE_CACHED | 0x00F0))
#define __OSBusClock (*(u32*)(OS_BASE_CACHED | 0x00F8))
#define __OSCoreClock (*(u32*)(OS_BASE_CACHED | 0x00FC))
#define __OSDeviceCode (*(vu16*)(OS_BASE_CACHED | 0x30E6))
#define __OSLockedFlag (*(vu8*)(OS_BASE_CACHED | 0x3187))
#define __OSWirelessPadFixMode (*(u16*)(OS_BASE_CACHED | 0x30E0))
#define __OSLaunchPartitionType (*(vu32*)(OS_BASE_CACHED | 0x3194))
#define __OSDeviceCheckCode (*(vu8*)(OS_BASE_CACHED | 0x319C))
#endif
#define OS_BUS_CLOCK __OSBusClock
+29
View File
@@ -0,0 +1,29 @@
#ifndef _REVOLUTION_OSNET_H_
#define _REVOLUTION_OSNET_H_
#include <revolution/ipc.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef enum NWC24Err {
NWC24_OK = 0,
} NWC24Err;
NWC24Err NWC24iPrepareShutdown(void);
NWC24Err NWC24iSynchronizeRtcCounter(BOOL);
NWC24Err NWC24iOpenResourceManager_(const char* callerName, const char* path, IOSFd* fd, u32 flags);
NWC24Err NWC24SuspendScheduler(void);
NWC24Err NWC24iSetRtcCounter_(int rtc, BOOL);
NWC24Err NWC24iIoctlResourceManager_(const char* callerName, IOSFd fd, s32 cmd, void* input, u32 inputLen, void* output, u32 outputLen);
NWC24Err NWC24iCloseResourceManager_(const char* callerName, IOSFd);
NWC24Err NWC24iRequestShutdown(u32 event, s32* result);
NWC24Err NWC24iIoctlResourceManagerAsync_(const char* callerName, IOSFd fd, s32 cmd, void* input, u32 inputLen, void* output, u32 outputLen, void* cbArg);
BOOL NWC24iIsAsyncRequestPending_(void);
#ifdef __cplusplus
}
#endif
#endif
+8
View File
@@ -3,6 +3,10 @@
#include <revolution/os.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct {
u32 checkSum;
u16 titleName[2][21];
@@ -16,4 +20,8 @@ typedef struct {
void __OSStartPlayRecord(void);
void __OSStopPlayRecord(void);
#ifdef __cplusplus
}
#endif
#endif // OSPLAYRECORD_H
+2 -2
View File
@@ -17,10 +17,10 @@ typedef struct OSShutdownFunctionQueue {
OSShutdownFunctionInfo* tail;
} OSShutdownFunctionQueue;
typedef BOOL (*OSResetFunction)(BOOL, u32);
typedef BOOL (*OSShutdownFunction)(BOOL, u32);
struct OSShutdownFunctionInfo {
OSResetFunction func;
OSShutdownFunction func;
u32 priority;
OSShutdownFunctionInfo* next;
OSShutdownFunctionInfo* prev;
-9
View File
@@ -1,9 +0,0 @@
#pragma once
#include <revolution/private/iosrestypes.h>
#include <revolution/private/iostypes.h>
#include <revolution/types.h>
typedef IOSError (*IOSIpcCb) (IOSError, void *);
s32 IOS_Read(s32, void*, u32);
+7 -7
View File
@@ -33,19 +33,19 @@ typedef u32 IOSResourceHandle;
#define IOS_ERROR_INVALID_SIZE -23
typedef struct {
u8 *path;
u8* path;
u32 flags;
IOSUid uid;
IOSGid gid;
} IOSResourceOpen;
typedef struct {
u8 *outPtr;
u8* outPtr;
u32 outLen;
} IOSResourceRead;
typedef struct {
u8 *inPtr;
u8* inPtr;
u32 inLen;
} IOSResourceWrite;
@@ -56,14 +56,14 @@ typedef struct {
typedef struct {
u32 cmd;
u8 *inPtr;
u8* inPtr;
u32 inLen;
u8 *outPtr;
u8* outPtr;
u32 outLen;
} IOSResourceIoctl;
typedef struct {
u8 *base;
u8* base;
u32 length;
} IOSIoVector;
@@ -71,7 +71,7 @@ typedef struct {
u32 cmd;
u32 readCount;
u32 writeCount;
IOSIoVector *vector;
IOSIoVector* vector;
} IOSResourceIoctlv;
typedef struct {