Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
6 changes: 3 additions & 3 deletions configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -628,14 +628,14 @@ def MatchingFor(*versions):
Object(MatchingFor("GZ2E01"), "d/d_msg_scrn_base.cpp"),
Object(MatchingFor("GZ2E01"), "d/d_msg_scrn_boss.cpp"),
Object(MatchingFor("GZ2E01"), "d/d_msg_scrn_explain.cpp"),
Object(NonMatching, "d/d_msg_scrn_item.cpp"),
Object(MatchingFor("GZ2E01"), "d/d_msg_scrn_item.cpp"),
Object(MatchingFor("GZ2E01"), "d/d_msg_scrn_howl.cpp"),
Object(MatchingFor("GZ2E01"), "d/d_msg_scrn_jimaku.cpp"),
Object(MatchingFor("GZ2E01"), "d/d_msg_scrn_kanban.cpp"),
Object(MatchingFor("GZ2E01"), "d/d_msg_scrn_light.cpp"),
Object(MatchingFor("GZ2E01"), "d/d_msg_scrn_place.cpp"),
Object(MatchingFor("GZ2E01"), "d/d_msg_scrn_staff.cpp"),
Object(NonMatching, "d/d_msg_scrn_talk.cpp"),
Object(MatchingFor("GZ2E01"), "d/d_msg_scrn_talk.cpp"),
Object(MatchingFor("GZ2E01"), "d/d_msg_scrn_tree.cpp"),
Object(MatchingFor("GZ2E01"), "d/d_msg_string_base.cpp"),
Object(MatchingFor("GZ2E01"), "d/d_msg_string.cpp"),
Expand Down Expand Up @@ -919,7 +919,7 @@ def MatchingFor(*versions):
Object(NonMatching, "Z2AudioLib/Z2LinkMgr.cpp", extra_cflags=['-pragma "nosyminline on"']),
Object(NonMatching, "Z2AudioLib/Z2EnvSeMgr.cpp"),
Object(MatchingFor("GZ2E01"), "Z2AudioLib/Z2WolfHowlMgr.cpp"),
Object(NonMatching, "Z2AudioLib/Z2SpeechMgr2.cpp"),
Object(MatchingFor("GZ2E01"), "Z2AudioLib/Z2SpeechMgr2.cpp", extra_cflags=['-pragma "nosyminline on"']),
Object(NonMatching, "Z2AudioLib/Z2AudioMgr.cpp"),
],
},
Expand Down
2 changes: 1 addition & 1 deletion include/JSystem/J2DGraph/J2DPane.h
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ class J2DPane {

MtxP getGlbMtx() { return mGlobalMtx; }

JGeometry::TBox2<f32>& getGlbBounds() { return mGlobalBounds; }
const JGeometry::TBox2<f32>& getGlbBounds() const { return mGlobalBounds; }

void setMtx(Mtx m) { MTXCopy(m, mPositionMtx); }

Expand Down
3 changes: 1 addition & 2 deletions include/JSystem/JGadget/binary.h
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ struct TValueIterator {
const void* get() const { return mBegin; }

typename Parser::ParseType operator*() const {
return *(typename Parser::ParseType*)get();
return Parser::parse(get());
}

TValueIterator& operator++() {
Expand Down Expand Up @@ -127,7 +127,6 @@ struct TParseValue_misaligned : TParseValue_raw_<T> {

template<typename T>
struct TValueIterator_misaligned : public TValueIterator<TParseValue_misaligned<T>, sizeof(T)> {
TValueIterator_misaligned(const TValueIterator_misaligned<T>& other) : TValueIterator<TParseValue_misaligned<T>, sizeof(T)>(other) {}
TValueIterator_misaligned(const void* begin) : TValueIterator<TParseValue_misaligned<T>, sizeof(T)>(begin) {}
};

Expand Down
3 changes: 2 additions & 1 deletion include/JSystem/JGadget/pointer.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ template<class T>
class TPointer {
public:
TPointer(T* ptr) : mPtr(ptr) {}
~TPointer() {}
void set(T* ptr) { mPtr = ptr; }
T* mPtr;
};
Expand All @@ -22,4 +23,4 @@ class TPointer_delete : public TPointer<T> {

}

#endif
#endif
2 changes: 1 addition & 1 deletion include/JSystem/JMath/JMath.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ void JMAVECScaleAdd(register const Vec* vec1, register const Vec* vec2, register
register f32 scale);

inline int JMAAbs(int value) {
return value > 0 ? value : -value;
return __abs(value);
}

inline f32 JMAFastReciprocal(f32 value) {
Expand Down
15 changes: 11 additions & 4 deletions include/JSystem/JMath/random.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,6 @@ struct TRandom_fast_ {

u32 get_bit32(void) { return this->get(); }

u8 get_uint8(u8 param_0) {
return get_ufloat_1() * param_0;
}

// due to the float constant, having this function inlined adds that float to data,
// making it not match
float get_ufloat_1(void) {
Expand All @@ -39,6 +35,17 @@ struct TRandom_fast_ {

void setSeed(u32 seed) { value = seed; }
};

template <class RandomT>
class TRandom_ : public RandomT {
public:
TRandom_(u32 value) : RandomT(value) {}

u8 get_uint8(u8 param_0) {
return get_ufloat_1() * param_0;
}
};

} // namespace JMath

#endif /* RANDOM_H */
4 changes: 4 additions & 0 deletions include/JSystem/JUtility/JUTAssert.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@
#define JUT_WARN(LINE, ...) \
JUTAssertion::setWarningMessage_f(JUTAssertion::getSDevice(), __FILE__, LINE, __VA_ARGS__); \

#define JUT_WARN_1(LINE, ...) \
JUTAssertion::setWarningMessage_f(1, __FILE__, LINE, __VA_ARGS__); \

#define JUT_LOG(LINE, ...) \
JUTAssertion::setLogMessage_f(JUTAssertion::getSDevice(), __FILE__, LINE, __VA_ARGS__)

Expand All @@ -28,6 +31,7 @@
#define JUT_ASSERT_MSG(...) (void)0;
#define JUT_PANIC(...)
#define JUT_WARN(...)
#define JUT_WARN_1(...)
#define JUT_LOG(...)
#define JUT_CONFIRM(...)
#endif
Expand Down
4 changes: 2 additions & 2 deletions include/Z2AudioLib/Z2SceneMgr.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,13 @@ class Z2SceneMgr : public JASGlobalInstance<Z2SceneMgr> {
bool loadSeWave(u32);
bool loadBgmWave(u32);

bool isSceneExist() const { return sceneExist; }
bool isSceneExist() { return sceneExist; }
int getCurrentSceneNum() const { return sceneNum; }
s8 getCurrentRoomNum() { return roomNum; }
bool isInGame() const { return inGame; }
void setInGame(bool i_inGame) { inGame = i_inGame; }
bool isInDarkness() const { return inDarkness; }
s8 getRoomReverb() const { return dComIfGp_getReverb(roomNum); }
s8 getRoomReverb() { return dComIfGp_getReverb(roomNum); }
bool isMovieDemo() { return sceneNum == 2 || sceneNum == 8 || sceneNum == 9; }
s32 getSeLoadStatus(u32 wave) { return getWaveLoadStatus(wave, 0); }
s32 getBgmLoadStatus(u32 wave) { return getWaveLoadStatus(wave, 1); }
Expand Down
2 changes: 1 addition & 1 deletion include/Z2AudioLib/Z2SpeechMgr2.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ struct Z2SpeechMgr2 : public JASGlobalInstance<Z2SpeechMgr2> {

/* 0x000 */ JAISoundHandle field_0x0;
/* 0x004 */ JAISoundHandle field_0x4;
/* 0x008 */ JMath::TRandom_fast_ random;
/* 0x008 */ JMath::TRandom_<JMath::TRandom_fast_> random;
/* 0x00C */ Z2SpeechStarter mSpeech;
/* 0x010 */ u16 mText[500];
/* 0x3F8 */ s16 mTextNum;
Expand Down
2 changes: 1 addition & 1 deletion include/d/d_demo.h
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ class dDemo_actor_c : public JStage::TActor {
}

void setModel(J3DModel* p_model) { mModel = p_model; }
u8 checkEnable(u16 flag) { return mFlags & flag; }
BOOL checkEnable(u16 flag) { return mFlags & flag; }
void onEnable(u16 flag) { mFlags |= flag; }
cXyz& getTrans() { return mTrans; }
cXyz& getScale() { return mScale; }
Expand Down
1 change: 1 addition & 0 deletions include/d/d_event.h
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ class dEvt_control_c {
u8 getGtItm() { return mGtItm; }
void startCheckSkipEdge(void* param_0) { setSkipProc(param_0, dEv_noFinishSkipProc, 0); }
bool checkSkipEdge() { return chkFlag2(8) != false; }
void setDebugStb(u8 stb) { mDebugStb = stb; }

public:
/* 0x000 */ u8 field_0x0[4];
Expand Down
10 changes: 9 additions & 1 deletion include/d/d_meter_HIO.h
Original file line number Diff line number Diff line change
Expand Up @@ -552,13 +552,21 @@ class dMeter_drawLightDropHIO_c {
/* 0xA8 */ u8 mAnimDebug;
}; // Size: 0xAC

class dMeter_drawHIO_c {
class dMeter_drawHIO_c : public JORReflexible {
public:
/* 801FF5B8 */ dMeter_drawHIO_c();
/* 80201128 */ virtual ~dMeter_drawHIO_c() {}

#ifdef DEBUG
virtual void listenPropertyEvent(const JORPropertyEvent*);
virtual void genMessage(JORMContext*);
#endif

/* 0x000 */ // vtable
/* 0x004 */ s8 field_0x4;
#ifdef DEBUG
int field_0x8_debug;
#endif
/* 0x008 */ f32 mLifeTopPosX;
/* 0x00C */ f32 mLifeTopPosY;
/* 0x010 */ f32 mNoMagicPosY;
Expand Down
3 changes: 3 additions & 0 deletions include/m_Do/m_Do_graphic.h
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,9 @@ class mDoGph_gInf_c {
static void setWideZoomLightProjection(Mtx m) {}
static void setFrameRate(u16 i_rate) { JFWDisplay::getManager()->setFrameRate(i_rate); }

// NONMATCHING - Need to define all mDoGph_gInf_c shieldD members
static u8 isWide() { return false; }

static GXTexObj mFrameBufferTexObj;
static GXTexObj mZbufferTexObj;
static bloom_c m_bloom;
Expand Down
1 change: 0 additions & 1 deletion src/Z2AudioLib/Z2SoundInfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,6 @@ u32 const JAUStdSoundTableType::STRM_CH_SHIFT = 2;

/* 802BB8E0-802BBA10 2B6220 0130+00 1/0 0/0 0/0 .text
* getStreamInfo__11Z2SoundInfoCF10JAISoundIDP9JAIStream */
// NONMATCHING regalloc
void Z2SoundInfo::getStreamInfo(JAISoundID param_1, JAIStream* param_2) const {
int numChild;
JAUSoundTableItem* data;
Expand Down
60 changes: 35 additions & 25 deletions src/Z2AudioLib/Z2SpeechMgr2.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
//
// Generated By: dol2asm
// Translation Unit: Z2SpeechMgr2
// Z2SpeechMgr2
//

#include "Z2AudioLib/Z2SpeechMgr2.h"
Expand Down Expand Up @@ -364,7 +363,7 @@ Z2SpeechMgr2::Z2SpeechMgr2() : JASGlobalInstance<Z2SpeechMgr2>(true), random(0)

/* 802CBD88-802CBF60 2C66C8 01D8+00 1/0 1/1 0/0 .text setString__12Z2SpeechMgr2FPCUssUcUs
*/
void Z2SpeechMgr2::setString(u16 const* i_text, s16 i_textNum, u8 i_speaker, u16 i_mood) {
void Z2SpeechMgr2::setString(u16 const* s, s16 i_textNum, u8 i_speaker, u16 i_mood) {
switch (i_speaker) {
case 0x13:
case 0x15:
Expand Down Expand Up @@ -487,15 +486,21 @@ void Z2SpeechMgr2::setString(u16 const* i_text, s16 i_textNum, u8 i_speaker, u16
mText[i] = 0;
}

JUT_ASSERT(383, s != 0);

if (i_textNum > 500) {
mTextNum = 500;
JUT_WARN(387, "TOO MANY TEXT : now(%d) > max(%d)", i_textNum, 500);
JUT_WARN_1(387, "TOO MANY TEXT : now(%d) > max(%d)", i_textNum, 500);
} else {
mTextNum = i_textNum;
}

#ifdef DEBUG
for (int i = 0; i <= mTextNum; i++) {
#else
for (int i = 0; i < mTextNum; i++) {
mText[i] = i_text[i];
#endif
mText[i] = s[i];
}

mTextCount = 0;
Expand All @@ -514,7 +519,11 @@ void Z2SpeechMgr2::setString(u16 const* i_text, s16 i_textNum, u8 i_speaker, u16
void Z2SpeechMgr2::setTextCount(s16 i_textCount) {
if (mVoice != 99) {
field_0x3ff = 0x0;

#ifndef DEBUG
i_textCount = (i_textCount == 0) ? 0 : i_textCount - 1;
#endif

bool all_text = false;
if (mTextCount == 0 && i_textCount >= mTextNum) {
all_text = true;
Expand Down Expand Up @@ -587,8 +596,8 @@ void Z2SpeechMgr2::speakOneWord(bool param_0) {
}
u32 sound = mMood + Z2SE_HYL_MDN_RPLY;
f32 fVar1 = Z2GetSceneMgr()->getRoomReverb() / 127.0f;
mSpeech.startSound(sound, &field_0x0, NULL, 0,
fVar1, 1.0f, 1.0f, -1.0f, -1.0f, 0);
bool soundStarted =
mSpeech.startSound(sound, &field_0x0, NULL, 0, fVar1, 1.0f, 1.0f, -1.0f, -1.0f, 0);
mSpeech.setPortData(&field_0x0, 8, field_0x402[field_0x401 - 1] + 1, -1);
if (field_0x400 == 0) {
selectUnit(param_0);
Expand Down Expand Up @@ -690,7 +699,6 @@ typedef struct {
} Z2ConnectCost;

/* 802CC4C0-802CC738 2C6E00 0278+00 2/2 0/0 0/0 .text selectUnit__12Z2SpeechMgr2Fb */
// NONMATCHING minor regalloc
void Z2SpeechMgr2::selectUnit(bool param_0) {
Z2ConnectCost cost[5];

Expand All @@ -705,14 +713,14 @@ void Z2SpeechMgr2::selectUnit(bool param_0) {

if (field_0x401 != 0 && param_0) {
cVar5 = 0;
ZVar2 = field_0x402[field_0x401 - 1];
s8 ZVar4 = field_0x402[field_0x401 - 1];

while (true) {
bool bVar1 = false;
ZVar3 = random.get_uint8(Z2MdnPrm::sPrm[mMood].field_0x8);
ZVar2 = random.get_uint8(Z2MdnPrm::sPrm[mMood].field_0x8);

for (int i = 0; i < field_0x401; i++) {
if (field_0x402[i] == ZVar3) {
if (field_0x402[i] == ZVar2) {
bVar1 = true;
break;
}
Expand All @@ -723,7 +731,7 @@ void Z2SpeechMgr2::selectUnit(bool param_0) {
}

for (int i = 0; i < cVar5; i++) {
if (ZVar3 == cost[i].field_0x0) {
if (ZVar2 == cost[i].field_0x0) {
bVar1 = true;
break;
}
Expand All @@ -733,31 +741,32 @@ void Z2SpeechMgr2::selectUnit(bool param_0) {
continue;
}

u8 local_3f = JMAAbs(Z2MdnPrm::sPrm[mMood].field_0x0[ZVar3 * 2]
- Z2MdnPrm::sPrm[mMood].field_0x0[ZVar2 * 2 + 1]);
cost[cVar5] = (Z2ConnectCost){ZVar3, local_3f};
const u8 (*prm)[2] = (u8 (*)[2])Z2MdnPrm::sPrm[mMood].field_0x0;
u8 local_3f = JMAAbs(prm[ZVar2][0] - prm[ZVar4][1]);
Z2ConnectCost connectCost = {ZVar2, local_3f};
cost[cVar5] = connectCost;
cVar5++;

if (cVar5 == 5) {
u16 tmp = cost[0].field_0x1;
ZVar2 = cost[0].field_0x0;
for (int i = 0; i < 5; i++) {
if (cost[i].field_0x1 < tmp) {
tmp = cost[i].field_0x1;
ZVar2 = cost[i].field_0x0;
}
}
break;
}
}

u16 tmp = cost[0].field_0x1;
ZVar2 = cost[0].field_0x0;
for (int i = 0; i < 5; i++) {
if (cost[i].field_0x1 < tmp) {
tmp = cost[i].field_0x1;
ZVar2 = cost[i].field_0x0;
}
}
}

field_0x402[field_0x401] = ZVar2;
field_0x401++;
}

/* 802CC738-802CC9D0 2C7078 0298+00 1/1 0/0 0/0 .text selectTail__12Z2SpeechMgr2Fv */
// NONMATCHING minor regalloc
void Z2SpeechMgr2::selectTail() {
Z2ConnectCost cost[5];
s8 cVar9 = 0;
Expand Down Expand Up @@ -791,7 +800,8 @@ void Z2SpeechMgr2::selectTail() {
if (!bVar5) {
u8 local_3f = JMAAbs(Z2MdnPrm::sPrm[mMood].field_0x4[ZVar6]
- Z2MdnPrm::sPrm[mMood].field_0x0[ZVar1 * 2 + 1]);
cost[cVar9] = (Z2ConnectCost){ZVar6, local_3f};
Z2ConnectCost connectCost = {ZVar6, local_3f};
cost[cVar9] = connectCost;
cVar9++;

if (cVar9 == bVar3 || cVar9 == 5) {
Expand Down
Loading