Merge remote-tracking branch 'upstream/master' into m_Do_audio2

This commit is contained in:
jdflyer
2021-01-21 21:58:53 -07:00
798 changed files with 7656 additions and 12286 deletions
@@ -1,5 +1,5 @@
#ifndef __J2DPICTURE_H_
#define __J2DPICTURE_H_
#ifndef J2DPICTURE_H_
#define J2DPICTURE_H_
#include "global.h"
@@ -1,5 +1,5 @@
#ifndef __J2DSCREEN_H_
#define __J2DSCREEN_H_
#ifndef J2DSCREEN_H_
#define J2DSCREEN_H_
#include "global.h"
@@ -1,5 +1,5 @@
#ifndef __J2DTEXTBOX_H_
#define __J2DTEXTBOX_H_
#ifndef J2DTEXTBOX_H_
#define J2DTEXTBOX_H_
#include "global.h"
@@ -1,5 +1,5 @@
#ifndef __J3DANIMATION_H_
#define __J3DANIMATION_H_
#ifndef J3DANIMATION_H_
#define J3DANIMATION_H_
#include "global.h"
@@ -0,0 +1,6 @@
#ifndef JAIAUDIENCE_H_
#define JAIAUDIENCE_H_
struct JAIAudience {};
#endif // JAIAUDIENCE_H_
-5
View File
@@ -3,9 +3,4 @@
#include "global.h"
struct JAISoundID {
u32 soundId;
JAISoundID(JAISoundID const& soundIdToSet);
};
#endif
+147
View File
@@ -0,0 +1,147 @@
#ifndef __JAISOUND_H__
#define __JAISOUND_H__
#include "global.h"
class JAISoundID {
public:
operator u32() const { return this->mId; }
JAISoundID(u32 pId) : mId(pId) {}
JAISoundID(JAISoundID const& other);
private:
u32 mId;
};
struct JAISoundParams {
float field_0x0;
float field_0x4;
float field_0x8;
float field_0xc;
float field_0x10;
float field_0x14;
float field_0x18;
float field_0x1c;
};
class JAISoundHandle;
class JAIAudible;
class JAIAudience;
class JAISound {
public:
JAISoundID getID() const { return JAISoundID((u32)this->sound_id); }
void stop(u32 fadeout);
void stop();
u32 getUserData() const { return user_data; }
// TODO: do proper struct later
void* __vt;
struct JAISoundHandle* handle;
struct JAIAudible* audible;
struct JAIAudience* audience;
s32 field_0xc;
s32 num_prepare_steps;
struct JAISoundID sound_id;
u8 field_0x18;
u8 field_0x19;
u8 field_0x1a;
u8 field_0x1b;
u32 user_data;
float field_0x20;
float field_0x24;
float field_0x28;
s32 field_0x2c;
s32 audience_priority;
s32 field_0x34;
struct JAISoundParams params;
u8 field_0x58;
u8 field_0x59;
u8 field_0x5a;
u8 field_0x5b;
u8 field_0x5c;
u8 field_0x5d;
u8 field_0x5e;
u8 field_0x5f;
u8 field_0x60;
u8 field_0x61;
u8 field_0x62;
u8 field_0x63;
u8 field_0x64;
u8 field_0x65;
u8 field_0x66;
u8 field_0x67;
u8 field_0x68;
u8 field_0x69;
u8 field_0x6a;
u8 field_0x6b;
u8 field_0x6c;
u8 field_0x6d;
u8 field_0x6e;
u8 field_0x6f;
u8 field_0x70;
u8 field_0x71;
u8 field_0x72;
u8 field_0x73;
u8 field_0x74;
u8 field_0x75;
u8 field_0x76;
u8 field_0x77;
u8 field_0x78;
u8 field_0x79;
u8 field_0x7a;
u8 field_0x7b;
u8 field_0x7c;
u8 field_0x7d;
u8 field_0x7e;
u8 field_0x7f;
u8 field_0x80;
u8 field_0x81;
u8 field_0x82;
u8 field_0x83;
u8 field_0x84;
u8 field_0x85;
u8 field_0x86;
u8 field_0x87;
u8 field_0x88;
u8 field_0x89;
u8 field_0x8a;
u8 field_0x8b;
u8 field_0x8c;
u8 field_0x8d;
u8 field_0x8e;
u8 field_0x8f;
u8 field_0x90;
u8 field_0x91;
u8 field_0x92;
u8 field_0x93;
};
extern "C" {
void stop__8JAISoundFUl(JAISound*, u32 fadeout);
void stop__8JAISoundFv(JAISound*);
}
class JAISoundHandle {
public:
JAISoundHandle(); // noninline in JAUClusterSound.cpp
bool isSoundAttached() const { return mSound != NULL; }
JAISound* operator->() const {
JUT_ASSERT(mSound != NULL);
return mSound;
}
operator bool() const { return isSoundAttached(); }
void releaseSound();
private:
JAISound* mSound;
};
#endif
@@ -0,0 +1,11 @@
#ifndef JAISOUNDHANDLES_H_
#define JAISOUNDHANDLES_H_
#include "JSystem/JAudio2/JAISound/JAISound.h"
class JAISoundHandles {
public:
JAISoundHandle mHandles[24];
};
#endif // JAISOUNDHANDLES_H_
@@ -0,0 +1,22 @@
#ifndef __JASGADGET_H__
#define __JASGADGET_H__
//! @todo figure out *GlobalInstance singleton handlers once we can properly place statics.
/*
template <typename T>
class JASGlobalInstance {
public:
JASGlobalInstance(bool p1) {
JASGlobalInstance<T> pJVar1;
if ((p1 == true) && (sInstance != NULL)) {
// assert
pJVar1 = this;
}
sInstance = pJVar1;
}
private:
static T sInstance;
}; */
#endif
@@ -0,0 +1,6 @@
#ifndef JAUAUDIOARCLOADER_H_
#define JAUAUDIOARCLOADER_H_
struct JAUSection; // goes in JAudio2.a JAUAudioArcLoader.o
#endif // JAUAUDIOARCLOADER_H_
@@ -3,11 +3,6 @@
#include "dolphin/types.h"
struct JAISoundHandle {
void* unk; // probably JAISound*
JAISoundHandle();
~JAISoundHandle();
};
#endif
@@ -0,0 +1,23 @@
/* 80281D5C 0027EC9C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80281D60 0027ECA0 7C 08 02 A6 */ mflr r0
/* 80281D64 0027ECA4 90 01 00 24 */ stw r0, 0x24(r1)
/* 80281D68 0027ECA8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80281D6C 0027ECAC 7C 7F 1B 78 */ mr r31, r3
/* 80281D70 0027ECB0 4B FF F9 21 */ bl __ct__Q27JStudio14TFunctionValueFv
/* 80281D74 0027ECB4 38 7F 00 04 */ addi r3, r31, 4
/* 80281D78 0027ECB8 38 81 00 08 */ addi r4, r1, 8
/* 80281D7C 0027ECBC 88 0D 8C 68 */ lbz r0, 0x804511E8-0x80458580(r13) /*SDA HACK; original: lbl_804511E8-_SDA_BASE_(r13)*/
/* 80281D80 0027ECC0 98 01 00 08 */ stb r0, 8(r1)
/* 80281D84 0027ECC4 48 05 AF 4D */ bl JGadget_NS_TVector_pointer_void
/* 80281D88 0027ECC8 3C 60 80 3C */ lis r3, lbl_803C4980@ha
/* 80281D8C 0027ECCC 38 03 49 80 */ addi r0, r3, lbl_803C4980@l
/* 80281D90 0027ECD0 90 1F 00 00 */ stw r0, 0(r31)
/* 80281D94 0027ECD4 38 00 00 00 */ li r0, 0
/* 80281D98 0027ECD8 90 1F 00 18 */ stw r0, 0x18(r31)
/* 80281D9C 0027ECDC 90 1F 00 20 */ stw r0, 0x20(r31)
/* 80281DA0 0027ECE0 7F E3 FB 78 */ mr r3, r31
/* 80281DA4 0027ECE4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80281DA8 0027ECE8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80281DAC 0027ECEC 7C 08 03 A6 */ mtlr r0
/* 80281DB0 0027ECF0 38 21 00 20 */ addi r1, r1, 0x20
/* 80281DB4 0027ECF4 4E 80 00 20 */ blr
+2 -2
View File
@@ -1,5 +1,5 @@
#ifndef JSYSTEM_JGADGET_BINARY_H
#define JSYSTEM_JGADGET_BINARY_H
#ifndef JSYSTEM_JGADGET_BINARY_H_
#define JSYSTEM_JGADGET_BINARY_H_
#include "dolphin/types.h"
+8 -5
View File
@@ -1,5 +1,5 @@
#ifndef JSYSTEM_JGADGET_LINKLIST_H
#define JSYSTEM_JGADGET_LINKLIST_H
#ifndef JSYSTEM_JGADGET_LINKLIST_H_
#define JSYSTEM_JGADGET_LINKLIST_H_
#include "dolphin/types.h"
@@ -31,16 +31,19 @@ struct TNodeLinkList {
oNode_.pPrev_ = &oNode_;
}
void Insert(iterator iter, TLinkListNode* node);
TLinkListNode* size() const { return iter.node; }
bool empty() const { return size() == 0; }
iterator end() { return iterator(oNode_.pNext_); }
void Insert(iterator iter, TLinkListNode* node);
iterator iter;
TLinkListNode oNode_;
};
// Currently non matching, but its a rough idea
template <class T, int U, int V>
// Shows up as 3 args in Ghidra, but the 'undefined' is just -1
template <class T, int U>
struct TLinkList : TNodeLinkList {
TLinkListNode* Element_toNode(T* p) { return &static_cast<JStudio::stb::TObject*>(p)->mNode; }
+21
View File
@@ -0,0 +1,21 @@
#ifndef JGADGET_SEARCH_H
#define JGADGET_SEARCH_H
// double FuncDef550(double , double )
#include "global.h"
namespace JGadget {
//! @todo: mangled name isn't correct, fix this
//! Current: toValueFromIndex<PFdd_d>__7JGadgetFiPCPFdd_dUlRCPFdd_d
//! Target: toValueFromIndex<PFdd_d>__7JGadgetFiPCPFdd_dUlRCPFdd_d_RCPFdd_d
template <typename T>
inline const T& toValueFromIndex(int idx, const T* pValue, u32 count, const T& fallback) {
JUT_ASSERT(pValue != NULL);
return (idx >= count) ? fallback : pValue[idx];
}
} // namespace JGadget
#endif // JGADGET_SEARCH_H
+65
View File
@@ -0,0 +1,65 @@
#ifndef JGADGET_VECTOR_H
#define JGADGET_VECTOR_H
#include "global.h"
static u8 lbl_804511E8;
namespace JGadget {
namespace vector {
u32 extend_default(u32 arg1, u32 arg2, u32 arg3);
typedef u32 (*ExtendFunc)(u32, u32, u32);
} // namespace vector
template <typename T>
struct TAllocator {
static TAllocator get() {}
inline TAllocator() { _0 = lbl_804511E8; }
u8 _0;
u8 _1[3];
u32 _4;
u32 _8;
u32 _c;
};
template <typename T, template <class> class Allocator>
struct TVector {
TVector(Allocator<T> alloc) {
_0 = NULL;
pBegin_ = _0;
_c = NULL;
extend = vector::extend_default;
}
void** begin() { return pBegin_; }
void** end() { return pEnd_; }
// void erase(void** arg1, void** arg2) {}
void** _0;
void** pBegin_;
void** pEnd_;
u32 _c;
vector::ExtendFunc extend;
};
struct TVector_pointer_void : TVector<void*, TAllocator> {
// TVector_pointer_void(const TAllocator<void*>& allocator);
void clear() { erase(begin(), end()); }
private:
void erase(void** pItFirst, void** pItLast);
};
template <typename T>
struct TVector_pointer : TVector_pointer_void {
// TVector_pointer(const TAllocator<void*>& allocator) : TVector_pointer_void(allocator) {}
};
} // namespace JGadget
#endif // JGADGET_VECTOR_H
+25
View File
@@ -0,0 +1,25 @@
#ifndef __JGEOMETRY_H__
#define __JGEOMETRY_H__
#include "dolphin/types.h"
namespace JGeometry {
template <typename T>
struct TVec3 {
T x;
T y;
T z;
};
/*
template <>
struct TVec3<f32> {
TVec3(Vec& v) {
}
};
*/
} // namespace JGeometry
#endif
+2 -2
View File
@@ -1,5 +1,5 @@
#ifndef __JKRARAM_H__
#define __JKRARAM_H__
#ifndef JKRARAM_H_
#define JKRARAM_H_
#include "JSystem/JKernel/JKRAramHeap/JKRAramHeap.h"
#include "JSystem/JKernel/JKRDvdRipper/JKRDvdRipper.h"
@@ -1,43 +0,0 @@
/* create__7JKRAramFUlUllll __ct__7JKRAramFUlUll::create(unsigned long, unsigned long, long, long, long) */
/* JKRAram_NS_create */
/* 802D1FA4 002CEEE4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D1FA8 002CEEE8 7C 08 02 A6 */ mflr r0
/* 802D1FAC 002CEEEC 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D1FB0 002CEEF0 39 61 00 20 */ addi r11, r1, 0x20
/* 802D1FB4 002CEEF4 48 09 02 21 */ bl _savegpr_27
/* 802D1FB8 002CEEF8 7C 7B 1B 78 */ mr r27, r3
/* 802D1FBC 002CEEFC 7C 9C 23 78 */ mr r28, r4
/* 802D1FC0 002CEF00 7C BD 2B 78 */ mr r29, r5
/* 802D1FC4 002CEF04 7C DE 33 78 */ mr r30, r6
/* 802D1FC8 002CEF08 7C FF 3B 78 */ mr r31, r7
/* 802D1FCC 002CEF0C 80 0D 8E 48 */ lwz r0, sAramObject__7JKRAram-_SDA_BASE_(r13)
/* 802D1FD0 002CEF10 28 00 00 00 */ cmplwi r0, 0
/* 802D1FD4 002CEF14 40 82 00 34 */ bne lbl_802D2008
/* 802D1FD8 002CEF18 38 60 00 A4 */ li r3, 0xa4
/* 802D1FDC 002CEF1C 80 8D 8D F0 */ lwz r4, sSystemHeap__7JKRHeap-_SDA_BASE_(r13)
/* 802D1FE0 002CEF20 38 A0 00 00 */ li r5, 0
/* 802D1FE4 002CEF24 4B FF CC B5 */ bl __nw__FUlP7JKRHeapi
/* 802D1FE8 002CEF28 7C 60 1B 79 */ or. r0, r3, r3
/* 802D1FEC 002CEF2C 41 82 00 18 */ beq lbl_802D2004
/* 802D1FF0 002CEF30 7F 64 DB 78 */ mr r4, r27
/* 802D1FF4 002CEF34 7F 85 E3 78 */ mr r5, r28
/* 802D1FF8 002CEF38 7F E6 FB 78 */ mr r6, r31
/* 802D1FFC 002CEF3C 48 00 00 45 */ bl __ct__7JKRAramFUlUll
/* 802D2000 002CEF40 7C 60 1B 78 */ mr r0, r3
lbl_802D2004:
/* 802D2004 002CEF44 90 0D 8E 48 */ stw r0, sAramObject__7JKRAram-_SDA_BASE_(r13)
lbl_802D2008:
/* 802D2008 002CEF48 7F A3 EB 78 */ mr r3, r29
/* 802D200C 002CEF4C 48 00 1B 3D */ bl create__13JKRAramStreamFl
/* 802D2010 002CEF50 7F C3 F3 78 */ mr r3, r30
/* 802D2014 002CEF54 48 00 96 6D */ bl create__9JKRDecompFl
/* 802D2018 002CEF58 80 6D 8E 48 */ lwz r3, sAramObject__7JKRAram-_SDA_BASE_(r13)
/* 802D201C 002CEF5C 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 802D2020 002CEF60 48 06 F7 95 */ bl OSResumeThread
/* 802D2024 002CEF64 80 6D 8E 48 */ lwz r3, sAramObject__7JKRAram-_SDA_BASE_(r13)
/* 802D2028 002CEF68 39 61 00 20 */ addi r11, r1, 0x20
/* 802D202C 002CEF6C 48 09 01 F5 */ bl _restgpr_27
/* 802D2030 002CEF70 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D2034 002CEF74 7C 08 03 A6 */ mtlr r0
/* 802D2038 002CEF78 38 21 00 20 */ addi r1, r1, 0x20
/* 802D203C 002CEF7C 4E 80 00 20 */ blr
@@ -1,74 +0,0 @@
/* __ct__7JKRAramFUlUll __ct__7JKRAramFUlUll::__ct(unsigned long, unsigned long, long) */
/* JKRAram */
/* 802D2040 002CEF80 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D2044 002CEF84 7C 08 02 A6 */ mflr r0
/* 802D2048 002CEF88 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D204C 002CEF8C 39 61 00 20 */ addi r11, r1, 0x20
/* 802D2050 002CEF90 48 09 01 89 */ bl _savegpr_28
/* 802D2054 002CEF94 7C 7C 1B 78 */ mr r28, r3
/* 802D2058 002CEF98 7C 9D 23 78 */ mr r29, r4
/* 802D205C 002CEF9C 7C BE 2B 78 */ mr r30, r5
/* 802D2060 002CEFA0 38 80 0C 00 */ li r4, 0xc00
/* 802D2064 002CEFA4 38 A0 00 10 */ li r5, 0x10
/* 802D2068 002CEFA8 4B FF F5 01 */ bl __ct__9JKRThreadFUlii
/* 802D206C 002CEFAC 3C 60 80 3D */ lis r3, lbl_803CC158@ha
/* 802D2070 002CEFB0 38 03 C1 58 */ addi r0, r3, lbl_803CC158@l
/* 802D2074 002CEFB4 90 1C 00 00 */ stw r0, 0(r28)
/* 802D2078 002CEFB8 38 7C 00 98 */ addi r3, r28, 0x98
/* 802D207C 002CEFBC 38 80 00 03 */ li r4, 3
/* 802D2080 002CEFC0 48 07 E6 AD */ bl ARInit
/* 802D2084 002CEFC4 7C 7F 1B 78 */ mr r31, r3
/* 802D2088 002CEFC8 48 08 01 DD */ bl ARQInit
/* 802D208C 002CEFCC 48 07 E7 65 */ bl ARGetSize
/* 802D2090 002CEFD0 93 BC 00 80 */ stw r29, 0x80(r28)
/* 802D2094 002CEFD4 3C 1E 00 01 */ addis r0, r30, 1
/* 802D2098 002CEFD8 28 00 FF FF */ cmplwi r0, 0xffff
/* 802D209C 002CEFDC 40 82 00 1C */ bne lbl_802D20B8
/* 802D20A0 002CEFE0 7C 1D 18 50 */ subf r0, r29, r3
/* 802D20A4 002CEFE4 7C 1F 00 50 */ subf r0, r31, r0
/* 802D20A8 002CEFE8 90 1C 00 88 */ stw r0, 0x88(r28)
/* 802D20AC 002CEFEC 38 00 00 00 */ li r0, 0
/* 802D20B0 002CEFF0 90 1C 00 90 */ stw r0, 0x90(r28)
/* 802D20B4 002CEFF4 48 00 00 18 */ b lbl_802D20CC
lbl_802D20B8:
/* 802D20B8 002CEFF8 93 DC 00 88 */ stw r30, 0x88(r28)
/* 802D20BC 002CEFFC 7C 1D F2 14 */ add r0, r29, r30
/* 802D20C0 002CF000 7C 00 18 50 */ subf r0, r0, r3
/* 802D20C4 002CF004 7C 1F 00 50 */ subf r0, r31, r0
/* 802D20C8 002CF008 90 1C 00 90 */ stw r0, 0x90(r28)
lbl_802D20CC:
/* 802D20CC 002CF00C 80 7C 00 80 */ lwz r3, 0x80(r28)
/* 802D20D0 002CF010 48 07 E5 F5 */ bl ARAlloc
/* 802D20D4 002CF014 90 7C 00 7C */ stw r3, 0x7c(r28)
/* 802D20D8 002CF018 80 7C 00 88 */ lwz r3, 0x88(r28)
/* 802D20DC 002CF01C 48 07 E5 E9 */ bl ARAlloc
/* 802D20E0 002CF020 90 7C 00 84 */ stw r3, 0x84(r28)
/* 802D20E4 002CF024 80 7C 00 90 */ lwz r3, 0x90(r28)
/* 802D20E8 002CF028 28 03 00 00 */ cmplwi r3, 0
/* 802D20EC 002CF02C 41 82 00 10 */ beq lbl_802D20FC
/* 802D20F0 002CF030 48 07 E5 D5 */ bl ARAlloc
/* 802D20F4 002CF034 90 7C 00 8C */ stw r3, 0x8c(r28)
/* 802D20F8 002CF038 48 00 00 0C */ b lbl_802D2104
lbl_802D20FC:
/* 802D20FC 002CF03C 38 00 00 00 */ li r0, 0
/* 802D2100 002CF040 90 1C 00 8C */ stw r0, 0x8c(r28)
lbl_802D2104:
/* 802D2104 002CF044 38 60 00 44 */ li r3, 0x44
/* 802D2108 002CF048 80 8D 8D F0 */ lwz r4, sSystemHeap__7JKRHeap-_SDA_BASE_(r13)
/* 802D210C 002CF04C 38 A0 00 00 */ li r5, 0
/* 802D2110 002CF050 4B FF CB 89 */ bl __nw__FUlP7JKRHeapi
/* 802D2114 002CF054 7C 60 1B 79 */ or. r0, r3, r3
/* 802D2118 002CF058 41 82 00 14 */ beq lbl_802D212C
/* 802D211C 002CF05C 80 9C 00 84 */ lwz r4, 0x84(r28)
/* 802D2120 002CF060 80 BC 00 88 */ lwz r5, 0x88(r28)
/* 802D2124 002CF064 48 00 0D 21 */ bl __ct__11JKRAramHeapFUlUl
/* 802D2128 002CF068 7C 60 1B 78 */ mr r0, r3
lbl_802D212C:
/* 802D212C 002CF06C 90 1C 00 94 */ stw r0, 0x94(r28)
/* 802D2130 002CF070 7F 83 E3 78 */ mr r3, r28
/* 802D2134 002CF074 39 61 00 20 */ addi r11, r1, 0x20
/* 802D2138 002CF078 48 09 00 ED */ bl _restgpr_28
/* 802D213C 002CF07C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D2140 002CF080 7C 08 03 A6 */ mtlr r0
/* 802D2144 002CF084 38 21 00 20 */ addi r1, r1, 0x20
/* 802D2148 002CF088 4E 80 00 20 */ blr

Some files were not shown because too many files have changed in this diff Show More