decompile: diploma.s

This commit is contained in:
dheu
2019-07-08 17:44:25 +08:00
parent 7980c4aa07
commit 78925baf89
6 changed files with 290 additions and 641 deletions
+32 -31
View File
@@ -1,48 +1,49 @@
*.exe
*.o
*.i
*.elf
*.gba
*.1bpp
*.4bpp
*.8bpp
*.gbapal
*.lz
*.rl
*.pcm
*.latfont
*.hwjpnfont
*.fwjpnfont
*.DS_Store
*.bak
*.bat
sound/**/*.bin
src/*.s
tools/agbcc
tools/binutils
ld_script_ruby.txt
ld_script_sapphire.txt
*.map
*.diff
*.dump
*.elf
*.exe
*.fwjpnfont
*.gba
*.gbapal
*.hwjpnfont
*.i
*.id0
*.id1
*.id2
*.nam
*.til
.fuse*
*.latfont
*.ld
tags
types_*.taghl
*.swp
*.swo
*.lz
*.map
*.nam
*.o
*.pcm
*.pl
*.rl
*.s.old
*.s.old2
*.dump
*.sa*
*.swo
*.swp
*.til
.fuse*
.idea/
Thumbs.db
build/
.idea/
cmake-build-*
*.DS_Store
*.pl
*.bak
ld_script_ruby.txt
ld_script_sapphire.txt
sound/**/*.bin
src/*.s
src/data/items.h
tags
tools/agbcc
tools/binutils
tools/br_ips/br_ips
tools/br_ips/ips_patch
types_*.taghl
-607
View File
@@ -1,607 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_80F4BFC
sub_80F4BFC: @ 80F4BFC
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_80F4BFC
thumb_func_start sub_80F4C10
sub_80F4C10: @ 80F4C10
push {r4,lr}
ldr r4, _080F4C40 @ =gUnknown_203AB48
ldr r0, _080F4C44 @ =0x00001004
bl AllocZeroed
str r0, [r4]
movs r1, 0
strb r1, [r0]
ldr r0, [r4]
strb r1, [r0, 0x1]
ldr r0, [r4]
strb r1, [r0, 0x2]
bl sub_80F4E24
ldr r0, _080F4C48 @ =sub_80F4C68
movs r1, 0
bl CreateTask
ldr r0, _080F4C4C @ =sub_80F4C50
bl SetMainCallback2
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080F4C40: .4byte gUnknown_203AB48
_080F4C44: .4byte 0x00001004
_080F4C48: .4byte sub_80F4C68
_080F4C4C: .4byte sub_80F4C50
thumb_func_end sub_80F4C10
thumb_func_start sub_80F4C50
sub_80F4C50: @ 80F4C50
push {lr}
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_80F4C50
thumb_func_start sub_80F4C68
sub_80F4C68: @ 80F4C68
push {r4,lr}
sub sp, 0x4
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _080F4C84 @ =gUnknown_203AB48
ldr r0, [r0]
ldrb r0, [r0, 0x2]
cmp r0, 0x8
bhi _080F4D30
lsls r0, 2
ldr r1, _080F4C88 @ =_080F4C8C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080F4C84: .4byte gUnknown_203AB48
_080F4C88: .4byte _080F4C8C
.align 2, 0
_080F4C8C:
.4byte _080F4CB0
.4byte _080F4CB8
.4byte _080F4CBE
.4byte _080F4CCA
.4byte _080F4CDC
.4byte _080F4CFC
.4byte _080F4D02
.4byte _080F4D10
.4byte _080F4D22
_080F4CB0:
movs r0, 0
bl SetVBlankCallback
b _080F4D50
_080F4CB8:
bl sub_80F4E40
b _080F4D50
_080F4CBE:
bl sub_80F4F9C
lsls r0, 24
cmp r0, 0
beq _080F4D5A
b _080F4D50
_080F4CCA:
ldr r1, _080F4CD8 @ =gUnknown_84154E8
movs r0, 0x1
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
b _080F4D50
.align 2, 0
_080F4CD8: .4byte gUnknown_84154E8
_080F4CDC:
bl sub_8088F84
lsls r0, 16
cmp r0, 0
beq _080F4CF2
movs r1, 0x80
lsls r1, 1
movs r0, 0x14
bl SetGpuReg
b _080F4D50
_080F4CF2:
movs r0, 0x14
movs r1, 0
bl SetGpuReg
b _080F4D50
_080F4CFC:
bl sub_80F5018
b _080F4D50
_080F4D02:
movs r0, 0
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
b _080F4D50
_080F4D10:
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
b _080F4D50
_080F4D22:
ldr r0, _080F4D2C @ =sub_80F4BFC
bl SetVBlankCallback
b _080F4D50
.align 2, 0
_080F4D2C: .4byte sub_80F4BFC
_080F4D30:
ldr r0, _080F4D64 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080F4D50
movs r0, 0x5
bl PlayFanfareByFanfareNum
ldr r0, _080F4D68 @ =gTasks
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r0
ldr r0, _080F4D6C @ =sub_80F4D74
str r0, [r1]
_080F4D50:
ldr r0, _080F4D70 @ =gUnknown_203AB48
ldr r1, [r0]
ldrb r0, [r1, 0x2]
adds r0, 0x1
strb r0, [r1, 0x2]
_080F4D5A:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080F4D64: .4byte gPaletteFade
_080F4D68: .4byte gTasks
_080F4D6C: .4byte sub_80F4D74
_080F4D70: .4byte gUnknown_203AB48
thumb_func_end sub_80F4C68
thumb_func_start sub_80F4D74
sub_80F4D74: @ 80F4D74
push {r4,lr}
sub sp, 0x4
lsls r0, 24
lsrs r2, r0, 24
ldr r4, _080F4D90 @ =gUnknown_203AB48
ldr r0, [r4]
ldrb r1, [r0]
cmp r1, 0x1
beq _080F4DA8
cmp r1, 0x1
bgt _080F4D94
cmp r1, 0
beq _080F4D9A
b _080F4DD6
.align 2, 0
_080F4D90: .4byte gUnknown_203AB48
_080F4D94:
cmp r1, 0x2
beq _080F4DD0
b _080F4DD6
_080F4D9A:
movs r0, 0
bl WaitFanfare
lsls r0, 24
cmp r0, 0
beq _080F4DD6
b _080F4DC2
_080F4DA8:
ldr r0, _080F4DCC @ =gMain
ldrh r0, [r0, 0x2E]
ands r1, r0
cmp r1, 0
beq _080F4DD6
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
_080F4DC2:
ldr r1, [r4]
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _080F4DD6
.align 2, 0
_080F4DCC: .4byte gMain
_080F4DD0:
adds r0, r2, 0
bl sub_80F4DE0
_080F4DD6:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80F4D74
thumb_func_start sub_80F4DE0
sub_80F4DE0: @ 80F4DE0
push {r4,r5,lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r0, _080F4E18 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
bne _080F4E10
adds r0, r2, 0
bl DestroyTask
bl FreeAllWindowBuffers
ldr r4, _080F4E1C @ =gUnknown_203AB48
ldr r0, [r4]
bl Free
str r5, [r4]
ldr r0, _080F4E20 @ =sub_80568FC
bl SetMainCallback2
_080F4E10:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080F4E18: .4byte gPaletteFade
_080F4E1C: .4byte gUnknown_203AB48
_080F4E20: .4byte sub_80568FC
thumb_func_end sub_80F4DE0
thumb_func_start sub_80F4E24
sub_80F4E24: @ 80F4E24
push {lr}
bl ResetSpriteData
bl ResetPaletteFade
bl FreeAllSpritePalettes
bl ResetTasks
bl ScanlineEffect_Stop
pop {r0}
bx r0
thumb_func_end sub_80F4E24
thumb_func_start sub_80F4E40
sub_80F4E40: @ 80F4E40
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x10
movs r3, 0xC0
lsls r3, 19
movs r4, 0xC0
lsls r4, 9
add r0, sp, 0xC
mov r8, r0
add r2, sp, 0x8
movs r6, 0
ldr r1, _080F4F88 @ =0x040000d4
movs r5, 0x80
lsls r5, 5
ldr r7, _080F4F8C @ =0x81000800
movs r0, 0x81
lsls r0, 24
mov r12, r0
_080F4E66:
strh r6, [r2]
add r0, sp, 0x8
str r0, [r1]
str r3, [r1, 0x4]
str r7, [r1, 0x8]
ldr r0, [r1, 0x8]
adds r3, r5
subs r4, r5
cmp r4, r5
bhi _080F4E66
strh r6, [r2]
add r2, sp, 0x8
str r2, [r1]
str r3, [r1, 0x4]
lsrs r0, r4, 1
mov r2, r12
orrs r0, r2
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
movs r0, 0xE0
lsls r0, 19
movs r3, 0x80
lsls r3, 3
movs r4, 0
str r4, [sp, 0xC]
ldr r2, _080F4F88 @ =0x040000d4
mov r1, r8
str r1, [r2]
str r0, [r2, 0x4]
lsrs r0, r3, 2
movs r1, 0x85
lsls r1, 24
orrs r0, r1
str r0, [r2, 0x8]
ldr r0, [r2, 0x8]
movs r1, 0xA0
lsls r1, 19
add r0, sp, 0x8
strh r4, [r0]
str r0, [r2]
str r1, [r2, 0x4]
lsrs r3, 1
movs r0, 0x81
lsls r0, 24
orrs r3, r0
str r3, [r2, 0x8]
ldr r0, [r2, 0x8]
movs r0, 0
movs r1, 0
bl SetGpuReg
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, _080F4F90 @ =gUnknown_8415A08
movs r0, 0
movs r2, 0x2
bl InitBgsFromTemplates
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x3
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x3
movs r1, 0
movs r2, 0
bl ChangeBgY
ldr r0, _080F4F94 @ =gUnknown_8415A10
bl InitWindows
bl DeactivateAllTextPrinters
movs r1, 0x82
lsls r1, 5
movs r0, 0
bl SetGpuReg
ldr r0, _080F4F98 @ =gUnknown_203AB48
ldr r1, [r0]
adds r1, 0x4
movs r0, 0x1
bl SetBgTilemapBuffer
movs r0, 0
bl ShowBg
movs r0, 0x1
bl ShowBg
movs r5, 0x1E
str r5, [sp]
movs r4, 0x14
str r4, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
str r5, [sp]
str r4, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect_Palette0
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080F4F88: .4byte 0x040000d4
_080F4F8C: .4byte 0x81000800
_080F4F90: .4byte gUnknown_8415A08
_080F4F94: .4byte gUnknown_8415A10
_080F4F98: .4byte gUnknown_203AB48
thumb_func_end sub_80F4E40
thumb_func_start sub_80F4F9C
sub_80F4F9C: @ 80F4F9C
push {lr}
sub sp, 0x4
ldr r0, _080F4FB4 @ =gUnknown_203AB48
ldr r0, [r0]
ldrb r0, [r0, 0x1]
cmp r0, 0x1
beq _080F4FC8
cmp r0, 0x1
bgt _080F4FB8
cmp r0, 0
beq _080F4FC2
b _080F4FF8
.align 2, 0
_080F4FB4: .4byte gUnknown_203AB48
_080F4FB8:
cmp r0, 0x2
beq _080F4FE0
cmp r0, 0x3
beq _080F4FEE
b _080F4FF8
_080F4FC2:
bl ResetTempTileDataBuffers
b _080F5000
_080F4FC8:
ldr r1, _080F4FDC @ =gUnknown_84147C0
movs r0, 0
str r0, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
bl DecompressAndCopyTileDataToVram
b _080F5000
.align 2, 0
_080F4FDC: .4byte gUnknown_84147C0
_080F4FE0:
bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080F5000
b _080F500A
_080F4FEE:
ldr r0, _080F4FFC @ =gUnknown_8415954
movs r1, 0
movs r2, 0x40
bl LoadPalette
_080F4FF8:
movs r0, 0x1
b _080F500C
.align 2, 0
_080F4FFC: .4byte gUnknown_8415954
_080F5000:
ldr r0, _080F5014 @ =gUnknown_203AB48
ldr r1, [r0]
ldrb r0, [r1, 0x1]
adds r0, 0x1
strb r0, [r1, 0x1]
_080F500A:
movs r0, 0
_080F500C:
add sp, 0x4
pop {r1}
bx r1
.align 2, 0
_080F5014: .4byte gUnknown_203AB48
thumb_func_end sub_80F4F9C
thumb_func_start sub_80F5018
sub_80F5018: @ 80F5018
push {r4-r6,lr}
sub sp, 0xAC
bl UnkTextUtil_Reset
ldr r0, _080F5040 @ =gSaveBlock2Ptr
ldr r1, [r0]
movs r0, 0
bl UnkTextUtil_SetPtrI
bl sub_8088F84
lsls r0, 16
cmp r0, 0
beq _080F5048
ldr r1, _080F5044 @ =gUnknown_841B68F
movs r0, 0x1
bl UnkTextUtil_SetPtrI
b _080F5050
.align 2, 0
_080F5040: .4byte gSaveBlock2Ptr
_080F5044: .4byte gUnknown_841B68F
_080F5048:
ldr r1, _080F50E0 @ =gUnknown_841B698
movs r0, 0x1
bl UnkTextUtil_SetPtrI
_080F5050:
movs r0, 0
movs r1, 0
bl FillWindowPixelBuffer
ldr r1, _080F50E4 @ =gUnknown_841B60E
add r0, sp, 0xC
bl UnkTextUtil_StringExpandPlaceholders
movs r5, 0x1
negs r5, r5
movs r0, 0x2
add r1, sp, 0xC
adds r2, r5, 0
bl GetStringWidth
lsrs r2, r0, 1
movs r4, 0x78
subs r2, r4, r2
lsls r2, 24
lsrs r2, 24
ldr r6, _080F50E8 @ =gUnknown_8415A04
str r6, [sp]
str r5, [sp, 0x4]
add r0, sp, 0xC
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0x2
movs r3, 0x4
bl AddTextPrinterParameterized3
ldr r1, _080F50EC @ =gUnknown_841B619
add r0, sp, 0xC
bl UnkTextUtil_StringExpandPlaceholders
movs r0, 0x2
add r1, sp, 0xC
adds r2, r5, 0
bl GetStringWidth
lsrs r0, 1
subs r4, r0
lsls r4, 24
lsrs r4, 24
str r6, [sp]
str r5, [sp, 0x4]
add r0, sp, 0xC
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0x2
adds r2, r4, 0
movs r3, 0x1E
bl AddTextPrinterParameterized3
str r6, [sp]
movs r0, 0
str r0, [sp, 0x4]
ldr r0, _080F50F0 @ =gUnknown_841B684
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0x2
movs r2, 0x78
movs r3, 0x69
bl AddTextPrinterParameterized3
movs r0, 0
bl PutWindowTilemap
add sp, 0xAC
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080F50E0: .4byte gUnknown_841B698
_080F50E4: .4byte gUnknown_841B60E
_080F50E8: .4byte gUnknown_8415A04
_080F50EC: .4byte gUnknown_841B619
_080F50F0: .4byte gUnknown_841B684
thumb_func_end sub_80F5018
.align 2, 0 @ Don't pad with nop.
+2 -2
View File
@@ -9,13 +9,13 @@
sub_80CA618: @ 80CA618
push {lr}
bl sub_8112364
ldr r0, _080CA62C @ =sub_80F4C10
ldr r0, _080CA62C @ =DiplomaInit
bl SetMainCallback2
bl ScriptContext2_Enable
pop {r0}
bx r0
.align 2, 0
_080CA62C: .4byte sub_80F4C10
_080CA62C: .4byte DiplomaInit
thumb_func_end sub_80CA618
thumb_func_start sub_80CA630
+1
View File
@@ -214,6 +214,7 @@ SECTIONS {
asm/battle_anim_special.o(.text);
asm/hall_of_fame.o(.text);
asm/credits.o(.text);
src/diploma.o(.text);
asm/diploma.o(.text);
asm/save_failed_screen.o(.text);
asm/clear_save_data_screen.o(.text);
+254
View File
@@ -0,0 +1,254 @@
#include "gba/macro.h"
#include "global.h"
#include "gpu_regs.h"
#include "window.h"
#include "main.h"
#include "scanline_effect.h"
#include "task.h"
#include "unk_text_util.h"
#include "gpu_regs.h"
#include "text.h"
#include "bg.h"
#include "sound.h"
#include "malloc.h"
#include "sprite.h"
#include "palette.h"
#include "new_menu_helpers.h"
#include "menu.h"
#include "diploma.h"
void sub_80568FC(void);
u16 sub_8088F84(void);
void DiplomaBgInit(void);
void DiplomaPrintText(void);
u8 DiplomaLoadGfx(void);
void DiplomaVblankHandler(void);
void CB2_DiplomaInit(void);
void Task_WaitForExit(u8);
void Task_DiplomaInit(u8);
void Task_DiplomaReturnToOverworld(u8);
extern const struct BgTemplate gUnknown_8415A08[2];
extern const struct WindowTemplate gUnknown_8415A10[];
extern const u8 gUnknown_8402650[];
extern const u8 gUnknown_841B60E[];
extern const u8 gUnknown_841B684[];
extern u8 gUnknown_84147C0[];
extern u8 gUnknown_8415954[];
extern u8 gUnknown_841B698[];
extern u8 gUnknown_841B68F[];
extern u8 gUnknown_841B619[];
extern u8 gUnknown_8415A04[];
struct Diploma
{
u8 state;
u8 gfxStep;
u8 callbackStep;
u8 padding;
u8 tilemapBuffer[0x1000];
}
*gDiploma = NULL;
extern const u32 gUnknown_84154E8[];
void CB2_DiplomaOam(void)
{
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
}
void DiplomaInit(void)
{
gDiploma = AllocZeroed(sizeof(*gDiploma));
gDiploma->state = 0;
gDiploma->gfxStep = 0;
gDiploma->callbackStep = 0;
DiplomaBgInit();
CreateTask(Task_DiplomaInit, 0);
SetMainCallback2(CB2_DiplomaInit);
}
void CB2_DiplomaInit(void)
{
RunTasks();
AnimateSprites();
BuildOamBuffer();
UpdatePaletteFade();
}
void Task_DiplomaInit(u8 taskId)
{
switch (gDiploma->callbackStep)
{
case 0:
SetVBlankCallback(NULL);
break;
case 1:
DiplomaVblankHandler();
break;
case 2:
if (!DiplomaLoadGfx())
{
return;
}
break;
case 3:
CopyToBgTilemapBuffer(1, gUnknown_84154E8, 0, 0);
break;
case 4:
if (sub_8088F84())
{
SetGpuReg(REG_OFFSET_BG1HOFS, 0x80 << 1);
}
else
{
SetGpuReg(REG_OFFSET_BG1HOFS, 0);
}
break;
case 5:
DiplomaPrintText();
break;
case 6:
CopyBgTilemapBufferToVram(0);
CopyBgTilemapBufferToVram(1);
break;
case 7:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
break;
case 8:
SetVBlankCallback(CB2_DiplomaOam);
break;
default:
if (gPaletteFade.active)
{
break;
}
PlayFanfareByFanfareNum(5);
gTasks[taskId].func = Task_WaitForExit;
}
gDiploma->callbackStep++;
}
void Task_WaitForExit(u8 taskId)
{
switch (gDiploma->state)
{
case 0:
if (WaitFanfare(0))
{
gDiploma->state++;
}
break;
case 1:
if (JOY_NEW(A_BUTTON))
{
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
gDiploma->state++;
}
break;
case 2:
Task_DiplomaReturnToOverworld(taskId);
break;
}
}
void Task_DiplomaReturnToOverworld(u8 taskId)
{
if (gPaletteFade.active)
return;
DestroyTask(taskId);
FreeAllWindowBuffers();
FREE_AND_SET_NULL(gDiploma);
SetMainCallback2(sub_80568FC);
}
void DiplomaBgInit(void)
{
ResetSpriteData();
ResetPaletteFade();
FreeAllSpritePalettes();
ResetTasks();
ScanlineEffect_Stop();
}
void DiplomaVblankHandler(void)
{
void *vram = (void *)VRAM;
DmaClearLarge16(3, vram, VRAM_SIZE, 0x1000);
DmaClear32(3, (void *)OAM, OAM_SIZE);
DmaClear16(3, (void *)PLTT, PLTT_SIZE);
SetGpuReg(REG_OFFSET_DISPCNT, 0);
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, gUnknown_8415A08, 2);
ChangeBgX(0, 0, 0);
ChangeBgY(0, 0, 0);
ChangeBgX(1, 0, 0);
ChangeBgY(1, 0, 0);
ChangeBgX(2, 0, 0);
ChangeBgY(2, 0, 0);
ChangeBgX(3, 0, 0);
ChangeBgY(3, 0, 0);
InitWindows(gUnknown_8415A10);
DeactivateAllTextPrinters();
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON);
SetBgTilemapBuffer(1, gDiploma->tilemapBuffer);
ShowBg(0);
ShowBg(1);
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20);
FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 30, 20);
}
u8 DiplomaLoadGfx(void)
{
switch (gDiploma->gfxStep)
{
case 0:
ResetTempTileDataBuffers();
break;
case 1:
DecompressAndCopyTileDataToVram(1, gUnknown_84147C0, 0, 0, 0);
break;
case 2:
if (!(FreeTempTileDataBuffersIfPossible() == 1))
{
break;
}
return 0;
case 3:
LoadPalette(gUnknown_8415954, 0, 0x40);
default:
return 1;
}
gDiploma->gfxStep++;
return 0;
}
void DiplomaPrintText(void)
{
u8 arr[160];
uintptr_t len;
UnkTextUtil_Reset();
UnkTextUtil_SetPtrI(0, gSaveBlock2Ptr->playerName);
if (sub_8088F84())
{
UnkTextUtil_SetPtrI(1, gUnknown_841B68F);
}
else
{
UnkTextUtil_SetPtrI(1, gUnknown_841B698);
}
FillWindowPixelBuffer(0, 0);
UnkTextUtil_StringExpandPlaceholders(arr, gUnknown_841B60E);
len = (uintptr_t)GetStringWidth(2, arr, -1);
AddTextPrinterParameterized3(0, 2, 0x78 - (len / 2), 4, gUnknown_8415A04, -1, arr);
UnkTextUtil_StringExpandPlaceholders(arr, gUnknown_841B619);
len = (uintptr_t)GetStringWidth(2, arr, -1);
AddTextPrinterParameterized3(0, 0x2, 0x78 - (len / 2), 0x1E, gUnknown_8415A04, -1, arr);
AddTextPrinterParameterized3(0, 0x2, 0x78, 0x69, gUnknown_8415A04, 0, gUnknown_841B684);
PutWindowTilemap(0);
}
+1 -1
View File
@@ -1130,7 +1130,7 @@ gUnknown_203AB40: @ 203AB40
gUnknown_203AB44: @ 203AB44
.space 0x4
gUnknown_203AB48: @ 203AB48
gDiploma: @ 203AB48
.space 0x4
gUnknown_203AB4C: @ 203AB4C