sub_81BF5A4

This commit is contained in:
scnorton 2017-09-18 11:26:45 -04:00
parent 8604291b0f
commit c5dddf41f5
11 changed files with 390 additions and 317 deletions

View File

@ -5,211 +5,6 @@
.text .text
thumb_func_start sub_81BF5A4
sub_81BF5A4: @ 81BF5A4
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x10
movs r0, 0x8
movs r1, 0
bl SetGpuReg
movs r0, 0xA
movs r1, 0
bl SetGpuReg
movs r0, 0x10
movs r1, 0
bl SetGpuReg
movs r0, 0x12
movs r1, 0
bl SetGpuReg
movs r0, 0x14
movs r1, 0
bl SetGpuReg
movs r0, 0x16
movs r1, 0
bl SetGpuReg
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r1, 0
str r1, [sp, 0xC]
ldr r4, =0x040000d4
add r0, sp, 0xC
str r0, [r4]
movs r0, 0xC0
lsls r0, 19
str r0, [r4, 0x4]
ldr r0, =0x85006000
str r0, [r4, 0x8]
ldr r0, [r4, 0x8]
str r1, [sp, 0xC]
add r0, sp, 0xC
str r0, [r4]
movs r0, 0xE0
lsls r0, 19
str r0, [r4, 0x4]
ldr r2, =0x85000100
str r2, [r4, 0x8]
ldr r0, [r4, 0x8]
str r1, [sp, 0xC]
add r0, sp, 0xC
str r0, [r4]
movs r0, 0xA0
lsls r0, 19
str r0, [r4, 0x4]
str r2, [r4, 0x8]
ldr r0, [r4, 0x8]
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, =gUnknown_08618108
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
ldr r0, =gUnknown_08618110
bl InitWindows
bl DeactivateAllTextPrinters
ldr r0, =gUnknown_08618138
str r0, [r4]
ldr r0, =0x050001e0
str r0, [r4, 0x4]
ldr r0, =0x84000008
str r0, [r4, 0x8]
ldr r0, [r4, 0x8]
movs r0, 0
movs r1, 0x40
bl SetGpuReg
movs r0, 0x2
movs r1, 0
bl FillWindowPixelBuffer
movs r0, 0x3
movs r1, 0
bl FillWindowPixelBuffer
movs r0, 0
movs r1, 0xAA
bl FillWindowPixelBuffer
ldr r5, =gUnknown_08617E9B
movs r0, 0
adds r1, r5, 0
movs r2, 0
bl GetStringWidth
adds r1, r0, 0
movs r4, 0x78
subs r0, r4, r1
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
lsls r2, r0, 24
lsrs r2, 24
ldr r6, =gUnknown_0861815B
str r6, [sp]
movs r0, 0x1
negs r0, r0
mov r8, r0
str r0, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0x2
movs r1, 0
movs r3, 0x3
bl box_print
ldr r5, =gUnknown_08617E8D
movs r0, 0
adds r1, r5, 0
movs r2, 0
bl GetStringWidth
adds r1, r0, 0
subs r4, r1
lsrs r0, r4, 31
adds r4, r0
asrs r4, 1
adds r0, r4, 0
adds r0, 0x78
lsls r2, r0, 24
lsrs r2, 24
str r6, [sp]
mov r0, r8
str r0, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0x2
movs r1, 0
movs r3, 0x3
bl box_print
movs r0, 0
adds r1, r5, 0
movs r2, 0
bl GetStringWidth
adds r1, r0, 0
movs r0, 0x70
subs r0, r1
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
lsls r2, r0, 24
lsrs r2, 24
str r6, [sp]
mov r0, r8
str r0, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0x3
movs r1, 0
movs r3, 0
bl box_print
ldr r4, =gUnknown_08617E78
movs r0, 0x1
adds r1, r4, 0
movs r2, 0
bl GetStringWidth
adds r1, r0, 0
movs r0, 0xD0
subs r0, r1
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
lsls r2, r0, 24
lsrs r2, 24
ldr r0, =gUnknown_08618158
str r0, [sp]
mov r0, r8
str r0, [sp, 0x4]
str r4, [sp, 0x8]
movs r0, 0
movs r1, 0x1
movs r3, 0x2
bl box_print
movs r0, 0x2
movs r1, 0x2
bl CopyWindowToVram
movs r0, 0x3
movs r1, 0x2
bl CopyWindowToVram
movs r0, 0
movs r1, 0x2
bl CopyWindowToVram
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.pool
thumb_func_end sub_81BF5A4
thumb_func_start sub_81BF7A4 thumb_func_start sub_81BF7A4
sub_81BF7A4: @ 81BF7A4 sub_81BF7A4: @ 81BF7A4
push {r4,r5,lr} push {r4,r5,lr}

19
include/bg.h Normal file
View File

@ -0,0 +1,19 @@
#ifndef GUARD_bg_H
#define GUARD_bg_H
struct BgTemplate {
u32 bg:2;
u32 charBaseIndex:2;
u32 mapBaseIndex:5;
u32 screenSize:2;
u32 paletteMode:1;
u32 priority:2;
u32 baseTile:10;
};
void ResetBgsAndClearDma3BusyFlags(u32);
void InitBgsFromTemplates(u8, const struct BgTemplate *, u8);
u32 ChangeBgX(u8, u32, u8);
u32 ChangeBgY(u8, u32, u8);
#endif //GUARD_bg_H

View File

@ -18,8 +18,8 @@ struct MultiBootParam
u8 response_bit; // 1d u8 response_bit; // 1d
u8 client_bit; // 1e u8 client_bit; // 1e
u8 reserved1; // 1f u8 reserved1; // 1f
u8 *boot_srcp; // 20 const u8 *boot_srcp; // 20
u8 *boot_endp; // 24 const u8 *boot_endp; // 24
const u8 *masterp; const u8 *masterp;
u8 *reserved2[MULTIBOOT_NCHILD]; u8 *reserved2[MULTIBOOT_NCHILD];
u32 system_work2[4]; u32 system_work2[4];

View File

@ -15,4 +15,6 @@ struct MenuAction2
void (*func)(u8); void (*func)(u8);
}; };
void box_print(u8, u8, u8, u8, const void *, s8, const u8 *);
#endif // GUARD_MENU_H #endif // GUARD_MENU_H

View File

@ -186,9 +186,9 @@ bool8 TextPrinterWaitWithDownArrow(struct TextPrinter *textPrinter);
bool8 TextPrinterWait(struct TextPrinter *textPrinter); bool8 TextPrinterWait(struct TextPrinter *textPrinter);
void DrawDownArrow(u8 windowId, u16 x, u16 y, u8 bgColor, bool8 drawArrow, u8 *counter, u8 *yCoordIndex); void DrawDownArrow(u8 windowId, u16 x, u16 y, u8 bgColor, bool8 drawArrow, u8 *counter, u8 *yCoordIndex);
u16 RenderText(struct TextPrinter *textPrinter); u16 RenderText(struct TextPrinter *textPrinter);
u32 GetStringWidthFixedWidthFont(u8 *str, u8 fontId, u8 letterSpacing); u32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing);
u32 (*GetFontWidthFunc(u8 glyphId))(u16, bool32); u32 (*GetFontWidthFunc(u8 glyphId))(u16, bool32);
s32 GetStringWidth(u8 fontId, u8 *str, s16 letterSpacing); u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing);
u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str); u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str);
u8 DrawKeypadIcon(u8 windowId, u8 keypadIconId, u16 x, u16 y); u8 DrawKeypadIcon(u8 windowId, u8 keypadIconId, u16 x, u16 y);
u8 GetKeypadIconTileOffset(u8 keypadIconId); u8 GetKeypadIconTileOffset(u8 keypadIconId);

View File

@ -30,7 +30,7 @@ struct Window
u8 *tileData; u8 *tileData;
}; };
bool16 InitWindows(struct WindowTemplate *templates); bool16 InitWindows(const struct WindowTemplate *templates);
u16 AddWindow(const struct WindowTemplate *template); u16 AddWindow(const struct WindowTemplate *template);
int AddWindowWithoutTileMap(struct WindowTemplate *template); int AddWindowWithoutTileMap(struct WindowTemplate *template);
void RemoveWindow(u8 windowId); void RemoveWindow(u8 windowId);

View File

@ -1,13 +1,16 @@
// Includes // Includes
#include "global.h" #include "global.h"
#include "multiboot.h"
#include "gpu_regs.h" #include "gpu_regs.h"
#include "multiboot.h"
#include "malloc.h"
#include "bg.h"
#include "main.h" #include "main.h"
#include "sprite.h" #include "sprite.h"
#include "task.h" #include "task.h"
#include "unknown_task.h" #include "unknown_task.h"
#include "malloc.h" #include "window.h"
#include "menu.h"
#include "m4a.h" #include "m4a.h"
// Static type declarations // Static type declarations
@ -26,7 +29,7 @@ extern berryfix_t *gUnknown_030012B8;
// Static ROM declarations // Static ROM declarations
static void sub_81BF3DC(void); static void sub_81BF3DC(void);
void sub_81BF5A4(void); static void sub_81BF5A4(void);
u32 sub_81BF7A4(u8); u32 sub_81BF7A4(u8);
// .rodata // .rodata
@ -35,6 +38,14 @@ extern const u8 gUnknown_089A6550[0xC0];
extern const u8 gMultiBootProgram_BerryGlitchFix_Script[0x3b34]; extern const u8 gMultiBootProgram_BerryGlitchFix_Script[0x3b34];
extern const u8 gMultiBootProgram_BerryGlitchFix_Start[]; extern const u8 gMultiBootProgram_BerryGlitchFix_Start[];
extern const u8 gMultiBootProgram_BerryGlitchFix_End[]; extern const u8 gMultiBootProgram_BerryGlitchFix_End[];
extern const u8 gUnknown_08617E78[];
extern const u8 gUnknown_08617E8D[];
extern const u8 gUnknown_08617E9B[];
extern const struct BgTemplate gUnknown_08618108[2];
extern const struct WindowTemplate gUnknown_08618110[7];
extern const u16 gUnknown_08618138[16];
extern const u8 gUnknown_08618158[3];
extern const u8 gUnknown_0861815B[3];
// .text // .text
@ -121,3 +132,258 @@ static void sub_81BF3DC(void)
break; break;
} }
} }
#ifdef NONMATCHING
static void sub_81BF5A4(void)
{
s32 width;
SetGpuReg(REG_OFFSET_BG0CNT, 0x0000);
SetGpuReg(REG_OFFSET_BG1CNT, 0x0000);
SetGpuReg(REG_OFFSET_BG0HOFS, 0x0000);
SetGpuReg(REG_OFFSET_BG0VOFS, 0x0000);
SetGpuReg(REG_OFFSET_BG1HOFS, 0x0000);
SetGpuReg(REG_OFFSET_BG1VOFS, 0x0000);
SetGpuReg(REG_OFFSET_BLDCNT, 0x0000);
DmaFill32(3, 0, VRAM, VRAM_SIZE);
DmaFill32(3, 0, OAM, OAM_SIZE);
DmaFill32(3, 0, PLTT, PLTT_SIZE);
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, gUnknown_08618108, ARRAY_COUNT(gUnknown_08618108));
ChangeBgX(0, 0, 0);
ChangeBgY(0, 0, 0);
ChangeBgX(1, 0, 0);
ChangeBgY(1, 0, 0);
InitWindows(gUnknown_08618110);
DeactivateAllTextPrinters();
DmaCopy32(3, gUnknown_08618138, BG_PLTT + 0x1E0, 0x20);
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP);
FillWindowPixelBuffer(2, 0);
FillWindowPixelBuffer(3, 0);
FillWindowPixelBuffer(0, 0xAA);
// This block is a meme among memes
width = (0x78 - GetStringWidth(0, gUnknown_08617E9B, 0)) / 2;
box_print(2, 0, width, 3, gUnknown_0861815B, -1, gUnknown_08617E9B);
width = (s32)(0x78 - GetStringWidth(0, gUnknown_08617E9B, 0)) / 2 + 0x78;
box_print(2, 0, width, 3, gUnknown_0861815B, -1, gUnknown_08617E8D);
width = (0x70 - GetStringWidth(0, gUnknown_08617E8D, 0)) / 2;
box_print(3, 0, width, 0, gUnknown_0861815B, -1, gUnknown_08617E8D);
width = (0xd0 - GetStringWidth(1, gUnknown_08617E78, 0)) / 2;
box_print(0, 1, width, 2, gUnknown_08618158, -1, gUnknown_08617E78);
CopyWindowToVram(2, 2);
CopyWindowToVram(3, 2);
CopyWindowToVram(0, 2);
}
#else
__attribute__((naked)) static void sub_81BF5A4(void)
{
asm(".syntax unified\n"
"\tpush {r4-r6,lr}\n"
"\tmov r6, r8\n"
"\tpush {r6}\n"
"\tsub sp, 0x10\n"
"\tmovs r0, 0x8\n"
"\tmovs r1, 0\n"
"\tbl SetGpuReg\n"
"\tmovs r0, 0xA\n"
"\tmovs r1, 0\n"
"\tbl SetGpuReg\n"
"\tmovs r0, 0x10\n"
"\tmovs r1, 0\n"
"\tbl SetGpuReg\n"
"\tmovs r0, 0x12\n"
"\tmovs r1, 0\n"
"\tbl SetGpuReg\n"
"\tmovs r0, 0x14\n"
"\tmovs r1, 0\n"
"\tbl SetGpuReg\n"
"\tmovs r0, 0x16\n"
"\tmovs r1, 0\n"
"\tbl SetGpuReg\n"
"\tmovs r0, 0x50\n"
"\tmovs r1, 0\n"
"\tbl SetGpuReg\n"
"\tmovs r1, 0\n"
"\tstr r1, [sp, 0xC]\n"
"\tldr r4, =0x040000d4\n"
"\tadd r0, sp, 0xC\n"
"\tstr r0, [r4]\n"
"\tmovs r0, 0xC0\n"
"\tlsls r0, 19\n"
"\tstr r0, [r4, 0x4]\n"
"\tldr r0, =0x85006000\n"
"\tstr r0, [r4, 0x8]\n"
"\tldr r0, [r4, 0x8]\n"
"\tstr r1, [sp, 0xC]\n"
"\tadd r0, sp, 0xC\n"
"\tstr r0, [r4]\n"
"\tmovs r0, 0xE0\n"
"\tlsls r0, 19\n"
"\tstr r0, [r4, 0x4]\n"
"\tldr r2, =0x85000100\n"
"\tstr r2, [r4, 0x8]\n"
"\tldr r0, [r4, 0x8]\n"
"\tstr r1, [sp, 0xC]\n"
"\tadd r0, sp, 0xC\n"
"\tstr r0, [r4]\n"
"\tmovs r0, 0xA0\n"
"\tlsls r0, 19\n"
"\tstr r0, [r4, 0x4]\n"
"\tstr r2, [r4, 0x8]\n"
"\tldr r0, [r4, 0x8]\n"
"\tmovs r0, 0\n"
"\tbl ResetBgsAndClearDma3BusyFlags\n"
"\tldr r1, =gUnknown_08618108\n"
"\tmovs r0, 0\n"
"\tmovs r2, 0x2\n"
"\tbl InitBgsFromTemplates\n"
"\tmovs r0, 0\n"
"\tmovs r1, 0\n"
"\tmovs r2, 0\n"
"\tbl ChangeBgX\n"
"\tmovs r0, 0\n"
"\tmovs r1, 0\n"
"\tmovs r2, 0\n"
"\tbl ChangeBgY\n"
"\tmovs r0, 0x1\n"
"\tmovs r1, 0\n"
"\tmovs r2, 0\n"
"\tbl ChangeBgX\n"
"\tmovs r0, 0x1\n"
"\tmovs r1, 0\n"
"\tmovs r2, 0\n"
"\tbl ChangeBgY\n"
"\tldr r0, =gUnknown_08618110\n"
"\tbl InitWindows\n"
"\tbl DeactivateAllTextPrinters\n"
"\tldr r0, =gUnknown_08618138\n"
"\tstr r0, [r4]\n"
"\tldr r0, =0x050001e0\n"
"\tstr r0, [r4, 0x4]\n"
"\tldr r0, =0x84000008\n"
"\tstr r0, [r4, 0x8]\n"
"\tldr r0, [r4, 0x8]\n"
"\tmovs r0, 0\n"
"\tmovs r1, 0x40\n"
"\tbl SetGpuReg\n"
"\tmovs r0, 0x2\n"
"\tmovs r1, 0\n"
"\tbl FillWindowPixelBuffer\n"
"\tmovs r0, 0x3\n"
"\tmovs r1, 0\n"
"\tbl FillWindowPixelBuffer\n"
"\tmovs r0, 0\n"
"\tmovs r1, 0xAA\n"
"\tbl FillWindowPixelBuffer\n"
"\tldr r5, =gUnknown_08617E9B\n"
"\tmovs r0, 0\n"
"\tadds r1, r5, 0\n"
"\tmovs r2, 0\n"
"\tbl GetStringWidth\n"
"\tadds r1, r0, 0\n"
"\tmovs r4, 0x78\n"
"\tsubs r0, r4, r1\n"
"\tlsrs r1, r0, 31\n"
"\tadds r0, r1\n"
"\tasrs r0, 1\n"
"\tlsls r2, r0, 24\n"
"\tlsrs r2, 24\n"
"\tldr r6, =gUnknown_0861815B\n"
"\tstr r6, [sp]\n"
"\tmovs r0, 0x1\n"
"\tnegs r0, r0\n"
"\tmov r8, r0\n"
"\tstr r0, [sp, 0x4]\n"
"\tstr r5, [sp, 0x8]\n"
"\tmovs r0, 0x2\n"
"\tmovs r1, 0\n"
"\tmovs r3, 0x3\n"
"\tbl box_print\n"
"\tldr r5, =gUnknown_08617E8D\n"
"\tmovs r0, 0\n"
"\tadds r1, r5, 0\n"
"\tmovs r2, 0\n"
"\tbl GetStringWidth\n"
"\tadds r1, r0, 0\n"
"\tsubs r4, r1\n"
"\tlsrs r0, r4, 31\n"
"\tadds r4, r0\n"
"\tasrs r4, 1\n"
"\tadds r0, r4, 0\n"
"\tadds r0, 0x78\n"
"\tlsls r2, r0, 24\n"
"\tlsrs r2, 24\n"
"\tstr r6, [sp]\n"
"\tmov r0, r8\n"
"\tstr r0, [sp, 0x4]\n"
"\tstr r5, [sp, 0x8]\n"
"\tmovs r0, 0x2\n"
"\tmovs r1, 0\n"
"\tmovs r3, 0x3\n"
"\tbl box_print\n"
"\tmovs r0, 0\n"
"\tadds r1, r5, 0\n"
"\tmovs r2, 0\n"
"\tbl GetStringWidth\n"
"\tadds r1, r0, 0\n"
"\tmovs r0, 0x70\n"
"\tsubs r0, r1\n"
"\tlsrs r1, r0, 31\n"
"\tadds r0, r1\n"
"\tasrs r0, 1\n"
"\tlsls r2, r0, 24\n"
"\tlsrs r2, 24\n"
"\tstr r6, [sp]\n"
"\tmov r0, r8\n"
"\tstr r0, [sp, 0x4]\n"
"\tstr r5, [sp, 0x8]\n"
"\tmovs r0, 0x3\n"
"\tmovs r1, 0\n"
"\tmovs r3, 0\n"
"\tbl box_print\n"
"\tldr r4, =gUnknown_08617E78\n"
"\tmovs r0, 0x1\n"
"\tadds r1, r4, 0\n"
"\tmovs r2, 0\n"
"\tbl GetStringWidth\n"
"\tadds r1, r0, 0\n"
"\tmovs r0, 0xD0\n"
"\tsubs r0, r1\n"
"\tlsrs r1, r0, 31\n"
"\tadds r0, r1\n"
"\tasrs r0, 1\n"
"\tlsls r2, r0, 24\n"
"\tlsrs r2, 24\n"
"\tldr r0, =gUnknown_08618158\n"
"\tstr r0, [sp]\n"
"\tmov r0, r8\n"
"\tstr r0, [sp, 0x4]\n"
"\tstr r4, [sp, 0x8]\n"
"\tmovs r0, 0\n"
"\tmovs r1, 0x1\n"
"\tmovs r3, 0x2\n"
"\tbl box_print\n"
"\tmovs r0, 0x2\n"
"\tmovs r1, 0x2\n"
"\tbl CopyWindowToVram\n"
"\tmovs r0, 0x3\n"
"\tmovs r1, 0x2\n"
"\tbl CopyWindowToVram\n"
"\tmovs r0, 0\n"
"\tmovs r1, 0x2\n"
"\tbl CopyWindowToVram\n"
"\tadd sp, 0x10\n"
"\tpop {r3}\n"
"\tmov r8, r3\n"
"\tpop {r4-r6}\n"
"\tpop {r0}\n"
"\tbx r0\n"
"\t.pool\n"
".syntax divided");
}
#endif

View File

@ -1,5 +1,6 @@
#include "global.h" #include "global.h"
#include "dma3.h" #include "dma3.h"
#include "bg.h"
#define DISPCNT_ALL_BG_AND_MODE_BITS 0x0F07 #define DISPCNT_ALL_BG_AND_MODE_BITS 0x0F07
@ -34,16 +35,6 @@ struct BgControl {
u16 bgVisibilityAndMode; u16 bgVisibilityAndMode;
}; };
struct BgTemplate {
u32 bg:2;
u32 charBaseIndex:2;
u32 mapBaseIndex:5;
u32 screenSize:2;
u32 paletteMode:1;
u32 priority:2;
u32 baseTile:10;
};
struct BgConfig2 { struct BgConfig2 {
u32 baseTile:10; u32 baseTile:10;
u32 basePalette:4; u32 basePalette:4;
@ -335,7 +326,7 @@ void ResetBgsAndClearDma3BusyFlags(u32 leftoverFireRedLeafGreenVariable)
gUnneededFireRedVariable = leftoverFireRedLeafGreenVariable; gUnneededFireRedVariable = leftoverFireRedLeafGreenVariable;
} }
void InitBgsFromTemplates(u8 bgMode, struct BgTemplate *templates, u8 numTemplates) void InitBgsFromTemplates(u8 bgMode, const struct BgTemplate *templates, u8 numTemplates)
{ {
int i; int i;
u8 bg; u8 bg;
@ -367,7 +358,7 @@ void InitBgsFromTemplates(u8 bgMode, struct BgTemplate *templates, u8 numTemplat
} }
} }
void InitBgFromTemplate(struct BgTemplate *template) void InitBgFromTemplate(const struct BgTemplate *template)
{ {
u8 bg = template->bg; u8 bg = template->bg;

View File

@ -316,7 +316,7 @@ void MultiBootStartProbe(struct MultiBootParam *mp)
mp->probe_count = 1; mp->probe_count = 1;
} }
void MultiBootStartMaster(struct MultiBootParam *mp, u8 *srcp, int length, u8 palette_color, s8 palette_speed) void MultiBootStartMaster(struct MultiBootParam *mp, const u8 *srcp, int length, u8 palette_color, s8 palette_speed)
{ {
int i = 0; int i = 0;

View File

@ -2779,7 +2779,7 @@ _08005D6E:\n\
bx r1"); bx r1");
} }
u32 GetStringWidthFixedWidthFont(u8 *str, u8 fontId, u8 letterSpacing) u32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing)
{ {
int i; int i;
u8 width; u8 width;
@ -2788,7 +2788,7 @@ u32 GetStringWidthFixedWidthFont(u8 *str, u8 fontId, u8 letterSpacing)
u8 line; u8 line;
int strPos; int strPos;
u8 lineWidths[8]; u8 lineWidths[8];
u8 *strLocal; const u8 *strLocal;
for (i = 0; i < 8; i++) for (i = 0; i < 8; i++)
{ {
@ -2883,7 +2883,7 @@ u32 (*GetFontWidthFunc(u8 glyphId))(u16, bool32)
return 0; return 0;
} }
s32 GetStringWidth(u8 fontId, u8 *str, s16 letterSpacing) u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
{ {
bool8 isJapanese; bool8 isJapanese;
int minGlyphWidth; int minGlyphWidth;

View File

@ -35,7 +35,7 @@ static void nullsub_8(void)
} }
bool16 InitWindows(struct WindowTemplate *templates) bool16 InitWindows(const struct WindowTemplate *templates)
{ {
int i; int i;
void *bgTilemapBuffer; void *bgTilemapBuffer;