mirror of
https://github.com/pret/pmd-sky.git
synced 2026-08-28 13:50:45 -05:00
Decomped HandleFadesVeneer
Decomped by @JesusArcasCarrera
This commit is contained in:
@@ -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
|
||||
|
||||
11
asm/include/main_0200BC60.inc
Normal file
11
asm/include/main_0200BC60.inc
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
346
asm/main_0200BC60.s
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
36
include/main_0200BC54.h
Normal 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
|
||||
2
main.lsf
2
main.lsf
@@ -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
8
src/main_0200BC54.c
Normal file
@@ -0,0 +1,8 @@
|
||||
#include "main_0200BC54.h"
|
||||
|
||||
extern bool8 HandleFades(struct screen_fade *fstruct);
|
||||
|
||||
bool8 HandleFadesVeneer(struct screen_fade *fstruct)
|
||||
{
|
||||
HandleFades(fstruct);
|
||||
}
|
||||
Reference in New Issue
Block a user