Decompile sub_08057450

This commit is contained in:
Tal Hayon 2022-01-26 18:36:29 +02:00
parent 6e509c40bd
commit 81d8e5cd0c
2 changed files with 3 additions and 116 deletions

View File

@ -1,102 +0,0 @@
.syntax unified
push {r4, r5, r6, lr}
adds r3, r0, #0
ldr r4, _08057504 @ =gScreen
movs r0, #0x10
strh r0, [r4, #0x2e]
ldr r0, _08057508 @ =gRoomControls
movs r2, #0xc
ldrsh r1, [r0, r2]
ldrh r0, [r0, #8]
subs r1, r1, r0
asrs r1, r1, #2
movs r2, #0x3f
adds r0, r1, #0
ands r0, r2
strh r0, [r4, #0x30]
cmp r1, #0
bge _08057474
adds r1, #0x3f
_08057474:
asrs r0, r1, #6
lsls r0, r0, #9
ldr r1, _0805750C @ =gBG3Buffer
adds r1, r0, r1
str r1, [r4, #0x34]
ldr r0, [r3, #0x34]
cmp r0, r1
beq _0805748A
str r1, [r3, #0x34]
movs r0, #1
strh r0, [r4, #0x32]
_0805748A:
adds r0, r3, #0
adds r0, #0x22
ldrb r0, [r0]
ldr r5, _08057510 @ =gRoomTransition
cmp r0, #0
bne _080574BE
ldr r0, [r5]
movs r1, #0x1f
ands r0, r1
cmp r0, #0
bne _080574BE
adds r2, r3, #0
adds r2, #0x24
ldrb r0, [r2]
adds r0, #1
movs r1, #7
ands r0, r1
strb r0, [r2]
ldr r1, _08057514 @ =gUnk_08107C30
ldrb r0, [r2]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r1, [r0]
adds r0, r4, #0
adds r0, #0x68
strh r1, [r0]
_080574BE:
ldr r0, [r5]
movs r1, #7
ands r0, r1
cmp r0, #0
bne _08057502
adds r0, r3, #0
adds r0, #0x23
ldrb r1, [r0]
lsls r1, r1, #5
ldr r2, _08057518 @ =gUnk_085B4180
adds r1, r1, r2
movs r5, #0
adds r6, r0, #0
adds r4, r1, #0
adds r4, #0xe
_080574DC:
adds r0, r5, #0
adds r0, #0x87
ldrh r1, [r4]
bl SetColor
adds r0, r5, #0
adds r0, #0x8c
ldrh r1, [r4, #0xa]
bl SetColor
adds r4, #2
adds r5, #1
cmp r5, #3
bls _080574DC
ldrb r0, [r6]
adds r0, #1
movs r1, #3
ands r0, r1
strb r0, [r6]
_08057502:
pop {r4, r5, r6, pc}
.align 2, 0
_08057504: .4byte gScreen
_08057508: .4byte gRoomControls
_0805750C: .4byte gBG3Buffer
_08057510: .4byte gRoomTransition
_08057514: .4byte gUnk_08107C30
_08057518: .4byte gUnk_085B4180
.syntax divided

View File

@ -209,25 +209,15 @@ void sub_080573AC(Entity* this) {
}
}
NONMATCH("asm/non_matching/manager1/sub_08057450.inc", void sub_08057450(Entity* this)) {
void sub_08057450(Entity* this) {
s32 y;
// register s32 temp asm("r2");
s32 temp;
s32 y2;
gScreen.bg3.xOffset = 0x10;
y = gRoomControls.scroll_y;
y -= gRoomControls.origin_y;
y >>= 2;
// Removing temp messes with r1/r2 with regards to y
temp = 0x3f;
gScreen.bg3.yOffset = y & temp;
if (y < 0) {
y += 0x3f;
}
gScreen.bg3.tilemap = &gBG3Buffer[(y >> 6) << 8];
gScreen.bg3.yOffset = y & 0x3f;
gScreen.bg3.tilemap = &gBG3Buffer[(y / 0x40) << 8];
if ((void*)this->z.WORD != gScreen.bg3.tilemap) {
this->z.WORD = (u32)gScreen.bg3.tilemap;
gScreen.bg3.updated = 1;
@ -250,7 +240,6 @@ NONMATCH("asm/non_matching/manager1/sub_08057450.inc", void sub_08057450(Entity*
ZV(this)[3] = (ZV(this)[3] + 1) & 3;
}
}
END_NONMATCH
const u16 gUnk_08107C1C[] = {
0x1000, 0xF01, 0xE02, 0xD03, 0xC04, 0xB05, 0xA06, 0x907, 0x908, 0x909,