mirror of https://github.com/zeldaret/tmc.git
Merge pull request #388 from hatal175/sub_08054524
match sub_08054524 and sub_080A4BA0
This commit is contained in:
commit
f1b4286c7c
|
@ -1,140 +0,0 @@
|
|||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
sub sp, #0x54
|
||||
adds r5, r0, #0
|
||||
adds r6, r1, #0
|
||||
add r0, sp, #0x18
|
||||
movs r1, #0x30
|
||||
bl MemClear
|
||||
ldr r0, _080A4C08 @ =gUnk_0812816C
|
||||
mov r1, sp
|
||||
movs r2, #0x18
|
||||
bl MemCopy
|
||||
ldr r0, _080A4C0C @ =gUnk_08128184
|
||||
add r4, sp, #0x48
|
||||
adds r1, r4, #0
|
||||
movs r2, #0xc
|
||||
bl MemCopy
|
||||
lsls r1, r6, #1
|
||||
adds r1, r1, r6
|
||||
lsls r2, r1, #9
|
||||
ldr r0, [sp, #4]
|
||||
adds r0, r0, r2
|
||||
str r0, [sp, #4]
|
||||
mov r2, sp
|
||||
mov r0, sp
|
||||
lsls r1, r1, #4
|
||||
ldrh r0, [r0, #0x10]
|
||||
adds r1, r1, r0
|
||||
strh r1, [r2, #0x10]
|
||||
lsls r1, r6, #7
|
||||
ldr r0, [sp]
|
||||
adds r0, r0, r1
|
||||
str r0, [sp]
|
||||
cmp r6, #2
|
||||
bne _080A4BEE
|
||||
mov r0, sp
|
||||
strb r6, [r0, #0x14]
|
||||
_080A4BEE:
|
||||
ldr r0, _080A4C10 @ =gSave
|
||||
ldrb r0, [r0, #6]
|
||||
movs r1, #0x88
|
||||
cmp r0, #0
|
||||
bne _080A4BFA
|
||||
movs r1, #0x82
|
||||
_080A4BFA:
|
||||
cmp r5, #0
|
||||
ble _080A4C02
|
||||
cmp r1, r5
|
||||
bge _080A4C14
|
||||
_080A4C02:
|
||||
movs r5, #1
|
||||
rsbs r5, r5, #0
|
||||
b _080A4C3E
|
||||
.align 2, 0
|
||||
_080A4C08: .4byte gUnk_0812816C
|
||||
_080A4C0C: .4byte gUnk_08128184
|
||||
_080A4C10: .4byte gSave
|
||||
_080A4C14:
|
||||
ldr r1, _080A4C30 @ =gUnk_020227E8
|
||||
ldr r2, _080A4C34 @ =0x00303030
|
||||
adds r0, r5, #0
|
||||
bl sub_08057044
|
||||
adds r0, r5, #0
|
||||
bl sub_080A4948
|
||||
cmp r0, #0
|
||||
bne _080A4C38
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #8
|
||||
b _080A4C3C
|
||||
.align 2, 0
|
||||
_080A4C30: .4byte gUnk_020227E8
|
||||
_080A4C34: .4byte 0x00303030
|
||||
_080A4C38:
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #4
|
||||
_080A4C3C:
|
||||
adds r5, r5, r0
|
||||
_080A4C3E:
|
||||
ldr r0, _080A4C94 @ =gMenu
|
||||
lsls r1, r6, #1
|
||||
adds r0, #0x10
|
||||
adds r1, r1, r0
|
||||
ldrh r0, [r1]
|
||||
cmp r0, r5
|
||||
beq _080A4CB2
|
||||
strh r5, [r1]
|
||||
ldr r0, _080A4C98 @ =0x0000F00B
|
||||
cmp r6, #2
|
||||
bne _080A4C56
|
||||
subs r0, #7
|
||||
_080A4C56:
|
||||
ldr r1, [sp]
|
||||
movs r2, #0x80
|
||||
bl MemFill16
|
||||
cmp r5, #0
|
||||
ble _080A4CAC
|
||||
ldr r0, _080A4C9C @ =0x00007FFF
|
||||
cmp r5, r0
|
||||
ble _080A4C6A
|
||||
ldr r5, _080A4CA0 @ =0x00000889
|
||||
_080A4C6A:
|
||||
adds r0, r5, #0
|
||||
cmp r5, #0
|
||||
bge _080A4C72
|
||||
adds r0, #0xff
|
||||
_080A4C72:
|
||||
asrs r0, r0, #8
|
||||
strb r0, [r4, #8]
|
||||
strb r5, [r4, #9]
|
||||
ldr r0, [sp]
|
||||
adds r0, #0x16
|
||||
str r0, [sp]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #0x12
|
||||
ldrb r0, [r0, #7]
|
||||
cmp r0, #0
|
||||
bne _080A4CA4
|
||||
adds r0, r4, #0
|
||||
mov r1, sp
|
||||
bl sub_0805F46C
|
||||
b _080A4CAC
|
||||
.align 2, 0
|
||||
_080A4C94: .4byte gMenu
|
||||
_080A4C98: .4byte 0x0000F00B
|
||||
_080A4C9C: .4byte 0x00007FFF
|
||||
_080A4CA0: .4byte 0x00000889
|
||||
_080A4CA4:
|
||||
adds r0, r5, #0
|
||||
mov r1, sp
|
||||
bl sub_0805F46C
|
||||
_080A4CAC:
|
||||
ldr r1, _080A4CB8 @ =gScreen
|
||||
movs r0, #1
|
||||
strh r0, [r1, #0x32]
|
||||
_080A4CB2:
|
||||
add sp, #0x54
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080A4CB8: .4byte gScreen
|
||||
.syntax divided
|
|
@ -1,31 +0,0 @@
|
|||
.syntax unified
|
||||
push {lr}
|
||||
ldr r0, _08054550 @ =gArea
|
||||
ldrb r1, [r0, #1]
|
||||
cmp r1, #0
|
||||
bne _08054534
|
||||
ldr r0, _08054554 @ =gRoomTransition
|
||||
adds r0, #0x2e
|
||||
ldrb r1, [r0]
|
||||
_08054534:
|
||||
cmp r1, #0x16
|
||||
bls _0805453A
|
||||
movs r1, #0
|
||||
_0805453A:
|
||||
ldr r0, _08054558 @ =gUnk_080FE1C6
|
||||
adds r0, r1, r0
|
||||
ldrb r1, [r0]
|
||||
lsls r0, r1, #5
|
||||
ldr r1, _0805455C @ =gAreaDroptables
|
||||
adds r0, r0, r1
|
||||
ldr r1, _08054560 @ =gRoomVars+0x48
|
||||
movs r2, #0x20
|
||||
bl MemCopy
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08054550: .4byte gArea
|
||||
_08054554: .4byte gRoomTransition
|
||||
_08054558: .4byte gUnk_080FE1C6
|
||||
_0805455C: .4byte gAreaDroptables
|
||||
_08054560: .4byte gRoomVars+0x48
|
||||
.syntax divided
|
|
@ -165,8 +165,7 @@ u32 GetBottleContaining(u32 id) {
|
|||
}
|
||||
}
|
||||
|
||||
NONMATCH("asm/non_matching/sub_08054524.inc", void sub_08054524(void)) {
|
||||
// reg-alloc
|
||||
void sub_08054524(void) {
|
||||
u32 bVar1;
|
||||
|
||||
bVar1 = gArea.locationIndex;
|
||||
|
@ -177,9 +176,9 @@ NONMATCH("asm/non_matching/sub_08054524.inc", void sub_08054524(void)) {
|
|||
bVar1 = 0;
|
||||
}
|
||||
|
||||
MemCopy(&gAreaDroptables[0] + gUnk_080FE1C6[bVar1] * 0x8, &gRoomVars.currentAreaDroptable, 0x20);
|
||||
bVar1 = gUnk_080FE1C6[bVar1];
|
||||
MemCopy(&gAreaDroptables[bVar1], &gRoomVars.currentAreaDroptable, 0x20);
|
||||
}
|
||||
END_NONMATCH
|
||||
|
||||
void sub_08054564(void) {
|
||||
gRoomVars.field_0x2 = 1;
|
||||
|
|
|
@ -21,7 +21,7 @@ void sub_080A4DA8(u32);
|
|||
void sub_080A4B44(void);
|
||||
void FigurineMenu_080A4978(void);
|
||||
u32 sub_080A4CBC(u32);
|
||||
u32 sub_080A4BA0(u32, u32);
|
||||
void sub_080A4BA0(u32, u32);
|
||||
void sub_080A4DB8(u32);
|
||||
|
||||
const KeyButtonLayout gUnk_0812813C = {
|
||||
|
@ -453,31 +453,30 @@ extern u8 gUnk_020227E8[];
|
|||
extern void sub_08057044(u32, u8*, u8*);
|
||||
extern void sub_0805F46C(u32, const struct_0812816C*);
|
||||
|
||||
NONMATCH("asm/non_matching/menu/figurine_menu/sub_080A4BA0.inc", u32 sub_080A4BA0(u32 unk1, u32 unk2)) {
|
||||
int r0, r1, r2, r3, r4, r5, r6;
|
||||
void sub_080A4BA0(u32 arg1, u32 arg2) {
|
||||
int r0, r5, r6;
|
||||
int tmp;
|
||||
|
||||
struct_0812816C s0;
|
||||
u8 buffer[0x30];
|
||||
struct_08128184 s2;
|
||||
|
||||
r5 = unk1;
|
||||
r6 = unk2;
|
||||
r5 = arg1;
|
||||
r6 = arg2;
|
||||
MemClear(buffer, sizeof(buffer));
|
||||
MemCopy(&gUnk_0812816C, &s0, sizeof(gUnk_0812816C));
|
||||
MemCopy(&gUnk_08128184, &s2, sizeof(gUnk_08128184));
|
||||
r1 = r6 << 1;
|
||||
r1 += r6;
|
||||
r2 = r1 << 9;
|
||||
s0.unk4 += r2;
|
||||
s0.unk10 += r1 << 4;
|
||||
r1 = r6 << 7;
|
||||
s0.unk0 += r1;
|
||||
if (r6 == 2) {
|
||||
s0.unk14 = r6;
|
||||
s0.unk4 += (arg2 * 3) << 9;
|
||||
s0.unk10 += (arg2 * 3) << 4;
|
||||
s0.unk0 += arg2 << 6;
|
||||
if (arg2 == 2) {
|
||||
s0.unk14 = arg2;
|
||||
}
|
||||
r1 = (gSave.unk6 == 0) ? 0x82 : 0x88;
|
||||
if (r5 <= 0 || r1 < r5) {
|
||||
r0 = -1;
|
||||
|
||||
tmp = (gSave.unk6 == 0) ? 0x82 : 0x88;
|
||||
|
||||
if (r5 <= 0 || tmp < r5) {
|
||||
r5 = -1;
|
||||
} else {
|
||||
sub_08057044(r5, gUnk_020227E8, (void*)0x303030);
|
||||
if (sub_080A4948(r5) == 0) {
|
||||
|
@ -486,32 +485,33 @@ NONMATCH("asm/non_matching/menu/figurine_menu/sub_080A4BA0.inc", u32 sub_080A4BA
|
|||
r5 += 0x800;
|
||||
}
|
||||
}
|
||||
if ((r0 = gFigurineMenu.unk10.h[r6]) == r5)
|
||||
return r0;
|
||||
gFigurineMenu.unk10.h[r6] = r5;
|
||||
r0 = (r6 != 2) ? 0xf00b : 7;
|
||||
MemFill16(r0, s0.unk0, 0x80);
|
||||
if (r5 > 0) {
|
||||
if (r5 > 0x7fff) {
|
||||
r5 = 0x889;
|
||||
}
|
||||
r0 = r5;
|
||||
if (r5 < 0) {
|
||||
r0 += 0xff;
|
||||
}
|
||||
s2.unk8 = r0 >> 8;
|
||||
s2.unk9 = r5;
|
||||
s0.unk0 += 0x16;
|
||||
if (gSaveHeader->language == 0) {
|
||||
sub_0805F46C((u32)&s2, &s0);
|
||||
} else {
|
||||
sub_0805F46C(r5, &s0);
|
||||
|
||||
if (gFigurineMenu.unk10.h[r6] != r5) {
|
||||
gFigurineMenu.unk10.h[r6] = r5;
|
||||
r0 = 0xf00b;
|
||||
if (r6 == 2)
|
||||
r0 -= 7;
|
||||
MemFill16(r0, s0.unk0, 0x80);
|
||||
if (r5 > 0) {
|
||||
if (r5 > 0x7fff) {
|
||||
r5 = 0x889;
|
||||
}
|
||||
r0 = r5;
|
||||
if (r5 < 0) {
|
||||
r0 += 0xff;
|
||||
}
|
||||
s2.unk8 = r0 >> 8;
|
||||
s2.unk9 = r5;
|
||||
s0.unk0 += 0xb;
|
||||
if (gSaveHeader->language == 0) {
|
||||
sub_0805F46C((u32)&s2, &s0);
|
||||
} else {
|
||||
sub_0805F46C(r5, &s0);
|
||||
}
|
||||
}
|
||||
gScreen.bg3.updated = 1;
|
||||
}
|
||||
gScreen.bg3.updated = 1;
|
||||
return 1;
|
||||
}
|
||||
END_NONMATCH
|
||||
|
||||
const struct_0812816C gUnk_08128190 = {
|
||||
(u16*)0x02021f72,
|
||||
|
|
Loading…
Reference in New Issue