mirror of
https://github.com/zeldaret/tmc
synced 2026-07-08 14:36:41 -04:00
Unify nonmatching namings
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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))
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
@@ -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;
|
||||
|
||||
@@ -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) {
|
||||
/* ... */
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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;
|
||||
|
||||
@@ -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
@@ -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) {
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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[];
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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[];
|
||||
|
||||
Reference in New Issue
Block a user