mirror of
https://github.com/zeldaret/ph
synced 2026-05-26 15:45:10 -04:00
fix some build issues
This commit is contained in:
@@ -47,7 +47,7 @@ LCF_FILE := $(ROOT)/$(BUILD_DIR)/arm9_linker_script.lcf
|
||||
OBJS_FILE := $(ROOT)/$(BUILD_DIR)/arm9_objects.txt
|
||||
|
||||
ASM_FLAGS := -proc arm5te -d $(REGION) -i asm -msgstyle gcc
|
||||
CC_FLAGS := -proc arm946e -interworking -O4,p -enum int -i include -i- -i libs/c/include -nolink -d $(REGION) -char signed -lang=c++ -sym on -msgstyle gcc
|
||||
CC_FLAGS := -proc arm946e -interworking -O4,p -enum int -i include -i- -i libs/c/include -nolink -d $(REGION) -char signed -lang=c++ -sym on -msgstyle gcc -RTTI off
|
||||
LD_FLAGS := -proc arm946e -nostdlib -interworking -nodead -m Entry -map closure,unused -o main.bin -msgstyle gcc
|
||||
|
||||
ifeq ($(NONMATCHING),1)
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, lr}
|
||||
sub sp, sp, #0x18
|
||||
mov r4, r0
|
||||
ldrh r0, [r4, #0x20]
|
||||
str r0, [r4, #0x158]
|
||||
bl _ZN10ActorRupee18func_ov14_0213b70cEj
|
||||
cmp r0, #0
|
||||
ldconst r0, data_ov14_021589b4
|
||||
lda r0, data_ov14_021589b4
|
||||
mov r2, #0
|
||||
ldrne r0, [r0, #0x24]
|
||||
str r2, [r4, #0x7c]
|
||||
ldconst r0, 0x00000aa8
|
||||
ldconst r0, #0x00000aa8
|
||||
mov r5, r0, asr #0x1
|
||||
str r5, [r4, #0x80]
|
||||
str r2, [r4, #0x84]
|
||||
@@ -61,54 +61,54 @@ _0213af98:
|
||||
bl _ZN10ActorRupee18func_ov14_0213b204Ei
|
||||
b _0213b0f4
|
||||
_0213afb4:
|
||||
ldconst r0, data_027e0764
|
||||
lda r0, data_027e0764
|
||||
mvn ip, #0x110
|
||||
ldr r5, [r0]
|
||||
ldmib r0, {r3, r7}
|
||||
umull sb, r0, r7, r5
|
||||
umull r9, r0, r7, r5
|
||||
mla r0, r7, r3, r0
|
||||
ldconst r3, data_027e0764
|
||||
lda r3, data_027e0764
|
||||
ldr r8, [r3, #0x10]
|
||||
ldr r6, [r3, #0xc]
|
||||
adds sl, r8, sb
|
||||
ldr fp, [r3, #0x14]
|
||||
adds r10, r8, r9
|
||||
ldr r11, [r3, #0x14]
|
||||
mla r0, r6, r5, r0
|
||||
umull r3, lr, r7, sl
|
||||
adc sb, fp, r0
|
||||
umull r3, lr, r7, r10
|
||||
adc r9, r11, r0
|
||||
adds r0, r8, r3
|
||||
str r0, [sp, #0x14]
|
||||
ldconst r0, data_027e0764
|
||||
mla lr, r7, sb, lr
|
||||
str sl, [r0]
|
||||
lda r0, data_027e0764
|
||||
mla lr, r7, r9, lr
|
||||
str r10, [r0]
|
||||
ldr r3, [sp, #0x14]
|
||||
str sb, [r0, #4]
|
||||
str r9, [r0, #4]
|
||||
str r3, [r0]
|
||||
rsb r0, r1, #0x224
|
||||
str r0, [sp, #0x10]
|
||||
umull r0, r5, sb, r0
|
||||
umull r0, r5, r9, r0
|
||||
str r0, [sp, #4]
|
||||
mla r5, sb, r2, r5
|
||||
mla lr, r6, sl, lr
|
||||
mla r5, r9, r2, r5
|
||||
mla lr, r6, r10, lr
|
||||
ldr r0, [sp, #0x10]
|
||||
mov r3, r2
|
||||
mla r5, r3, r0, r5
|
||||
add r0, r5, ip
|
||||
str r0, [sp]
|
||||
ldr r5, [sp, #0x14]
|
||||
ldconst r0, data_027e0764
|
||||
adc sb, fp, lr
|
||||
umull sl, r5, r7, r5
|
||||
mla r5, r7, sb, r5
|
||||
lda r0, data_027e0764
|
||||
adc r9, r11, lr
|
||||
umull r10, r5, r7, r5
|
||||
mla r5, r7, r9, r5
|
||||
ldr r7, [sp, #0x14]
|
||||
rsb r1, r1, #0x334
|
||||
str sb, [r0, #4]
|
||||
umull r0, r3, sb, r1
|
||||
str r9, [r0, #4]
|
||||
umull r0, r3, r9, r1
|
||||
mla r5, r6, r7, r5
|
||||
mov r6, sl
|
||||
mov r6, r10
|
||||
adds r6, r8, r6
|
||||
adc r7, fp, r5
|
||||
ldconst r5, data_027e0764
|
||||
mla r3, sb, r2, r3
|
||||
adc r7, r11, r5
|
||||
lda r5, data_027e0764
|
||||
mla r3, r9, r2, r3
|
||||
mov r0, r2
|
||||
mla r3, r0, r1, r3
|
||||
add r0, r3, #0x55
|
||||
@@ -126,7 +126,7 @@ _0213afb4:
|
||||
mov r0, r4
|
||||
str r2, [r4, #0x64]
|
||||
ldr r2, [sp]
|
||||
str sl, [sp, #0xc]
|
||||
str r10, [sp, #0xc]
|
||||
str r2, [r4, #0x68]
|
||||
bl _ZN10ActorRupee18func_ov14_0213b204Ei
|
||||
b _0213b0f4
|
||||
@@ -146,4 +146,4 @@ _0213b0e8:
|
||||
_0213b0f4:
|
||||
mov r0, #1
|
||||
add sp, sp, #0x18
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
||||
ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc}
|
||||
|
||||
@@ -4,34 +4,40 @@
|
||||
Resource ActorRupee::gResource;
|
||||
ActorType ActorRupee::gType;
|
||||
|
||||
static u32 data_ov14_021589d4 = 0x00000000;
|
||||
|
||||
static u32 data_ov14_021589d8[] = {
|
||||
0x00000000,
|
||||
0x00000000,
|
||||
0x00000000,
|
||||
};
|
||||
|
||||
static char data_ov14_021589b4[] = "anc";
|
||||
|
||||
extern u32 **data_027e0fe0[];
|
||||
extern u32 data_ov14_021589b4[];
|
||||
|
||||
|
||||
u32 func_01fffd04(void*, u32);
|
||||
void func_01ff9bc4(Vec3p *a, Vec3p *b, Vec3p *sum);
|
||||
extern "C" void func_01ff9bc4(Vec3p *a, Vec3p *b, Vec3p *sum);
|
||||
extern "C" u32 func_01fffd04(void*, u32);
|
||||
|
||||
extern u32 data_ov00_020e9370[];
|
||||
bool func_ov00_020c313c();
|
||||
void func_ov00_0207a1c8(bool *param_1, bool param_2, Vec3p *param_3);
|
||||
extern "C" bool func_ov00_020c313c();
|
||||
extern "C" void func_ov00_0207a1c8(bool *param_1, bool param_2, Vec3p *param_3);
|
||||
|
||||
// ---
|
||||
|
||||
void func_0202bc38(unk32 param_1, Vec3p *param_2, u32 param_3, Actor_UnkStruct_012 *param_4, bool);
|
||||
void func_ov05_02102c2c(u32* param_1, int param_2, Vec3p *param_3, int param_4, int param_5,
|
||||
extern "C" void func_0202bc38(unk32 param_1, Vec3p *param_2, u32 param_3, Actor_UnkStruct_012 *param_4, bool);
|
||||
extern "C" void func_ov05_02102c2c(u32* param_1, int param_2, Vec3p *param_3, int param_4, int param_5,
|
||||
u32 param_6, int param_7, char param_8, char param_9, char param_10);
|
||||
|
||||
void func_ov00_020d7ad4(u32* param1, u32 param2);
|
||||
void func_ov00_02083fb0(u32* param1, void* param2, Vec3p* param3);
|
||||
u16 GetRupeeValue(RupeeId id);
|
||||
extern "C" void func_ov00_020d7ad4(u32* param1, u32 param2);
|
||||
extern "C" void func_ov00_02083fb0(u32* param1, void* param2, Vec3p* param3);
|
||||
extern "C" u16 func_ov00_020c5a24(RupeeId id); // GetRupeeValue
|
||||
|
||||
extern u32 data_ov00_020eec9c[];
|
||||
extern PlayerLinkBase *data_027e0fc8; // gPlayerLink
|
||||
extern void *data_027e0e60;
|
||||
|
||||
// void func_ov05_02102c2c(int param_1, int param_2, Vec3p *param_3);
|
||||
// void func_0202bc38(unk32 param_1, Vec3p *param_2, u32 param_3, Actor_UnkStruct_012 *param_4, s16 param_5);
|
||||
// extern u32 sRupeePalettes[];
|
||||
|
||||
ActorRupee* ActorRupee::Create() {
|
||||
ActorRupee* newRupee = new(*data_027e0fe0[0], 4) ActorRupee();
|
||||
return newRupee;
|
||||
@@ -45,6 +51,13 @@ ActorRupee::ActorRupee() {
|
||||
|
||||
// https://decomp.me/scratch/1qjCc
|
||||
extern "C" void _ZN10ActorRupee18func_ov14_0213b204Ei();
|
||||
extern "C" void _ZN10ActorRupee18func_ov14_0213b70cEj();
|
||||
extern "C" void _ZN10ActorRupee8vfunc_14Ei();
|
||||
extern "C" void _ZN10ActorRupee8vfunc_18Ej();
|
||||
extern "C" void _ZN10ActorRupee8vfunc_20Ei();
|
||||
extern "C" void _ZN10ActorRupee8vfunc_60Ev();
|
||||
extern "C" void _ZN10ActorRupee8vfunc_64Ev();
|
||||
extern "C" u32 data_027e0764[];
|
||||
bool NONMATCH(ActorRupee::vfunc_08)() {
|
||||
#ifndef NONMATCHING
|
||||
#include "../../../asm/ov14/Actor/ActorRupee_vfunc_08.inc"
|
||||
@@ -62,7 +75,7 @@ bool NONMATCH(ActorRupee::vfunc_08)() {
|
||||
|
||||
mRupeeId = mUnk_020.mUnk_00[0];
|
||||
|
||||
dVar5 = func_ov14_0213b70c(mRupeeId) ? data_ov14_021589b4[9] : FLOAT_TO_Q20(0.666);
|
||||
dVar5 = func_ov14_0213b70c(mRupeeId) ? data_ov14_021589d8[0] : FLOAT_TO_Q20(0.666);
|
||||
iVar7 = (s32)dVar5 >> 1;
|
||||
|
||||
mHitbox.pos.x = 0;
|
||||
@@ -237,6 +250,7 @@ void ActorRupee::func_ov14_0213b204(unk32 param1) {
|
||||
mUnk_130 = param1;
|
||||
}
|
||||
|
||||
extern "C" void _ZN11ItemManager10GiveRupeesEjj();
|
||||
void ActorRupee::Update(bool param1) {
|
||||
ItemId cutsceneItemId;
|
||||
s32 uVar3;
|
||||
@@ -258,7 +272,7 @@ void ActorRupee::Update(bool param1) {
|
||||
}
|
||||
} else {
|
||||
ItemManager* pItem = gItemManager;
|
||||
rupeeValue = GetRupeeValue(mRupeeId);
|
||||
rupeeValue = func_ov00_020c5a24(mRupeeId);
|
||||
pItem->GiveRupees(rupeeValue, false);
|
||||
uVar3 = -1;
|
||||
|
||||
@@ -390,8 +404,8 @@ void ActorRupee::func_ov14_0213b6a4(RupeeId id, Actor_UnkStruct_012 *param2) {
|
||||
if (func_ov14_0213b70c(id)) {
|
||||
param2->mUnk_08 = 2;
|
||||
param2->mUnk_0c = 2;
|
||||
param2->mUnk_14 = data_ov14_021589b4[0x8];
|
||||
param2->mUnk_18 = data_ov14_021589b4[0x9];
|
||||
param2->mUnk_14 = data_ov14_021589d4; // data_ov14_021589b4[8]
|
||||
param2->mUnk_18 = data_ov14_021589d8[0]; // data_ov14_021589b4[9]
|
||||
} else {
|
||||
param2->mUnk_08 = 2;
|
||||
param2->mUnk_0c = 2;
|
||||
|
||||
@@ -113,7 +113,6 @@ ov14 = Overlay(name='ov14', after=[ov08, ov09, ov10, ov13], objects=[
|
||||
'asm/ov14/ov14_0211f640.s',
|
||||
|
||||
'src/14_Land/Actor/ActorRupee.cpp',
|
||||
'asm/ov14/Actor/ActorRupee.s',
|
||||
|
||||
'asm/ov14/ov14_0213b778.s',
|
||||
])
|
||||
|
||||
Reference in New Issue
Block a user