mirror of https://github.com/zeldaret/tmc.git
decompile code_0804B9F8.s
This commit is contained in:
parent
faeab7f6e3
commit
9db8acbe47
|
@ -1,63 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start FadeMain
|
||||
FadeMain: @ 0x0804FF98
|
||||
push {r4, r5, r6, r7, lr}
|
||||
ldr r6, _0804FFD4 @ =gUnk_020354C0
|
||||
ldr r1, _0804FFD8 @ =gUsedPalettes
|
||||
ldr r4, [r1]
|
||||
movs r0, #0
|
||||
str r0, [r1]
|
||||
movs r5, #0
|
||||
cmp r4, #0
|
||||
beq _0804FFD0
|
||||
ldr r7, _0804FFDC @ =gUnk_03005E98
|
||||
_0804FFAC:
|
||||
movs r0, #1
|
||||
ands r0, r4
|
||||
cmp r0, #0
|
||||
beq _0804FFC6
|
||||
ldr r0, _0804FFE0 @ =gPaletteBuffer
|
||||
adds r0, r5, r0
|
||||
movs r2, #0xa0
|
||||
lsls r2, r2, #0x13
|
||||
adds r1, r5, r2
|
||||
ldrh r2, [r6, #2]
|
||||
ldrb r3, [r6, #1]
|
||||
bl _call_via_r7
|
||||
_0804FFC6:
|
||||
adds r5, #0x20
|
||||
adds r6, #4
|
||||
lsrs r4, r4, #1
|
||||
cmp r4, #0
|
||||
bne _0804FFAC
|
||||
_0804FFD0:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0804FFD4: .4byte gUnk_020354C0
|
||||
_0804FFD8: .4byte gUsedPalettes
|
||||
_0804FFDC: .4byte gUnk_03005E98
|
||||
_0804FFE0: .4byte gPaletteBuffer
|
||||
|
||||
thumb_func_start sub_0804FFE4
|
||||
sub_0804FFE4: @ 0x0804FFE4
|
||||
push {r4, lr}
|
||||
ldr r4, _08050000 @ =gFadeControl
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x1c
|
||||
bl MemClear
|
||||
ldr r0, _08050004 @ =gUnk_020354C0
|
||||
movs r1, #0x80
|
||||
bl MemClear
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
str r0, [r4, #4]
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08050000: .4byte gFadeControl
|
||||
_08050004: .4byte gUnk_020354C0
|
|
@ -31,6 +31,7 @@
|
|||
|
||||
#define PLTT 0x5000000
|
||||
#define PLTT_SIZE 0x400
|
||||
#define PAL_RAM ((u8*)(PLTT))
|
||||
|
||||
#define BG_PLTT PLTT
|
||||
#define BG_PLTT_SIZE 0x200
|
||||
|
|
|
@ -107,6 +107,14 @@ typedef struct {
|
|||
|
||||
extern FadeControl gFadeControl;
|
||||
|
||||
typedef struct {
|
||||
u8 unk0;
|
||||
u8 unk1;
|
||||
u16 unk2;
|
||||
} struct_020354C0;
|
||||
|
||||
extern struct_020354C0 gUnk_020354C0[0x20];
|
||||
|
||||
typedef struct {
|
||||
u8 filler0[0x1A];
|
||||
u16 rButtonX;
|
||||
|
|
|
@ -276,7 +276,7 @@ SECTIONS {
|
|||
. = 0x00005D5C; gUnk_03005D5C = .;
|
||||
. = 0x00005D90; gIntrMain = .;
|
||||
. = 0x00005E60; gUnk_03005E60 = .;
|
||||
. = 0x00005E98; gUnk_03005E98 = .;
|
||||
. = 0x00005E98; gMakeFadeBuff256 = .;
|
||||
. = 0x00005F24; _ClearAndUpdateEntities = .;
|
||||
. = 0x00005F40; UpdateEntities_arm = .;
|
||||
. = 0x00005FBC; gUnk_03005FBC = .;
|
||||
|
@ -480,7 +480,7 @@ SECTIONS {
|
|||
src/loadRoom.o(.text);
|
||||
asm/code_0804B058.o(.text);
|
||||
src/room.o(.text);
|
||||
asm/code_0804B9F8.o(.text);
|
||||
src/code_0804B9F8.o(.text);
|
||||
src/sub_08050008.o(.text);
|
||||
src/fade.o(.text);
|
||||
asm/code_08050038.o(.text);
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
#include "global.h"
|
||||
#include "utils.h"
|
||||
#include "fileScreen.h"
|
||||
|
||||
extern u16 gPaletteBuffer[];
|
||||
extern u32 gUsedPalettes;
|
||||
|
||||
// function pointer to overlay (0x03005e98) in ram calls rom function MakeFadeBuff256
|
||||
extern u32 gMakeFadeBuff256;
|
||||
typedef void (*fptrMakeFadeBuff256)(u8*, u8*, u16, u8);
|
||||
|
||||
void FadeMain() {
|
||||
fptrMakeFadeBuff256 func;
|
||||
u32 usedPalettesTmp, palIdx;
|
||||
|
||||
struct_020354C0* ptrUnk = gUnk_020354C0;
|
||||
usedPalettesTmp = gUsedPalettes;
|
||||
gUsedPalettes = 0;
|
||||
palIdx = 0;
|
||||
|
||||
while (usedPalettesTmp != 0) {
|
||||
if ((usedPalettesTmp & 1) == 1) {
|
||||
func = (fptrMakeFadeBuff256)&gMakeFadeBuff256;
|
||||
func(&((u8*)gPaletteBuffer)[palIdx], &PAL_RAM[palIdx], ptrUnk->unk2, ptrUnk->unk1);
|
||||
}
|
||||
palIdx += 0x20;
|
||||
|
||||
ptrUnk++;
|
||||
usedPalettesTmp /= 2;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0804FFE4() {
|
||||
MemClear(&gFadeControl, sizeof(gFadeControl));
|
||||
MemClear(&gUnk_020354C0, sizeof(gUnk_020354C0));
|
||||
gFadeControl.mask = 0xffffffff;
|
||||
}
|
|
@ -2,9 +2,7 @@
|
|||
#include "utils.h"
|
||||
#include "structures.h"
|
||||
|
||||
extern u32 gUnk_020354C0;
|
||||
|
||||
void sub_08050008() {
|
||||
MemClear(&gUnk_020354C0, 128);
|
||||
MemClear(&gUnk_020354C0, sizeof(gUnk_020354C0));
|
||||
gFadeControl.mask = 0xFFFFFFFF;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue