Decomped HandleFadesVeneer

Decomped by @JesusArcasCarrera
This commit is contained in:
AnonymousRandomPerson
2026-04-26 23:15:53 -04:00
parent 8ba6fa5078
commit bf5aa0e831
13 changed files with 478 additions and 425 deletions

View File

@@ -1,4 +1,58 @@
#pragma once
.public ArrayFill32Fast
.public CART_REMOVED_IMG_DATA
.public DC_FlushRange
.public Debug_Print0
.public DecompressAtFromMemoryPointer
.public G2x_SetBlendAlpha_
.public G3X_ClearFifo
.public G3X_Init
.public G3X_SetClearColor
.public GXS_BeginLoadBGExtPltt
.public GXS_BeginLoadOBJExtPltt
.public GXS_EndLoadBGExtPltt
.public GXS_EndLoadOBJExtPltt
.public GXS_SetGraphicsMode
.public GX_BeginLoadBGExtPltt
.public GX_BeginLoadOBJExtPltt
.public GX_DisableBankForBG
.public GX_DisableBankForBGExtPltt
.public GX_DisableBankForLCDC
.public GX_DisableBankForOBJ
.public GX_DisableBankForOBJExtPltt
.public GX_DisableBankForSubBG
.public GX_DisableBankForSubBGExtPltt
.public GX_DisableBankForSubOBJ
.public GX_DisableBankForTex
.public GX_DisableBankForTexPltt
.public GX_DispOff
.public GX_DispOn
.public GX_EndLoadBGExtPltt
.public GX_EndLoadOBJExtPltt
.public GX_Init
.public GX_SetBankForBG
.public GX_SetBankForBGExtPltt
.public GX_SetBankForLCDC
.public GX_SetBankForOBJ
.public GX_SetBankForOBJExtPltt
.public GX_SetBankForSubBG
.public GX_SetBankForSubBGExtPltt
.public GX_SetBankForSubOBJ
.public GX_SetBankForTex
.public GX_SetBankForTexPltt
.public GX_SetGraphicsMode
.public GXi_DmaId
.public GXx_SetMasterBrightness_
.public GetLanguage
.public MI_StopDma
.public MemAlloc
.public MemFree
.public MemZero16
.public MemZero32
.public Memcpy32
.public MemcpySimple
.public Rgb8ToRgb5
.public UnloadFile
.public _0200A314
.public _0200A344
.public _02092A04
@@ -60,59 +114,6 @@
.public _022A3805
.public _022A3806
.public _s32_div_f
.public ArrayFill32Fast
.public CART_REMOVED_IMG_DATA
.public DC_FlushRange
.public Debug_Print0
.public DecompressAtFromMemoryPointer
.public G2x_SetBlendAlpha_
.public G3X_ClearFifo
.public G3X_Init
.public G3X_SetClearColor
.public GetLanguage
.public GX_BeginLoadBGExtPltt
.public GX_BeginLoadOBJExtPltt
.public GX_DisableBankForBG
.public GX_DisableBankForBGExtPltt
.public GX_DisableBankForLCDC
.public GX_DisableBankForOBJ
.public GX_DisableBankForOBJExtPltt
.public GX_DisableBankForSubBG
.public GX_DisableBankForSubBGExtPltt
.public GX_DisableBankForSubOBJ
.public GX_DisableBankForTex
.public GX_DisableBankForTexPltt
.public GX_DispOff
.public GX_DispOn
.public GX_EndLoadBGExtPltt
.public GX_EndLoadOBJExtPltt
.public GX_Init
.public GX_SetBankForBG
.public GX_SetBankForBGExtPltt
.public GX_SetBankForLCDC
.public GX_SetBankForOBJ
.public GX_SetBankForOBJExtPltt
.public GX_SetBankForSubBG
.public GX_SetBankForSubBGExtPltt
.public GX_SetBankForSubOBJ
.public GX_SetBankForTex
.public GX_SetBankForTexPltt
.public GX_SetGraphicsMode
.public GXi_DmaId
.public GXS_BeginLoadBGExtPltt
.public GXS_BeginLoadOBJExtPltt
.public GXS_EndLoadBGExtPltt
.public GXS_EndLoadOBJExtPltt
.public GXS_SetGraphicsMode
.public GXx_SetMasterBrightness_
.public MemAlloc
.public Memcpy32
.public MemcpySimple
.public MemFree
.public MemZero16
.public MemZero32
.public MI_StopDma
.public Rgb8ToRgb5
.public sub_02004FF8
.public sub_02005D30
.public sub_02005E10
@@ -122,4 +123,3 @@
.public sub_02008A84
.public sub_02019304
.public sub_02082420
.public UnloadFile

View File

@@ -0,0 +1,11 @@
#pragma once
.public HandleFades
.public UpdateFadeStatus
.public sub_0200A29C
.public sub_0200A37C
.public sub_0200A3A8
.public sub_0200A3DC
.public sub_0200A410
.public sub_0200A444
.public sub_0200A590
.public sub_0200B928

View File

@@ -1067,7 +1067,7 @@
.public sub_0200B8D4
.public sub_0200BB60
.public sub_0200BB74
.public sub_0200BC54
.public HandleFadesVeneer
.public sub_0200BD14
.public sub_02017A68
.public sub_02017A80

View File

@@ -569,7 +569,7 @@
.public sub_0200BB74
.public sub_0200BB88
.public sub_0200BBF8
.public sub_0200BC54
.public HandleFadesVeneer
.public sub_0200BC60
.public sub_0200BCB0
.public sub_0200BD14

View File

@@ -32,7 +32,7 @@
.public sub_0200B8D4
.public sub_0200BB60
.public sub_0200BB74
.public sub_0200BC54
.public HandleFadesVeneer
.public sub_0200BD14
.public sub_02017A68
.public sub_02017A80

View File

@@ -3835,353 +3835,3 @@ _0200BC40:
strh r3, [r0, #0x10]
bx lr
arm_func_end sub_0200BBF8
arm_func_start sub_0200BC54
sub_0200BC54: ; 0x0200BC54
ldr ip, _0200BC5C ; =HandleFades
bx ip
.align 2, 0
_0200BC5C: .word HandleFades
arm_func_end sub_0200BC54
arm_func_start sub_0200BC60
sub_0200BC60: ; 0x0200BC60
stmdb sp!, {r4, lr}
str r1, [r0]
add r4, r0, #0x16
mov lr, #4
_0200BC70:
ldrb ip, [r3], #1
subs lr, lr, #1
strb ip, [r4], #1
bne _0200BC70
cmp r1, #3
cmpne r1, #5
cmpne r1, #7
cmpne r1, #9
cmpne r1, #0xb
bne _0200BCA4
mov r1, #2
bl UpdateFadeStatus
ldmia sp!, {r4, pc}
_0200BCA4:
mov r1, r2
bl sub_0200B928
ldmia sp!, {r4, pc}
arm_func_end sub_0200BC60
arm_func_start sub_0200BCB0
sub_0200BCB0: ; 0x0200BCB0
stmdb sp!, {r4, lr}
str r1, [r0]
add r4, r0, #0x16
mov lr, #4
_0200BCC0:
ldrb ip, [r3], #1
subs lr, lr, #1
strb ip, [r4], #1
bne _0200BCC0
cmp r1, #1
bne _0200BCE4
mov r1, #1
bl UpdateFadeStatus
ldmia sp!, {r4, pc}
_0200BCE4:
cmp r1, #3
cmpne r1, #5
cmpne r1, #7
cmpne r1, #9
cmpne r1, #0xb
bne _0200BD08
mov r1, r2
bl sub_0200B928
ldmia sp!, {r4, pc}
_0200BD08:
mov r1, #2
bl UpdateFadeStatus
ldmia sp!, {r4, pc}
arm_func_end sub_0200BCB0
arm_func_start sub_0200BD14
sub_0200BD14: ; 0x0200BD14
ldr r0, [r0, #4]
cmp r0, #0
movne r0, #1
moveq r0, #0
and r0, r0, #0xff
bx lr
arm_func_end sub_0200BD14
arm_func_start GetFadeStatus
GetFadeStatus: ; 0x0200BD2C
ldrsh r1, [r0, #0x10]
mvn r0, #0xff
cmp r1, r0
moveq r0, #1
bxeq lr
cmp r1, #0x100
moveq r0, #2
movne r0, #0
bx lr
arm_func_end GetFadeStatus
arm_func_start sub_0200BD50
sub_0200BD50: ; 0x0200BD50
stmdb sp!, {r3, r4, lr}
sub sp, sp, #4
mov r4, r0
ldr r0, [r4]
cmp r0, #0
ldreq r0, [r4, #4]
cmpeq r0, #0
beq _0200C000
mov r0, r4
bl HandleFades
cmp r0, #0
beq _0200BF90
ldr r0, [r4]
cmp r0, #0xb
addls pc, pc, r0, lsl #2
b _0200C000
_0200BD90: ; jump table
b _0200C000 ; case 0
b _0200BDC0 ; case 1
b _0200BDDC ; case 2
b _0200BDFC ; case 3
b _0200BE10 ; case 4
b _0200BE30 ; case 5
b _0200BE44 ; case 6
b _0200BEB0 ; case 7
b _0200BE44 ; case 8
b _0200BEB0 ; case 9
b _0200BF10 ; case 10
b _0200BF54 ; case 11
_0200BDC0:
ldrsh r1, [r4, #0x14]
add r0, r4, #0x1c
add r1, r1, #0x100
mov r1, r1, lsl #0x10
mov r1, r1, lsr #0x10
bl sub_0200A37C
b _0200C000
_0200BDDC:
ldrsh r1, [r4, #0x14]
add r0, r4, #0x1c
add r2, r4, #0x16
rsb r1, r1, #0x100
mov r1, r1, lsl #0x10
mov r1, r1, lsr #0x10
bl sub_0200A3A8
b _0200C000
_0200BDFC:
ldrh r1, [r4, #0x14]
add r0, r4, #0x1c
add r2, r4, #0x16
bl sub_0200A3DC
b _0200C000
_0200BE10:
ldrsh r1, [r4, #0x14]
add r0, r4, #0x1c
add r2, r4, #0x16
rsb r1, r1, #0x100
mov r1, r1, lsl #0x10
mov r1, r1, lsr #0x10
bl sub_0200A410
b _0200C000
_0200BE30:
ldrh r1, [r4, #0x14]
add r0, r4, #0x1c
add r2, r4, #0x16
bl sub_0200A444
b _0200C000
_0200BE44:
cmp r0, #6
beq _0200BE58
cmp r0, #8
beq _0200BE74
b _0200BE90
_0200BE58:
mov r1, #0x90
mov r0, #0xff
strb r1, [sp]
strb r1, [sp, #1]
strb r0, [sp, #2]
strb r0, [sp, #3]
b _0200BE90
_0200BE74:
mov r2, #0xff
mov r1, #0xc0
mov r0, #0x80
strb r2, [sp]
strb r1, [sp, #1]
strb r0, [sp, #2]
strb r2, [sp, #3]
_0200BE90:
ldrsh r1, [r4, #0x14]
add r2, sp, #0
add r0, r4, #0x1c
rsb r1, r1, #0x100
mov r1, r1, lsl #0x10
mov r1, r1, lsr #0x10
bl sub_0200A410
b _0200C000
_0200BEB0:
cmp r0, #7
beq _0200BEC4
cmp r0, #9
beq _0200BEE0
b _0200BEFC
_0200BEC4:
mov r1, #0x90
mov r0, #0xff
strb r1, [sp]
strb r1, [sp, #1]
strb r0, [sp, #2]
strb r0, [sp, #3]
b _0200BEFC
_0200BEE0:
mov r2, #0xff
mov r1, #0xc0
mov r0, #0x80
strb r2, [sp]
strb r1, [sp, #1]
strb r0, [sp, #2]
strb r2, [sp, #3]
_0200BEFC:
ldrh r1, [r4, #0x14]
add r2, sp, #0
add r0, r4, #0x1c
bl sub_0200A444
b _0200C000
_0200BF10:
mov r0, #0xff
strb r0, [sp]
strb r0, [sp, #1]
strb r0, [sp, #2]
strb r0, [sp, #3]
ldrsh r1, [r4, #0x14]
add r2, sp, #0
add r0, r4, #0x1c
add r3, r1, r1, lsl #1
mov r1, r3, asr #1
add r1, r3, r1, lsr #30
mov r1, r1, asr #2
rsb r1, r1, #0x100
mov r1, r1, lsl #0x10
mov r1, r1, lsr #0x10
bl sub_0200A3A8
b _0200C000
_0200BF54:
mov r0, #0xff
strb r0, [sp]
strb r0, [sp, #1]
strb r0, [sp, #2]
strb r0, [sp, #3]
ldrsh r1, [r4, #0x14]
add r2, sp, #0
add r0, r4, #0x1c
rsb r3, r1, #0x100
mov r1, r3, asr #1
add r1, r3, r1, lsr #30
mov r1, r1, lsl #0xe
mov r1, r1, lsr #0x10
bl sub_0200A3A8
b _0200C000
_0200BF90:
ldr r0, [r4, #4]
cmp r0, #0
bne _0200C000
ldr r0, [r4]
cmp r0, #0xb
addls pc, pc, r0, lsl #2
b _0200C000
_0200BFAC: ; jump table
b _0200C000 ; case 0
b _0200C000 ; case 1
b _0200BFDC ; case 2
b _0200BFF0 ; case 3
b _0200BFDC ; case 4
b _0200BFF0 ; case 5
b _0200BFDC ; case 6
b _0200BFF0 ; case 7
b _0200BFDC ; case 8
b _0200BFF0 ; case 9
b _0200BFDC ; case 10
b _0200BFF0 ; case 11
_0200BFDC:
ldrsh r0, [r4, #0x14]
cmp r0, #0x100
movge r0, #0
strge r0, [r4]
b _0200C000
_0200BFF0:
ldrsh r0, [r4, #0x14]
cmp r0, #0
movle r0, #0
strle r0, [r4]
_0200C000:
add sp, sp, #4
ldmia sp!, {r3, r4, pc}
arm_func_end sub_0200BD50
arm_func_start sub_0200C008
sub_0200C008: ; 0x0200C008
ldr ip, _0200C01C ; =sub_0200A29C
mov r3, r2, lsl #0x10
mov r2, r1
mov r1, r3, lsr #0x10
bx ip
.align 2, 0
_0200C01C: .word sub_0200A29C
arm_func_end sub_0200C008
arm_func_start sub_0200C020
sub_0200C020: ; 0x0200C020
stmdb sp!, {r3, r4, lr}
sub sp, sp, #4
ldr ip, [sp, #0x10]
cmp ip, #0
beq _0200C084
ldrb lr, [r1]
mov r4, #0xff
ldrb lr, [ip, lr, lsl #2]
mul lr, r3, lr
mov lr, lr, lsr #5
strb lr, [sp]
ldrb lr, [r1, #1]
add lr, ip, lr, lsl #2
ldrb lr, [lr, #1]
mul lr, r3, lr
mov lr, lr, lsr #5
strb lr, [sp, #1]
ldrb r1, [r1, #2]
add r1, ip, r1, lsl #2
ldrb r1, [r1, #2]
mul r1, r3, r1
mov r1, r1, lsr #5
strb r1, [sp, #2]
strb r4, [sp, #3]
b _0200C0BC
_0200C084:
ldrb r4, [r1]
mov ip, #0xff
mul lr, r4, r3
mov r4, lr, lsr #5
strb r4, [sp]
ldrb lr, [r1, #1]
mul r4, lr, r3
mov r4, r4, lsr #5
strb r4, [sp, #1]
ldrb r1, [r1, #2]
mul r3, r1, r3
mov r1, r3, lsr #5
strb r1, [sp, #2]
strb ip, [sp, #3]
_0200C0BC:
mov r1, r2, lsl #0x10
add r2, sp, #0
mov r1, r1, lsr #0x10
bl sub_0200A590
add sp, sp, #4
ldmia sp!, {r3, r4, pc}
arm_func_end sub_0200C020

346
asm/main_0200BC60.s Normal file
View File

@@ -0,0 +1,346 @@
.include "asm/macros.inc"
.include "main_0200BC60.inc"
.text
arm_func_start sub_0200BC60
sub_0200BC60: ; 0x0200BC60
stmdb sp!, {r4, lr}
str r1, [r0]
add r4, r0, #0x16
mov lr, #4
_0200BC70:
ldrb ip, [r3], #1
subs lr, lr, #1
strb ip, [r4], #1
bne _0200BC70
cmp r1, #3
cmpne r1, #5
cmpne r1, #7
cmpne r1, #9
cmpne r1, #0xb
bne _0200BCA4
mov r1, #2
bl UpdateFadeStatus
ldmia sp!, {r4, pc}
_0200BCA4:
mov r1, r2
bl sub_0200B928
ldmia sp!, {r4, pc}
arm_func_end sub_0200BC60
arm_func_start sub_0200BCB0
sub_0200BCB0: ; 0x0200BCB0
stmdb sp!, {r4, lr}
str r1, [r0]
add r4, r0, #0x16
mov lr, #4
_0200BCC0:
ldrb ip, [r3], #1
subs lr, lr, #1
strb ip, [r4], #1
bne _0200BCC0
cmp r1, #1
bne _0200BCE4
mov r1, #1
bl UpdateFadeStatus
ldmia sp!, {r4, pc}
_0200BCE4:
cmp r1, #3
cmpne r1, #5
cmpne r1, #7
cmpne r1, #9
cmpne r1, #0xb
bne _0200BD08
mov r1, r2
bl sub_0200B928
ldmia sp!, {r4, pc}
_0200BD08:
mov r1, #2
bl UpdateFadeStatus
ldmia sp!, {r4, pc}
arm_func_end sub_0200BCB0
arm_func_start sub_0200BD14
sub_0200BD14: ; 0x0200BD14
ldr r0, [r0, #4]
cmp r0, #0
movne r0, #1
moveq r0, #0
and r0, r0, #0xff
bx lr
arm_func_end sub_0200BD14
arm_func_start GetFadeStatus
GetFadeStatus: ; 0x0200BD2C
ldrsh r1, [r0, #0x10]
mvn r0, #0xff
cmp r1, r0
moveq r0, #1
bxeq lr
cmp r1, #0x100
moveq r0, #2
movne r0, #0
bx lr
arm_func_end GetFadeStatus
arm_func_start sub_0200BD50
sub_0200BD50: ; 0x0200BD50
stmdb sp!, {r3, r4, lr}
sub sp, sp, #4
mov r4, r0
ldr r0, [r4]
cmp r0, #0
ldreq r0, [r4, #4]
cmpeq r0, #0
beq _0200C000
mov r0, r4
bl HandleFades
cmp r0, #0
beq _0200BF90
ldr r0, [r4]
cmp r0, #0xb
addls pc, pc, r0, lsl #2
b _0200C000
_0200BD90: ; jump table
b _0200C000 ; case 0
b _0200BDC0 ; case 1
b _0200BDDC ; case 2
b _0200BDFC ; case 3
b _0200BE10 ; case 4
b _0200BE30 ; case 5
b _0200BE44 ; case 6
b _0200BEB0 ; case 7
b _0200BE44 ; case 8
b _0200BEB0 ; case 9
b _0200BF10 ; case 10
b _0200BF54 ; case 11
_0200BDC0:
ldrsh r1, [r4, #0x14]
add r0, r4, #0x1c
add r1, r1, #0x100
mov r1, r1, lsl #0x10
mov r1, r1, lsr #0x10
bl sub_0200A37C
b _0200C000
_0200BDDC:
ldrsh r1, [r4, #0x14]
add r0, r4, #0x1c
add r2, r4, #0x16
rsb r1, r1, #0x100
mov r1, r1, lsl #0x10
mov r1, r1, lsr #0x10
bl sub_0200A3A8
b _0200C000
_0200BDFC:
ldrh r1, [r4, #0x14]
add r0, r4, #0x1c
add r2, r4, #0x16
bl sub_0200A3DC
b _0200C000
_0200BE10:
ldrsh r1, [r4, #0x14]
add r0, r4, #0x1c
add r2, r4, #0x16
rsb r1, r1, #0x100
mov r1, r1, lsl #0x10
mov r1, r1, lsr #0x10
bl sub_0200A410
b _0200C000
_0200BE30:
ldrh r1, [r4, #0x14]
add r0, r4, #0x1c
add r2, r4, #0x16
bl sub_0200A444
b _0200C000
_0200BE44:
cmp r0, #6
beq _0200BE58
cmp r0, #8
beq _0200BE74
b _0200BE90
_0200BE58:
mov r1, #0x90
mov r0, #0xff
strb r1, [sp]
strb r1, [sp, #1]
strb r0, [sp, #2]
strb r0, [sp, #3]
b _0200BE90
_0200BE74:
mov r2, #0xff
mov r1, #0xc0
mov r0, #0x80
strb r2, [sp]
strb r1, [sp, #1]
strb r0, [sp, #2]
strb r2, [sp, #3]
_0200BE90:
ldrsh r1, [r4, #0x14]
add r2, sp, #0
add r0, r4, #0x1c
rsb r1, r1, #0x100
mov r1, r1, lsl #0x10
mov r1, r1, lsr #0x10
bl sub_0200A410
b _0200C000
_0200BEB0:
cmp r0, #7
beq _0200BEC4
cmp r0, #9
beq _0200BEE0
b _0200BEFC
_0200BEC4:
mov r1, #0x90
mov r0, #0xff
strb r1, [sp]
strb r1, [sp, #1]
strb r0, [sp, #2]
strb r0, [sp, #3]
b _0200BEFC
_0200BEE0:
mov r2, #0xff
mov r1, #0xc0
mov r0, #0x80
strb r2, [sp]
strb r1, [sp, #1]
strb r0, [sp, #2]
strb r2, [sp, #3]
_0200BEFC:
ldrh r1, [r4, #0x14]
add r2, sp, #0
add r0, r4, #0x1c
bl sub_0200A444
b _0200C000
_0200BF10:
mov r0, #0xff
strb r0, [sp]
strb r0, [sp, #1]
strb r0, [sp, #2]
strb r0, [sp, #3]
ldrsh r1, [r4, #0x14]
add r2, sp, #0
add r0, r4, #0x1c
add r3, r1, r1, lsl #1
mov r1, r3, asr #1
add r1, r3, r1, lsr #30
mov r1, r1, asr #2
rsb r1, r1, #0x100
mov r1, r1, lsl #0x10
mov r1, r1, lsr #0x10
bl sub_0200A3A8
b _0200C000
_0200BF54:
mov r0, #0xff
strb r0, [sp]
strb r0, [sp, #1]
strb r0, [sp, #2]
strb r0, [sp, #3]
ldrsh r1, [r4, #0x14]
add r2, sp, #0
add r0, r4, #0x1c
rsb r3, r1, #0x100
mov r1, r3, asr #1
add r1, r3, r1, lsr #30
mov r1, r1, lsl #0xe
mov r1, r1, lsr #0x10
bl sub_0200A3A8
b _0200C000
_0200BF90:
ldr r0, [r4, #4]
cmp r0, #0
bne _0200C000
ldr r0, [r4]
cmp r0, #0xb
addls pc, pc, r0, lsl #2
b _0200C000
_0200BFAC: ; jump table
b _0200C000 ; case 0
b _0200C000 ; case 1
b _0200BFDC ; case 2
b _0200BFF0 ; case 3
b _0200BFDC ; case 4
b _0200BFF0 ; case 5
b _0200BFDC ; case 6
b _0200BFF0 ; case 7
b _0200BFDC ; case 8
b _0200BFF0 ; case 9
b _0200BFDC ; case 10
b _0200BFF0 ; case 11
_0200BFDC:
ldrsh r0, [r4, #0x14]
cmp r0, #0x100
movge r0, #0
strge r0, [r4]
b _0200C000
_0200BFF0:
ldrsh r0, [r4, #0x14]
cmp r0, #0
movle r0, #0
strle r0, [r4]
_0200C000:
add sp, sp, #4
ldmia sp!, {r3, r4, pc}
arm_func_end sub_0200BD50
arm_func_start sub_0200C008
sub_0200C008: ; 0x0200C008
ldr ip, _0200C01C ; =sub_0200A29C
mov r3, r2, lsl #0x10
mov r2, r1
mov r1, r3, lsr #0x10
bx ip
.align 2, 0
_0200C01C: .word sub_0200A29C
arm_func_end sub_0200C008
arm_func_start sub_0200C020
sub_0200C020: ; 0x0200C020
stmdb sp!, {r3, r4, lr}
sub sp, sp, #4
ldr ip, [sp, #0x10]
cmp ip, #0
beq _0200C084
ldrb lr, [r1]
mov r4, #0xff
ldrb lr, [ip, lr, lsl #2]
mul lr, r3, lr
mov lr, lr, lsr #5
strb lr, [sp]
ldrb lr, [r1, #1]
add lr, ip, lr, lsl #2
ldrb lr, [lr, #1]
mul lr, r3, lr
mov lr, lr, lsr #5
strb lr, [sp, #1]
ldrb r1, [r1, #2]
add r1, ip, r1, lsl #2
ldrb r1, [r1, #2]
mul r1, r3, r1
mov r1, r1, lsr #5
strb r1, [sp, #2]
strb r4, [sp, #3]
b _0200C0BC
_0200C084:
ldrb r4, [r1]
mov ip, #0xff
mul lr, r4, r3
mov r4, lr, lsr #5
strb r4, [sp]
ldrb lr, [r1, #1]
mul r4, lr, r3
mov r4, r4, lsr #5
strb r4, [sp, #1]
ldrb r1, [r1, #2]
mul r3, r1, r3
mov r1, r3, lsr #5
strb r1, [sp, #2]
strb ip, [sp, #3]
_0200C0BC:
mov r1, r2, lsl #0x10
add r2, sp, #0
mov r1, r1, lsr #0x10
bl sub_0200A590
add sp, sp, #4
ldmia sp!, {r3, r4, pc}
arm_func_end sub_0200C020

View File

@@ -2811,7 +2811,7 @@ ov00_022BE774: ; 0x022BE774
b _022BE7C8
_022BE7B8:
ldr r0, _022BE860 ; =ov00_0231E2FC
bl sub_0200BC54
bl HandleFadesVeneer
cmp r0, #0
movne r4, #0
_022BE7C8:
@@ -2831,7 +2831,7 @@ _022BE7C8:
b _022BE810
_022BE800:
ldr r0, _022BE864 ; =ov00_0231E2B8
bl sub_0200BC54
bl HandleFadesVeneer
cmp r0, #0
movne r4, #0
_022BE810:
@@ -2845,12 +2845,12 @@ _022BE810:
ldmia sp!, {r4, pc}
_022BE830:
ldr r0, _022BE860 ; =ov00_0231E2FC
bl sub_0200BC54
bl HandleFadesVeneer
ldr r0, _022BE860 ; =ov00_0231E2FC
ldrsh r0, [r0, #0x14]
bl ov00_022BE868
ldr r0, _022BE864 ; =ov00_0231E2B8
bl sub_0200BC54
bl HandleFadesVeneer
ldr r0, _022BE864 ; =ov00_0231E2B8
ldrsh r0, [r0, #0x14]
bl ov00_022BE89C

View File

@@ -16453,7 +16453,7 @@ ov11_022EA0BC: ; 0x022EA0BC
cmp r1, #0
beq _022EA300
ldr r0, _022EA7F8 ; =ov11_0238905C
bl sub_0200BC54
bl HandleFadesVeneer
cmp r0, #0
ldr r0, _022EA7F8 ; =ov11_0238905C
movne r4, #0
@@ -16472,7 +16472,7 @@ ov11_022EA0BC: ; 0x022EA0BC
b _022EA1B4
_022EA12C:
ldr r0, _022EA7FC ; =ov11_02389128
bl sub_0200BC54
bl HandleFadesVeneer
cmp r0, #0
movne r4, #0
bne _022EA1B4
@@ -16522,7 +16522,7 @@ _022EA1B4:
b _022EA264
_022EA1EC:
ldr r0, _022EA800 ; =ov11_02389018
bl sub_0200BC54
bl HandleFadesVeneer
cmp r0, #0
movne r4, #0
bne _022EA264
@@ -16596,7 +16596,7 @@ _022EA300:
cmp r0, #0
beq _022EA398
ldr r0, _022EA7F8 ; =ov11_0238905C
bl sub_0200BC54
bl HandleFadesVeneer
cmp r0, #0
ldr r0, _022EA7F8 ; =ov11_0238905C
movne r4, #0
@@ -16615,7 +16615,7 @@ _022EA300:
b _022EA364
_022EA354:
ldr r0, _022EA7FC ; =ov11_02389128
bl sub_0200BC54
bl HandleFadesVeneer
cmp r0, #0
movne r4, #0
_022EA364:
@@ -16623,7 +16623,7 @@ _022EA364:
ldrsh r0, [r0, #0x14]
bl ov11_022EA8A0
ldr r0, _022EA800 ; =ov11_02389018
bl sub_0200BC54
bl HandleFadesVeneer
ldr r0, _022EA800 ; =ov11_02389018
ldrsh r0, [r0, #0x14]
bl ov11_022EA8D4
@@ -16634,17 +16634,17 @@ _022EA364:
b _022EA3D4
_022EA398:
ldr r0, _022EA7F8 ; =ov11_0238905C
bl sub_0200BC54
bl HandleFadesVeneer
ldr r0, _022EA7F8 ; =ov11_0238905C
ldrsh r0, [r0, #0x14]
bl ov11_022EA80C
ldr r0, _022EA7FC ; =ov11_02389128
bl sub_0200BC54
bl HandleFadesVeneer
ldr r0, _022EA7FC ; =ov11_02389128
ldrsh r0, [r0, #0x14]
bl ov11_022EA8A0
ldr r0, _022EA800 ; =ov11_02389018
bl sub_0200BC54
bl HandleFadesVeneer
ldr r0, _022EA800 ; =ov11_02389018
ldrsh r0, [r0, #0x14]
bl ov11_022EA8D4
@@ -16662,7 +16662,7 @@ _022EA3EC:
beq _022EA7DC
mla r7, r8, sl, r5
mov r0, r7
bl sub_0200BC54
bl HandleFadesVeneer
cmp r0, #0
beq _022EA6B8
and sb, r8, #0xff

View File

@@ -709,7 +709,7 @@ ov34_022DCA70: ; 0x022DCA70
b _022DCAC4
_022DCAB4:
ldr r0, _022DCB5C ; =ov34_022DD104
bl sub_0200BC54
bl HandleFadesVeneer
cmp r0, #0
movne r4, #0
_022DCAC4:
@@ -729,7 +729,7 @@ _022DCAC4:
b _022DCB0C
_022DCAFC:
ldr r0, _022DCB60 ; =ov34_022DD0C0
bl sub_0200BC54
bl HandleFadesVeneer
cmp r0, #0
movne r4, #0
_022DCB0C:
@@ -743,12 +743,12 @@ _022DCB0C:
ldmia sp!, {r4, pc}
_022DCB2C:
ldr r0, _022DCB5C ; =ov34_022DD104
bl sub_0200BC54
bl HandleFadesVeneer
ldr r0, _022DCB5C ; =ov34_022DD104
ldrsh r0, [r0, #0x14]
bl ov34_022DCB64
ldr r0, _022DCB60 ; =ov34_022DD0C0
bl sub_0200BC54
bl HandleFadesVeneer
ldr r0, _022DCB60 ; =ov34_022DD0C0
ldrsh r0, [r0, #0x14]
bl ov34_022DCB98

36
include/main_0200BC54.h Normal file
View File

@@ -0,0 +1,36 @@
#ifndef PMDSKY_MAIN_0200BC54_H
#define PMDSKY_MAIN_0200BC54_H
#include "util.h"
// Fade status. Fade in means increasing brightness and fade out means decreasing.
// As a result, fading the screen to white is considered a fade in.
enum fade_status {
FADE_NONE = 0,
FADE_COMPLETE = 1,
FADE_IN = 2,
FADE_OUT = 3,
};
// State of the screen fade in all other modes except dungeon mode
struct screen_fade {
u8 field0_0x0;
u8 field1_0x1;
u8 field2_0x2;
u8 field3_0x3;
enum fade_status status; // 0x4
s32 remaining_frames; // 0x8
// 0xC: Initial duration of the fade in frames
s32 duration;
// 0x10: What brightness the fade ends at. 256 means fade to white, -256 means fade to black
s16 target_delta_brightness;
// 0x12: Max absolute value of the brightness during the fade. 256 means a full fade
s16 max_brightness;
// 0x14: Current brightness of the fade. Positive numbers turn the screen white, negative to
// black
s16 delta_brightness;
};
bool8 HandleFadesVeneer(struct screen_fade *fstruct);
#endif //PMDSKY_MAIN_0200BC54_H

View File

@@ -32,6 +32,8 @@ Static main
Object asm/main_020082C4.o
Object src/main_02008BD4.o
Object asm/main_02008BF4.o
Object src/main_0200BC54.o
Object asm/main_0200BC60.o
Object src/debug.o
Object src/directory_file_mngr.o
Object src/directory_file.o

8
src/main_0200BC54.c Normal file
View File

@@ -0,0 +1,8 @@
#include "main_0200BC54.h"
extern bool8 HandleFades(struct screen_fade *fstruct);
bool8 HandleFadesVeneer(struct screen_fade *fstruct)
{
HandleFades(fstruct);
}