From 3ab5c6b1decd2d047ed6f544cb8f33e7ce07106a Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Sat, 23 Jul 2022 09:39:17 +0300 Subject: [PATCH] Match sub_08080B60 --- asm/non_matching/scroll/sub_08080B60.inc | 49 ------------------------ src/scroll.c | 18 ++++++++- 2 files changed, 17 insertions(+), 50 deletions(-) delete mode 100644 asm/non_matching/scroll/sub_08080B60.inc diff --git a/asm/non_matching/scroll/sub_08080B60.inc b/asm/non_matching/scroll/sub_08080B60.inc deleted file mode 100644 index 43285ef1..00000000 --- a/asm/non_matching/scroll/sub_08080B60.inc +++ /dev/null @@ -1,49 +0,0 @@ - .syntax unified - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r1, _08080B90 @ =0x00005004 - adds r4, r0, r1 - ldr r2, _08080B94 @ =gUnk_080B37A0 - mov r8, r2 - movs r3, #0 - ldr r1, _08080B98 @ =0x00003FFF - mov ip, r1 - ldr r7, _08080B9C @ =gUnk_080B7910 - ldr r2, _08080BA0 @ =0x0000B004 - adds r1, r0, r2 - adds r2, r0, #4 - ldr r6, _08080BA4 @ =0xFFFFC000 - ldr r5, _08080BA8 @ =0x00000FFF -_08080B80: - ldrh r0, [r2] - cmp r0, ip - bhi _08080BAC - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - add r0, r8 - b _08080BB0 - .align 2, 0 -_08080B90: .4byte 0x00005004 -_08080B94: .4byte gUnk_080B37A0 -_08080B98: .4byte 0x00003FFF -_08080B9C: .4byte gUnk_080B7910 -_08080BA0: .4byte 0x0000B004 -_08080BA4: .4byte 0xFFFFC000 -_08080BA8: .4byte 0x00000FFF -_08080BAC: - adds r0, r0, r6 - adds r0, r0, r7 -_08080BB0: - ldrb r0, [r0] - strb r0, [r1] - adds r1, #1 - adds r2, #2 - adds r3, #1 - cmp r3, r5 - bls _08080B80 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .syntax divided diff --git a/src/scroll.c b/src/scroll.c index 8943a153..f13f7cfc 100644 --- a/src/scroll.c +++ b/src/scroll.c @@ -29,6 +29,8 @@ extern u16 gUnk_0200B640; extern u32** gUnk_08109194[]; extern u8 gUnk_02022830[]; extern u16 gUnk_020246B0[]; +extern u8 gUnk_080B37A0[]; +extern u8 gUnk_080B7910[]; void sub_0807FC64(RoomControls*); void sub_0807FC7C(RoomControls*); @@ -766,7 +768,21 @@ NONMATCH("asm/non_matching/scroll/UpdateDoorTransition.inc", void UpdateDoorTran } END_NONMATCH -ASM_FUNC("asm/non_matching/scroll/sub_08080B60.inc", void sub_08080B60(LayerStruct* param_1)) +void sub_08080B60(LayerStruct* layer) { + u32 index; + u16* metatileTypes = layer->metatileTypes; + u8* ptr = gUnk_080B37A0; + u8* ptr3 = layer->unkData3; + u16* mapData = layer->mapData; + for (index = 0; index < 0x1000; index++) { + u16 val = mapData[index]; + if (val < 0x4000) { + layer->unkData3[index] = ptr[metatileTypes[val]]; + } else { + layer->unkData3[index] = gUnk_080B7910[val - 0x4000]; + } + } +} void sub_08080BC4(void) { const s8* ptr;