mirror of https://github.com/zeldaret/tp.git
match some Z2Calc functions (#72)
* Z2Calc OK * inline definitions in random.h and format * set -enum int compiler flag and fix enum hacks * note for get_ufloat_1 inline * PR suggestions and UB note Co-authored-by: Pheenoh <pheenoh@gmail.com>
This commit is contained in:
parent
b8ecef0ddb
commit
6d946e8330
2
Makefile
2
Makefile
|
|
@ -70,7 +70,7 @@ ASFLAGS := -mgekko -I include
|
|||
LDFLAGS := -map $(MAP) -fp hard -nodefaults -w off
|
||||
|
||||
# Compiler flags
|
||||
CFLAGS := -Cpp_exceptions off -proc gekko -fp hard -O3 -nodefaults -msgstyle gcc $(INCLUDES)
|
||||
CFLAGS := -Cpp_exceptions off -proc gekko -fp hard -O3 -nodefaults -msgstyle gcc -enum int $(INCLUDES)
|
||||
|
||||
# for postprocess.py
|
||||
PROCFLAGS := -fprologue-fixup=old_stack
|
||||
|
|
|
|||
|
|
@ -10,9 +10,6 @@ public:
|
|||
enum EAllocMode {
|
||||
HEAD = 0,
|
||||
TAIL = 1,
|
||||
|
||||
__EALLOCMODE_FORCE_ENUM_S32 = INT32_MAX,
|
||||
__EALLOCMODE_FORCE_ENUM_SIGNED = -1,
|
||||
};
|
||||
|
||||
public:
|
||||
|
|
|
|||
|
|
@ -74,17 +74,12 @@ public:
|
|||
MOUNT_ARAM = 2,
|
||||
MOUNT_DVD = 3,
|
||||
MOUNT_COMP = 4,
|
||||
|
||||
__EMOUNT_MODE_FORCE_32BIT = UINT32_MAX,
|
||||
};
|
||||
|
||||
enum EMountDirection {
|
||||
UNKNOWN_MOUNT_DIRECTION = 0,
|
||||
HEAD = 1,
|
||||
TAIL = 2,
|
||||
|
||||
__EMOUNT_DIRECTION_FORCE_32BIT = INT32_MAX,
|
||||
__EMOUNT_DIRECTION_FORCE_SIGNED = -1,
|
||||
};
|
||||
|
||||
class CArcName {
|
||||
|
|
@ -120,7 +115,7 @@ public:
|
|||
u32 countResource(void) const;
|
||||
u32 getFileAttribute(u32) const;
|
||||
|
||||
EMountMode getMountMode() const { return (EMountMode)mMountMode; }
|
||||
u32 getMountMode() const { return mMountMode; }
|
||||
|
||||
protected:
|
||||
bool isSameName(CArcName&, u32, u16) const;
|
||||
|
|
|
|||
|
|
@ -41,9 +41,6 @@ enum JKRCompression {
|
|||
COMPRESSION_YAY0 = 1,
|
||||
COMPRESSION_YAZ0 = 2,
|
||||
COMPRESSION_ASR = 3,
|
||||
|
||||
__COMPRESSION_ENUM_FORCE_S32 = INT32_MAX,
|
||||
__COMPRESSION_ENUM_FORCE_SIGNED = -1,
|
||||
};
|
||||
|
||||
class JKRDecomp : public JKRThread {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ enum JKRExpandSwitch {
|
|||
EXPAND_SWITCH_UNKNOWN0 = 0,
|
||||
EXPAND_SWITCH_UNKNOWN1 = 1,
|
||||
EXPAND_SWITCH_UNKNOWN2 = 2,
|
||||
__FORCE_EXPAND_SWITCH_32BIT = UINT32_MAX,
|
||||
};
|
||||
|
||||
class JKRHeap;
|
||||
|
|
@ -19,8 +18,6 @@ public:
|
|||
UNKNOWN_EALLOC_DIRECTION = 0,
|
||||
FORWARD = 1,
|
||||
BACKWARD = 2,
|
||||
|
||||
__FORCE_EALLOC_DIRECTION_32BIT = UINT32_MAX,
|
||||
};
|
||||
|
||||
static void* loadToMainRAM(char const*, u8*, JKRExpandSwitch, u32, JKRHeap*, EAllocDirection,
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
enum JKRMemBreakFlag {
|
||||
JKRMEMBREAK_FLAG_UNKNOWN0 = 0,
|
||||
JKRMEMBREAK_FLAG_UNKNOWN1 = 1,
|
||||
_JKRMemBreakFlag_PADDING_32BIT = 0xFFFFFFFF,
|
||||
};
|
||||
|
||||
class JKRMemArchive : public JKRArchive {
|
||||
|
|
|
|||
|
|
@ -8,6 +8,27 @@ struct TRandom_fast_ {
|
|||
u32 value;
|
||||
|
||||
TRandom_fast_(u32 value);
|
||||
u32 get(void) {
|
||||
value = (value * 0x19660d) + 0x3c6ef35f;
|
||||
return value;
|
||||
}
|
||||
|
||||
u32 get_bit32(void) { return this->get(); }
|
||||
|
||||
// due to the float constant, having this function inlined adds that float to data,
|
||||
// making it not match
|
||||
float get_ufloat_1(void) {
|
||||
// !@bug UB: in C++ it's not legal to read from an union member other
|
||||
// than the last one that was written to.
|
||||
union {
|
||||
f32 f;
|
||||
u32 s;
|
||||
} out;
|
||||
out.s = (this->get() >> 9) | 0x3f800000;
|
||||
return out.f - 1;
|
||||
}
|
||||
|
||||
void setSeed(u32 seed) { value = seed; }
|
||||
};
|
||||
} // namespace JMath
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
#include "JSystem/JMath/random.h"
|
||||
#include "global.h"
|
||||
|
||||
namespace Z2Calc {
|
||||
struct CurveSign {
|
||||
// temp
|
||||
enum CurveSign {
|
||||
CURVE_SIGN_0 = 0,
|
||||
CURVE_SIGN_1 = 1,
|
||||
};
|
||||
|
||||
struct FNoise1f {
|
||||
|
|
@ -20,4 +22,4 @@ float linearTransform(float, float, float, float, float, bool);
|
|||
float getParamByExp(float, float, float, float, float, float, Z2Calc::CurveSign);
|
||||
float getRandom(float, float, float);
|
||||
float getRandom_0_1(void);
|
||||
} // namespace Z2Calc
|
||||
} // namespace Z2Calc
|
||||
|
|
|
|||
|
|
@ -1,29 +0,0 @@
|
|||
/* 802A968C 002A65CC EC C1 10 28 */ fsubs f6, f1, f2
|
||||
/* 802A9690 002A65D0 EC 25 20 28 */ fsubs f1, f5, f4
|
||||
/* 802A9694 002A65D4 EC 03 10 28 */ fsubs f0, f3, f2
|
||||
/* 802A9698 002A65D8 EC 01 00 24 */ fdivs f0, f1, f0
|
||||
/* 802A969C 002A65DC EC 06 00 32 */ fmuls f0, f6, f0
|
||||
/* 802A96A0 002A65E0 EC 24 00 2A */ fadds f1, f4, f0
|
||||
/* 802A96A4 002A65E4 54 60 06 3F */ clrlwi. r0, r3, 0x18
|
||||
/* 802A96A8 002A65E8 4C 82 00 20 */ bnelr
|
||||
/* 802A96AC 002A65EC FC 04 28 40 */ fcmpo cr0, f4, f5
|
||||
/* 802A96B0 002A65F0 40 80 00 24 */ bge lbl_802A96D4
|
||||
/* 802A96B4 002A65F4 FC 01 28 40 */ fcmpo cr0, f1, f5
|
||||
/* 802A96B8 002A65F8 40 81 00 0C */ ble lbl_802A96C4
|
||||
/* 802A96BC 002A65FC FC 20 28 90 */ fmr f1, f5
|
||||
/* 802A96C0 002A6600 4E 80 00 20 */ blr
|
||||
lbl_802A96C4:
|
||||
/* 802A96C4 002A6604 FC 01 20 40 */ fcmpo cr0, f1, f4
|
||||
/* 802A96C8 002A6608 4C 80 00 20 */ bgelr
|
||||
/* 802A96CC 002A660C FC 20 20 90 */ fmr f1, f4
|
||||
/* 802A96D0 002A6610 4E 80 00 20 */ blr
|
||||
lbl_802A96D4:
|
||||
/* 802A96D4 002A6614 FC 01 20 40 */ fcmpo cr0, f1, f4
|
||||
/* 802A96D8 002A6618 40 81 00 0C */ ble lbl_802A96E4
|
||||
/* 802A96DC 002A661C FC 20 20 90 */ fmr f1, f4
|
||||
/* 802A96E0 002A6620 4E 80 00 20 */ blr
|
||||
lbl_802A96E4:
|
||||
/* 802A96E4 002A6624 FC 01 28 40 */ fcmpo cr0, f1, f5
|
||||
/* 802A96E8 002A6628 4C 80 00 20 */ bgelr
|
||||
/* 802A96EC 002A662C FC 20 28 90 */ fmr f1, f5
|
||||
/* 802A96F0 002A6630 4E 80 00 20 */ blr
|
||||
|
|
@ -1,77 +0,0 @@
|
|||
/* 802A96F4 002A6634 94 21 FF B0 */ stwu r1, -0x50(r1)
|
||||
/* 802A96F8 002A6638 7C 08 02 A6 */ mflr r0
|
||||
/* 802A96FC 002A663C 90 01 00 54 */ stw r0, 0x54(r1)
|
||||
/* 802A9700 002A6640 DB E1 00 40 */ stfd f31, 0x40(r1)
|
||||
/* 802A9704 002A6644 F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0
|
||||
/* 802A9708 002A6648 DB C1 00 30 */ stfd f30, 0x30(r1)
|
||||
/* 802A970C 002A664C F3 C1 00 38 */ psq_st f30, 56(r1), 0, 0
|
||||
/* 802A9710 002A6650 DB A1 00 20 */ stfd f29, 0x20(r1)
|
||||
/* 802A9714 002A6654 F3 A1 00 28 */ psq_st f29, 40(r1), 0, 0
|
||||
/* 802A9718 002A6658 DB 81 00 10 */ stfd f28, 0x10(r1)
|
||||
/* 802A971C 002A665C F3 81 00 18 */ psq_st f28, 24(r1), 0, 0
|
||||
/* 802A9720 002A6660 FF 80 20 90 */ fmr f28, f4
|
||||
/* 802A9724 002A6664 FF A0 28 90 */ fmr f29, f5
|
||||
/* 802A9728 002A6668 FF C0 30 90 */ fmr f30, f6
|
||||
/* 802A972C 002A666C 2C 03 00 01 */ cmpwi r3, 1
|
||||
/* 802A9730 002A6670 40 82 00 44 */ bne lbl_802A9774
|
||||
/* 802A9734 002A6674 C0 82 BE 28 */ lfs f4, lbl_80455828-_SDA2_BASE_(r2)
|
||||
/* 802A9738 002A6678 FC A0 E0 90 */ fmr f5, f28
|
||||
/* 802A973C 002A667C 38 60 00 01 */ li r3, 1
|
||||
/* 802A9740 002A6680 4B FF FF 4D */ bl linearTransform__6Z2CalcFfffffb
|
||||
/* 802A9744 002A6684 48 0C 2F FD */ bl func_8036C740
|
||||
/* 802A9748 002A6688 FF E0 08 18 */ frsp f31, f1
|
||||
/* 802A974C 002A668C FC 20 E0 90 */ fmr f1, f28
|
||||
/* 802A9750 002A6690 48 0C 2F F1 */ bl func_8036C740
|
||||
/* 802A9754 002A6694 FC 60 08 18 */ frsp f3, f1
|
||||
/* 802A9758 002A6698 FC 20 F8 90 */ fmr f1, f31
|
||||
/* 802A975C 002A669C C0 42 BE 2C */ lfs f2, lbl_8045582C-_SDA2_BASE_(r2)
|
||||
/* 802A9760 002A66A0 FC 80 E8 90 */ fmr f4, f29
|
||||
/* 802A9764 002A66A4 FC A0 F0 90 */ fmr f5, f30
|
||||
/* 802A9768 002A66A8 38 60 00 01 */ li r3, 1
|
||||
/* 802A976C 002A66AC 4B FF FF 21 */ bl linearTransform__6Z2CalcFfffffb
|
||||
/* 802A9770 002A66B0 48 00 00 58 */ b lbl_802A97C8
|
||||
lbl_802A9774:
|
||||
/* 802A9774 002A66B4 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 802A9778 002A66B8 40 82 00 40 */ bne lbl_802A97B8
|
||||
/* 802A977C 002A66BC C0 A2 BE 28 */ lfs f5, lbl_80455828-_SDA2_BASE_(r2)
|
||||
/* 802A9780 002A66C0 38 60 00 01 */ li r3, 1
|
||||
/* 802A9784 002A66C4 4B FF FF 09 */ bl linearTransform__6Z2CalcFfffffb
|
||||
/* 802A9788 002A66C8 48 0C 2F B9 */ bl func_8036C740
|
||||
/* 802A978C 002A66CC FF E0 08 18 */ frsp f31, f1
|
||||
/* 802A9790 002A66D0 FC 20 E0 90 */ fmr f1, f28
|
||||
/* 802A9794 002A66D4 48 0C 2F AD */ bl func_8036C740
|
||||
/* 802A9798 002A66D8 FC 40 08 18 */ frsp f2, f1
|
||||
/* 802A979C 002A66DC FC 20 F8 90 */ fmr f1, f31
|
||||
/* 802A97A0 002A66E0 C0 62 BE 2C */ lfs f3, lbl_8045582C-_SDA2_BASE_(r2)
|
||||
/* 802A97A4 002A66E4 FC 80 E8 90 */ fmr f4, f29
|
||||
/* 802A97A8 002A66E8 FC A0 F0 90 */ fmr f5, f30
|
||||
/* 802A97AC 002A66EC 38 60 00 01 */ li r3, 1
|
||||
/* 802A97B0 002A66F0 4B FF FE DD */ bl linearTransform__6Z2CalcFfffffb
|
||||
/* 802A97B4 002A66F4 48 00 00 14 */ b lbl_802A97C8
|
||||
lbl_802A97B8:
|
||||
/* 802A97B8 002A66F8 FC 80 E8 90 */ fmr f4, f29
|
||||
/* 802A97BC 002A66FC FC A0 F0 90 */ fmr f5, f30
|
||||
/* 802A97C0 002A6700 38 60 00 00 */ li r3, 0
|
||||
/* 802A97C4 002A6704 4B FF FE C9 */ bl linearTransform__6Z2CalcFfffffb
|
||||
lbl_802A97C8:
|
||||
/* 802A97C8 002A6708 FC 01 F0 40 */ fcmpo cr0, f1, f30
|
||||
/* 802A97CC 002A670C 40 81 00 0C */ ble lbl_802A97D8
|
||||
/* 802A97D0 002A6710 FC 20 F0 90 */ fmr f1, f30
|
||||
/* 802A97D4 002A6714 48 00 00 10 */ b lbl_802A97E4
|
||||
lbl_802A97D8:
|
||||
/* 802A97D8 002A6718 FC 01 E8 40 */ fcmpo cr0, f1, f29
|
||||
/* 802A97DC 002A671C 40 80 00 08 */ bge lbl_802A97E4
|
||||
/* 802A97E0 002A6720 FC 20 E8 90 */ fmr f1, f29
|
||||
lbl_802A97E4:
|
||||
/* 802A97E4 002A6724 E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0
|
||||
/* 802A97E8 002A6728 CB E1 00 40 */ lfd f31, 0x40(r1)
|
||||
/* 802A97EC 002A672C E3 C1 00 38 */ psq_l f30, 56(r1), 0, 0
|
||||
/* 802A97F0 002A6730 CB C1 00 30 */ lfd f30, 0x30(r1)
|
||||
/* 802A97F4 002A6734 E3 A1 00 28 */ psq_l f29, 40(r1), 0, 0
|
||||
/* 802A97F8 002A6738 CB A1 00 20 */ lfd f29, 0x20(r1)
|
||||
/* 802A97FC 002A673C E3 81 00 18 */ psq_l f28, 24(r1), 0, 0
|
||||
/* 802A9800 002A6740 CB 81 00 10 */ lfd f28, 0x10(r1)
|
||||
/* 802A9804 002A6744 80 01 00 54 */ lwz r0, 0x54(r1)
|
||||
/* 802A9808 002A6748 7C 08 03 A6 */ mtlr r0
|
||||
/* 802A980C 002A674C 38 21 00 50 */ addi r1, r1, 0x50
|
||||
/* 802A9810 002A6750 4E 80 00 20 */ blr
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
/* 802A9814 002A6754 94 21 FF A0 */ stwu r1, -0x60(r1)
|
||||
/* 802A9818 002A6758 7C 08 02 A6 */ mflr r0
|
||||
/* 802A981C 002A675C 90 01 00 64 */ stw r0, 0x64(r1)
|
||||
/* 802A9820 002A6760 DB E1 00 50 */ stfd f31, 0x50(r1)
|
||||
/* 802A9824 002A6764 F3 E1 00 58 */ psq_st f31, 88(r1), 0, 0
|
||||
/* 802A9828 002A6768 DB C1 00 40 */ stfd f30, 0x40(r1)
|
||||
/* 802A982C 002A676C F3 C1 00 48 */ psq_st f30, 72(r1), 0, 0
|
||||
/* 802A9830 002A6770 DB A1 00 30 */ stfd f29, 0x30(r1)
|
||||
/* 802A9834 002A6774 F3 A1 00 38 */ psq_st f29, 56(r1), 0, 0
|
||||
/* 802A9838 002A6778 DB 81 00 20 */ stfd f28, 0x20(r1)
|
||||
/* 802A983C 002A677C F3 81 00 28 */ psq_st f28, 40(r1), 0, 0
|
||||
/* 802A9840 002A6780 DB 61 00 10 */ stfd f27, 0x10(r1)
|
||||
/* 802A9844 002A6784 F3 61 00 18 */ psq_st f27, 24(r1), 0, 0
|
||||
/* 802A9848 002A6788 FF 60 08 90 */ fmr f27, f1
|
||||
/* 802A984C 002A678C FF 80 10 90 */ fmr f28, f2
|
||||
/* 802A9850 002A6790 FF A0 18 90 */ fmr f29, f3
|
||||
/* 802A9854 002A6794 C0 02 BE 30 */ lfs f0, lbl_80455830-_SDA2_BASE_(r2)
|
||||
/* 802A9858 002A6798 EF E0 07 72 */ fmuls f31, f0, f29
|
||||
/* 802A985C 002A679C C0 22 BE 34 */ lfs f1, lbl_80455834-_SDA2_BASE_(r2)
|
||||
/* 802A9860 002A67A0 C0 02 BE 2C */ lfs f0, lbl_8045582C-_SDA2_BASE_(r2)
|
||||
/* 802A9864 002A67A4 EC 00 E8 28 */ fsubs f0, f0, f29
|
||||
/* 802A9868 002A67A8 EF C1 00 32 */ fmuls f30, f1, f0
|
||||
/* 802A986C 002A67AC 48 00 00 69 */ bl getRandom_0_1__6Z2CalcFv
|
||||
/* 802A9870 002A67B0 FC 01 E8 40 */ fcmpo cr0, f1, f29
|
||||
/* 802A9874 002A67B4 40 80 00 0C */ bge lbl_802A9880
|
||||
/* 802A9878 002A67B8 FC 00 F8 90 */ fmr f0, f31
|
||||
/* 802A987C 002A67BC 48 00 00 08 */ b lbl_802A9884
|
||||
lbl_802A9880:
|
||||
/* 802A9880 002A67C0 FC 00 F0 90 */ fmr f0, f30
|
||||
lbl_802A9884:
|
||||
/* 802A9884 002A67C4 EF 7B 00 32 */ fmuls f27, f27, f0
|
||||
/* 802A9888 002A67C8 48 00 00 4D */ bl getRandom_0_1__6Z2CalcFv
|
||||
/* 802A988C 002A67CC FC 40 E0 90 */ fmr f2, f28
|
||||
/* 802A9890 002A67D0 48 0C 2E F1 */ bl func_8036C780
|
||||
/* 802A9894 002A67D4 FC 00 08 18 */ frsp f0, f1
|
||||
/* 802A9898 002A67D8 EC 20 06 F2 */ fmuls f1, f0, f27
|
||||
/* 802A989C 002A67DC E3 E1 00 58 */ psq_l f31, 88(r1), 0, 0
|
||||
/* 802A98A0 002A67E0 CB E1 00 50 */ lfd f31, 0x50(r1)
|
||||
/* 802A98A4 002A67E4 E3 C1 00 48 */ psq_l f30, 72(r1), 0, 0
|
||||
/* 802A98A8 002A67E8 CB C1 00 40 */ lfd f30, 0x40(r1)
|
||||
/* 802A98AC 002A67EC E3 A1 00 38 */ psq_l f29, 56(r1), 0, 0
|
||||
/* 802A98B0 002A67F0 CB A1 00 30 */ lfd f29, 0x30(r1)
|
||||
/* 802A98B4 002A67F4 E3 81 00 28 */ psq_l f28, 40(r1), 0, 0
|
||||
/* 802A98B8 002A67F8 CB 81 00 20 */ lfd f28, 0x20(r1)
|
||||
/* 802A98BC 002A67FC E3 61 00 18 */ psq_l f27, 24(r1), 0, 0
|
||||
/* 802A98C0 002A6800 CB 61 00 10 */ lfd f27, 0x10(r1)
|
||||
/* 802A98C4 002A6804 80 01 00 64 */ lwz r0, 0x64(r1)
|
||||
/* 802A98C8 002A6808 7C 08 03 A6 */ mtlr r0
|
||||
/* 802A98CC 002A680C 38 21 00 60 */ addi r1, r1, 0x60
|
||||
/* 802A98D0 002A6810 4E 80 00 20 */ blr
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
/* 802A98D4 002A6814 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 802A98D8 002A6818 7C 08 02 A6 */ mflr r0
|
||||
/* 802A98DC 002A681C 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 802A98E0 002A6820 88 0D 8D B0 */ lbz r0, lbl_80451330-_SDA_BASE_(r13)
|
||||
/* 802A98E4 002A6824 7C 00 07 75 */ extsb. r0, r0
|
||||
/* 802A98E8 002A6828 40 82 00 18 */ bne lbl_802A9900
|
||||
/* 802A98EC 002A682C 38 6D 8D B4 */ subi r3, r13, 0x724c
|
||||
/* 802A98F0 002A6830 38 80 00 00 */ li r4, 0
|
||||
/* 802A98F4 002A6834 48 09 01 F1 */ bl __ct__Q25JMath13TRandom_fast_FUl
|
||||
/* 802A98F8 002A6838 38 00 00 01 */ li r0, 1
|
||||
/* 802A98FC 002A683C 98 0D 8D B0 */ stb r0, lbl_80451330-_SDA_BASE_(r13)
|
||||
lbl_802A9900:
|
||||
/* 802A9900 002A6840 80 8D 8D B4 */ lwz r4, lbl_80451334-_SDA_BASE_(r13)
|
||||
/* 802A9904 002A6844 3C 60 00 19 */ lis r3, 0x0019660D@ha
|
||||
/* 802A9908 002A6848 38 03 66 0D */ addi r0, r3, 0x0019660D@l
|
||||
/* 802A990C 002A684C 7C 64 01 D6 */ mullw r3, r4, r0
|
||||
/* 802A9910 002A6850 3C 63 3C 6F */ addis r3, r3, 0x3c6f
|
||||
/* 802A9914 002A6854 38 03 F3 5F */ addi r0, r3, -3233
|
||||
/* 802A9918 002A6858 90 0D 8D B4 */ stw r0, lbl_80451334-_SDA_BASE_(r13)
|
||||
/* 802A991C 002A685C 54 00 BA 7E */ srwi r0, r0, 9
|
||||
/* 802A9920 002A6860 64 00 3F 80 */ oris r0, r0, 0x3f80
|
||||
/* 802A9924 002A6864 90 01 00 08 */ stw r0, 8(r1)
|
||||
/* 802A9928 002A6868 C0 21 00 08 */ lfs f1, 8(r1)
|
||||
/* 802A992C 002A686C C0 02 BE 2C */ lfs f0, lbl_8045582C-_SDA2_BASE_(r2)
|
||||
/* 802A9930 002A6870 EC 21 00 28 */ fsubs f1, f1, f0
|
||||
/* 802A9934 002A6874 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 802A9938 002A6878 7C 08 03 A6 */ mtlr r0
|
||||
/* 802A993C 002A687C 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 802A9940 002A6880 4E 80 00 20 */ blr
|
||||
|
|
@ -16,7 +16,6 @@ typedef enum DVDState {
|
|||
DVD_STATE_CANCELED = 0xa, // lmao they skipped 9
|
||||
DVD_STATE_RETRY = 0xb,
|
||||
DVD_STATE_FATAL_ERROR = -1,
|
||||
__DVD_STATE_ENUM_FORCE_S32 = INT32_MAX,
|
||||
} DVDState;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -587,8 +587,10 @@ void Z2SeqMgr_NS_setBattleLastHit(void);
|
|||
// Z2Calc
|
||||
extern "C" {
|
||||
void linearTransform__6Z2CalcFfffffb(void);
|
||||
void func_8036C740(void);
|
||||
void func_8036C780(void);
|
||||
// MSL_C.PPCEABI.bare.H::exp
|
||||
double func_8036C740(double);
|
||||
// MSL_C.PPCEABI.bare.H::pow
|
||||
double func_8036C780(double, double);
|
||||
void getRandom_0_1__6Z2CalcFv(void);
|
||||
void getParamByExp__6Z2CalcFffffffQ26Z2Calc9CurveSign(void);
|
||||
}
|
||||
|
|
@ -5601,7 +5603,6 @@ void mDoMtx_stack_c_NS_transM(float, float, float);
|
|||
|
||||
void setCameraPolygonPos__11Z2StatusMgrFP3Vec(Vec*);
|
||||
void setCameraGroupInfo__11Z2StatusMgrFUc(u8);
|
||||
|
||||
void Set__8cM3dGSphFRC4cXyzf(void);
|
||||
void __pl__FsRC7cSAngle(void);
|
||||
void __mi__FsRC7cSAngle(void);
|
||||
|
|
|
|||
|
|
@ -93,8 +93,6 @@ typedef s32 OSHeapHandle;
|
|||
typedef enum OSSoundMode {
|
||||
SOUND_MODE_MONO = 0,
|
||||
SOUND_MODE_STEREO = 1,
|
||||
|
||||
__SOUND_MODE_FORCE_ENUM_U32 = 0xffffffff,
|
||||
} OSSoundMode;
|
||||
|
||||
typedef u16 OSThreadState;
|
||||
|
|
@ -151,7 +149,7 @@ BOOL OSJamMessage(OSMessageQueue* queue, OSMessage message, int flags);
|
|||
s32 OSGetConsoleType(void);
|
||||
s32 OSGetResetCode(void);
|
||||
|
||||
OSSoundMode OSGetSoundMode(void);
|
||||
u32 OSGetSoundMode(void);
|
||||
void OSSetSoundMode(OSSoundMode mode);
|
||||
|
||||
void OSReportInit(void);
|
||||
|
|
|
|||
|
|
@ -12,8 +12,6 @@ typedef enum PADMask {
|
|||
PAD_CHAN2_BIT = (1 << 29),
|
||||
PAD_CHAN1_BIT = (1 << 30),
|
||||
PAD_CHAN0_BIT = (1 << 31),
|
||||
|
||||
__PAD_MASK_FORCE_ENUM_U32 = 0xffffffff,
|
||||
} PADMask;
|
||||
|
||||
typedef struct PADStatus {
|
||||
|
|
|
|||
|
|
@ -167,16 +167,16 @@ extern u32 lbl_80455D0C;
|
|||
extern u32 lbl_80455D18;
|
||||
|
||||
// func_802A96F4
|
||||
extern u32 lbl_80455828;
|
||||
extern float lbl_8045582C;
|
||||
// Z2AudioLib::@380, 0.0
|
||||
extern f32 lbl_80455828;
|
||||
// Z2AudioLib::@381, 1.0
|
||||
extern f32 lbl_8045582C;
|
||||
|
||||
// func_802A9814
|
||||
extern u32 lbl_80455830;
|
||||
extern u32 lbl_80455834;
|
||||
|
||||
// func_802A98D4
|
||||
extern u32 lbl_80451330;
|
||||
extern u32 lbl_80451334;
|
||||
// Z2AudioLib::@396, 2.0
|
||||
extern f32 lbl_80455830;
|
||||
// Z2AudioLib::@397, -2.0
|
||||
extern f32 lbl_80455834;
|
||||
|
||||
// Z2SoundLib SInstance
|
||||
struct Z2SceneMgr;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
#include "Z2AudioLib/Z2Calc/Z2calc.h"
|
||||
#include "JSystem/JMath/random.h"
|
||||
#include "Z2AudioLib/Z2Calc/Z2Calc.h"
|
||||
|
||||
// s_is_oRandom_initialized
|
||||
extern s8 lbl_80451330;
|
||||
// Z2AudioLib::oRandom$401
|
||||
extern JMath::TRandom_fast_ lbl_80451334;
|
||||
|
||||
// 1 instruction off
|
||||
#ifdef NONMATCHING
|
||||
float Z2Calc::linearTransform(float param1, float param2, float param3, float param4, float param5,
|
||||
bool param6) {
|
||||
float temp;
|
||||
|
|
@ -14,10 +16,10 @@ float Z2Calc::linearTransform(float param1, float param2, float param3, float pa
|
|||
} else if (param4 < param5) {
|
||||
if (temp > param5) {
|
||||
return param5;
|
||||
} else if (temp >= param4) { // something wrong here idk
|
||||
return temp;
|
||||
} else {
|
||||
} else if (temp < param4) {
|
||||
return param4;
|
||||
} else {
|
||||
return temp;
|
||||
}
|
||||
} else if (temp > param4) {
|
||||
return param4;
|
||||
|
|
@ -27,27 +29,52 @@ float Z2Calc::linearTransform(float param1, float param2, float param3, float pa
|
|||
return temp;
|
||||
}
|
||||
}
|
||||
#else
|
||||
asm float Z2Calc::linearTransform(float param1, float param2, float param3, float param4,
|
||||
float param5, bool param6) {
|
||||
nofralloc
|
||||
#include "Z2AudioLib/Z2Calc/asm/func_802A968C.s"
|
||||
}
|
||||
#endif
|
||||
|
||||
asm float Z2Calc::getParamByExp(float, float, float, float, float, float, Z2Calc::CurveSign) {
|
||||
nofralloc
|
||||
#include "Z2AudioLib/Z2Calc/asm/func_802A96F4.s"
|
||||
float Z2Calc::getParamByExp(float f1, float f2, float f3, float f4, float f5, float f6,
|
||||
Z2Calc::CurveSign sign) {
|
||||
float out;
|
||||
if (sign == Z2Calc::CURVE_SIGN_1) {
|
||||
float tmp =
|
||||
func_8036C740(Z2Calc::linearTransform(f1, f2, f3, /* 0.0 */ lbl_80455828, f4, true));
|
||||
out = Z2Calc::linearTransform(tmp, /* 1.0 */ lbl_8045582C, func_8036C740(f4), f5, f6, true);
|
||||
} else if (sign == Z2Calc::CURVE_SIGN_0) {
|
||||
float tmp =
|
||||
func_8036C740(Z2Calc::linearTransform(f1, f2, f3, f4, /* 0.0 */ lbl_80455828, true));
|
||||
out = Z2Calc::linearTransform(tmp, func_8036C740(f4), /* 1.0 */ lbl_8045582C, f5, f6, true);
|
||||
} else {
|
||||
out = Z2Calc::linearTransform(f1, f2, f3, f5, f6, false);
|
||||
}
|
||||
if (out > f6) {
|
||||
return f6;
|
||||
}
|
||||
if (out < f5) {
|
||||
return f5;
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
asm float Z2Calc::getRandom(float, float, float) {
|
||||
nofralloc
|
||||
#include "Z2AudioLib/Z2Calc/asm/func_802A9814.s"
|
||||
float Z2Calc::getRandom(float f1, float f2, float f3) {
|
||||
float tmp = /* 2.0 */ lbl_80455830 * f3;
|
||||
float tmp2 = (/* 1.0 */ lbl_8045582C - f3) * /* -2.0 */ lbl_80455834;
|
||||
f1 *= Z2Calc::getRandom_0_1() < f3 ? tmp : tmp2;
|
||||
float tmp3 = func_8036C780(Z2Calc::getRandom_0_1(), f2);
|
||||
return tmp3 * f1;
|
||||
}
|
||||
|
||||
asm float Z2Calc::getRandom_0_1(void) {
|
||||
nofralloc
|
||||
#include "Z2AudioLib/Z2Calc/asm/func_802A98D4.s"
|
||||
float Z2Calc::getRandom_0_1(void) {
|
||||
// this is really just
|
||||
// static JMath::TRandom_fast_ lbl_80451334(0);
|
||||
if (!lbl_80451330) {
|
||||
__ct__Q25JMath13TRandom_fast_FUl(&lbl_80451334, 0);
|
||||
lbl_80451330 = true;
|
||||
}
|
||||
// this is really just lbl_80451334.get_ufloat_1()
|
||||
union {
|
||||
f32 f;
|
||||
u32 s;
|
||||
} out;
|
||||
out.s = (lbl_80451334.get() >> 9) | 0x3f800000;
|
||||
return out.f - lbl_8045582C;
|
||||
}
|
||||
|
||||
void Z2Calc::FNoise1f::setParam(float param1, float param2, float param3) {
|
||||
|
|
@ -102,4 +129,4 @@ float Z2Calc::FNoise1f::calcNoise1f(void) {
|
|||
this->unk4 = temp2;
|
||||
|
||||
return this->unk0;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -919,7 +919,7 @@ asm void dSv_player_info_c::init(void) {
|
|||
#endif
|
||||
|
||||
void dSv_player_config_c::init(void) {
|
||||
OSSoundMode os_mSoundMode;
|
||||
u32 os_mSoundMode;
|
||||
|
||||
this->unk0 = 1;
|
||||
os_mSoundMode = OSGetSoundMode();
|
||||
|
|
|
|||
Loading…
Reference in New Issue