Unify nonmatching namings

This commit is contained in:
octorock
2021-05-13 00:54:00 +02:00
parent cf4cfc9b6c
commit f2c69d0b7c
43 changed files with 373 additions and 515 deletions
+150
View File
@@ -0,0 +1,150 @@
.syntax unified
CreateItemDrop: @ 0x08054754
push {r4, r5, r6, lr}
adds r6, r0, #0
adds r4, r1, #0
adds r5, r2, #0
cmp r4, #0x5e
beq _08054786
cmp r4, #0x5e
bhi _08054772
cmp r4, #0x5c
beq _080547A6
cmp r4, #0x5c
bhi _08054782
cmp r4, #0x3f
beq _08054794
b _080547DA
_08054772:
cmp r4, #0xfc
blo _080547DA
cmp r4, #0xfe
bls _080547A6
cmp r4, #0xff
bne _080547DA
movs r0, #1
b _08054788
_08054782:
movs r0, #0x65
b _08054788
_08054786:
movs r0, #9
_08054788:
bl GetInventoryValue
cmp r0, #0
bne _080547DA
_08054790:
movs r0, #0
b _0805486C
_08054794:
movs r0, #0x40
bl GetInventoryValue
cmp r0, #0
beq _08054790
cmp r5, #0
bne _080547DA
movs r5, #1
b _080547DA
_080547A6:
movs r0, #0x67
bl GetInventoryValue
cmp r0, #0
beq _08054790
ldr r0, _080547FC @ =gRoomVars
ldrb r0, [r0, #5]
cmp r0, #3
bhi _08054790
cmp r4, #0x5c
beq _080547DA
adds r5, r4, #0
subs r5, #0xfc
bl Random
movs r1, #0x3f
ands r1, r0
ldr r2, _08054800 @ =gUnk_080FE1DD
lsls r0, r5, #6
adds r1, r1, r0
adds r1, r1, r2
ldrb r5, [r1]
movs r4, #0x5c
cmp r5, #0
bne _080547DA
movs r4, #0
_080547DA:
cmp r4, #0
beq _0805486A
cmp r4, #0xff
beq _08054842
movs r0, #0
adds r1, r4, #0
adds r2, r5, #0
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805486A
ldr r0, _08054804 @ =gPlayerEntity
cmp r6, r0
bne _08054808
movs r0, #1
b _0805480A
.align 2, 0
_080547FC: .4byte gRoomVars
_08054800: .4byte gUnk_080FE1DD
_08054804: .4byte gPlayerEntity
_08054808:
movs r0, #0
_0805480A:
strb r0, [r2, #0xe]
ldrb r0, [r6, #8]
cmp r0, #6
bne _08054838
ldrb r0, [r6, #9]
cmp r0, #0x63
bne _0805481C
str r2, [r6, #0x54]
b _08054838
_0805481C:
cmp r0, #0x1e
bne _08054838
ldrb r0, [r6, #0x14]
lsls r0, r0, #3
movs r3, #0x80
rsbs r3, r3, #0
adds r1, r3, #0
orrs r0, r1
strb r0, [r2, #0x15]
movs r0, #0xc0
strh r0, [r2, #0x24]
movs r0, #0xc0
lsls r0, r0, #9
str r0, [r2, #0x20]
_08054838:
adds r0, r6, #0
adds r1, r2, #0
bl CopyPosition
b _0805486A
_08054842:
movs r0, #7
movs r1, #0
bl CreateEnemy
adds r2, r0, #0
cmp r2, #0
beq _0805486A
ldrh r0, [r6, #0x2e]
strh r0, [r2, #0x2e]
ldrh r0, [r6, #0x32]
strh r0, [r2, #0x32]
adds r0, r6, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r2, #0
adds r0, #0x38
strb r1, [r0]
adds r0, r2, #0
bl UpdateSpriteForCollisionLayer
_0805486A:
adds r0, r4, #0
_0805486C:
pop {r4, r5, r6, pc}
.align 2, 0
.syntax divided
+46
View File
@@ -0,0 +1,46 @@
.syntax unified
.text
ForceEquipItem: @ 0x08054414
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
subs r0, r4, #1
cmp r0, #0x1e
bhi _08054456
cmp r1, #1
bhi _08054456
movs r2, #0
cmp r1, #0
bne _0805442A
movs r2, #1
_0805442A:
ldr r0, _08054458 @ =gSave
adds r0, #0xb4
adds r6, r1, r0
ldrb r7, [r6]
adds r5, r2, r0
ldrb r3, [r5]
ldr r2, _0805445C @ =gUnk_080FD5B4
lsls r1, r3, #3
adds r1, r1, r2
lsls r0, r4, #3
adds r0, r0, r2
ldrb r1, [r1]
ldrb r0, [r0]
cmp r1, r0
bne _0805444A
adds r3, r7, #0
_0805444A:
strb r4, [r6]
strb r3, [r5]
ldr r1, _08054460 @ =gUnk_0200AF00
movs r0, #0x7f
strb r0, [r1, #0x13]
strb r0, [r1, #0x14]
_08054456:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08054458: .4byte gSave
_0805445C: .4byte gUnk_080FD5B4
_08054460: .4byte gUnk_0200AF00
.syntax divided
@@ -1,7 +1,3 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
@@ -74,47 +70,4 @@ _08054410:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start ForceEquipItem
ForceEquipItem: @ 0x08054414
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
subs r0, r4, #1
cmp r0, #0x1e
bhi _08054456
cmp r1, #1
bhi _08054456
movs r2, #0
cmp r1, #0
bne _0805442A
movs r2, #1
_0805442A:
ldr r0, _08054458 @ =gSave
adds r0, #0xb4
adds r6, r1, r0
ldrb r7, [r6]
adds r5, r2, r0
ldrb r3, [r5]
ldr r2, _0805445C @ =gUnk_080FD5B4
lsls r1, r3, #3
adds r1, r1, r2
lsls r0, r4, #3
adds r0, r0, r2
ldrb r1, [r1]
ldrb r0, [r0]
cmp r1, r0
bne _0805444A
adds r3, r7, #0
_0805444A:
strb r4, [r6]
strb r3, [r5]
ldr r1, _08054460 @ =gUnk_0200AF00
movs r0, #0x7f
strb r0, [r1, #0x13]
strb r0, [r1, #0x14]
_08054456:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08054458: .4byte gSave
_0805445C: .4byte gUnk_080FD5B4
_08054460: .4byte gUnk_0200AF00
.syntax divided
+33
View File
@@ -0,0 +1,33 @@
.syntax unified
push {r4, lr}
adds r3, r0, #0
ldr r0, _0801CF10 @ =gUnk_0200AF00
adds r1, r0, #0
adds r1, #0x24
ldrb r4, [r1]
cmp r4, #1
bne _0801CF0E
movs r2, #2
movs r0, #2
strb r0, [r1]
movs r1, #0
movs r0, #0x10
strh r0, [r3, #0xc]
movs r0, #0x90
strh r0, [r3, #0xe]
strb r1, [r3, #6]
movs r0, #7
strb r0, [r3, #1]
strb r4, [r3, #4]
ldrb r0, [r3]
orrs r0, r2
strb r0, [r3]
ldr r1, _0801CF14 @ =gUnk_080C9094
adds r0, r3, #0
bl sub_0801CAB8
_0801CF0E:
pop {r4, pc}
.align 2, 0
_0801CF10: .4byte gUnk_0200AF00
_0801CF14: .4byte gUnk_080C9094
.syntax divided
@@ -215,153 +215,4 @@ _0805474E:
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start CreateItemDrop
CreateItemDrop: @ 0x08054754
push {r4, r5, r6, lr}
adds r6, r0, #0
adds r4, r1, #0
adds r5, r2, #0
cmp r4, #0x5e
beq _08054786
cmp r4, #0x5e
bhi _08054772
cmp r4, #0x5c
beq _080547A6
cmp r4, #0x5c
bhi _08054782
cmp r4, #0x3f
beq _08054794
b _080547DA
_08054772:
cmp r4, #0xfc
blo _080547DA
cmp r4, #0xfe
bls _080547A6
cmp r4, #0xff
bne _080547DA
movs r0, #1
b _08054788
_08054782:
movs r0, #0x65
b _08054788
_08054786:
movs r0, #9
_08054788:
bl GetInventoryValue
cmp r0, #0
bne _080547DA
_08054790:
movs r0, #0
b _0805486C
_08054794:
movs r0, #0x40
bl GetInventoryValue
cmp r0, #0
beq _08054790
cmp r5, #0
bne _080547DA
movs r5, #1
b _080547DA
_080547A6:
movs r0, #0x67
bl GetInventoryValue
cmp r0, #0
beq _08054790
ldr r0, _080547FC @ =gRoomVars
ldrb r0, [r0, #5]
cmp r0, #3
bhi _08054790
cmp r4, #0x5c
beq _080547DA
adds r5, r4, #0
subs r5, #0xfc
bl Random
movs r1, #0x3f
ands r1, r0
ldr r2, _08054800 @ =gUnk_080FE1DD
lsls r0, r5, #6
adds r1, r1, r0
adds r1, r1, r2
ldrb r5, [r1]
movs r4, #0x5c
cmp r5, #0
bne _080547DA
movs r4, #0
_080547DA:
cmp r4, #0
beq _0805486A
cmp r4, #0xff
beq _08054842
movs r0, #0
adds r1, r4, #0
adds r2, r5, #0
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805486A
ldr r0, _08054804 @ =gPlayerEntity
cmp r6, r0
bne _08054808
movs r0, #1
b _0805480A
.align 2, 0
_080547FC: .4byte gRoomVars
_08054800: .4byte gUnk_080FE1DD
_08054804: .4byte gPlayerEntity
_08054808:
movs r0, #0
_0805480A:
strb r0, [r2, #0xe]
ldrb r0, [r6, #8]
cmp r0, #6
bne _08054838
ldrb r0, [r6, #9]
cmp r0, #0x63
bne _0805481C
str r2, [r6, #0x54]
b _08054838
_0805481C:
cmp r0, #0x1e
bne _08054838
ldrb r0, [r6, #0x14]
lsls r0, r0, #3
movs r3, #0x80
rsbs r3, r3, #0
adds r1, r3, #0
orrs r0, r1
strb r0, [r2, #0x15]
movs r0, #0xc0
strh r0, [r2, #0x24]
movs r0, #0xc0
lsls r0, r0, #9
str r0, [r2, #0x20]
_08054838:
adds r0, r6, #0
adds r1, r2, #0
bl CopyPosition
b _0805486A
_08054842:
movs r0, #7
movs r1, #0
bl CreateEnemy
adds r2, r0, #0
cmp r2, #0
beq _0805486A
ldrh r0, [r6, #0x2e]
strh r0, [r2, #0x2e]
ldrh r0, [r6, #0x32]
strh r0, [r2, #0x32]
adds r0, r6, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r2, #0
adds r0, #0x38
strb r1, [r0]
adds r0, r2, #0
bl UpdateSpriteForCollisionLayer
_0805486A:
adds r0, r4, #0
_0805486C:
pop {r4, r5, r6, pc}
.align 2, 0
.syntax divided
+41
View File
@@ -0,0 +1,41 @@
.syntax unified
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r5, r1, #0
adds r6, r2, #0
adds r7, r3, #0
ldrb r0, [r4, #0x1b]
lsls r0, r0, #0x1a
lsrs r0, r0, #0x1b
cmp r0, #0
bne _0805ECBE
adds r0, r4, #0
bl sub_0805EC04
cmp r0, #0
bne _0805ECBE
movs r0, #0
b _0805ECE0
_0805ECBE:
ldr r1, _0805ECE4 @ =gUnk_03000000
ldr r0, _0805ECE8 @ =0x00000427
adds r2, r1, r0
movs r0, #1
strb r0, [r2]
ldrb r0, [r4, #0x1b]
lsls r0, r0, #0x1a
lsrs r0, r0, #0x1b
lsls r0, r0, #3
movs r2, #0x84
lsls r2, r2, #3
adds r1, r1, r2
adds r0, r0, r1
strh r5, [r0]
strh r6, [r0, #2]
strh r7, [r0, #4]
movs r0, #1
_0805ECE0:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0805ECE4: .4byte gUnk_03000000
_0805ECE8: .4byte 0x00000427
.syntax divided
+1 -1
View File
@@ -345,7 +345,7 @@ void ManagerUpdate(Entity* this) {
}
// regalloc
NONMATCH("asm/non_matching/arm_proxy/sub_08017530.inc", void NPCUpdate(Entity* this)) {
NONMATCH("asm/non_matching/arm_proxy/NPCUpdate.inc", void NPCUpdate(Entity* this)) {
if ((this->currentHealth & 0x7f) && !ReadBit(&gUnk_020342F8, this->currentHealth - 1))
DeleteThisEntity();
if ((this->action == 0) && ((this->flags & 1) == 0))
+19 -21
View File
@@ -2,6 +2,8 @@
#include "player.h"
#include "room.h"
#include "menu.h"
#include "area.h"
#include "utils.h"
typedef struct {
u8 filler[0xa8];
@@ -29,6 +31,9 @@ extern u8 gUnk_080FE1C6[];
extern u32 gUnk_02034398;
extern void (*const gUnk_080FE2A0[])();
void ForceEquipItem(u32, u8);
extern void sub_0807CAA0(u32, u32);
u32 IsItemEquipped(u32 itemID) {
u32 ret;
@@ -41,11 +46,11 @@ u32 IsItemEquipped(u32 itemID) {
return ret;
}
#if NON_MATCHING // reg-alloc
void PutItemOnSlot(u32 itemID) {
NONMATCH("asm/non_matching/PutItemOnSlot.inc", void PutItemOnSlot(u32 itemID)) {
// reg-alloc
u32 itemSlot;
if (itemID < 0x47) {
ModifyInventory(0, 1);
sub_0807CAA0(0, 1);
}
if (itemID - 1 < 0x1f) {
itemSlot = 2;
@@ -70,12 +75,9 @@ void PutItemOnSlot(u32 itemID) {
ForceEquipItem(itemID, itemSlot);
}
}
#else
NAKED
void PutItemOnSlot(u32 itemID) {
asm(".include \"asm/non_matching/putItemOnSlot.s\"");
}
#endif
END_NONMATCH
ASM_FUNC("asm/non_matching/ForceEquipItem.inc", void ForceEquipItem(u32 itemID, u8 itemSlot))
u32 SetBottleContents(u32 itemID, u32 bottleIndex) {
@@ -146,8 +148,8 @@ u32 GetBottleContaining(u32 arg0) {
}
}
#if NON_MATCHING // reg-alloc
void sub_08054524(void) {
NONMATCH("asm/non_matching/sub_08054524.inc", void sub_08054524(void)) {
// reg-alloc
u32 bVar1;
bVar1 = gArea.locationIndex;
@@ -160,12 +162,7 @@ void sub_08054524(void) {
MemCopy(&gUnk_080015BC + gUnk_080FE1C6[bVar1] * 0x8, &gUnk_02034398, 0x20);
}
#else
NAKED
void sub_08054524(void) {
asm(".include \"asm/non_matching/sub_08054524.inc\"");
}
#endif
END_NONMATCH
void sub_08054564(void) {
gRoomVars.filler[2] = 1;
@@ -175,11 +172,12 @@ void sub_08054570(void) {
gRoomVars.filler[2] = 0;
}
NAKED
u32 sub_0805457C(u32 arg0, u32 arg1) {
asm(".include \"asm/non_matching/code_0805457C.inc\"");
}
ASM_FUNC("asm/non_matching/sub_0805457C.inc", u32 sub_0805457C(u32 arg0, u32 arg1));
NONMATCH("asm/non_matching/CreateItemDrop.inc", u32 CreateItemDrop(Entity* arg0, u32 itemID, u32 itemParameter)) {
// TODO see below
}
END_NONMATCH
/*
extern u8 gUnk_080FE1DD[];
+1 -44
View File
@@ -44,50 +44,7 @@ void sub_0805EC60(Entity* this) {
}
}
NAKED
bool32 sub_0805EC9C(Entity* ent, u32 param_2, u32 param_3, u32 param_4) {
asm_unified("\
push {r4, r5, r6, r7, lr} \n\
adds r4, r0, #0 \n\
adds r5, r1, #0 \n\
adds r6, r2, #0 \n\
adds r7, r3, #0 \n\
ldrb r0, [r4, #0x1b] \n\
lsls r0, r0, #0x1a \n\
lsrs r0, r0, #0x1b \n\
cmp r0, #0 \n\
bne _0805ECBE \n\
adds r0, r4, #0 \n\
bl sub_0805EC04 \n\
cmp r0, #0 \n\
bne _0805ECBE \n\
movs r0, #0 \n\
b _0805ECE0 \n\
_0805ECBE: \n\
ldr r1, _0805ECE4 @ =gUnk_03000000 \n\
ldr r0, _0805ECE8 @ =0x00000427 \n\
adds r2, r1, r0 \n\
movs r0, #1 \n\
strb r0, [r2] \n\
ldrb r0, [r4, #0x1b] \n\
lsls r0, r0, #0x1a \n\
lsrs r0, r0, #0x1b \n\
lsls r0, r0, #3 \n\
movs r2, #0x84 \n\
lsls r2, r2, #3 \n\
adds r1, r1, r2 \n\
adds r0, r0, r1 \n\
strh r5, [r0] \n\
strh r6, [r0, #2] \n\
strh r7, [r0, #4] \n\
movs r0, #1 \n\
_0805ECE0: \n\
pop {r4, r5, r6, r7, pc} \n\
.align 2, 0 \n\
_0805ECE4: .4byte gUnk_03000000 \n\
_0805ECE8: .4byte 0x00000427 \n\
");
}
ASM_FUNC("asm/non_matching/sub_0805EC9C.inc", bool32 sub_0805EC9C(Entity* ent, u32 param_2, u32 param_3, u32 param_4))
void sub_0805ECEC(int param_1, u32 param_2, u32 param_3, u32 param_4) {
u16* temp;
+1 -4
View File
@@ -121,7 +121,4 @@ Entity* sub_08077CF8(u32 subtype, u32 form, u32 parameter, u32 unk) {
return ent;
}
NAKED
void sub_08077D38(ItemBehavior* beh, u32 arg1) {
asm(".include \"asm/non_matching/sub_08077D38.inc\"");
}
ASM_FUNC("asm/non_matching/sub_08077D38.inc", void sub_08077D38(ItemBehavior* beh, u32 arg1))
+1 -4
View File
@@ -83,10 +83,7 @@ void sub_08077F10(ItemBehavior* arg0) {
sub_08077F24(arg0, (u16)gPlayerState.field_0x90.HALF.HI);
}
NAKED
void sub_08077F24(ItemBehavior* beh, u32 arg1) {
asm(".include \"asm/non_matching/sub_08077F24.inc\"");
}
ASM_FUNC("asm/non_matching/sub_08077F24.inc", void sub_08077F24(ItemBehavior* beh, u32 arg1))
void sub_08077F50(ItemBehavior* beh, u32 arg1) {
sub_08079184();
+3 -9
View File
@@ -6,14 +6,8 @@
#include "save.h"
// these three functions use gRoomControls, maybe once that is understood better, these can be decompiled easier
NONMATCH("asm/non_matching/code_0807CC3C/sub_0807D280.inc", void sub_0807D280(u32 unk_1, u32 unk_2)) {
}
END_NONMATCH
ASM_FUNC("asm/non_matching/code_0807CC3C/sub_0807D280.inc", void sub_0807D280(u32 unk_1, u32 unk_2))
NONMATCH("asm/non_matching/code_0807CC3C/sub_0807D46C.inc", void sub_0807D46C(u32 unk_1, u32 unk_2)) {
}
END_NONMATCH
ASM_FUNC("asm/non_matching/code_0807CC3C/sub_0807D46C.inc", void sub_0807D46C(u32 unk_1, u32 unk_2))
NONMATCH("asm/non_matching/code_0807CC3C/sub_0807D6D8.inc", void sub_0807D6D8(u32 unk_1, u32 unk_2)) {
}
END_NONMATCH
ASM_FUNC("asm/non_matching/code_0807CC3C/sub_0807D6D8.inc", void sub_0807D6D8(u32 unk_1, u32 unk_2))
+2 -8
View File
@@ -444,8 +444,7 @@ void sub_0802AF9C(Entity* this) {
}
}
#if NON_MATCHING
void sub_0802AFC8(Entity* this) {
NONMATCH("asm/non_matching/bombPeahat/sub_0802AFC8.inc", void sub_0802AFC8(Entity* this)) {
u32 flag = 8;
if (this->field_0xf < 0x29) {
u32 tmp;
@@ -470,12 +469,7 @@ void sub_0802AFC8(Entity* this) {
this->palette.b.b0 = this->palette.b.b4;
}
}
#else
NAKED
void sub_0802AFC8(Entity* this) {
asm(".include \"asm/non_matching/bombPeahat/sub_0802AFC8.inc\"");
}
#endif
END_NONMATCH
void sub_0802B048(Entity* this) {
Entity* ent;
+2 -8
View File
@@ -523,8 +523,7 @@ bool32 sub_080291DC(Entity* this) {
return FALSE;
}
#if NON_MATCHING
void sub_0802922C(Entity* this) {
NONMATCH("asm/non_matching/businessScrub/sub_0802925C.inc", void sub_0802922C(Entity* this)) {
const struct SalesOffering* offer = (const struct SalesOffering*)this->field_0x7c.WORD;
this->action = 6;
@@ -538,12 +537,7 @@ void sub_0802922C(Entity* this) {
sub_080290E0(this, 3);
}
#else
NAKED
void sub_0802922C(Entity* this) {
asm(".include \"asm/non_matching/businessScrub/sub_0802925C.inc\"");
}
#endif
END_NONMATCH
void sub_0802925C(Entity* this) {
sub_08078784(this, sub_0801E99C(this));
+1 -4
View File
@@ -391,10 +391,7 @@ void sub_0802124C(Entity* this) {
}
}
NAKED
u32 sub_08021274(u32 a, u32 b) {
asm(".include \"asm/non_matching/darkNut/sub_08021274.inc\"");
}
ASM_FUNC("asm/non_matching/darkNut/sub_08021274.inc", u32 sub_08021274(u32 a, u32 b))
void sub_080212B0(Entity* this) {
u8 tmp;
+5 -9
View File
@@ -11,6 +11,8 @@ extern const u16 gUnk_080CD568[];
extern const u8 gUnk_080CD580[];
extern const s16 gUnk_080CD58C[];
extern void sub_080AEFB4(Entity*);
void FallingBoulder(Entity* this) {
EnemyFunctionHandler(this, gUnk_080CD540);
}
@@ -58,8 +60,7 @@ void sub_0802C318(Entity* this) {
}
}
#if NON_MATCHING
void sub_0802C334(Entity* this) {
NONMATCH("asm/non_matching/fallingBoulder/sub_0802C334.inc", void sub_0802C334(Entity* this)) {
if ((u16)this->field_0x7c.HALF.LO == 0) {
u32 tmp = gRoomControls.roomOriginY;
if (&gPlayerEntity == NULL)
@@ -99,7 +100,7 @@ void sub_0802C334(Entity* this) {
diff += 0x18;
}
sub_0802C62C(this);
this->field_0x7a.HWORD = Random() & 0xff | 0x100;
this->field_0x7a.HWORD = (Random() & 0xff) | 0x100;
return;
}
break;
@@ -124,12 +125,7 @@ void sub_0802C334(Entity* this) {
this->spritePriority.b0 = 1;
UpdateSpriteForCollisionLayer(this);
}
#else
NAKED
void sub_0802C334(Entity* this) {
asm(".include \"asm/non_matching/fallingBoulder/sub_0802C334.inc\"");
}
#endif
END_NONMATCH
void nullsub_148(Entity* this) {
/* ... */
+2 -8
View File
@@ -204,8 +204,7 @@ void sub_0802805C(Entity* this) {
}
}
#if NON_MATCHING
void sub_0802810C(Entity* this) {
NONMATCH("asm/non_matching/likeLike/sub_0802810C.inc", void sub_0802810C(Entity* this)) {
gPlayerState.jumpStatus = 0x41;
gPlayerState.field_0xa = 0;
gPlayerState.flags.all &= 0xffffffef;
@@ -224,12 +223,7 @@ void sub_0802810C(Entity* this) {
this->iframes = -18;
}
}
#else
NAKED
void sub_0802810C(Entity* this) {
asm(".include \"asm/non_matching/likeLike/sub_0802810C.inc\"");
}
#endif
END_NONMATCH
void sub_080281A0(Entity* this) {
this->field_0xf = 0x19;
+1 -4
View File
@@ -318,10 +318,7 @@ void sub_08029DE4(Entity* this) {
}
}
NAKED
void sub_08029E0C(Entity* this) {
asm(".include \"asm/non_matching/madderpillar/sub_08029E0C.inc\"");
}
ASM_FUNC("asm/non_matching/madderpillar/sub_08029E0C.inc", void sub_08029E0C(Entity* this))
void sub_08029EEC(Entity* this) {
u32 uVar1 = (this->direction >> 3) + this->field_0x74.HALF.HI;
+2 -8
View File
@@ -141,15 +141,9 @@ void sub_08022DE8(Entity* this) {
}
}
NAKED
void sub_08022E40(Entity* this) {
asm(".include \"asm/non_matching/moldorm/sub_08022E40.inc\"");
}
ASM_FUNC("asm/non_matching/moldorm/sub_08022E40.inc", void sub_08022E40(Entity* this))
NAKED
void sub_08022EAC(Entity* this) {
asm(".include \"asm/non_matching/moldorm/sub_08022EAC.inc\"");
}
ASM_FUNC("asm/non_matching/moldorm/sub_08022EAC.inc", void sub_08022EAC(Entity* this))
void sub_08022F14(Entity* this) {
if (sub_08049FA0(this) == 0) {
+4 -16
View File
@@ -27,8 +27,7 @@ extern void (*const gUnk_080CBC98[])(Entity*);
extern void (*const gUnk_080CBCA8[])(Entity*);
extern const s8 gUnk_080CBCB8[];
#if NON_MATCHING
void Moldworm(Entity* this) {
NONMATCH("asm/non_matching/moldworm/Moldworm.inc", void Moldworm(Entity* this)) {
u16 prevX = this->x.HALF.HI;
u16 prevY = this->y.HALF.HI;
@@ -56,12 +55,7 @@ void Moldworm(Entity* this) {
(((this->x.HALF.HI - prevX + 8) & 0xf) << 4) | ((this->y.HALF.HI - prevY + 8U) & 0xf);
}
}
#else
NAKED
void Moldworm(Entity* this) {
asm(".include \"asm/non_matching/moldworm/moldworm.inc\"");
}
#endif
END_NONMATCH
void sub_080230CC(Entity* this) {
gUnk_080CBC50[this->action](this);
@@ -472,10 +466,7 @@ void sub_08023990(Entity* this, u32 param_2, u32 param_3) {
}
/* TODO: fix struct */
NAKED
void sub_080239F0(Entity* this) {
asm(".include \"asm/non_matching/moldworm/sub_080239F0.inc\"");
}
ASM_FUNC("asm/non_matching/moldworm/sub_080239F0.inc", void sub_080239F0(Entity* this))
bool32 sub_08023A38(u32 unk) {
if (unk == 0x1a || unk == 0x29) {
@@ -522,10 +513,7 @@ void sub_08023AB0(Entity* this) {
}
}
NAKED
bool32 sub_08023B38(Entity* this) {
asm(".include \"asm/non_matching/moldworm/sub_08023B38.inc\"");
}
ASM_FUNC("asm/non_matching/moldworm/sub_08023B38.inc", bool32 sub_08023B38(Entity* this))
// clang-format off
void (*const gUnk_080CBC38[])(Entity*) = {
+7 -21
View File
@@ -4,6 +4,7 @@
#include "createObject.h"
#include "game.h"
#include "functions.h"
#include "save.h"
extern u32 sub_080002E0(u16, u32);
extern void sub_0800449C(Entity*, u32);
@@ -559,20 +560,14 @@ void sub_080249DC(Entity* this) {
InitializeAnimation(this, this->animationState);
}
#if NON_MATCHING
void sub_080249F4(Entity* this) {
NONMATCH("asm/non_matching/pesto/sub_080249F4.inc", void sub_080249F4(Entity* this)) {
u8 direction = ((this->direction + 2) & 0x1c) >> 2;
if (direction != this->animationState) {
this->animationState = direction;
InitializeAnimation(this, this->animationState);
}
}
#else
NAKED
void sub_080249F4(Entity* this) {
asm(".include \"asm/non_matching/pesto/sub_080249F4.inc\"");
}
#endif
END_NONMATCH
void sub_08024A14(Entity* this, u32 param_2, u32 param_3) {
u8 unk = FALSE;
@@ -703,10 +698,7 @@ bool32 sub_08024B38(Entity* this) {
return iVar4;
}
NAKED
bool32 sub_08024C48(Entity* this, bool32 unk) {
asm(".include \"asm/non_matching/pesto/sub_08024C48.inc\"");
}
ASM_FUNC("asm/non_matching/pesto/sub_08024C48.inc", bool32 sub_08024C48(Entity* this, bool32 unk))
void sub_08024C7C(Entity* this) {
this->action = 1;
@@ -794,8 +786,7 @@ u32 sub_08024E34(void) {
return gUnk_080CBF20[idx];
}
#if NON_MATCHING
void sub_08024E4C(Entity* this) {
NONMATCH("asm/non_matching/pesto/sub_08024E4C.inc", void sub_08024E4C(Entity* this)) {
if (this->field_0x82.HALF.HI == 3) {
this->field_0xf++;
this->field_0xf &= 0xff;
@@ -829,7 +820,7 @@ void sub_08024E4C(Entity* this) {
player->animationState = 4;
player->spritePriority.b1 = 0;
if (this->field_0xf == 0) {
(this->field_0x86.HALF.HI++;
this->field_0x86.HALF.HI++;
player->iframes = 8;
ModHealth(-2);
sub_0800449C(player, 0x7a);
@@ -837,12 +828,7 @@ void sub_08024E4C(Entity* this) {
}
}
}
#else
NAKED
void sub_08024E4C(Entity* this) {
asm(".include \"asm/non_matching/pesto/sub_08024E4C.inc\"");
}
#endif
END_NONMATCH
void sub_08024F50(Entity* this) {
gPlayerState.field_0xa = 0;
+2 -8
View File
@@ -468,8 +468,7 @@ bool32 sub_080258C4(Entity* this) {
}
}
#if NON_MATCHING
bool32 sub_0802594C(Entity* this, u32 param_2) {
NONMATCH("asm/non_matching/puffstool/sub_0802594C.inc", bool32 sub_0802594C(Entity* this, u32 param_2)) {
const s8* unk = gUnk_080CC090[param_2];
u32 uVar1 = this->collisionLayer;
RoomControls* ctrl = &gRoomControls;
@@ -492,12 +491,7 @@ bool32 sub_0802594C(Entity* this, u32 param_2) {
return 0;
}
#else
NAKED
bool32 sub_0802594C(Entity* this, u32 param_2) {
asm(".include \"asm/non_matching/puffstool/sub_0802594C.inc\"");
}
#endif
END_NONMATCH
void sub_08025A54(Entity* this) {
u32 layer = this->collisionLayer;
+4 -10
View File
@@ -240,14 +240,13 @@ void sub_08028528(Entity* this) {
}
}
#if NON_MATCHING
void sub_08028604(Entity* this) {
NONMATCH("asm/non_matching/spearMoblin/sub_08028604.inc", void sub_08028604(Entity* this)) {
this->field_0xf = 0;
if (this->field_0x82.HALF.LO == 1) {
this->actionDelay = gUnk_080CC7BC[Random() & 3];
this->speed = 0x80;
if (sub_08049FA0(this) != 0) {
this->direction = gUnk_080CC7D0[Random() & 7] + 0x18 + this->direction & 0x18;
this->direction = gUnk_080CC7D0[Random() & 7] + 0x18 + (this->direction & 0x18);
} else {
u32 iVar3 = sub_08049EE4(this);
u32 uVar1;
@@ -258,7 +257,7 @@ void sub_08028604(Entity* this) {
this->actionDelay = this->actionDelay + 0x10;
this->field_0x82.HALF.HI--;
}
this->direction = iVar3 + uVar1 + 4U & 0x18;
this->direction = iVar3 + uVar1 + (4U & 0x18);
}
} else {
this->actionDelay = 0xc;
@@ -270,12 +269,7 @@ void sub_08028604(Entity* this) {
sub_080287E0(this);
}
}
#else
NAKED
void sub_08028604(Entity* this) {
asm(".include \"asm/non_matching/spearMoblin/sub_08028604.inc\"");
}
#endif
END_NONMATCH
bool32 sub_080286CC(Entity* this) {
if (this->field_0x80.HALF.HI == 0) {
+1 -4
View File
@@ -160,10 +160,7 @@ void sub_0802CF64(Entity* this) {
sub_0802CF8C(this);
}
NAKED
void sub_0802CF8C(Entity* this) {
asm(".include \"asm/non_matching/wallMaster2/sub_0802CF8C.inc\"");
}
ASM_FUNC("asm/non_matching/wallMaster2/sub_0802CF8C.inc", void sub_0802CF8C(Entity* this))
void sub_0802CFD8(Entity* this) {
u32 unk = gUnk_080CD740[(this->field_0x7a.HALF.LO++ >> 3) & 7];
+3 -39
View File
@@ -34,10 +34,10 @@ void EzloNag(Element* arg0) {
gUnk_080C904C[arg0->unk4](arg0);
}
#ifdef NON_MATCHING // REG SWAP
extern u32 gUnk_080C9094;
extern void sub_0801CAB8(Element*, u32*);
void sub_0801CED8(Element* arg0) {
NONMATCH("asm/non_matching/sub_0801CED8.inc", void sub_0801CED8(Element* arg0)) {
if (gUnk_0200AF00.ezloNagFuncIndex == 1) {
gUnk_0200AF00.ezloNagFuncIndex = 2;
arg0->unkC = 0x10;
@@ -49,43 +49,7 @@ void sub_0801CED8(Element* arg0) {
sub_0801CAB8(arg0, &gUnk_080C9094);
}
}
#else
NAKED
void sub_0801CED8(Element* arg0) {
asm_unified("\
push {r4, lr}\n\
adds r3, r0, #0\n\
ldr r0, _0801CF10 @ =gUnk_0200AF00\n\
adds r1, r0, #0\n\
adds r1, #0x24\n\
ldrb r4, [r1]\n\
cmp r4, #1\n\
bne _0801CF0E\n\
movs r2, #2\n\
movs r0, #2\n\
strb r0, [r1]\n\
movs r1, #0\n\
movs r0, #0x10\n\
strh r0, [r3, #0xc]\n\
movs r0, #0x90\n\
strh r0, [r3, #0xe]\n\
strb r1, [r3, #6]\n\
movs r0, #7\n\
strb r0, [r3, #1]\n\
strb r4, [r3, #4]\n\
ldrb r0, [r3]\n\
orrs r0, r2\n\
strb r0, [r3]\n\
ldr r1, _0801CF14 @ =gUnk_080C9094\n\
adds r0, r3, #0\n\
bl sub_0801CAB8\n\
_0801CF0E:\n\
pop {r4, pc}\n\
.align 2, 0\n\
_0801CF10: .4byte gUnk_0200AF00\n\
_0801CF14: .4byte gUnk_080C9094");
}
#endif
END_NONMATCH
void sub_0801CF18(Element* arg0) {
u32 temp;
+1 -1
View File
@@ -1066,7 +1066,7 @@ void CgbModVol(CgbChannel* chan) {
// Force chan->rightVolume and chan->leftVolume to be read from memory again,
// even though there is no reason to do so.
// The command line option "-fno-gcse" achieves the same result as this.
#ifndef NONMATCHING
#ifndef NON_MATCHING
asm("" : : : "memory");
#endif
+4 -10
View File
@@ -427,8 +427,7 @@ void sub_0805A94C(Manager15* this) {
gScreen.controls.window1VerticalDimensions = (tmp1 << 8 | tmp2);
}
#ifdef NON_MATCHING
void sub_0805A9CC(Manager15* this) {
NONMATCH("asm/non_matching/manager15/sub_0805A9CC.inc", void sub_0805A9CC(Manager15* this)) {
int tmp1, tmp2;
void* tmp3;
gScreen.affine.bg3xOffset = gRoomControls.roomScrollX - this->unk_24 + this->unk_34;
@@ -448,19 +447,14 @@ void sub_0805A9CC(Manager15* this) {
if (tmp1 < 0)
tmp1 += 0x3F;
tmp3 = (&gBG3Buffer[(tmp1 >> 6 << 9)]);
gScreen.affine.unk5 = (u32)tmp3;
gScreen.affine.bg2Tilemap = (u32*)tmp3; // TODO .unk5
gScreen.controls.window1VerticalDimensions = 0xa0;
if (this->unk_28 == tmp3)
return;
this->unk_28 = tmp3;
gScreen.affine.unk4 = 1;
gScreen.affine.bg2Updated = 1; // TODO .unk4
}
#else
NAKED
void sub_0805A9CC(Manager15* this) {
asm(".include \"asm/non_matching/manager15/sub_0805A9CC.inc\"");
}
#endif
END_NONMATCH
extern struct { u8 unk_00[0x20]; } gUnk_085A97A0[];
extern u16 gUnk_081085B8[];
+3 -9
View File
@@ -62,11 +62,10 @@ void sub_08057920(Manager* this) {
void sub_08057A18(Manager*, DiggingCaveEntrance*);
#ifdef NON_MATCHING
u32 sub_0805795C(Manager* this, DiggingCaveEntrance* entr) {
NONMATCH("asm/non_matching/manager4/sub_0805795C.inc", u32 sub_0805795C(Manager* this, DiggingCaveEntrance* entr)) {
u16 offsetX, offsetY, offsetX2, offsetY2;
u32 tmp;
if (gUnk_03004030.address_width) {
if (gUnk_03004030.unk_00) { // TODO .address_width (?)
offsetX = gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX;
offsetY = gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY;
offsetX2 = (entr->unk_00 & 0x3F) * 16 + 8;
@@ -93,12 +92,7 @@ u32 sub_0805795C(Manager* this, DiggingCaveEntrance* entr) {
sub_08057A18(this, entr);
return 1;
}
#else
NAKED
u32 sub_0805795C(Manager* this, DiggingCaveEntrance* entr) {
asm(".include \"asm/non_matching/manager4/sub_0805795C.inc\"");
}
#endif
END_NONMATCH
extern void sub_08080930();
+5 -9
View File
@@ -8,6 +8,8 @@
#include "coord.h"
#include "functions.h"
#include "save.h"
#include "area.h"
#include "utils.h"
typedef struct {
Manager manager;
@@ -275,8 +277,7 @@ void sub_08058CFC() {
}
}
#ifdef NON_MATCHING
void sub_08058D34() {
NONMATCH("asm/non_matching/managerC/sub_08058D34.inc", void sub_08058D34()) {
LoadPaletteGroup(0x28);
MemCopy(gUnk_02017700, gUnk_02017700 + 0x240, 0x20);
gUsedPalettes |= 0x200000;
@@ -285,7 +286,7 @@ void sub_08058D34() {
gScreen.affine.bg2Control = 0xBC82;
gScreen.bg.bg1xOffset = 0x5E86;
gScreen.bg.bg1yOffset = 0;
gScreen.bg.bg2xOffset = 0;
gScreen.bg.bg1Tilemap = 0;
gScreen.controls.layerFXControl = 0x3456;
gScreen.controls.alphaBlend = 0x909;
gArea.musicIndex = gArea.pMusicIndex;
@@ -294,9 +295,4 @@ void sub_08058D34() {
LoadGfxGroup(0x4A);
}
}
#else
NAKED
void sub_08058D34() {
asm(".include \"asm/non_matching/managerC/sub_08058D34.inc\"");
}
#endif
END_NONMATCH
+8 -10
View File
@@ -3,6 +3,8 @@
#include "npc.h"
#include "script.h"
#include "functions.h"
#include "object.h"
#include "random.h"
extern void (*gUnk_081121D4[])(Entity*);
@@ -41,8 +43,9 @@ void sub_0806A234(Entity* this) {
}
}
#ifdef NON_MATCHING
void sub_0806A26C(Entity* this) {
extern u8 gUnk_081121DC[];
NONMATCH("asm/non_matching/syrup/sub_0806A26C.inc", void sub_0806A26C(Entity* this)) {
u8 unk;
u32 uVar2;
Entity* pEVar1;
@@ -52,13 +55,8 @@ void sub_0806A26C(Entity* this) {
if (uVar2 = Random(), uVar2) {
unk = -unk; // wtf?!
}
pEVar1->spriteOffsetX = gUnk_081121D4[uVar2 & 7];
pEVar1->spriteOffsetY = gUnk_081121D4[(uVar2 / 256) & 7] - 8;
pEVar1->spriteOffsetX = (u8)gUnk_081121DC[uVar2 & 7];
pEVar1->spriteOffsetY = (u8)gUnk_081121DC[(uVar2 / 256) & 7] - 8;
}
}
#else
NAKED
void sub_0806A26C(Entity* this) {
asm(".include \"asm/non_matching/syrup/sub_0806A26C.inc\"");
}
#endif
END_NONMATCH
+2 -8
View File
@@ -73,19 +73,13 @@ void sub_08061C00(Entity* this) {
}
}
#if NON_MATCHING
void Townsperson_Head(Entity* this) {
NONMATCH("asm/non_matching/townsperson/Townsperson_Head.inc", void Townsperson_Head(Entity* this)) {
SetExtraSpriteFrame(this, 0, *(gUnk_0810B78C + (this->animIndex & 3)) + gUnk_0810B680[this->type].frame1);
SetExtraSpriteFrame(this, 1, this->frameIndex + gUnk_0810B680[this->type].frame2);
SetSpriteSubEntryOffsetData1(this, 1, 0);
sub_0807000C(this);
}
#else
NAKED
void Townsperson_Head(Entity* this) {
asm(".include \"asm/non_matching/townsperson/sub_08061C60.inc\"");
}
#endif
END_NONMATCH
void sub_08061CB4(Entity* this, u32 arg1) {
if (this->animIndex != arg1) {
+6 -10
View File
@@ -197,11 +197,12 @@ u32 sub_08081F00(u32*, u32*);
extern u16 gMapDataTopSpecial[0x2000];
#ifdef NON_MATCHING
void sub_08081E6C(Entity* this) {
extern u16* GetLayerByIndex(u32);
extern u16 gUnk_02019EE0[];
NONMATCH("asm/non_matching/button/sub_08081E6C.inc", void sub_08081E6C(Entity* this)) {
u32 r4;
u16 *tmp, *r1;
u8* tmp2;
u16* tmp2;
u32 r6 = this->field_0x74.HWORD;
u32 r5 = this->collisionLayer;
u32 tile = GetTileType(r6, r5);
@@ -212,19 +213,14 @@ void sub_08081E6C(Entity* this) {
tmp = r1 + 0x3802;
r1 += 0x3002 + r4;
tmp = tmp + (*r1 << 2);
tmp2 = (r5 == 2 ? gMapDataTopSpecial : (u8*)&gUnk_02019EE0);
tmp2 = (r5 == 2 ? gMapDataTopSpecial : gUnk_02019EE0);
tmp2 += (((0x3f & r6) << 1) + ((0xfc0 & r6) << 2)) << 1;
if (sub_08081F00((u32*)tmp2, (u32*)tmp))
return;
SetTileType(r4, r6, r5);
SetTile(tile, r6, r5);
}
#else
NAKED
void sub_08081E6C(Entity* this) {
asm(".include \"asm/non_matching/button/sub_08081E6C.s\"");
}
#endif
END_NONMATCH
u32 sub_08081F00(u32* unk1, u32* unk2) {
if (*unk1 != *unk2)
+4 -4
View File
@@ -130,7 +130,7 @@ void PlayerInit(Entity* this) {
}
// PlayerState.flags need to be 100% before this one can reasonably be done
ASM_FUNC("asm/non_matching/player/sub_08070794.s", void PlayerNormal(Entity* this))
ASM_FUNC("asm/non_matching/player/PlayerNormal.inc", void PlayerNormal(Entity* this))
void sub_08070BEC(Entity* this, u32 r0) {
if (r0 & 1)
@@ -219,7 +219,7 @@ void sub_08070D38(Entity* this) {
}
// minor regalloc
NONMATCH("asm/non_matching/player/sub_08070DC4.s", void sub_08070DC4(Entity* this)) {
NONMATCH("asm/non_matching/player/sub_08070DC4.inc", void sub_08070DC4(Entity* this)) {
UpdateAnimationSingleFrame(this);
sub_080085B0(this);
sub_08079E08();
@@ -673,7 +673,7 @@ void PortalShrinkInit(Entity* this) {
}
// horrible
ASM_FUNC("asm/non_matching/player/sub_08071634.s", void PortalShrinkUpdate(Entity* this))
ASM_FUNC("asm/non_matching/player/PortalShrinkUpdate.inc", void PortalShrinkUpdate(Entity* this))
void PortalEnterUpdate(Entity* this) {
if (this->actionDelay == 0) {
@@ -1712,7 +1712,7 @@ void sub_08072CFC(Entity* this) {
extern const u16* gUnk_0811BBD4[];
NONMATCH("asm/non_matching/player/sub_08072D54.s", void sub_08072D54(Entity* this)) {
NONMATCH("asm/non_matching/player/sub_08072D54.inc", void sub_08072D54(Entity* this)) {
u32 bVar1;
u32 uVar2;
u32 iVar3;
+6 -24
View File
@@ -981,10 +981,7 @@ void sub_0804BF38(u32 arg0, struct_0804BF38* arg1)
SoundReq(gUnk_080D8E50[iVar2].sfx);
}
#else
NAKED
void sub_0804BF38(Entity* this, ScriptExecutionContext* context) {
asm(".include \"asm/non_matching/sub_0804BF38.inc\"");
}
ASM_FUNC("asm/non_matching/sub_0804BF38.inc", void sub_0804BF38(Entity* this, ScriptExecutionContext* context))
#endif
u32 sub_0804C00C() {
@@ -1041,20 +1038,11 @@ void sub_0804C108(void) {
sub_0804C128(gArea.filler[7] |= 1);
}
NAKED
void sub_0804C128(u32 arg0) {
asm(".include \"asm/non_matching/sub_0804C128.inc\"");
}
ASM_FUNC("asm/non_matching/sub_0804C128.inc", void sub_0804C128(u32 arg0))
NAKED
void sub_0804C258(void) {
asm(".include \"asm/non_matching/sub_0804C258.inc\"");
}
ASM_FUNC("asm/non_matching/sub_0804C258.inc", void sub_0804C258(void))
NAKED
void sub_0804C290(void) {
asm(".include \"asm/non_matching/sub_0804C290.inc\"");
}
ASM_FUNC("asm/non_matching/sub_0804C290.inc", void sub_0804C290(void))
u32 sub_0804C2BC() {
return 1;
@@ -4203,10 +4191,7 @@ u32 sub_0804DDF8() {
void nullsub_374() {
}
NAKED
u32 sub_0804DE00(void) {
asm(".include \"asm/non_matching/sub_0804DE00.inc\"");
}
ASM_FUNC("asm/non_matching/sub_0804DE00.inc", u32 sub_0804DE00(void))
extern EntityData gUnk_080EEB6C;
extern EntityData gUnk_080EEB8C;
@@ -4313,10 +4298,7 @@ void sub_0804E130(void) {
}
}
NAKED
void sub_0804E150(void) {
asm(".include \"asm/non_matching/sub_0804E150.inc\"");
}
ASM_FUNC("asm/non_matching/sub_0804E150.inc", void sub_0804E150(void))
u32 sub_0804E1F4() {
return 1;
+2 -4
View File
@@ -682,10 +682,8 @@ void CreateWindow(void) {
sub_0801C494();
}
NONMATCH("asm/non_matching/textbox/DispMessageFrame.inc",
void DispMessageFrame(u16* buffer, u32 width_, u32 height_, u32 flags_)) {
}
END_NONMATCH
ASM_FUNC("asm/non_matching/textbox/DispMessageFrame.inc",
void DispMessageFrame(u16* buffer, u32 width_, u32 height_, u32 flags_))
extern u16 gUnk_02034CB2[];
extern u16 gUnk_0202281E[];