mirror of
https://github.com/zeldaret/tmc
synced 2026-08-18 13:43:31 -04:00
@@ -1,863 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_0801CFA8
|
||||
sub_0801CFA8: @ 0x0801CFA8
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldr r0, _0801CFCC @ =gPaletteList
|
||||
movs r1, #0x40
|
||||
bl MemClear
|
||||
movs r4, #0
|
||||
_0801CFB6:
|
||||
adds r0, r4, #0
|
||||
bl sub_0801CFD0
|
||||
adds r4, #1
|
||||
cmp r4, #5
|
||||
bls _0801CFB6
|
||||
adds r0, r5, #0
|
||||
bl sub_0801D000
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0801CFCC: .4byte gPaletteList
|
||||
|
||||
thumb_func_start sub_0801CFD0
|
||||
sub_0801CFD0: @ 0x0801CFD0
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _0801CFF8 @ =gPaletteList
|
||||
adds r0, r0, r1
|
||||
ldrb r2, [r0]
|
||||
movs r1, #0x10
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r2
|
||||
movs r2, #4
|
||||
orrs r1, r2
|
||||
movs r2, #0xf
|
||||
ands r1, r2
|
||||
movs r2, #0x10
|
||||
orrs r1, r2
|
||||
strb r1, [r0]
|
||||
movs r1, #0x80
|
||||
strb r1, [r0, #1]
|
||||
ldr r1, _0801CFFC @ =0x0000FFFF
|
||||
strh r1, [r0, #2]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0801CFF8: .4byte gPaletteList
|
||||
_0801CFFC: .4byte 0x0000FFFF
|
||||
|
||||
thumb_func_start sub_0801D000
|
||||
sub_0801D000: @ 0x0801D000
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldr r0, _0801D024 @ =gScreenTransition
|
||||
movs r1, #0
|
||||
cmp r2, #0
|
||||
beq _0801D00E
|
||||
movs r1, #0xf
|
||||
_0801D00E:
|
||||
adds r0, #0x2f
|
||||
strb r1, [r0]
|
||||
cmp r2, #0
|
||||
beq _0801D028
|
||||
bl CleanUpObjPalettes
|
||||
movs r0, #0xf
|
||||
bl sub_0801CFD0
|
||||
b _0801D03A
|
||||
.align 2, 0
|
||||
_0801D024: .4byte gScreenTransition
|
||||
_0801D028:
|
||||
ldr r3, _0801D03C @ =gUnk_02001A3C
|
||||
ldrb r1, [r3]
|
||||
movs r0, #0xf
|
||||
ands r0, r1
|
||||
cmp r0, #4
|
||||
bne _0801D03A
|
||||
strb r2, [r3]
|
||||
strb r2, [r3, #1]
|
||||
strh r2, [r3, #2]
|
||||
_0801D03A:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0801D03C: .4byte gUnk_02001A3C
|
||||
|
||||
thumb_func_start LoadObjPalette
|
||||
LoadObjPalette: @ 0x0801D040
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #4
|
||||
str r0, [sp]
|
||||
adds r6, r1, #0
|
||||
adds r0, r6, #0
|
||||
bl FindPalette
|
||||
adds r5, r0, #0
|
||||
cmp r5, #0
|
||||
bge _0801D0E8
|
||||
cmp r6, #0x15
|
||||
bhi _0801D064
|
||||
movs r4, #1
|
||||
b _0801D074
|
||||
_0801D064:
|
||||
ldr r0, _0801D100 @ =gUnk_08133368
|
||||
adds r1, r6, #0
|
||||
subs r1, #0x16
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldrb r4, [r1, #3]
|
||||
movs r0, #0xf
|
||||
ands r4, r0
|
||||
_0801D074:
|
||||
adds r0, r4, #0
|
||||
bl FindFreeObjPalette
|
||||
adds r5, r0, #0
|
||||
cmp r5, #0
|
||||
bge _0801D090
|
||||
bl CleanUpObjPalettes
|
||||
adds r0, r4, #0
|
||||
bl FindFreeObjPalette
|
||||
adds r5, r0, #0
|
||||
cmp r5, #0
|
||||
blt _0801D0E8
|
||||
_0801D090:
|
||||
lsls r1, r5, #2
|
||||
ldr r0, _0801D104 @ =gPaletteList
|
||||
adds r3, r1, r0
|
||||
movs r0, #0
|
||||
strh r6, [r3, #2]
|
||||
strb r0, [r3, #1]
|
||||
movs r2, #0x10
|
||||
rsbs r2, r2, #0
|
||||
lsls r0, r4, #4
|
||||
movs r1, #3
|
||||
orrs r0, r1
|
||||
strb r0, [r3]
|
||||
subs r4, #1
|
||||
cmp r4, #0
|
||||
beq _0801D0E0
|
||||
movs r0, #0
|
||||
mov sl, r0
|
||||
movs r1, #0
|
||||
mov r8, r1
|
||||
movs r0, #0xf
|
||||
mov sb, r0
|
||||
mov ip, r2
|
||||
movs r7, #2
|
||||
_0801D0BE:
|
||||
adds r3, #4
|
||||
mov r1, r8
|
||||
strh r1, [r3, #2]
|
||||
mov r0, sl
|
||||
strb r0, [r3, #1]
|
||||
lsls r2, r4, #4
|
||||
ldrb r1, [r3]
|
||||
mov r0, sb
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
mov r1, ip
|
||||
ands r0, r1
|
||||
orrs r0, r7
|
||||
strb r0, [r3]
|
||||
subs r4, #1
|
||||
cmp r4, #0
|
||||
bne _0801D0BE
|
||||
_0801D0E0:
|
||||
adds r0, r6, #0
|
||||
adds r1, r5, #0
|
||||
bl LoadObjPaletteAtIndex
|
||||
_0801D0E8:
|
||||
ldr r0, [sp]
|
||||
adds r1, r5, #0
|
||||
bl SetEntityObjPalette
|
||||
adds r0, r5, #0
|
||||
add sp, #4
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801D100: .4byte gUnk_08133368
|
||||
_0801D104: .4byte gPaletteList
|
||||
|
||||
thumb_func_start FindPalette
|
||||
FindPalette: @ 0x0801D108
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
cmp r2, #5
|
||||
bhi _0801D116
|
||||
b _0801D12E
|
||||
_0801D112:
|
||||
adds r0, r1, #0
|
||||
b _0801D12E
|
||||
_0801D116:
|
||||
movs r1, #6
|
||||
ldr r0, _0801D130 @ =gPaletteList
|
||||
adds r0, #0x18
|
||||
_0801D11C:
|
||||
ldrh r3, [r0, #2]
|
||||
cmp r2, r3
|
||||
beq _0801D112
|
||||
adds r0, #4
|
||||
adds r1, #1
|
||||
cmp r1, #0xf
|
||||
bls _0801D11C
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
_0801D12E:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0801D130: .4byte gPaletteList
|
||||
|
||||
thumb_func_start FindFreeObjPalette
|
||||
FindFreeObjPalette: @ 0x0801D134
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #0
|
||||
movs r2, #6
|
||||
ldr r0, _0801D154 @ =gPaletteList
|
||||
adds r3, r0, #0
|
||||
adds r3, #0x18
|
||||
_0801D142:
|
||||
ldrb r0, [r3]
|
||||
lsls r0, r0, #0x1c
|
||||
cmp r0, #0
|
||||
bne _0801D158
|
||||
adds r1, #1
|
||||
cmp r4, r1
|
||||
bhi _0801D15A
|
||||
b _0801D180
|
||||
.align 2, 0
|
||||
_0801D154: .4byte gPaletteList
|
||||
_0801D158:
|
||||
movs r1, #0
|
||||
_0801D15A:
|
||||
adds r3, #4
|
||||
adds r2, #1
|
||||
cmp r2, #0xf
|
||||
bls _0801D142
|
||||
movs r1, #0
|
||||
movs r2, #6
|
||||
ldr r0, _0801D188 @ =gPaletteList
|
||||
adds r3, r0, #0
|
||||
adds r3, #0x18
|
||||
_0801D16C:
|
||||
ldrb r0, [r3]
|
||||
lsls r0, r0, #0x1c
|
||||
lsrs r0, r0, #0x1c
|
||||
cmp r0, #1
|
||||
bgt _0801D18C
|
||||
cmp r0, #0
|
||||
blt _0801D18C
|
||||
adds r1, #1
|
||||
cmp r4, r1
|
||||
bhi _0801D18E
|
||||
_0801D180:
|
||||
subs r0, r1, #1
|
||||
subs r0, r2, r0
|
||||
b _0801D19A
|
||||
.align 2, 0
|
||||
_0801D188: .4byte gPaletteList
|
||||
_0801D18C:
|
||||
movs r1, #0
|
||||
_0801D18E:
|
||||
adds r3, #4
|
||||
adds r2, #1
|
||||
cmp r2, #0xf
|
||||
bls _0801D16C
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
_0801D19A:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start SetEntityObjPalette
|
||||
SetEntityObjPalette: @ 0x0801D19C
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r4, r0, #0
|
||||
adds r3, r1, #0
|
||||
cmp r3, #0
|
||||
bge _0801D1A8
|
||||
movs r3, #0
|
||||
_0801D1A8:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x28
|
||||
ldrb r0, [r0]
|
||||
subs r0, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0x7e
|
||||
bls _0801D1BE
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x27
|
||||
strb r3, [r0]
|
||||
_0801D1BE:
|
||||
movs r0, #0xf
|
||||
adds r1, r3, #0
|
||||
ands r1, r0
|
||||
ldrb r2, [r4, #0x1a]
|
||||
movs r5, #0x10
|
||||
rsbs r5, r5, #0
|
||||
adds r0, r5, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
movs r2, #0xf
|
||||
adds r1, r3, #0
|
||||
ands r1, r2
|
||||
lsls r1, r1, #4
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x1a]
|
||||
lsls r1, r3, #2
|
||||
ldr r0, _0801D22C @ =gPaletteList
|
||||
adds r4, r1, r0
|
||||
ldr r0, [r4]
|
||||
lsls r0, r0, #0x1c
|
||||
lsrs r0, r0, #0x1c
|
||||
cmp r0, #4
|
||||
beq _0801D22A
|
||||
ldrb r0, [r4, #1]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #1]
|
||||
ldr r0, [r4]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r3, r0, #0x1c
|
||||
ldrb r1, [r4]
|
||||
adds r0, r5, #0
|
||||
ands r0, r1
|
||||
movs r1, #3
|
||||
orrs r0, r1
|
||||
strb r0, [r4]
|
||||
subs r3, #1
|
||||
cmp r3, #0
|
||||
beq _0801D22A
|
||||
movs r7, #0xf
|
||||
adds r6, r5, #0
|
||||
movs r5, #2
|
||||
_0801D212:
|
||||
adds r4, #4
|
||||
lsls r2, r3, #4
|
||||
ldrb r1, [r4]
|
||||
adds r0, r7, #0
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
ands r0, r6
|
||||
orrs r0, r5
|
||||
strb r0, [r4]
|
||||
subs r3, #1
|
||||
cmp r3, #0
|
||||
bne _0801D212
|
||||
_0801D22A:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801D22C: .4byte gPaletteList
|
||||
|
||||
thumb_func_start UnloadOBJPalette
|
||||
UnloadOBJPalette: @ 0x0801D230
|
||||
push {lr}
|
||||
adds r0, #0x27
|
||||
ldrb r2, [r0]
|
||||
movs r1, #0
|
||||
strb r1, [r0]
|
||||
adds r0, r2, #0
|
||||
bl sub_0801D244
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0801D244
|
||||
sub_0801D244: @ 0x0801D244
|
||||
push {r4, r5, r6, lr}
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _0801D288 @ =gPaletteList
|
||||
adds r2, r0, r1
|
||||
ldr r0, [r2]
|
||||
lsls r0, r0, #0x1c
|
||||
lsrs r0, r0, #0x1c
|
||||
cmp r0, #3
|
||||
bne _0801D284
|
||||
ldrb r0, [r2, #1]
|
||||
subs r0, #1
|
||||
strb r0, [r2, #1]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0801D284
|
||||
ldr r0, [r2]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r3, r0, #0x1c
|
||||
movs r5, #0
|
||||
movs r6, #0x10
|
||||
rsbs r6, r6, #0
|
||||
movs r4, #1
|
||||
_0801D270:
|
||||
strb r5, [r2, #1]
|
||||
ldrb r1, [r2]
|
||||
adds r0, r6, #0
|
||||
ands r0, r1
|
||||
orrs r0, r4
|
||||
strb r0, [r2]
|
||||
adds r2, #4
|
||||
subs r3, #1
|
||||
cmp r3, #0
|
||||
bne _0801D270
|
||||
_0801D284:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0801D288: .4byte gPaletteList
|
||||
|
||||
thumb_func_start sub_0801D28C
|
||||
sub_0801D28C: @ 0x0801D28C
|
||||
push {lr}
|
||||
adds r3, r1, #0
|
||||
adds r0, #0x27
|
||||
ldrb r2, [r0]
|
||||
ldr r1, _0801D2B0 @ =gPaletteList
|
||||
lsls r0, r2, #2
|
||||
adds r1, r0, r1
|
||||
ldrb r0, [r1]
|
||||
lsls r0, r0, #0x1c
|
||||
lsrs r0, r0, #0x1c
|
||||
cmp r0, #3
|
||||
bne _0801D2AE
|
||||
strh r3, [r1, #2]
|
||||
adds r0, r3, #0
|
||||
adds r1, r2, #0
|
||||
bl LoadObjPaletteAtIndex
|
||||
_0801D2AE:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0801D2B0: .4byte gPaletteList
|
||||
|
||||
thumb_func_start ChangeObjPalette
|
||||
ChangeObjPalette: @ 0x0801D2B4
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
adds r5, r1, #0
|
||||
bl UnloadOBJPalette
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
bl LoadObjPalette
|
||||
pop {r4, r5, pc}
|
||||
|
||||
thumb_func_start LoadObjPaletteAtIndex
|
||||
LoadObjPaletteAtIndex: @ 0x0801D2C8
|
||||
push {r4, lr}
|
||||
adds r3, r0, #0
|
||||
ldr r2, _0801D2F8 @ =gUsedPalettes
|
||||
adds r4, r1, #0
|
||||
adds r4, #0x10
|
||||
movs r1, #1
|
||||
lsls r1, r4
|
||||
ldr r0, [r2]
|
||||
orrs r0, r1
|
||||
str r0, [r2]
|
||||
cmp r3, #5
|
||||
bls _0801D33C
|
||||
cmp r3, #0x15
|
||||
bne _0801D300
|
||||
ldr r2, _0801D2FC @ =gPaletteBuffer
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x78
|
||||
ldrh r0, [r0]
|
||||
lsls r1, r4, #5
|
||||
adds r1, r1, r2
|
||||
movs r2, #0x20
|
||||
bl MemFill16
|
||||
b _0801D33C
|
||||
.align 2, 0
|
||||
_0801D2F8: .4byte gUsedPalettes
|
||||
_0801D2FC: .4byte gPaletteBuffer
|
||||
_0801D300:
|
||||
cmp r3, #0x14
|
||||
bhi _0801D31C
|
||||
subs r0, r3, #6
|
||||
lsls r0, r0, #5
|
||||
ldr r1, _0801D318 @ =gPaletteBuffer
|
||||
adds r0, r0, r1
|
||||
adds r1, r4, #0
|
||||
movs r2, #1
|
||||
bl LoadPalettes
|
||||
b _0801D33C
|
||||
.align 2, 0
|
||||
_0801D318: .4byte gPaletteBuffer
|
||||
_0801D31C:
|
||||
ldr r1, _0801D340 @ =gUnk_08133368
|
||||
adds r0, r3, #0
|
||||
subs r0, #0x16
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
lsrs r2, r0, #0x18
|
||||
movs r1, #0xf
|
||||
ands r2, r1
|
||||
ldr r1, _0801D344 @ =0x00FFFFFF
|
||||
ands r0, r1
|
||||
ldr r1, _0801D348 @ =gGlobalGfxAndPalettes
|
||||
adds r0, r0, r1
|
||||
adds r1, r4, #0
|
||||
bl LoadPalettes
|
||||
_0801D33C:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0801D340: .4byte gUnk_08133368
|
||||
_0801D344: .4byte 0x00FFFFFF
|
||||
_0801D348: .4byte gGlobalGfxAndPalettes
|
||||
|
||||
thumb_func_start CleanUpObjPalettes
|
||||
CleanUpObjPalettes: @ 0x0801D34C
|
||||
push {r4, r5, r6, r7, lr}
|
||||
sub sp, #0x10
|
||||
movs r2, #0
|
||||
movs r3, #0
|
||||
ldr r1, _0801D37C @ =gPaletteList
|
||||
_0801D356:
|
||||
mov r4, sp
|
||||
adds r0, r4, r2
|
||||
strb r2, [r0]
|
||||
ldrb r0, [r1]
|
||||
lsls r0, r0, #0x1c
|
||||
lsrs r0, r0, #0x1c
|
||||
cmp r0, #1
|
||||
bgt _0801D370
|
||||
cmp r0, #0
|
||||
blt _0801D370
|
||||
strb r3, [r1]
|
||||
strb r3, [r1, #1]
|
||||
strh r3, [r1, #2]
|
||||
_0801D370:
|
||||
adds r1, #4
|
||||
adds r2, #1
|
||||
cmp r2, #0xf
|
||||
bls _0801D356
|
||||
movs r4, #6
|
||||
b _0801D390
|
||||
.align 2, 0
|
||||
_0801D37C: .4byte gPaletteList
|
||||
_0801D380:
|
||||
cmp r4, r1
|
||||
ble _0801D390
|
||||
mov r2, sp
|
||||
adds r0, r2, r4
|
||||
strb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl sub_0801D48C
|
||||
_0801D390:
|
||||
adds r0, r4, #1
|
||||
bl sub_0801D458
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
beq _0801D3AC
|
||||
movs r0, #1
|
||||
bl FindFreeObjPalette
|
||||
adds r1, r0, #0
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
cmp r1, r0
|
||||
bne _0801D380
|
||||
_0801D3AC:
|
||||
movs r1, #0
|
||||
ldr r4, _0801D450 @ =gEntityLists
|
||||
mov ip, r4
|
||||
_0801D3B2:
|
||||
lsls r0, r1, #3
|
||||
mov r2, ip
|
||||
adds r3, r0, r2
|
||||
adds r0, r3, #0
|
||||
ldr r3, [r3, #4]
|
||||
adds r5, r1, #1
|
||||
cmp r0, r3
|
||||
beq _0801D444
|
||||
movs r7, #0x10
|
||||
rsbs r7, r7, #0
|
||||
adds r4, r0, #0
|
||||
ldr r6, _0801D454 @ =gUnk_020000C0
|
||||
_0801D3CA:
|
||||
ldrb r0, [r3, #8]
|
||||
cmp r0, #9
|
||||
beq _0801D43E
|
||||
adds r1, r3, #0
|
||||
adds r1, #0x28
|
||||
ldrb r0, [r1]
|
||||
subs r0, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0x7e
|
||||
bhi _0801D40C
|
||||
ldrb r1, [r1]
|
||||
lsls r1, r1, #6
|
||||
adds r1, r1, r6
|
||||
ldrb r0, [r1, #5]
|
||||
add r0, sp
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1, #5]
|
||||
ldrb r0, [r1, #0x15]
|
||||
add r0, sp
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1, #0x15]
|
||||
adds r2, r1, #0
|
||||
adds r2, #0x25
|
||||
ldrb r0, [r2]
|
||||
add r0, sp
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r2]
|
||||
adds r1, #0x35
|
||||
ldrb r0, [r1]
|
||||
add r0, sp
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1]
|
||||
_0801D40C:
|
||||
adds r1, r3, #0
|
||||
adds r1, #0x27
|
||||
ldrb r0, [r1]
|
||||
add r0, sp
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1]
|
||||
ldrb r2, [r3, #0x1a]
|
||||
lsls r0, r2, #0x1c
|
||||
lsrs r0, r0, #0x1c
|
||||
add r0, sp
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0xf
|
||||
ands r1, r0
|
||||
adds r0, r7, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3, #0x1a]
|
||||
lsrs r1, r0, #4
|
||||
add r1, sp
|
||||
ldrb r2, [r1]
|
||||
lsls r2, r2, #4
|
||||
movs r1, #0xf
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r3, #0x1a]
|
||||
_0801D43E:
|
||||
ldr r3, [r3, #4]
|
||||
cmp r4, r3
|
||||
bne _0801D3CA
|
||||
_0801D444:
|
||||
adds r1, r5, #0
|
||||
cmp r1, #8
|
||||
bls _0801D3B2
|
||||
add sp, #0x10
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801D450: .4byte gEntityLists
|
||||
_0801D454: .4byte gUnk_020000C0
|
||||
|
||||
thumb_func_start sub_0801D458
|
||||
sub_0801D458: @ 0x0801D458
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
cmp r2, #0xf
|
||||
bhi _0801D488
|
||||
ldr r1, _0801D47C @ =gPaletteList
|
||||
lsls r0, r2, #2
|
||||
adds r1, r0, r1
|
||||
_0801D466:
|
||||
ldrb r0, [r1]
|
||||
lsls r0, r0, #0x1c
|
||||
lsrs r0, r0, #0x1c
|
||||
cmp r0, #0
|
||||
blt _0801D478
|
||||
cmp r0, #1
|
||||
ble _0801D480
|
||||
cmp r0, #4
|
||||
beq _0801D480
|
||||
_0801D478:
|
||||
adds r0, r2, #0
|
||||
b _0801D48A
|
||||
.align 2, 0
|
||||
_0801D47C: .4byte gPaletteList
|
||||
_0801D480:
|
||||
adds r1, #4
|
||||
adds r2, #1
|
||||
cmp r2, #0xf
|
||||
bls _0801D466
|
||||
_0801D488:
|
||||
movs r0, #0
|
||||
_0801D48A:
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_0801D48C
|
||||
sub_0801D48C: @ 0x0801D48C
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
sub sp, #4
|
||||
adds r6, r0, #0
|
||||
adds r3, r1, #0
|
||||
ldr r0, _0801D50C @ =gPaletteList
|
||||
mov r8, r0
|
||||
lsls r0, r6, #2
|
||||
mov r1, r8
|
||||
adds r4, r0, r1
|
||||
ldrb r0, [r4]
|
||||
lsrs r5, r0, #4
|
||||
subs r5, #1
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
cmp r5, r0
|
||||
beq _0801D4F8
|
||||
ldr r2, _0801D510 @ =gPaletteBuffer
|
||||
lsls r0, r3, #5
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #2
|
||||
adds r0, r0, r1
|
||||
adds r7, r0, r2
|
||||
lsls r0, r3, #2
|
||||
add r8, r0
|
||||
lsls r0, r6, #5
|
||||
adds r0, r0, r1
|
||||
adds r6, r0, r2
|
||||
movs r3, #0
|
||||
_0801D4C8:
|
||||
ldr r0, [r4]
|
||||
mov r1, r8
|
||||
adds r1, #4
|
||||
mov r8, r1
|
||||
subs r1, #4
|
||||
stm r1!, {r0}
|
||||
strb r3, [r4]
|
||||
strb r3, [r4, #1]
|
||||
strh r3, [r4, #2]
|
||||
adds r0, r6, #0
|
||||
adds r1, r7, #0
|
||||
movs r2, #0x20
|
||||
str r3, [sp]
|
||||
bl MemCopy
|
||||
adds r6, #0x20
|
||||
adds r4, #4
|
||||
adds r7, #0x20
|
||||
subs r5, #1
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
ldr r3, [sp]
|
||||
cmp r5, r0
|
||||
bne _0801D4C8
|
||||
_0801D4F8:
|
||||
ldr r0, _0801D514 @ =gUsedPalettes
|
||||
ldr r1, [r0]
|
||||
ldr r2, _0801D518 @ =0xFFFF0000
|
||||
orrs r1, r2
|
||||
str r1, [r0]
|
||||
add sp, #4
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801D50C: .4byte gPaletteList
|
||||
_0801D510: .4byte gPaletteBuffer
|
||||
_0801D514: .4byte gUsedPalettes
|
||||
_0801D518: .4byte 0xFFFF0000
|
||||
|
||||
thumb_func_start sub_0801D51C
|
||||
sub_0801D51C: @ 0x0801D51C
|
||||
push {r4, lr}
|
||||
adds r2, r0, #0
|
||||
ldr r0, _0801D58C @ =0x05F5E0FF
|
||||
cmp r2, r0
|
||||
bhi _0801D5A0
|
||||
ldr r1, _0801D590 @ =0x00989680
|
||||
adds r0, r2, #0
|
||||
bl Div
|
||||
adds r4, r0, #0
|
||||
lsls r4, r4, #0x1c
|
||||
ldr r2, _0801D594 @ =0x000F4240
|
||||
adds r0, r1, #0
|
||||
adds r1, r2, #0
|
||||
bl Div
|
||||
lsls r0, r0, #0x18
|
||||
adds r4, r4, r0
|
||||
ldr r2, _0801D598 @ =0x000186A0
|
||||
adds r0, r1, #0
|
||||
adds r1, r2, #0
|
||||
bl Div
|
||||
lsls r0, r0, #0x14
|
||||
adds r4, r4, r0
|
||||
ldr r2, _0801D59C @ =0x00002710
|
||||
adds r0, r1, #0
|
||||
adds r1, r2, #0
|
||||
bl Div
|
||||
lsls r0, r0, #0x10
|
||||
adds r4, r4, r0
|
||||
movs r2, #0xfa
|
||||
lsls r2, r2, #2
|
||||
adds r0, r1, #0
|
||||
adds r1, r2, #0
|
||||
bl Div
|
||||
lsls r0, r0, #0xc
|
||||
adds r4, r4, r0
|
||||
adds r0, r1, #0
|
||||
movs r1, #0x64
|
||||
bl Div
|
||||
lsls r0, r0, #8
|
||||
adds r4, r4, r0
|
||||
adds r0, r1, #0
|
||||
movs r1, #0xa
|
||||
bl Div
|
||||
lsls r0, r0, #4
|
||||
adds r4, r4, r0
|
||||
adds r4, r4, r1
|
||||
adds r0, r4, #0
|
||||
b _0801D5A2
|
||||
.align 2, 0
|
||||
_0801D58C: .4byte 0x05F5E0FF
|
||||
_0801D590: .4byte 0x00989680
|
||||
_0801D594: .4byte 0x000F4240
|
||||
_0801D598: .4byte 0x000186A0
|
||||
_0801D59C: .4byte 0x00002710
|
||||
_0801D5A0:
|
||||
ldr r0, _0801D5A4 @ =0x99999999
|
||||
_0801D5A2:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0801D5A4: .4byte 0x99999999
|
||||
|
||||
thumb_func_start ReadBit
|
||||
ReadBit: @ 0x0801D5A8
|
||||
lsrs r2, r1, #3
|
||||
adds r0, r0, r2
|
||||
ldrb r0, [r0]
|
||||
movs r2, #7
|
||||
ands r2, r1
|
||||
asrs r0, r2
|
||||
movs r1, #1
|
||||
ands r0, r1
|
||||
bx lr
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start WriteBit
|
||||
WriteBit: @ 0x0801D5BC
|
||||
lsrs r2, r1, #3
|
||||
adds r3, r0, r2
|
||||
movs r2, #7
|
||||
ands r1, r2
|
||||
movs r2, #1
|
||||
lsls r2, r1
|
||||
ldrb r0, [r3]
|
||||
adds r1, r0, #0
|
||||
orrs r1, r2
|
||||
strb r1, [r3]
|
||||
ands r0, r2
|
||||
bx lr
|
||||
|
||||
thumb_func_start ClearBit
|
||||
ClearBit: @ 0x0801D5D4
|
||||
lsrs r2, r1, #3
|
||||
adds r3, r0, r2
|
||||
movs r2, #7
|
||||
ands r1, r2
|
||||
movs r2, #1
|
||||
lsls r2, r1
|
||||
ldrb r0, [r3]
|
||||
adds r1, r0, #0
|
||||
bics r1, r2
|
||||
strb r1, [r3]
|
||||
ands r0, r2
|
||||
bx lr
|
||||
+2
-2
@@ -75,7 +75,7 @@ sub_08054920: @ 0x08054920
|
||||
bl MessageInitialize
|
||||
bl sub_0806F38C
|
||||
ldr r1, _08054948 @ =gUnk_080C9CBC
|
||||
ldr r0, _0805494C @ =gUnk_02022740
|
||||
ldr r0, _0805494C @ =gFuseInfo
|
||||
ldrb r0, [r0, #3]
|
||||
lsls r0, r0, #3
|
||||
adds r0, r0, r1
|
||||
@@ -89,7 +89,7 @@ sub_08054920: @ 0x08054920
|
||||
b _08054962
|
||||
.align 2, 0
|
||||
_08054948: .4byte gUnk_080C9CBC
|
||||
_0805494C: .4byte gUnk_02022740
|
||||
_0805494C: .4byte gFuseInfo
|
||||
_08054950: .4byte gUnk_02032EC0
|
||||
_08054954:
|
||||
ldr r1, _08054964 @ =gUnk_02032EC0
|
||||
|
||||
@@ -0,0 +1,141 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
sub sp, #0x10
|
||||
movs r2, #0
|
||||
movs r3, #0
|
||||
ldr r1, _0801D37C @ =gPaletteList
|
||||
_0801D356:
|
||||
mov r4, sp
|
||||
adds r0, r4, r2
|
||||
strb r2, [r0]
|
||||
ldrb r0, [r1]
|
||||
lsls r0, r0, #0x1c
|
||||
lsrs r0, r0, #0x1c
|
||||
cmp r0, #1
|
||||
bgt _0801D370
|
||||
cmp r0, #0
|
||||
blt _0801D370
|
||||
strb r3, [r1]
|
||||
strb r3, [r1, #1]
|
||||
strh r3, [r1, #2]
|
||||
_0801D370:
|
||||
adds r1, #4
|
||||
adds r2, #1
|
||||
cmp r2, #0xf
|
||||
bls _0801D356
|
||||
movs r4, #6
|
||||
b _0801D390
|
||||
.align 2, 0
|
||||
_0801D37C: .4byte gPaletteList
|
||||
_0801D380:
|
||||
cmp r4, r1
|
||||
ble _0801D390
|
||||
mov r2, sp
|
||||
adds r0, r2, r4
|
||||
strb r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl sub_0801D48C
|
||||
_0801D390:
|
||||
adds r0, r4, #1
|
||||
bl sub_0801D458
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
beq _0801D3AC
|
||||
movs r0, #1
|
||||
bl FindFreeObjPalette
|
||||
adds r1, r0, #0
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
cmp r1, r0
|
||||
bne _0801D380
|
||||
_0801D3AC:
|
||||
movs r1, #0
|
||||
ldr r4, _0801D450 @ =gEntityLists
|
||||
mov ip, r4
|
||||
_0801D3B2:
|
||||
lsls r0, r1, #3
|
||||
mov r2, ip
|
||||
adds r3, r0, r2
|
||||
adds r0, r3, #0
|
||||
ldr r3, [r3, #4]
|
||||
adds r5, r1, #1
|
||||
cmp r0, r3
|
||||
beq _0801D444
|
||||
movs r7, #0x10
|
||||
rsbs r7, r7, #0
|
||||
adds r4, r0, #0
|
||||
ldr r6, _0801D454 @ =gUnk_020000C0
|
||||
_0801D3CA:
|
||||
ldrb r0, [r3, #8]
|
||||
cmp r0, #9
|
||||
beq _0801D43E
|
||||
adds r1, r3, #0
|
||||
adds r1, #0x28
|
||||
ldrb r0, [r1]
|
||||
subs r0, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0x7e
|
||||
bhi _0801D40C
|
||||
ldrb r1, [r1]
|
||||
lsls r1, r1, #6
|
||||
adds r1, r1, r6
|
||||
ldrb r0, [r1, #5]
|
||||
add r0, sp
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1, #5]
|
||||
ldrb r0, [r1, #0x15]
|
||||
add r0, sp
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1, #0x15]
|
||||
adds r2, r1, #0
|
||||
adds r2, #0x25
|
||||
ldrb r0, [r2]
|
||||
add r0, sp
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r2]
|
||||
adds r1, #0x35
|
||||
ldrb r0, [r1]
|
||||
add r0, sp
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1]
|
||||
_0801D40C:
|
||||
adds r1, r3, #0
|
||||
adds r1, #0x27
|
||||
ldrb r0, [r1]
|
||||
add r0, sp
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r1]
|
||||
ldrb r2, [r3, #0x1a]
|
||||
lsls r0, r2, #0x1c
|
||||
lsrs r0, r0, #0x1c
|
||||
add r0, sp
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0xf
|
||||
ands r1, r0
|
||||
adds r0, r7, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r3, #0x1a]
|
||||
lsrs r1, r0, #4
|
||||
add r1, sp
|
||||
ldrb r2, [r1]
|
||||
lsls r2, r2, #4
|
||||
movs r1, #0xf
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r3, #0x1a]
|
||||
_0801D43E:
|
||||
ldr r3, [r3, #4]
|
||||
cmp r4, r3
|
||||
bne _0801D3CA
|
||||
_0801D444:
|
||||
adds r1, r5, #0
|
||||
cmp r1, #8
|
||||
bls _0801D3B2
|
||||
add sp, #0x10
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801D450: .4byte gEntityLists
|
||||
_0801D454: .4byte gUnk_020000C0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,60 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #0
|
||||
movs r2, #6
|
||||
ldr r0, _0801D154 @ =gPaletteList
|
||||
adds r3, r0, #0
|
||||
adds r3, #0x18
|
||||
_0801D142:
|
||||
ldrb r0, [r3]
|
||||
lsls r0, r0, #0x1c
|
||||
cmp r0, #0
|
||||
bne _0801D158
|
||||
adds r1, #1
|
||||
cmp r4, r1
|
||||
bhi _0801D15A
|
||||
b _0801D180
|
||||
.align 2, 0
|
||||
_0801D154: .4byte gPaletteList
|
||||
_0801D158:
|
||||
movs r1, #0
|
||||
_0801D15A:
|
||||
adds r3, #4
|
||||
adds r2, #1
|
||||
cmp r2, #0xf
|
||||
bls _0801D142
|
||||
movs r1, #0
|
||||
movs r2, #6
|
||||
ldr r0, _0801D188 @ =gPaletteList
|
||||
adds r3, r0, #0
|
||||
adds r3, #0x18
|
||||
_0801D16C:
|
||||
ldrb r0, [r3]
|
||||
lsls r0, r0, #0x1c
|
||||
lsrs r0, r0, #0x1c
|
||||
cmp r0, #1
|
||||
bgt _0801D18C
|
||||
cmp r0, #0
|
||||
blt _0801D18C
|
||||
adds r1, #1
|
||||
cmp r4, r1
|
||||
bhi _0801D18E
|
||||
_0801D180:
|
||||
subs r0, r1, #1
|
||||
subs r0, r2, r0
|
||||
b _0801D19A
|
||||
.align 2, 0
|
||||
_0801D188: .4byte gPaletteList
|
||||
_0801D18C:
|
||||
movs r1, #0
|
||||
_0801D18E:
|
||||
adds r3, #4
|
||||
adds r2, #1
|
||||
cmp r2, #0xf
|
||||
bls _0801D16C
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
_0801D19A:
|
||||
pop {r4, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,28 @@
|
||||
.syntax unified
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
cmp r2, #5
|
||||
bhi _0801D116
|
||||
b _0801D12E
|
||||
_0801D112:
|
||||
adds r0, r1, #0
|
||||
b _0801D12E
|
||||
_0801D116:
|
||||
movs r1, #6
|
||||
ldr r0, _0801D130 @ =gPaletteList
|
||||
adds r0, #0x18
|
||||
_0801D11C:
|
||||
ldrh r3, [r0, #2]
|
||||
cmp r2, r3
|
||||
beq _0801D112
|
||||
adds r0, #4
|
||||
adds r1, #1
|
||||
cmp r1, #0xf
|
||||
bls _0801D11C
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
_0801D12E:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0801D130: .4byte gPaletteList
|
||||
.syntax divided
|
||||
@@ -0,0 +1,100 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #4
|
||||
str r0, [sp]
|
||||
adds r6, r1, #0
|
||||
adds r0, r6, #0
|
||||
bl FindPalette
|
||||
adds r5, r0, #0
|
||||
cmp r5, #0
|
||||
bge _0801D0E8
|
||||
cmp r6, #0x15
|
||||
bhi _0801D064
|
||||
movs r4, #1
|
||||
b _0801D074
|
||||
_0801D064:
|
||||
ldr r0, _0801D100 @ =gUnk_08133368
|
||||
adds r1, r6, #0
|
||||
subs r1, #0x16
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldrb r4, [r1, #3]
|
||||
movs r0, #0xf
|
||||
ands r4, r0
|
||||
_0801D074:
|
||||
adds r0, r4, #0
|
||||
bl FindFreeObjPalette
|
||||
adds r5, r0, #0
|
||||
cmp r5, #0
|
||||
bge _0801D090
|
||||
bl CleanUpObjPalettes
|
||||
adds r0, r4, #0
|
||||
bl FindFreeObjPalette
|
||||
adds r5, r0, #0
|
||||
cmp r5, #0
|
||||
blt _0801D0E8
|
||||
_0801D090:
|
||||
lsls r1, r5, #2
|
||||
ldr r0, _0801D104 @ =gPaletteList
|
||||
adds r3, r1, r0
|
||||
movs r0, #0
|
||||
strh r6, [r3, #2]
|
||||
strb r0, [r3, #1]
|
||||
movs r2, #0x10
|
||||
rsbs r2, r2, #0
|
||||
lsls r0, r4, #4
|
||||
movs r1, #3
|
||||
orrs r0, r1
|
||||
strb r0, [r3]
|
||||
subs r4, #1
|
||||
cmp r4, #0
|
||||
beq _0801D0E0
|
||||
movs r0, #0
|
||||
mov sl, r0
|
||||
movs r1, #0
|
||||
mov r8, r1
|
||||
movs r0, #0xf
|
||||
mov sb, r0
|
||||
mov ip, r2
|
||||
movs r7, #2
|
||||
_0801D0BE:
|
||||
adds r3, #4
|
||||
mov r1, r8
|
||||
strh r1, [r3, #2]
|
||||
mov r0, sl
|
||||
strb r0, [r3, #1]
|
||||
lsls r2, r4, #4
|
||||
ldrb r1, [r3]
|
||||
mov r0, sb
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
mov r1, ip
|
||||
ands r0, r1
|
||||
orrs r0, r7
|
||||
strb r0, [r3]
|
||||
subs r4, #1
|
||||
cmp r4, #0
|
||||
bne _0801D0BE
|
||||
_0801D0E0:
|
||||
adds r0, r6, #0
|
||||
adds r1, r5, #0
|
||||
bl LoadObjPaletteAtIndex
|
||||
_0801D0E8:
|
||||
ldr r0, [sp]
|
||||
adds r1, r5, #0
|
||||
bl SetEntityObjPalette
|
||||
adds r0, r5, #0
|
||||
add sp, #4
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801D100: .4byte gUnk_08133368
|
||||
_0801D104: .4byte gPaletteList
|
||||
.syntax divided
|
||||
@@ -0,0 +1,63 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r3, r0, #0
|
||||
ldr r2, _0801D2F8 @ =gUsedPalettes
|
||||
adds r4, r1, #0
|
||||
adds r4, #0x10
|
||||
movs r1, #1
|
||||
lsls r1, r4
|
||||
ldr r0, [r2]
|
||||
orrs r0, r1
|
||||
str r0, [r2]
|
||||
cmp r3, #5
|
||||
bls _0801D33C
|
||||
cmp r3, #0x15
|
||||
bne _0801D300
|
||||
ldr r2, _0801D2FC @ =gPaletteBuffer
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x78
|
||||
ldrh r0, [r0]
|
||||
lsls r1, r4, #5
|
||||
adds r1, r1, r2
|
||||
movs r2, #0x20
|
||||
bl MemFill16
|
||||
b _0801D33C
|
||||
.align 2, 0
|
||||
_0801D2F8: .4byte gUsedPalettes
|
||||
_0801D2FC: .4byte gPaletteBuffer
|
||||
_0801D300:
|
||||
cmp r3, #0x14
|
||||
bhi _0801D31C
|
||||
subs r0, r3, #6
|
||||
lsls r0, r0, #5
|
||||
ldr r1, _0801D318 @ =gPaletteBuffer
|
||||
adds r0, r0, r1
|
||||
adds r1, r4, #0
|
||||
movs r2, #1
|
||||
bl LoadPalettes
|
||||
b _0801D33C
|
||||
.align 2, 0
|
||||
_0801D318: .4byte gPaletteBuffer
|
||||
_0801D31C:
|
||||
ldr r1, _0801D340 @ =gUnk_08133368
|
||||
adds r0, r3, #0
|
||||
subs r0, #0x16
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
lsrs r2, r0, #0x18
|
||||
movs r1, #0xf
|
||||
ands r2, r1
|
||||
ldr r1, _0801D344 @ =0x00FFFFFF
|
||||
ands r0, r1
|
||||
ldr r1, _0801D348 @ =gGlobalGfxAndPalettes
|
||||
adds r0, r0, r1
|
||||
adds r1, r4, #0
|
||||
bl LoadPalettes
|
||||
_0801D33C:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0801D340: .4byte gUnk_08133368
|
||||
_0801D344: .4byte 0x00FFFFFF
|
||||
_0801D348: .4byte gGlobalGfxAndPalettes
|
||||
.syntax divided
|
||||
@@ -0,0 +1,80 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r4, r0, #0
|
||||
adds r3, r1, #0
|
||||
cmp r3, #0
|
||||
bge _0801D1A8
|
||||
movs r3, #0
|
||||
_0801D1A8:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x28
|
||||
ldrb r0, [r0]
|
||||
subs r0, #1
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #0x7e
|
||||
bls _0801D1BE
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x27
|
||||
strb r3, [r0]
|
||||
_0801D1BE:
|
||||
movs r0, #0xf
|
||||
adds r1, r3, #0
|
||||
ands r1, r0
|
||||
ldrb r2, [r4, #0x1a]
|
||||
movs r5, #0x10
|
||||
rsbs r5, r5, #0
|
||||
adds r0, r5, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
movs r2, #0xf
|
||||
adds r1, r3, #0
|
||||
ands r1, r2
|
||||
lsls r1, r1, #4
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x1a]
|
||||
lsls r1, r3, #2
|
||||
ldr r0, _0801D22C @ =gPaletteList
|
||||
adds r4, r1, r0
|
||||
ldr r0, [r4]
|
||||
lsls r0, r0, #0x1c
|
||||
lsrs r0, r0, #0x1c
|
||||
cmp r0, #4
|
||||
beq _0801D22A
|
||||
ldrb r0, [r4, #1]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #1]
|
||||
ldr r0, [r4]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r3, r0, #0x1c
|
||||
ldrb r1, [r4]
|
||||
adds r0, r5, #0
|
||||
ands r0, r1
|
||||
movs r1, #3
|
||||
orrs r0, r1
|
||||
strb r0, [r4]
|
||||
subs r3, #1
|
||||
cmp r3, #0
|
||||
beq _0801D22A
|
||||
movs r7, #0xf
|
||||
adds r6, r5, #0
|
||||
movs r5, #2
|
||||
_0801D212:
|
||||
adds r4, #4
|
||||
lsls r2, r3, #4
|
||||
ldrb r1, [r4]
|
||||
adds r0, r7, #0
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
ands r0, r6
|
||||
orrs r0, r5
|
||||
strb r0, [r4]
|
||||
subs r3, #1
|
||||
cmp r3, #0
|
||||
bne _0801D212
|
||||
_0801D22A:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801D22C: .4byte gPaletteList
|
||||
.syntax divided
|
||||
@@ -0,0 +1,34 @@
|
||||
.syntax unified
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
ldr r0, _0801D024 @ =gScreenTransition
|
||||
movs r1, #0
|
||||
cmp r2, #0
|
||||
beq _0801D00E
|
||||
movs r1, #0xf
|
||||
_0801D00E:
|
||||
adds r0, #0x2f
|
||||
strb r1, [r0]
|
||||
cmp r2, #0
|
||||
beq _0801D028
|
||||
bl CleanUpObjPalettes
|
||||
movs r0, #0xf
|
||||
bl sub_0801CFD0
|
||||
b _0801D03A
|
||||
.align 2, 0
|
||||
_0801D024: .4byte gScreenTransition
|
||||
_0801D028:
|
||||
ldr r3, _0801D03C @ =gUnk_02001A3C
|
||||
ldrb r1, [r3]
|
||||
movs r0, #0xf
|
||||
ands r0, r1
|
||||
cmp r0, #4
|
||||
bne _0801D03A
|
||||
strb r2, [r3]
|
||||
strb r2, [r3, #1]
|
||||
strh r2, [r3, #2]
|
||||
_0801D03A:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0801D03C: .4byte gUnk_02001A3C
|
||||
.syntax divided
|
||||
@@ -0,0 +1,39 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _0801D288 @ =gPaletteList
|
||||
adds r2, r0, r1
|
||||
ldr r0, [r2]
|
||||
lsls r0, r0, #0x1c
|
||||
lsrs r0, r0, #0x1c
|
||||
cmp r0, #3
|
||||
bne _0801D284
|
||||
ldrb r0, [r2, #1]
|
||||
subs r0, #1
|
||||
strb r0, [r2, #1]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0801D284
|
||||
ldr r0, [r2]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r3, r0, #0x1c
|
||||
movs r5, #0
|
||||
movs r6, #0x10
|
||||
rsbs r6, r6, #0
|
||||
movs r4, #1
|
||||
_0801D270:
|
||||
strb r5, [r2, #1]
|
||||
ldrb r1, [r2]
|
||||
adds r0, r6, #0
|
||||
ands r0, r1
|
||||
orrs r0, r4
|
||||
strb r0, [r2]
|
||||
adds r2, #4
|
||||
subs r3, #1
|
||||
cmp r3, #0
|
||||
bne _0801D270
|
||||
_0801D284:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0801D288: .4byte gPaletteList
|
||||
.syntax divided
|
||||
@@ -0,0 +1,71 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
sub sp, #4
|
||||
adds r6, r0, #0
|
||||
adds r3, r1, #0
|
||||
ldr r0, _0801D50C @ =gPaletteList
|
||||
mov r8, r0
|
||||
lsls r0, r6, #2
|
||||
mov r1, r8
|
||||
adds r4, r0, r1
|
||||
ldrb r0, [r4]
|
||||
lsrs r5, r0, #4
|
||||
subs r5, #1
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
cmp r5, r0
|
||||
beq _0801D4F8
|
||||
ldr r2, _0801D510 @ =gPaletteBuffer
|
||||
lsls r0, r3, #5
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #2
|
||||
adds r0, r0, r1
|
||||
adds r7, r0, r2
|
||||
lsls r0, r3, #2
|
||||
add r8, r0
|
||||
lsls r0, r6, #5
|
||||
adds r0, r0, r1
|
||||
adds r6, r0, r2
|
||||
movs r3, #0
|
||||
_0801D4C8:
|
||||
ldr r0, [r4]
|
||||
mov r1, r8
|
||||
adds r1, #4
|
||||
mov r8, r1
|
||||
subs r1, #4
|
||||
stm r1!, {r0}
|
||||
strb r3, [r4]
|
||||
strb r3, [r4, #1]
|
||||
strh r3, [r4, #2]
|
||||
adds r0, r6, #0
|
||||
adds r1, r7, #0
|
||||
movs r2, #0x20
|
||||
str r3, [sp]
|
||||
bl MemCopy
|
||||
adds r6, #0x20
|
||||
adds r4, #4
|
||||
adds r7, #0x20
|
||||
subs r5, #1
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
ldr r3, [sp]
|
||||
cmp r5, r0
|
||||
bne _0801D4C8
|
||||
_0801D4F8:
|
||||
ldr r0, _0801D514 @ =gUsedPalettes
|
||||
ldr r1, [r0]
|
||||
ldr r2, _0801D518 @ =0xFFFF0000
|
||||
orrs r1, r2
|
||||
str r1, [r0]
|
||||
add sp, #4
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801D50C: .4byte gPaletteList
|
||||
_0801D510: .4byte gPaletteBuffer
|
||||
_0801D514: .4byte gUsedPalettes
|
||||
_0801D518: .4byte 0xFFFF0000
|
||||
.syntax divided
|
||||
@@ -0,0 +1,14 @@
|
||||
.syntax unified
|
||||
lsrs r2, r1, #3
|
||||
adds r3, r0, r2
|
||||
movs r2, #7
|
||||
ands r1, r2
|
||||
movs r2, #1
|
||||
lsls r2, r1
|
||||
ldrb r0, [r3]
|
||||
adds r1, r0, #0
|
||||
bics r1, r2
|
||||
strb r1, [r3]
|
||||
ands r0, r2
|
||||
bx lr
|
||||
.syntax divided
|
||||
@@ -0,0 +1,179 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #0x14
|
||||
adds r4, r0, #0
|
||||
bl CheckHasMap
|
||||
cmp r0, #0
|
||||
bne _0801DDB8
|
||||
b _0801DEEA
|
||||
_0801DDB8:
|
||||
ldr r1, _0801DDD8 @ =gUnk_080C9C50
|
||||
ldr r0, _0801DDDC @ =gArea
|
||||
ldrb r0, [r0, #3]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r1, [r0]
|
||||
lsls r0, r4, #2
|
||||
adds r0, r0, r1
|
||||
ldr r4, [r0]
|
||||
ldr r0, _0801DDE0 @ =gUnk_02019EE0
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #8
|
||||
bl MemClear
|
||||
b _0801DEE2
|
||||
.align 2, 0
|
||||
_0801DDD8: .4byte gUnk_080C9C50
|
||||
_0801DDDC: .4byte gArea
|
||||
_0801DDE0: .4byte gUnk_02019EE0
|
||||
_0801DDE4:
|
||||
ldrb r0, [r4]
|
||||
ldrb r1, [r4, #1]
|
||||
movs r2, #3
|
||||
bl GetRoomProperty
|
||||
adds r6, r0, #0
|
||||
adds r0, r4, #0
|
||||
bl sub_0801DF10
|
||||
adds r5, r0, #0
|
||||
movs r0, #0
|
||||
str r0, [sp, #0xc]
|
||||
ldrh r2, [r4]
|
||||
ldr r0, _0801DE14 @ =gUnk_02032EC0
|
||||
ldrh r3, [r0, #0x20]
|
||||
ldr r1, _0801DE18 @ =0x0000FFFF
|
||||
ands r1, r2
|
||||
ldr r0, _0801DE18 @ =0x0000FFFF
|
||||
ands r0, r3
|
||||
cmp r1, r0
|
||||
bne _0801DE1C
|
||||
movs r3, #8
|
||||
b _0801DE36
|
||||
.align 2, 0
|
||||
_0801DE14: .4byte gUnk_02032EC0
|
||||
_0801DE18: .4byte 0x0000FFFF
|
||||
_0801DE1C:
|
||||
bl HasDungeonSmallKey
|
||||
cmp r0, #0
|
||||
beq _0801DE28
|
||||
movs r0, #2
|
||||
str r0, [sp, #0xc]
|
||||
_0801DE28:
|
||||
adds r0, r6, #0
|
||||
adds r1, r5, #0
|
||||
bl sub_0801DF90
|
||||
cmp r0, #0
|
||||
beq _0801DE38
|
||||
movs r3, #3
|
||||
_0801DE36:
|
||||
str r3, [sp, #0xc]
|
||||
_0801DE38:
|
||||
ldrb r1, [r4, #2]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0801DE46
|
||||
movs r0, #0
|
||||
str r0, [sp, #0xc]
|
||||
_0801DE46:
|
||||
adds r3, r4, #0
|
||||
adds r3, #8
|
||||
str r3, [sp, #0x10]
|
||||
ldr r0, [sp, #0xc]
|
||||
cmp r0, #0
|
||||
beq _0801DEE0
|
||||
ldr r2, _0801DEF8 @ =0x040000D4
|
||||
ldr r0, [r4, #4]
|
||||
ldr r1, _0801DEFC @ =gMapData
|
||||
adds r0, r0, r1
|
||||
str r0, [r2]
|
||||
ldr r0, _0801DF00 @ =gUnk_02019EE0
|
||||
str r0, [r2, #4]
|
||||
ldr r0, _0801DF04 @ =0x84000100
|
||||
str r0, [r2, #8]
|
||||
ldr r0, [r2, #8]
|
||||
ldr r0, _0801DF08 @ =gAreaRoomHeaders
|
||||
ldrb r2, [r4]
|
||||
lsls r2, r2, #2
|
||||
adds r2, r2, r0
|
||||
ldrb r1, [r4, #1]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #1
|
||||
ldr r2, [r2]
|
||||
adds r2, r2, r0
|
||||
ldrh r0, [r2]
|
||||
lsrs r0, r0, #4
|
||||
str r0, [sp]
|
||||
ldrh r0, [r2, #2]
|
||||
ldr r1, _0801DF0C @ =0x000007FF
|
||||
ands r0, r1
|
||||
lsrs r0, r0, #4
|
||||
str r0, [sp, #4]
|
||||
ldrh r0, [r2, #4]
|
||||
lsrs r7, r0, #4
|
||||
ldrh r0, [r2, #6]
|
||||
lsrs r0, r0, #4
|
||||
mov sl, r0
|
||||
adds r0, r7, #3
|
||||
lsrs r0, r0, #2
|
||||
str r0, [sp, #8]
|
||||
movs r6, #0
|
||||
cmp r6, sl
|
||||
bhs _0801DEE0
|
||||
_0801DEA0:
|
||||
ldr r3, [sp, #8]
|
||||
adds r1, r6, #0
|
||||
muls r1, r3, r1
|
||||
ldr r0, _0801DF00 @ =gUnk_02019EE0
|
||||
adds r1, r1, r0
|
||||
mov r8, r1
|
||||
movs r5, #0
|
||||
adds r0, r6, #1
|
||||
mov sb, r0
|
||||
cmp r5, r7
|
||||
bhs _0801DEDA
|
||||
_0801DEB6:
|
||||
ldr r3, [sp]
|
||||
adds r4, r3, r5
|
||||
adds r0, r5, #0
|
||||
mov r1, r8
|
||||
bl sub_0801DF60
|
||||
ldr r1, [sp, #0xc]
|
||||
bl sub_0801DF78
|
||||
adds r2, r0, #0
|
||||
adds r0, r4, #0
|
||||
ldr r3, [sp, #4]
|
||||
adds r1, r3, r6
|
||||
bl sub_0801DF28
|
||||
adds r5, #1
|
||||
cmp r5, r7
|
||||
blo _0801DEB6
|
||||
_0801DEDA:
|
||||
mov r6, sb
|
||||
cmp r6, sl
|
||||
blo _0801DEA0
|
||||
_0801DEE0:
|
||||
ldr r4, [sp, #0x10]
|
||||
_0801DEE2:
|
||||
ldrb r0, [r4]
|
||||
cmp r0, #0
|
||||
beq _0801DEEA
|
||||
b _0801DDE4
|
||||
_0801DEEA:
|
||||
add sp, #0x14
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801DEF8: .4byte 0x040000D4
|
||||
_0801DEFC: .4byte gMapData
|
||||
_0801DF00: .4byte gUnk_02019EE0
|
||||
_0801DF04: .4byte 0x84000100
|
||||
_0801DF08: .4byte gAreaRoomHeaders
|
||||
_0801DF0C: .4byte 0x000007FF
|
||||
.syntax divided
|
||||
@@ -0,0 +1,221 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
sub sp, #4
|
||||
adds r4, r0, #0
|
||||
adds r5, r1, #0
|
||||
adds r1, r2, #0
|
||||
adds r0, r5, #0
|
||||
bl MemClear
|
||||
movs r0, #1
|
||||
strb r0, [r5]
|
||||
ldr r2, _0801DBE4 @ =gScreenTransition
|
||||
ldrh r0, [r2, #0x1c]
|
||||
lsrs r0, r0, #4
|
||||
movs r1, #0x7f
|
||||
ands r0, r1
|
||||
strb r0, [r5, #1]
|
||||
ldrh r0, [r2, #0x1e]
|
||||
lsrs r0, r0, #4
|
||||
ands r0, r1
|
||||
strb r0, [r5, #2]
|
||||
adds r5, #3
|
||||
ldr r1, _0801DBE8 @ =gUnk_080C9C50
|
||||
ldr r0, _0801DBEC @ =gArea
|
||||
ldrb r0, [r0, #3]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
lsls r4, r4, #2
|
||||
adds r4, r4, r0
|
||||
ldr r6, [r4]
|
||||
b _0801DD3A
|
||||
.align 2, 0
|
||||
_0801DBE4: .4byte gScreenTransition
|
||||
_0801DBE8: .4byte gUnk_080C9C50
|
||||
_0801DBEC: .4byte gArea
|
||||
_0801DBF0:
|
||||
ldrb r0, [r6]
|
||||
ldrb r1, [r6, #1]
|
||||
movs r2, #3
|
||||
bl GetRoomProperty
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
bne _0801DC04
|
||||
adds r6, #8
|
||||
b _0801DD3A
|
||||
_0801DC04:
|
||||
adds r0, r6, #0
|
||||
bl sub_0801DF10
|
||||
mov r8, r0
|
||||
bl HasDungeonBigKey
|
||||
movs r1, #8
|
||||
adds r1, r1, r6
|
||||
mov sb, r1
|
||||
cmp r0, #0
|
||||
beq _0801DCAE
|
||||
ldrb r0, [r4]
|
||||
cmp r0, #0
|
||||
beq _0801DCAE
|
||||
movs r3, #0xfc
|
||||
lsls r3, r3, #2
|
||||
ldr r7, _0801DC84 @ =0x000007FF
|
||||
_0801DC26:
|
||||
ldrb r0, [r4]
|
||||
cmp r0, #3
|
||||
bgt _0801DCA6
|
||||
cmp r0, #2
|
||||
blt _0801DCA6
|
||||
ldrb r1, [r4, #1]
|
||||
mov r0, r8
|
||||
str r3, [sp]
|
||||
bl CheckLocalFlagByBank
|
||||
ldr r3, [sp]
|
||||
cmp r0, #0
|
||||
bne _0801DCA6
|
||||
ldr r0, _0801DC88 @ =gAreaRoomHeaders
|
||||
ldrb r2, [r6]
|
||||
lsls r2, r2, #2
|
||||
adds r2, r2, r0
|
||||
ldrb r1, [r6, #1]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #1
|
||||
ldr r1, [r2]
|
||||
adds r2, r1, r0
|
||||
movs r0, #2
|
||||
strb r0, [r5]
|
||||
ldrb r0, [r4]
|
||||
cmp r0, #2
|
||||
bne _0801DC8C
|
||||
ldrh r0, [r4, #4]
|
||||
lsls r0, r0, #4
|
||||
ands r0, r3
|
||||
movs r1, #8
|
||||
orrs r0, r1
|
||||
ldrh r1, [r2]
|
||||
ands r1, r7
|
||||
adds r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
strb r0, [r5, #1]
|
||||
ldrh r0, [r4, #4]
|
||||
lsrs r0, r0, #2
|
||||
ands r0, r3
|
||||
movs r1, #8
|
||||
orrs r0, r1
|
||||
ldrh r1, [r2, #2]
|
||||
ands r1, r7
|
||||
b _0801DC9E
|
||||
.align 2, 0
|
||||
_0801DC84: .4byte 0x000007FF
|
||||
_0801DC88: .4byte gAreaRoomHeaders
|
||||
_0801DC8C:
|
||||
ldrh r0, [r2]
|
||||
ands r0, r7
|
||||
ldrh r1, [r4, #4]
|
||||
adds r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
strb r0, [r5, #1]
|
||||
ldrh r0, [r2, #2]
|
||||
ands r0, r7
|
||||
ldrh r1, [r4, #6]
|
||||
_0801DC9E:
|
||||
adds r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
strb r0, [r5, #2]
|
||||
adds r5, #3
|
||||
_0801DCA6:
|
||||
adds r4, #8
|
||||
ldrb r0, [r4]
|
||||
cmp r0, #0
|
||||
bne _0801DC26
|
||||
_0801DCAE:
|
||||
bl HasDungeonBigKey
|
||||
cmp r0, #0
|
||||
beq _0801DD16
|
||||
ldrb r1, [r6, #2]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0801DD16
|
||||
ldr r0, _0801DD4C @ =gArea
|
||||
ldrb r0, [r0, #3]
|
||||
adds r0, #1
|
||||
bl CheckGlobalFlag
|
||||
cmp r0, #0
|
||||
bne _0801DD16
|
||||
ldr r0, _0801DD50 @ =gAreaRoomHeaders
|
||||
ldrb r2, [r6]
|
||||
lsls r2, r2, #2
|
||||
adds r2, r2, r0
|
||||
ldrb r1, [r6, #1]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #1
|
||||
ldr r1, [r2]
|
||||
adds r2, r1, r0
|
||||
movs r0, #4
|
||||
strb r0, [r5]
|
||||
ldrh r0, [r2, #4]
|
||||
lsrs r0, r0, #1
|
||||
ldrh r1, [r2]
|
||||
adds r0, r0, r1
|
||||
asrs r1, r0, #4
|
||||
adds r0, r1, #0
|
||||
cmp r1, #0
|
||||
bge _0801DCF8
|
||||
adds r0, #0x7f
|
||||
_0801DCF8:
|
||||
asrs r0, r0, #7
|
||||
lsls r0, r0, #7
|
||||
subs r0, r1, r0
|
||||
strb r0, [r5, #1]
|
||||
ldrh r0, [r2, #6]
|
||||
lsrs r0, r0, #1
|
||||
ldrh r2, [r2, #2]
|
||||
adds r0, r0, r2
|
||||
asrs r1, r0, #4
|
||||
adds r0, r1, #0
|
||||
asrs r0, r0, #7
|
||||
lsls r0, r0, #7
|
||||
subs r0, r1, r0
|
||||
strb r0, [r5, #2]
|
||||
adds r5, #3
|
||||
_0801DD16:
|
||||
ldr r2, _0801DD54 @ =gScreenTransition
|
||||
ldrh r0, [r6]
|
||||
ldrh r1, [r2, #0x16]
|
||||
cmp r0, r1
|
||||
bne _0801DD38
|
||||
movs r0, #3
|
||||
strb r0, [r5]
|
||||
ldrh r0, [r2, #0x18]
|
||||
lsrs r0, r0, #4
|
||||
movs r1, #0x7f
|
||||
ands r0, r1
|
||||
strb r0, [r5, #1]
|
||||
ldrh r0, [r2, #0x1a]
|
||||
lsrs r0, r0, #4
|
||||
ands r0, r1
|
||||
strb r0, [r5, #2]
|
||||
adds r5, #3
|
||||
_0801DD38:
|
||||
mov r6, sb
|
||||
_0801DD3A:
|
||||
ldrb r0, [r6]
|
||||
cmp r0, #0
|
||||
beq _0801DD42
|
||||
b _0801DBF0
|
||||
_0801DD42:
|
||||
add sp, #4
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801DD4C: .4byte gArea
|
||||
_0801DD50: .4byte gAreaRoomHeaders
|
||||
_0801DD54: .4byte gScreenTransition
|
||||
.syntax divided
|
||||
@@ -0,0 +1,14 @@
|
||||
.syntax unified
|
||||
lsrs r2, r1, #3
|
||||
adds r3, r0, r2
|
||||
movs r2, #7
|
||||
ands r1, r2
|
||||
movs r2, #1
|
||||
lsls r2, r1
|
||||
ldrb r0, [r3]
|
||||
adds r1, r0, #0
|
||||
orrs r1, r2
|
||||
strb r1, [r3]
|
||||
ands r0, r2
|
||||
bx lr
|
||||
.syntax divided
|
||||
@@ -0,0 +1,39 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
adds r4, r1, #0
|
||||
adds r6, r2, #0
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #8
|
||||
ands r0, r3
|
||||
movs r1, #0x20
|
||||
mov ip, r1
|
||||
cmp r0, #0
|
||||
beq _0801D8B2
|
||||
movs r0, #0x40
|
||||
mov ip, r0
|
||||
_0801D8B2:
|
||||
ldr r0, _0801D8D8 @ =0x00007FFF
|
||||
ands r3, r0
|
||||
ldr r1, _0801D8DC @ =0x040000D4
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #0x18
|
||||
orrs r2, r6
|
||||
lsls r7, r6, #1
|
||||
mov r0, ip
|
||||
lsls r6, r0, #1
|
||||
_0801D8C4:
|
||||
str r4, [r1]
|
||||
str r5, [r1, #4]
|
||||
str r2, [r1, #8]
|
||||
ldr r0, [r1, #8]
|
||||
adds r4, r4, r7
|
||||
adds r5, r5, r6
|
||||
subs r3, #1
|
||||
cmp r3, #0
|
||||
bne _0801D8C4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801D8D8: .4byte 0x00007FFF
|
||||
_0801D8DC: .4byte 0x040000D4
|
||||
.syntax divided
|
||||
@@ -0,0 +1,28 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
lsrs r4, r1, #3
|
||||
lsls r4, r4, #4
|
||||
lsrs r3, r0, #3
|
||||
adds r4, r4, r3
|
||||
lsls r4, r4, #5
|
||||
ldr r3, _0801DF58 @ =gUnk_0201AEE0
|
||||
adds r4, r4, r3
|
||||
movs r3, #7
|
||||
ands r1, r3
|
||||
lsls r1, r1, #2
|
||||
adds r4, r4, r1
|
||||
ands r0, r3
|
||||
lsls r0, r0, #2
|
||||
lsls r2, r0
|
||||
ldr r1, _0801DF5C @ =gUnk_080C9460
|
||||
adds r0, r0, r1
|
||||
ldr r1, [r4]
|
||||
ldr r0, [r0]
|
||||
ands r1, r0
|
||||
orrs r1, r2
|
||||
str r1, [r4]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0801DF58: .4byte gUnk_0201AEE0
|
||||
_0801DF5C: .4byte gUnk_080C9460
|
||||
.syntax divided
|
||||
@@ -0,0 +1,44 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
mov r8, r0
|
||||
adds r4, r1, #0
|
||||
adds r5, r2, #0
|
||||
adds r6, r3, #0
|
||||
ldr r7, _0801E004 @ =gFuseInfo
|
||||
adds r0, r7, #0
|
||||
movs r1, #0x10
|
||||
bl MemClear
|
||||
strh r4, [r7, #6]
|
||||
strh r5, [r7, #8]
|
||||
strh r6, [r7, #0xa]
|
||||
mov r0, r8
|
||||
str r0, [r7, #0xc]
|
||||
ldr r0, _0801E008 @ =gUnk_03003DF0
|
||||
ldrb r0, [r0, #2]
|
||||
strb r0, [r7, #3]
|
||||
mov r1, r8
|
||||
cmp r1, #0
|
||||
beq _0801DFF8
|
||||
ldrb r1, [r1, #0x11]
|
||||
lsls r0, r1, #0x1c
|
||||
lsrs r0, r0, #0x1c
|
||||
strb r0, [r7, #4]
|
||||
movs r0, #0x10
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #2
|
||||
orrs r0, r1
|
||||
mov r1, r8
|
||||
strb r0, [r1, #0x11]
|
||||
_0801DFF8:
|
||||
movs r0, #0
|
||||
strb r0, [r7]
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801E004: .4byte gFuseInfo
|
||||
_0801E008: .4byte gUnk_03003DF0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,40 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
lsls r1, r1, #1
|
||||
ldr r2, _0801E278 @ =gUnk_02018EE0
|
||||
adds r5, r1, r2
|
||||
movs r3, #0
|
||||
adds r2, r0, #0
|
||||
lsls r4, r2, #1
|
||||
movs r0, #3
|
||||
subs r1, r0, r4
|
||||
cmp r3, r2
|
||||
bgt _0801E28E
|
||||
adds r4, r4, r5
|
||||
_0801E264:
|
||||
lsls r0, r3, #1
|
||||
adds r0, r0, r5
|
||||
strh r2, [r0]
|
||||
strh r3, [r4]
|
||||
cmp r1, #0
|
||||
bge _0801E27C
|
||||
adds r1, #6
|
||||
lsls r0, r3, #2
|
||||
adds r1, r1, r0
|
||||
b _0801E288
|
||||
.align 2, 0
|
||||
_0801E278: .4byte gUnk_02018EE0
|
||||
_0801E27C:
|
||||
adds r1, #0xa
|
||||
subs r0, r3, r2
|
||||
lsls r0, r0, #2
|
||||
adds r1, r1, r0
|
||||
subs r4, #2
|
||||
subs r2, #1
|
||||
_0801E288:
|
||||
adds r3, #1
|
||||
cmp r3, r2
|
||||
ble _0801E264
|
||||
_0801E28E:
|
||||
pop {r4, r5, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,75 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
mov ip, r0
|
||||
adds r6, r2, #0
|
||||
ldr r0, _0801E2BC @ =gUnk_03003DE4
|
||||
ldrb r0, [r0]
|
||||
lsls r2, r0, #2
|
||||
adds r2, r2, r0
|
||||
lsls r2, r2, #9
|
||||
lsls r0, r1, #1
|
||||
ldr r3, _0801E2C0 @ =gUnk_02017AA0
|
||||
adds r0, r0, r3
|
||||
adds r2, r2, r0
|
||||
adds r4, r2, #0
|
||||
adds r5, r1, #0
|
||||
mov sb, r5
|
||||
ldr r0, _0801E2C4 @ =gUnk_02018EE0
|
||||
mov r8, r0
|
||||
b _0801E30A
|
||||
.align 2, 0
|
||||
_0801E2BC: .4byte gUnk_03003DE4
|
||||
_0801E2C0: .4byte gUnk_02017AA0
|
||||
_0801E2C4: .4byte gUnk_02018EE0
|
||||
_0801E2C8:
|
||||
mov r1, r8
|
||||
movs r3, #0
|
||||
ldrsh r0, [r1, r3]
|
||||
movs r7, #2
|
||||
add r8, r7
|
||||
mov r3, ip
|
||||
subs r1, r3, r0
|
||||
adds r3, r3, r0
|
||||
cmp r1, #0
|
||||
bge _0801E2DE
|
||||
movs r1, #0
|
||||
_0801E2DE:
|
||||
cmp r3, #0xef
|
||||
ble _0801E2E4
|
||||
movs r3, #0xf0
|
||||
_0801E2E4:
|
||||
mov r7, sb
|
||||
lsls r0, r7, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
cmp r0, #0x9f
|
||||
bhi _0801E2F2
|
||||
strb r3, [r4]
|
||||
strb r1, [r4, #1]
|
||||
_0801E2F2:
|
||||
lsls r0, r5, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
cmp r0, #0x9f
|
||||
bhi _0801E2FE
|
||||
strb r3, [r2]
|
||||
strb r1, [r2, #1]
|
||||
_0801E2FE:
|
||||
subs r4, #2
|
||||
adds r2, #2
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
add sb, r0
|
||||
adds r5, #1
|
||||
_0801E30A:
|
||||
adds r0, r6, #0
|
||||
subs r6, #1
|
||||
cmp r0, #0
|
||||
bne _0801E2C8
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,189 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #0x20
|
||||
str r0, [sp]
|
||||
str r1, [sp, #4]
|
||||
mov sl, r2
|
||||
mov sb, r3
|
||||
ldr r0, _0801E3AC @ =gUnk_03003DE4
|
||||
ldrb r1, [r0]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #9
|
||||
ldr r1, _0801E3B0 @ =gUnk_02017AA0
|
||||
adds r0, r0, r1
|
||||
movs r1, #0xa0
|
||||
lsls r1, r1, #4
|
||||
bl MemClear
|
||||
cmp sl, sb
|
||||
bge _0801E3DC
|
||||
movs r6, #0
|
||||
mov r8, sl
|
||||
mov r7, r8
|
||||
mov r0, r8
|
||||
lsls r1, r0, #1
|
||||
movs r0, #3
|
||||
subs r5, r0, r1
|
||||
cmp r6, r8
|
||||
ble _0801E35E
|
||||
b _0801E45E
|
||||
_0801E35E:
|
||||
mov r1, r8
|
||||
lsls r0, r1, #2
|
||||
ldr r4, _0801E3B4 @ =gUnk_02018EE0
|
||||
adds r0, r0, r4
|
||||
str r0, [sp, #0x10]
|
||||
mov r1, sb
|
||||
mov r0, r8
|
||||
muls r0, r1, r0
|
||||
str r0, [sp, #0x14]
|
||||
movs r3, #0
|
||||
_0801E372:
|
||||
adds r0, r3, #0
|
||||
mov r1, sl
|
||||
str r3, [sp, #0x18]
|
||||
bl Div
|
||||
adds r4, r0, #0
|
||||
lsls r4, r4, #0x10
|
||||
lsrs r4, r4, #0x10
|
||||
str r4, [sp, #0x1c]
|
||||
ldr r0, [sp, #0x14]
|
||||
mov r1, sl
|
||||
bl Div
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
lsls r2, r6, #2
|
||||
ldr r4, _0801E3B4 @ =gUnk_02018EE0
|
||||
adds r1, r2, r4
|
||||
str r0, [r1]
|
||||
ldr r0, [sp, #0x1c]
|
||||
ldr r1, [sp, #0x10]
|
||||
str r0, [r1]
|
||||
ldr r3, [sp, #0x18]
|
||||
cmp r5, #0
|
||||
bge _0801E3B8
|
||||
adds r0, r5, #6
|
||||
adds r5, r0, r2
|
||||
b _0801E3D2
|
||||
.align 2, 0
|
||||
_0801E3AC: .4byte gUnk_03003DE4
|
||||
_0801E3B0: .4byte gUnk_02017AA0
|
||||
_0801E3B4: .4byte gUnk_02018EE0
|
||||
_0801E3B8:
|
||||
adds r1, r5, #0
|
||||
adds r1, #0xa
|
||||
subs r0, r6, r7
|
||||
lsls r0, r0, #2
|
||||
adds r5, r1, r0
|
||||
ldr r4, [sp, #0x10]
|
||||
subs r4, #4
|
||||
str r4, [sp, #0x10]
|
||||
ldr r0, [sp, #0x14]
|
||||
mov r1, sb
|
||||
subs r0, r0, r1
|
||||
str r0, [sp, #0x14]
|
||||
subs r7, #1
|
||||
_0801E3D2:
|
||||
add r3, sb
|
||||
adds r6, #1
|
||||
cmp r6, r7
|
||||
ble _0801E372
|
||||
b _0801E45E
|
||||
_0801E3DC:
|
||||
movs r6, #0
|
||||
mov r8, sb
|
||||
mov r7, r8
|
||||
mov r4, r8
|
||||
lsls r1, r4, #1
|
||||
movs r0, #3
|
||||
subs r5, r0, r1
|
||||
cmp r6, r8
|
||||
bgt _0801E45E
|
||||
lsls r0, r4, #2
|
||||
ldr r1, _0801E438 @ =gUnk_02018EE0
|
||||
adds r0, r0, r1
|
||||
str r0, [sp, #8]
|
||||
mov r0, sl
|
||||
mov r4, r8
|
||||
muls r4, r0, r4
|
||||
str r4, [sp, #0xc]
|
||||
movs r3, #0
|
||||
_0801E400:
|
||||
adds r0, r3, #0
|
||||
mov r1, sb
|
||||
str r3, [sp, #0x18]
|
||||
bl Div
|
||||
adds r4, r0, #0
|
||||
lsls r4, r4, #0x10
|
||||
lsrs r4, r4, #0x10
|
||||
str r4, [sp, #0x1c]
|
||||
ldr r0, [sp, #0xc]
|
||||
mov r1, sb
|
||||
bl Div
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
lsls r2, r6, #2
|
||||
ldr r4, _0801E438 @ =gUnk_02018EE0
|
||||
adds r1, r2, r4
|
||||
str r0, [r1]
|
||||
ldr r0, [sp, #0x1c]
|
||||
ldr r1, [sp, #8]
|
||||
str r0, [r1]
|
||||
ldr r3, [sp, #0x18]
|
||||
cmp r5, #0
|
||||
bge _0801E43C
|
||||
adds r0, r5, #6
|
||||
adds r5, r0, r2
|
||||
b _0801E456
|
||||
.align 2, 0
|
||||
_0801E438: .4byte gUnk_02018EE0
|
||||
_0801E43C:
|
||||
adds r1, r5, #0
|
||||
adds r1, #0xa
|
||||
subs r0, r6, r7
|
||||
lsls r0, r0, #2
|
||||
adds r5, r1, r0
|
||||
ldr r4, [sp, #8]
|
||||
subs r4, #4
|
||||
str r4, [sp, #8]
|
||||
ldr r0, [sp, #0xc]
|
||||
mov r1, sl
|
||||
subs r0, r0, r1
|
||||
str r0, [sp, #0xc]
|
||||
subs r7, #1
|
||||
_0801E456:
|
||||
add r3, sl
|
||||
adds r6, #1
|
||||
cmp r6, r7
|
||||
ble _0801E400
|
||||
_0801E45E:
|
||||
ldr r0, [sp]
|
||||
ldr r1, [sp, #4]
|
||||
mov r2, r8
|
||||
bl sub_0801E290
|
||||
ldr r0, _0801E48C @ =gUnk_03003DE4
|
||||
ldrb r1, [r0]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #9
|
||||
ldr r1, _0801E490 @ =gUnk_02017AA0
|
||||
adds r0, r0, r1
|
||||
ldr r1, _0801E494 @ =0x04000040
|
||||
ldr r2, _0801E498 @ =0xA2600001
|
||||
bl sub_0805622C
|
||||
add sp, #0x20
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801E48C: .4byte gUnk_03003DE4
|
||||
_0801E490: .4byte gUnk_02017AA0
|
||||
_0801E494: .4byte 0x04000040
|
||||
_0801E498: .4byte 0xA2600001
|
||||
.syntax divided
|
||||
@@ -0,0 +1,211 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #8
|
||||
mov r8, r0
|
||||
str r1, [sp, #4]
|
||||
mov sb, r2
|
||||
adds r5, r3, #0
|
||||
ldr r0, _0801E5E4 @ =0x0000FFFF
|
||||
movs r2, #0xf0
|
||||
lsls r2, r2, #3
|
||||
ldr r1, _0801E5E8 @ =gUnk_02018EE0
|
||||
bl MemFill16
|
||||
adds r3, r5, #0
|
||||
subs r3, #0x40
|
||||
movs r2, #0xff
|
||||
ands r3, r2
|
||||
ldr r1, _0801E5EC @ =gSineTable
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x40
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
movs r4, #0
|
||||
ldrsh r0, [r0, r4]
|
||||
mov r4, sb
|
||||
muls r4, r0, r4
|
||||
adds r0, r4, #0
|
||||
asrs r0, r0, #8
|
||||
mov r4, r8
|
||||
adds r7, r4, r0
|
||||
lsls r0, r3, #1
|
||||
adds r0, r0, r1
|
||||
movs r3, #0
|
||||
ldrsh r0, [r0, r3]
|
||||
mov r4, sb
|
||||
muls r4, r0, r4
|
||||
adds r0, r4, #0
|
||||
asrs r0, r0, #8
|
||||
ldr r3, [sp, #4]
|
||||
adds r3, r3, r0
|
||||
mov sl, r3
|
||||
adds r3, r5, #0
|
||||
adds r3, #0x68
|
||||
ands r3, r2
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x40
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
movs r4, #0
|
||||
ldrsh r0, [r0, r4]
|
||||
mov r4, sb
|
||||
muls r4, r0, r4
|
||||
adds r0, r4, #0
|
||||
asrs r0, r0, #8
|
||||
mov r4, r8
|
||||
adds r6, r4, r0
|
||||
lsls r0, r3, #1
|
||||
adds r0, r0, r1
|
||||
movs r3, #0
|
||||
ldrsh r0, [r0, r3]
|
||||
mov r4, sb
|
||||
muls r4, r0, r4
|
||||
adds r0, r4, #0
|
||||
asrs r0, r0, #8
|
||||
ldr r3, [sp, #4]
|
||||
adds r4, r3, r0
|
||||
adds r3, r5, #0
|
||||
subs r3, #0xe8
|
||||
ands r3, r2
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x40
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
movs r2, #0
|
||||
ldrsh r0, [r0, r2]
|
||||
mov r2, sb
|
||||
muls r2, r0, r2
|
||||
adds r0, r2, #0
|
||||
asrs r0, r0, #8
|
||||
mov r2, r8
|
||||
adds r5, r2, r0
|
||||
lsls r0, r3, #1
|
||||
adds r0, r0, r1
|
||||
movs r3, #0
|
||||
ldrsh r0, [r0, r3]
|
||||
mov r1, sb
|
||||
muls r1, r0, r1
|
||||
adds r0, r1, #0
|
||||
asrs r0, r0, #8
|
||||
ldr r2, [sp, #4]
|
||||
adds r2, r2, r0
|
||||
mov r8, r2
|
||||
movs r0, #0
|
||||
str r0, [sp]
|
||||
adds r0, r7, #0
|
||||
mov r1, sl
|
||||
adds r2, r6, #0
|
||||
adds r3, r4, #0
|
||||
bl sub_0801E64C
|
||||
movs r0, #1
|
||||
str r0, [sp]
|
||||
adds r0, r7, #0
|
||||
mov r1, sl
|
||||
adds r2, r5, #0
|
||||
mov r3, r8
|
||||
bl sub_0801E64C
|
||||
movs r0, #2
|
||||
str r0, [sp]
|
||||
adds r0, r6, #0
|
||||
adds r1, r4, #0
|
||||
adds r2, r5, #0
|
||||
mov r3, r8
|
||||
bl sub_0801E64C
|
||||
ldr r5, _0801E5F0 @ =gUnk_03003DE4
|
||||
ldrb r1, [r5]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #9
|
||||
ldr r6, _0801E5F4 @ =gUnk_02017AA0
|
||||
adds r0, r0, r6
|
||||
movs r1, #0xa0
|
||||
lsls r1, r1, #4
|
||||
bl MemClear
|
||||
ldr r2, _0801E5E8 @ =gUnk_02018EE0
|
||||
ldrb r1, [r5]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #9
|
||||
adds r1, r0, r6
|
||||
movs r3, #0xa0
|
||||
mov sl, r3
|
||||
_0801E5B0:
|
||||
ldr r7, [r2]
|
||||
ldr r6, [r2, #4]
|
||||
ldr r5, [r2, #8]
|
||||
adds r2, #0xc
|
||||
cmp r7, r6
|
||||
ble _0801E5C2
|
||||
adds r4, r7, #0
|
||||
adds r7, r6, #0
|
||||
adds r6, r4, #0
|
||||
_0801E5C2:
|
||||
cmp r7, r5
|
||||
ble _0801E5CC
|
||||
adds r4, r7, #0
|
||||
adds r7, r5, #0
|
||||
adds r5, r4, #0
|
||||
_0801E5CC:
|
||||
cmp r6, r5
|
||||
ble _0801E5D6
|
||||
adds r4, r6, #0
|
||||
adds r6, r5, #0
|
||||
adds r5, r4, #0
|
||||
_0801E5D6:
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
cmp r7, r0
|
||||
beq _0801E5F8
|
||||
strb r5, [r1]
|
||||
strb r7, [r1, #1]
|
||||
b _0801E60A
|
||||
.align 2, 0
|
||||
_0801E5E4: .4byte 0x0000FFFF
|
||||
_0801E5E8: .4byte gUnk_02018EE0
|
||||
_0801E5EC: .4byte gSineTable
|
||||
_0801E5F0: .4byte gUnk_03003DE4
|
||||
_0801E5F4: .4byte gUnk_02017AA0
|
||||
_0801E5F8:
|
||||
cmp r6, r7
|
||||
beq _0801E602
|
||||
strb r5, [r1]
|
||||
strb r6, [r1, #1]
|
||||
b _0801E60A
|
||||
_0801E602:
|
||||
cmp r5, r7
|
||||
beq _0801E60A
|
||||
strb r7, [r1, #1]
|
||||
strb r7, [r1]
|
||||
_0801E60A:
|
||||
movs r4, #1
|
||||
rsbs r4, r4, #0
|
||||
add sl, r4
|
||||
adds r1, #2
|
||||
mov r0, sl
|
||||
cmp r0, #0
|
||||
bgt _0801E5B0
|
||||
ldr r0, _0801E63C @ =gUnk_03003DE4
|
||||
ldrb r1, [r0]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #9
|
||||
ldr r1, _0801E640 @ =gUnk_02017AA0
|
||||
adds r0, r0, r1
|
||||
ldr r1, _0801E644 @ =0x04000040
|
||||
ldr r2, _0801E648 @ =0xA2600001
|
||||
bl sub_0805622C
|
||||
add sp, #8
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801E63C: .4byte gUnk_03003DE4
|
||||
_0801E640: .4byte gUnk_02017AA0
|
||||
_0801E644: .4byte 0x04000040
|
||||
_0801E648: .4byte 0xA2600001
|
||||
.syntax divided
|
||||
@@ -0,0 +1,72 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
adds r4, r1, #0
|
||||
adds r6, r3, #0
|
||||
ldr r7, _0801E6C4 @ =gUnk_02018EE0
|
||||
cmp r4, #0
|
||||
bge _0801E65E
|
||||
cmp r6, #0
|
||||
blt _0801E6C2
|
||||
_0801E65E:
|
||||
cmp r4, #0x9f
|
||||
ble _0801E666
|
||||
cmp r6, #0x9f
|
||||
bgt _0801E6C2
|
||||
_0801E666:
|
||||
cmp r4, r6
|
||||
ble _0801E676
|
||||
adds r1, r4, #0
|
||||
adds r4, r6, #0
|
||||
adds r6, r1, #0
|
||||
adds r1, r5, #0
|
||||
adds r5, r2, #0
|
||||
adds r2, r1, #0
|
||||
_0801E676:
|
||||
cmp r4, r6
|
||||
beq _0801E6C2
|
||||
subs r0, r2, r5
|
||||
lsls r0, r0, #0x10
|
||||
subs r1, r6, r4
|
||||
bl Div
|
||||
adds r3, r0, #0
|
||||
cmp r4, #0
|
||||
bge _0801E694
|
||||
rsbs r0, r4, #0
|
||||
muls r0, r3, r0
|
||||
asrs r0, r0, #0x10
|
||||
adds r5, r5, r0
|
||||
movs r4, #0
|
||||
_0801E694:
|
||||
cmp r6, #0x9f
|
||||
ble _0801E69A
|
||||
movs r6, #0x9f
|
||||
_0801E69A:
|
||||
lsls r2, r5, #0x10
|
||||
lsls r0, r4, #1
|
||||
adds r0, r0, r4
|
||||
ldr r1, [sp, #0x14]
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #2
|
||||
adds r7, r0, r7
|
||||
_0801E6A8:
|
||||
cmp r5, #0
|
||||
bge _0801E6AE
|
||||
movs r5, #0
|
||||
_0801E6AE:
|
||||
cmp r5, #0xf0
|
||||
ble _0801E6B4
|
||||
movs r5, #0xf0
|
||||
_0801E6B4:
|
||||
str r5, [r7]
|
||||
adds r2, r2, r3
|
||||
asrs r5, r2, #0x10
|
||||
adds r4, #1
|
||||
adds r7, #0xc
|
||||
cmp r4, r6
|
||||
ble _0801E6A8
|
||||
_0801E6C2:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801E6C4: .4byte gUnk_02018EE0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,59 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
subs r0, r4, #1
|
||||
cmp r0, #0x63
|
||||
bhi _0801E722
|
||||
movs r1, #0
|
||||
ldr r5, _0801E724 @ =gFuseInfo
|
||||
ldr r3, _0801E728 @ =gUnk_02002C01
|
||||
movs r2, #0xf1
|
||||
_0801E6DA:
|
||||
adds r0, r1, r3
|
||||
ldrb r6, [r0]
|
||||
cmp r4, r6
|
||||
bne _0801E6E4
|
||||
strb r2, [r0]
|
||||
_0801E6E4:
|
||||
adds r1, #1
|
||||
cmp r1, #0x7f
|
||||
bls _0801E6DA
|
||||
ldr r0, [r5, #0xc]
|
||||
bl sub_08002632
|
||||
adds r1, r0, #0
|
||||
subs r0, r1, #1
|
||||
cmp r0, #0x7e
|
||||
bhi _0801E70A
|
||||
ldr r0, _0801E72C @ =gSave
|
||||
ldr r2, _0801E730 @ =0x000001C1
|
||||
adds r0, r0, r2
|
||||
adds r1, r1, r0
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0xf1
|
||||
bne _0801E70A
|
||||
movs r0, #0xf2
|
||||
strb r0, [r1]
|
||||
_0801E70A:
|
||||
movs r1, #0
|
||||
ldr r0, _0801E734 @ =gUnk_03003DF0
|
||||
movs r2, #0xf1
|
||||
adds r0, #0xb
|
||||
_0801E712:
|
||||
ldrb r3, [r0]
|
||||
cmp r4, r3
|
||||
bne _0801E71A
|
||||
strb r2, [r0]
|
||||
_0801E71A:
|
||||
adds r0, #0xc
|
||||
adds r1, #1
|
||||
cmp r1, #0x1f
|
||||
bls _0801E712
|
||||
_0801E722:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0801E724: .4byte gFuseInfo
|
||||
_0801E728: .4byte gUnk_02002C01
|
||||
_0801E72C: .4byte gSave
|
||||
_0801E730: .4byte 0x000001C1
|
||||
_0801E734: .4byte gUnk_03003DF0
|
||||
.syntax divided
|
||||
@@ -0,0 +1,51 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_0801E82C
|
||||
adds r0, r4, #0
|
||||
subs r0, #0x65
|
||||
cmp r0, #0x10
|
||||
bhi _0801E790
|
||||
adds r0, r4, #0
|
||||
bl sub_0801E8B0
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0
|
||||
bge _0801E76E
|
||||
movs r1, #0
|
||||
ldr r0, _0801E794 @ =gSave
|
||||
movs r3, #0x8c
|
||||
lsls r3, r3, #1
|
||||
adds r2, r0, r3
|
||||
ldrb r0, [r2]
|
||||
cmp r0, #0
|
||||
beq _0801E76E
|
||||
_0801E764:
|
||||
adds r1, #1
|
||||
adds r0, r1, r2
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0801E764
|
||||
_0801E76E:
|
||||
cmp r1, #0x11
|
||||
bhi _0801E790
|
||||
ldr r2, _0801E794 @ =gSave
|
||||
movs r3, #0x8c
|
||||
lsls r3, r3, #1
|
||||
adds r0, r2, r3
|
||||
adds r0, r1, r0
|
||||
strb r4, [r0]
|
||||
adds r3, #0x13
|
||||
adds r0, r2, r3
|
||||
adds r1, r1, r0
|
||||
ldrb r0, [r1]
|
||||
adds r0, #1
|
||||
cmp r0, #0x63
|
||||
ble _0801E78E
|
||||
movs r0, #0x63
|
||||
_0801E78E:
|
||||
strb r0, [r1]
|
||||
_0801E790:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0801E794: .4byte gSave
|
||||
.syntax divided
|
||||
@@ -0,0 +1,69 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
ldr r1, _0801E8AC @ =gUnk_02002B54
|
||||
movs r5, #0
|
||||
adds r2, r1, #4
|
||||
_0801E83C:
|
||||
ldrb r0, [r2, #0x13]
|
||||
adds r3, r1, #4
|
||||
mov sl, r3
|
||||
cmp r0, #0
|
||||
bne _0801E848
|
||||
strb r0, [r2]
|
||||
_0801E848:
|
||||
adds r2, #1
|
||||
adds r5, #1
|
||||
cmp r5, #0x12
|
||||
bls _0801E83C
|
||||
movs r0, #0
|
||||
strb r0, [r1, #0x16]
|
||||
adds r2, r1, #0
|
||||
adds r2, #0x29
|
||||
strb r0, [r2]
|
||||
movs r5, #0
|
||||
movs r0, #0x17
|
||||
adds r0, r0, r1
|
||||
mov sb, r0
|
||||
movs r3, #0x18
|
||||
adds r3, r3, r1
|
||||
mov r8, r3
|
||||
adds r7, r1, #4
|
||||
adds r6, r1, #5
|
||||
_0801E86C:
|
||||
mov r1, sl
|
||||
adds r0, r1, r5
|
||||
ldrb r0, [r0]
|
||||
subs r0, #0x65
|
||||
cmp r0, #0x10
|
||||
bls _0801E890
|
||||
movs r4, #0x12
|
||||
subs r4, r4, r5
|
||||
adds r0, r6, #0
|
||||
adds r1, r7, #0
|
||||
adds r2, r4, #0
|
||||
bl MemCopy
|
||||
mov r0, r8
|
||||
mov r1, sb
|
||||
adds r2, r4, #0
|
||||
bl MemCopy
|
||||
_0801E890:
|
||||
movs r3, #1
|
||||
add sb, r3
|
||||
add r8, r3
|
||||
adds r7, #1
|
||||
adds r6, #1
|
||||
adds r5, #1
|
||||
cmp r5, #0x11
|
||||
bls _0801E86C
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801E8AC: .4byte gUnk_02002B54
|
||||
.syntax divided
|
||||
@@ -0,0 +1,112 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
bl sub_08002632
|
||||
mov r8, r0
|
||||
ldr r1, _0801E9E4 @ =gUnk_08001DCC
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r7, [r0]
|
||||
movs r0, #0x67
|
||||
bl GetInventoryValue
|
||||
cmp r0, #0
|
||||
beq _0801EA56
|
||||
ldr r1, _0801E9E8 @ =gSave
|
||||
ldrb r0, [r7]
|
||||
ldrb r2, [r1, #8]
|
||||
cmp r0, r2
|
||||
bhi _0801EA56
|
||||
ldr r2, _0801E9EC @ =0x000001C1
|
||||
adds r0, r1, r2
|
||||
add r0, r8
|
||||
ldrb r5, [r0]
|
||||
subs r2, #0x80
|
||||
adds r0, r1, r2
|
||||
add r0, r8
|
||||
ldrb r6, [r0]
|
||||
adds r4, r6, r7
|
||||
_0801E9D6:
|
||||
cmp r5, #0xf1
|
||||
beq _0801E9F6
|
||||
cmp r5, #0xf1
|
||||
bhi _0801E9F0
|
||||
cmp r5, #0
|
||||
beq _0801E9F6
|
||||
b _0801EA10
|
||||
.align 2, 0
|
||||
_0801E9E4: .4byte gUnk_08001DCC
|
||||
_0801E9E8: .4byte gSave
|
||||
_0801E9EC: .4byte 0x000001C1
|
||||
_0801E9F0:
|
||||
cmp r5, #0xf2
|
||||
beq _0801EA0A
|
||||
b _0801EA10
|
||||
_0801E9F6:
|
||||
ldrb r5, [r4, #5]
|
||||
cmp r5, #0
|
||||
beq _0801EA10
|
||||
cmp r5, #0xff
|
||||
beq _0801EA14
|
||||
adds r0, r5, #0
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
beq _0801EA10
|
||||
_0801EA0A:
|
||||
adds r4, #1
|
||||
adds r6, #1
|
||||
ldrb r5, [r4, #5]
|
||||
_0801EA10:
|
||||
cmp r5, #0xff
|
||||
bne _0801EA1C
|
||||
_0801EA14:
|
||||
adds r0, r7, #0
|
||||
bl sub_0801EA74
|
||||
adds r5, r0, #0
|
||||
_0801EA1C:
|
||||
cmp r5, #0
|
||||
beq _0801EA32
|
||||
cmp r5, #0xf2
|
||||
beq _0801E9D6
|
||||
adds r0, r5, #0
|
||||
bl CheckKinstoneFused
|
||||
cmp r0, #0
|
||||
beq _0801EA34
|
||||
movs r5, #0xf1
|
||||
b _0801E9D6
|
||||
_0801EA32:
|
||||
movs r5, #0xf3
|
||||
_0801EA34:
|
||||
ldr r1, _0801EA5C @ =gSave
|
||||
ldr r2, _0801EA60 @ =0x000001C1
|
||||
adds r0, r1, r2
|
||||
add r0, r8
|
||||
strb r5, [r0]
|
||||
subs r2, #0x80
|
||||
adds r0, r1, r2
|
||||
add r0, r8
|
||||
strb r6, [r0]
|
||||
bl Random
|
||||
ldrb r4, [r7, #1]
|
||||
movs r1, #0x64
|
||||
bl __modsi3
|
||||
cmp r4, r0
|
||||
bhi _0801EA64
|
||||
_0801EA56:
|
||||
movs r0, #0
|
||||
b _0801EA6E
|
||||
.align 2, 0
|
||||
_0801EA5C: .4byte gSave
|
||||
_0801EA60: .4byte 0x000001C1
|
||||
_0801EA64:
|
||||
subs r0, r5, #1
|
||||
cmp r0, #0x63
|
||||
bls _0801EA6C
|
||||
movs r5, #0
|
||||
_0801EA6C:
|
||||
adds r0, r5, #0
|
||||
_0801EA6E:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,58 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
ldr r3, _0801DA44 @ =gzHeap
|
||||
subs r1, r0, r3
|
||||
ldr r0, _0801DA48 @ =0x00000FFF
|
||||
cmp r1, r0
|
||||
bhi _0801DA74
|
||||
adds r4, r3, #0
|
||||
ldrh r5, [r4]
|
||||
adds r4, #2
|
||||
movs r2, #0
|
||||
cmp r2, r5
|
||||
bhs _0801DA74
|
||||
ldrh r0, [r4]
|
||||
cmp r0, r1
|
||||
bne _0801DA4C
|
||||
lsls r0, r5, #2
|
||||
subs r1, r3, #2
|
||||
adds r0, r0, r1
|
||||
ldrh r1, [r0]
|
||||
strh r1, [r4]
|
||||
strh r2, [r0]
|
||||
adds r0, #2
|
||||
ldrh r1, [r0]
|
||||
strh r1, [r4, #2]
|
||||
strh r2, [r0]
|
||||
subs r0, r5, #1
|
||||
strh r0, [r3]
|
||||
b _0801DA74
|
||||
.align 2, 0
|
||||
_0801DA44: .4byte gzHeap
|
||||
_0801DA48: .4byte 0x00000FFF
|
||||
_0801DA4C:
|
||||
adds r4, #4
|
||||
adds r2, #1
|
||||
cmp r2, r5
|
||||
bhs _0801DA74
|
||||
ldrh r0, [r4]
|
||||
cmp r0, r1
|
||||
bne _0801DA4C
|
||||
lsls r1, r5, #2
|
||||
ldr r3, _0801DA78 @ =gUnk_0203553E
|
||||
adds r1, r1, r3
|
||||
ldrh r0, [r1]
|
||||
strh r0, [r4]
|
||||
movs r2, #0
|
||||
strh r2, [r1]
|
||||
adds r1, #2
|
||||
ldrh r0, [r1]
|
||||
strh r0, [r4, #2]
|
||||
strh r2, [r1]
|
||||
subs r0, r5, #1
|
||||
strh r0, [r3, #2]
|
||||
_0801DA74:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0801DA78: .4byte gUnk_0203553E
|
||||
.syntax divided
|
||||
@@ -0,0 +1,171 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
mov ip, r0
|
||||
movs r0, #3
|
||||
add ip, r0
|
||||
subs r0, #7
|
||||
mov r1, ip
|
||||
ands r1, r0
|
||||
mov ip, r1
|
||||
ldr r6, _0801D90C @ =gzHeap
|
||||
mov sb, r6
|
||||
ldrh r7, [r6]
|
||||
movs r5, #1
|
||||
movs r3, #0x80
|
||||
lsls r3, r3, #5
|
||||
add r3, sb
|
||||
subs r4, r3, r1
|
||||
movs r2, #0
|
||||
b _0801D926
|
||||
.align 2, 0
|
||||
_0801D90C: .4byte gzHeap
|
||||
_0801D910:
|
||||
cmp r1, r4
|
||||
bhi _0801D918
|
||||
cmp r3, r0
|
||||
bls _0801D952
|
||||
_0801D918:
|
||||
cmp r4, r1
|
||||
bhi _0801D920
|
||||
cmp r0, r3
|
||||
bls _0801D952
|
||||
_0801D920:
|
||||
adds r0, r2, #1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r2, r0, #0x10
|
||||
_0801D926:
|
||||
cmp r2, r7
|
||||
bhs _0801D94A
|
||||
lsls r0, r2, #2
|
||||
add r0, sb
|
||||
ldrh r1, [r0, #2]
|
||||
ldr r6, _0801D95C @ =gzHeap
|
||||
adds r1, r1, r6
|
||||
ldrh r0, [r0, #4]
|
||||
adds r0, r0, r6
|
||||
cmp r1, r4
|
||||
bhi _0801D940
|
||||
cmp r4, r0
|
||||
bls _0801D952
|
||||
_0801D940:
|
||||
cmp r1, r3
|
||||
bhi _0801D910
|
||||
cmp r3, r0
|
||||
bhi _0801D910
|
||||
movs r5, #0
|
||||
_0801D94A:
|
||||
lsls r0, r7, #2
|
||||
mov sl, r0
|
||||
cmp r5, #0
|
||||
bne _0801D9D8
|
||||
_0801D952:
|
||||
movs r1, #0
|
||||
mov r8, r1
|
||||
lsls r6, r7, #2
|
||||
mov sl, r6
|
||||
b _0801D970
|
||||
.align 2, 0
|
||||
_0801D95C: .4byte gzHeap
|
||||
_0801D960:
|
||||
movs r5, #0
|
||||
_0801D962:
|
||||
mov r0, r8
|
||||
adds r0, #1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
mov r8, r0
|
||||
cmp r8, r7
|
||||
bhs _0801D9D4
|
||||
_0801D970:
|
||||
mov r1, r8
|
||||
lsls r0, r1, #2
|
||||
add r0, sb
|
||||
ldrh r0, [r0, #2]
|
||||
ldr r6, _0801D994 @ =gzHeap
|
||||
adds r3, r0, r6
|
||||
mov r0, ip
|
||||
subs r4, r3, r0
|
||||
movs r5, #0
|
||||
mov r0, sl
|
||||
adds r0, #2
|
||||
add r0, sb
|
||||
adds r0, #4
|
||||
cmp r4, r0
|
||||
blo _0801D962
|
||||
movs r5, #1
|
||||
movs r2, #0
|
||||
b _0801D9AE
|
||||
.align 2, 0
|
||||
_0801D994: .4byte gzHeap
|
||||
_0801D998:
|
||||
cmp r1, r4
|
||||
bhi _0801D9A0
|
||||
cmp r3, r0
|
||||
bls _0801D960
|
||||
_0801D9A0:
|
||||
cmp r4, r1
|
||||
bhi _0801D9A8
|
||||
cmp r0, r3
|
||||
bls _0801D960
|
||||
_0801D9A8:
|
||||
adds r0, r2, #1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r2, r0, #0x10
|
||||
_0801D9AE:
|
||||
cmp r2, r7
|
||||
bhs _0801D9D0
|
||||
lsls r0, r2, #2
|
||||
add r0, sb
|
||||
ldrh r1, [r0, #2]
|
||||
adds r1, r1, r6
|
||||
ldrh r0, [r0, #4]
|
||||
adds r0, r0, r6
|
||||
cmp r1, r4
|
||||
bhi _0801D9C6
|
||||
cmp r4, r0
|
||||
blo _0801D960
|
||||
_0801D9C6:
|
||||
cmp r1, r3
|
||||
bhs _0801D998
|
||||
cmp r3, r0
|
||||
bhi _0801D998
|
||||
movs r5, #0
|
||||
_0801D9D0:
|
||||
cmp r5, #0
|
||||
beq _0801D962
|
||||
_0801D9D4:
|
||||
cmp r5, #0
|
||||
beq _0801DA00
|
||||
_0801D9D8:
|
||||
ldr r0, _0801D9FC @ =gUnk_02035542
|
||||
mov r1, sl
|
||||
adds r2, r1, r0
|
||||
subs r3, r0, #2
|
||||
subs r1, r4, r3
|
||||
strh r1, [r2]
|
||||
adds r0, #2
|
||||
add r0, sl
|
||||
add r1, ip
|
||||
strh r1, [r0]
|
||||
adds r0, r7, #1
|
||||
strh r0, [r3]
|
||||
adds r0, r4, #0
|
||||
mov r1, ip
|
||||
bl MemClear
|
||||
adds r0, r4, #0
|
||||
b _0801DA02
|
||||
.align 2, 0
|
||||
_0801D9FC: .4byte gUnk_02035542
|
||||
_0801DA00:
|
||||
movs r0, #0
|
||||
_0801DA02:
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.syntax divided
|
||||
@@ -5,7 +5,7 @@
|
||||
sub sp, #8
|
||||
adds r2, r0, #0
|
||||
adds r5, r1, #0
|
||||
bl sub_0801D51C
|
||||
bl DecToHex
|
||||
adds r2, r0, #0
|
||||
ldr r0, _08057040 @ =0x0FFFFFFF
|
||||
ands r2, r0
|
||||
|
||||
@@ -17,7 +17,7 @@ Object9: @ 0x0808386C
|
||||
rsbs r0, r1, #0
|
||||
orrs r0, r1
|
||||
lsrs r2, r0, #0x1f
|
||||
ldr r0, _080838CC @ =gUnk_02022740
|
||||
ldr r0, _080838CC @ =gFuseInfo
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #2
|
||||
bgt _08083894
|
||||
@@ -58,7 +58,7 @@ _080838B6:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080838C8: .4byte gPlayerState
|
||||
_080838CC: .4byte gUnk_02022740
|
||||
_080838CC: .4byte gFuseInfo
|
||||
_080838D0: .4byte gMessage
|
||||
_080838D4: .4byte gUnk_03003DF0
|
||||
_080838D8: .4byte gUnk_0811F754
|
||||
|
||||
@@ -64,7 +64,7 @@ _080A0A5E:
|
||||
orrs r1, r3
|
||||
strb r1, [r4, #0x1b]
|
||||
ldr r1, _080A0ABC @ =gUnk_080C9CBC
|
||||
ldr r0, _080A0AC0 @ =gUnk_02022740
|
||||
ldr r0, _080A0AC0 @ =gFuseInfo
|
||||
ldrb r0, [r0, #3]
|
||||
lsls r0, r0, #3
|
||||
adds r0, r0, r1
|
||||
@@ -78,7 +78,7 @@ _080A0AB0:
|
||||
.align 2, 0
|
||||
_080A0AB8: .4byte gUnk_08124A20
|
||||
_080A0ABC: .4byte gUnk_080C9CBC
|
||||
_080A0AC0: .4byte gUnk_02022740
|
||||
_080A0AC0: .4byte gFuseInfo
|
||||
|
||||
thumb_func_start sub_080A0AC4
|
||||
sub_080A0AC4: @ 0x080A0AC4
|
||||
|
||||
+16
-16
@@ -186,7 +186,7 @@ sub_080A3DB8: @ 0x080A3DB8
|
||||
ldrb r1, [r0, #1]
|
||||
cmp r1, #6
|
||||
bne _080A3DEE
|
||||
ldr r0, _080A3DE0 @ =gUnk_02022740
|
||||
ldr r0, _080A3DE0 @ =gFuseInfo
|
||||
strb r1, [r0]
|
||||
ldrb r0, [r0, #3]
|
||||
lsls r0, r0, #3
|
||||
@@ -200,20 +200,20 @@ sub_080A3DB8: @ 0x080A3DB8
|
||||
b _080A3DF8
|
||||
.align 2, 0
|
||||
_080A3DDC: .4byte gMenu
|
||||
_080A3DE0: .4byte gUnk_02022740
|
||||
_080A3DE0: .4byte gFuseInfo
|
||||
_080A3DE4: .4byte gUnk_080C9CBC
|
||||
_080A3DE8:
|
||||
bl sub_080A71DC
|
||||
b _080A3DF8
|
||||
_080A3DEE:
|
||||
ldr r1, _080A3DFC @ =gUnk_02022740
|
||||
ldr r1, _080A3DFC @ =gFuseInfo
|
||||
movs r0, #5
|
||||
strb r0, [r1]
|
||||
bl sub_080A71DC
|
||||
_080A3DF8:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080A3DFC: .4byte gUnk_02022740
|
||||
_080A3DFC: .4byte gFuseInfo
|
||||
|
||||
thumb_func_start sub_080A3E00
|
||||
sub_080A3E00: @ 0x080A3E00
|
||||
@@ -267,7 +267,7 @@ sub_080A3E48: @ 0x080A3E48
|
||||
lsls r0, r0, #3
|
||||
adds r0, r0, r2
|
||||
ldrb r1, [r0, #5]
|
||||
ldr r0, _080A3E80 @ =gUnk_02022740
|
||||
ldr r0, _080A3E80 @ =gFuseInfo
|
||||
ldrb r0, [r0, #3]
|
||||
lsls r0, r0, #3
|
||||
adds r0, r0, r2
|
||||
@@ -283,7 +283,7 @@ sub_080A3E48: @ 0x080A3E48
|
||||
.align 2, 0
|
||||
_080A3E78: .4byte gUnk_080C9CBC
|
||||
_080A3E7C: .4byte gMenu
|
||||
_080A3E80: .4byte gUnk_02022740
|
||||
_080A3E80: .4byte gFuseInfo
|
||||
_080A3E84:
|
||||
movs r2, #0
|
||||
movs r0, #2
|
||||
@@ -407,7 +407,7 @@ sub_080A3F68: @ 0x080A3F68
|
||||
movs r0, #5
|
||||
strb r0, [r5, #1]
|
||||
ldr r4, _080A3FB8 @ =gUnk_02002C81
|
||||
ldr r0, _080A3FBC @ =gUnk_02022740
|
||||
ldr r0, _080A3FBC @ =gFuseInfo
|
||||
ldrb r1, [r0, #3]
|
||||
adds r0, r4, #0
|
||||
bl WriteBit
|
||||
@@ -439,7 +439,7 @@ _080A3F96:
|
||||
.align 2, 0
|
||||
_080A3FB4: .4byte gMenu
|
||||
_080A3FB8: .4byte gUnk_02002C81
|
||||
_080A3FBC: .4byte gUnk_02022740
|
||||
_080A3FBC: .4byte gFuseInfo
|
||||
_080A3FC0: .4byte 0xFFFFFED6
|
||||
_080A3FC4: .4byte 0xFFFFFED5
|
||||
_080A3FC8: .4byte 0x00000702
|
||||
@@ -924,14 +924,14 @@ _080A42C4:
|
||||
_080A42C6:
|
||||
ldr r0, _080A42D8 @ =gOamCmd
|
||||
strh r4, [r0]
|
||||
ldr r0, _080A42DC @ =gUnk_02022740
|
||||
ldr r0, _080A42DC @ =gFuseInfo
|
||||
ldrb r0, [r0, #3]
|
||||
movs r1, #0
|
||||
bl sub_080A42E0
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_080A42D8: .4byte gOamCmd
|
||||
_080A42DC: .4byte gUnk_02022740
|
||||
_080A42DC: .4byte gFuseInfo
|
||||
|
||||
thumb_func_start sub_080A42E0
|
||||
sub_080A42E0: @ 0x080A42E0
|
||||
@@ -1150,7 +1150,7 @@ sub_080A4468: @ 0x080A4468
|
||||
strb r1, [r0, #2]
|
||||
ldr r0, [r0, #4]
|
||||
strb r1, [r0, #3]
|
||||
ldr r0, _080A448C @ =gUnk_02022740
|
||||
ldr r0, _080A448C @ =gFuseInfo
|
||||
ldrb r0, [r0, #3]
|
||||
bl sub_0801E6C8
|
||||
ldr r0, _080A4490 @ =gMenu
|
||||
@@ -1160,7 +1160,7 @@ sub_080A4468: @ 0x080A4468
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080A4488: .4byte gUnk_03003DF0
|
||||
_080A448C: .4byte gUnk_02022740
|
||||
_080A448C: .4byte gFuseInfo
|
||||
_080A4490: .4byte gMenu
|
||||
|
||||
thumb_func_start sub_080A4494
|
||||
@@ -1181,7 +1181,7 @@ sub_080A4494: @ 0x080A4494
|
||||
adds r0, r4, #0
|
||||
movs r2, #0x80
|
||||
bl sub_080A44E0
|
||||
ldr r0, _080A44DC @ =gUnk_02022740
|
||||
ldr r0, _080A44DC @ =gFuseInfo
|
||||
ldr r0, [r0, #0xc]
|
||||
bl sub_08002632
|
||||
adds r0, r4, #0
|
||||
@@ -1196,7 +1196,7 @@ _080A44D0:
|
||||
.align 2, 0
|
||||
_080A44D4: .4byte gTextGfxBuffer
|
||||
_080A44D8: .4byte gUnk_02002AC0
|
||||
_080A44DC: .4byte gUnk_02022740
|
||||
_080A44DC: .4byte gFuseInfo
|
||||
|
||||
thumb_func_start sub_080A44E0
|
||||
sub_080A44E0: @ 0x080A44E0
|
||||
@@ -1237,7 +1237,7 @@ _080A4524: .4byte 0x06010000
|
||||
thumb_func_start sub_080A4528
|
||||
sub_080A4528: @ 0x080A4528
|
||||
push {r4, lr}
|
||||
ldr r0, _080A4540 @ =gUnk_02022740
|
||||
ldr r0, _080A4540 @ =gFuseInfo
|
||||
ldr r2, [r0, #0xc]
|
||||
ldrb r0, [r2, #8]
|
||||
cmp r0, #7
|
||||
@@ -1248,7 +1248,7 @@ sub_080A4528: @ 0x080A4528
|
||||
bl CreateNPC
|
||||
b _080A4550
|
||||
.align 2, 0
|
||||
_080A4540: .4byte gUnk_02022740
|
||||
_080A4540: .4byte gFuseInfo
|
||||
_080A4544:
|
||||
cmp r0, #3
|
||||
bne _080A45A2
|
||||
|
||||
+4
-4
@@ -1258,13 +1258,13 @@ _080A5CFA:
|
||||
sub_080A5CFC: @ 0x080A5CFC
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_0801DDA0
|
||||
bl DrawDungeonFeatures
|
||||
bl LoadDungeonMap
|
||||
ldr r1, _080A5D18 @ =gUnk_02019EE0
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #3
|
||||
adds r0, r4, #0
|
||||
bl sub_0801DBA0
|
||||
bl DrawDungeonMap
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080A5D18: .4byte gUnk_02019EE0
|
||||
@@ -3818,7 +3818,7 @@ sub_080A6B04: @ 0x080A6B04
|
||||
bl sub_080A4D34
|
||||
movs r0, #6
|
||||
bl sub_080A4DB8
|
||||
ldr r0, _080A6BF0 @ =gUnk_02022740
|
||||
ldr r0, _080A6BF0 @ =gFuseInfo
|
||||
ldrb r2, [r0, #3]
|
||||
lsls r2, r2, #3
|
||||
ldr r0, _080A6BF4 @ =gUnk_080C9CBC
|
||||
@@ -3925,7 +3925,7 @@ _080A6BD4:
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080A6BF0: .4byte gUnk_02022740
|
||||
_080A6BF0: .4byte gFuseInfo
|
||||
_080A6BF4: .4byte gUnk_080C9CBC
|
||||
_080A6BF8: .4byte gUnk_080FE320
|
||||
_080A6BFC: .4byte gMenu
|
||||
|
||||
-2677
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user