mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-23 17:24:26 -05:00
Merge remote-tracking branch 'PikalaxALT/text'
This commit is contained in:
380
asm/text.s
380
asm/text.s
@@ -5,386 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8006218
|
||||
sub_8006218:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
ldr r1, _080062F4
|
||||
movs r0, 0
|
||||
str r0, [r1]
|
||||
ldr r0, _080062F8
|
||||
ldr r5, _080062FC
|
||||
adds r1, r5, 0
|
||||
bl OpenFileAndGetFileDataPtr
|
||||
ldr r4, _08006300
|
||||
str r0, [r4]
|
||||
ldr r0, _08006304
|
||||
adds r1, r5, 0
|
||||
bl OpenFileAndGetFileDataPtr
|
||||
str r0, [r4, 0x4]
|
||||
ldr r2, _08006308
|
||||
ldr r1, [r4]
|
||||
ldr r1, [r1, 0x4]
|
||||
str r1, [r2]
|
||||
ldr r0, [r0, 0x4]
|
||||
str r0, [r2, 0x4]
|
||||
ldr r1, _0800630C
|
||||
movs r0, 0xB
|
||||
str r0, [r1]
|
||||
movs r0, 0xC
|
||||
str r0, [r1, 0x4]
|
||||
ldr r0, _08006310
|
||||
movs r4, 0
|
||||
movs r3, 0
|
||||
adds r2, r0, 0
|
||||
adds r2, 0x46
|
||||
adds r0, 0x4
|
||||
movs r1, 0x3
|
||||
_08006264:
|
||||
strh r3, [r0]
|
||||
strh r3, [r0, 0x4]
|
||||
strb r4, [r2]
|
||||
adds r2, 0x48
|
||||
adds r0, 0x48
|
||||
subs r1, 0x1
|
||||
cmp r1, 0
|
||||
bge _08006264
|
||||
ldr r1, _08006314
|
||||
movs r0, 0
|
||||
strh r0, [r1]
|
||||
movs r3, 0
|
||||
ldr r0, _08006318
|
||||
mov r9, r0
|
||||
ldr r1, _0800631C
|
||||
mov r10, r1
|
||||
ldr r7, _08006320
|
||||
ldr r2, _08006324
|
||||
mov r8, r2
|
||||
movs r0, 0x80
|
||||
lsls r0, 4
|
||||
adds r6, r7, r0
|
||||
ldr r4, _08006328
|
||||
movs r5, 0
|
||||
mov r12, r6
|
||||
_08006296:
|
||||
lsls r0, r3, 6
|
||||
adds r2, r0, r7
|
||||
mov r1, r8
|
||||
strh r1, [r2]
|
||||
adds r1, r0, r6
|
||||
strh r4, [r1]
|
||||
adds r3, 0x1
|
||||
add r0, r12
|
||||
adds r0, 0x2
|
||||
adds r2, 0x2
|
||||
movs r1, 0x1E
|
||||
_080062AC:
|
||||
strh r5, [r2]
|
||||
strh r4, [r0]
|
||||
adds r0, 0x2
|
||||
adds r2, 0x2
|
||||
subs r1, 0x1
|
||||
cmp r1, 0
|
||||
bge _080062AC
|
||||
cmp r3, 0x13
|
||||
ble _08006296
|
||||
movs r1, 0
|
||||
movs r0, 0x1
|
||||
mov r2, r9
|
||||
strb r0, [r2]
|
||||
ldr r0, _0800632C
|
||||
mov r2, r10
|
||||
str r0, [r2]
|
||||
ldr r0, _08006330
|
||||
str r1, [r0]
|
||||
ldr r2, _08006334
|
||||
strb r1, [r2]
|
||||
movs r0, 0x1
|
||||
ldr r1, _08006338
|
||||
str r0, [r1]
|
||||
movs r0, 0x14
|
||||
ldr r2, _0800633C
|
||||
str r0, [r2]
|
||||
movs r0, 0
|
||||
bl xxx_update_some_bg_tiles
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080062F4: .4byte gUnknown_20274AC
|
||||
_080062F8: .4byte gUnknown_80B87B4
|
||||
_080062FC: .4byte gUnknown_8300500
|
||||
_08006300: .4byte gKanji
|
||||
_08006304: .4byte gUnknown_80B87BC
|
||||
_08006308: .4byte gUnknown_2027490
|
||||
_0800630C: .4byte gUnknown_202B028
|
||||
_08006310: .4byte gUnknown_2027370
|
||||
_08006314: .4byte gUnknown_2027498
|
||||
_08006318: .4byte gUnknown_202B034
|
||||
_0800631C: .4byte gUnknown_202B030
|
||||
_08006320: .4byte gUnknown_202B038
|
||||
_08006324: .4byte 0x0000f279
|
||||
_08006328: .4byte 0x0000f27a
|
||||
_0800632C: .4byte 0x88888888
|
||||
_08006330: .4byte gUnknown_203B078
|
||||
_08006334: .4byte gUnknown_20274A5
|
||||
_08006338: .4byte gUnknown_202B020
|
||||
_0800633C: .4byte gUnknown_202B024
|
||||
thumb_func_end sub_8006218
|
||||
|
||||
thumb_func_start xxx_update_some_bg_tiles
|
||||
xxx_update_some_bg_tiles:
|
||||
push {r4,r5,lr}
|
||||
adds r1, r0, 0
|
||||
ldr r0, _08006360
|
||||
ldr r5, [r0]
|
||||
ldr r4, _08006364
|
||||
str r1, [r0]
|
||||
cmp r1, 0
|
||||
beq _08006354
|
||||
cmp r1, 0x2
|
||||
bne _0800636C
|
||||
_08006354:
|
||||
movs r0, 0x2
|
||||
bl sub_800CDA8
|
||||
ldr r2, _08006368
|
||||
b _08006374
|
||||
.align 2, 0
|
||||
_08006360: .4byte gUnknown_20274B0
|
||||
_08006364: .4byte 0x06004f40
|
||||
_08006368: .4byte gUnknown_80B87C4
|
||||
_0800636C:
|
||||
movs r0, 0x1
|
||||
bl sub_800CDA8
|
||||
ldr r2, _080063A4
|
||||
_08006374:
|
||||
ldr r1, _080063A8
|
||||
ldr r0, _080063AC
|
||||
str r0, [r1]
|
||||
ldm r2!, {r0}
|
||||
stm r4!, {r0}
|
||||
ldm r2!, {r0}
|
||||
stm r4!, {r0}
|
||||
ldm r2!, {r0}
|
||||
stm r4!, {r0}
|
||||
ldm r2!, {r0}
|
||||
stm r4!, {r0}
|
||||
ldm r2!, {r0}
|
||||
stm r4!, {r0}
|
||||
ldm r2!, {r0}
|
||||
stm r4!, {r0}
|
||||
ldm r2!, {r0}
|
||||
stm r4!, {r0}
|
||||
ldr r0, [r2]
|
||||
str r0, [r4]
|
||||
adds r0, r5, 0
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080063A4: .4byte gUnknown_80B87E4
|
||||
_080063A8: .4byte gUnknown_202B030
|
||||
_080063AC: .4byte 0x88888888
|
||||
thumb_func_end xxx_update_some_bg_tiles
|
||||
|
||||
thumb_func_start sub_80063B0
|
||||
sub_80063B0:
|
||||
ldr r0, _080063B8
|
||||
ldr r0, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_080063B8: .4byte gUnknown_20274B0
|
||||
thumb_func_end sub_80063B0
|
||||
|
||||
thumb_func_start sub_80063BC
|
||||
sub_80063BC:
|
||||
ldr r1, _080063C8
|
||||
ldrb r2, [r1]
|
||||
strb r0, [r1]
|
||||
adds r0, r2, 0
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_080063C8: .4byte gUnknown_202B034
|
||||
thumb_func_end sub_80063BC
|
||||
|
||||
thumb_func_start sub_80063CC
|
||||
sub_80063CC:
|
||||
ldr r1, _080063D4
|
||||
str r0, [r1]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_080063D4: .4byte gUnknown_20274AC
|
||||
thumb_func_end sub_80063CC
|
||||
|
||||
thumb_func_start sub_80063D8
|
||||
sub_80063D8:
|
||||
push {lr}
|
||||
adds r1, r0, 0
|
||||
cmp r1, 0
|
||||
bne _080063F0
|
||||
ldr r0, _080063E8
|
||||
ldr r0, [r0]
|
||||
ldr r2, _080063EC
|
||||
b _08006410
|
||||
.align 2, 0
|
||||
_080063E8: .4byte gUnknown_20274B0
|
||||
_080063EC: .4byte 0x88888888
|
||||
_080063F0:
|
||||
movs r0, 0xF
|
||||
ands r0, r1
|
||||
lsls r2, r0, 4
|
||||
orrs r2, r0
|
||||
lsls r1, r0, 8
|
||||
orrs r2, r1
|
||||
lsls r1, r0, 12
|
||||
orrs r2, r1
|
||||
lsls r1, r0, 16
|
||||
orrs r2, r1
|
||||
lsls r1, r0, 20
|
||||
orrs r2, r1
|
||||
lsls r1, r0, 24
|
||||
orrs r2, r1
|
||||
lsls r0, 28
|
||||
orrs r2, r0
|
||||
_08006410:
|
||||
ldr r0, _08006418
|
||||
str r2, [r0]
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08006418: .4byte gUnknown_202B030
|
||||
thumb_func_end sub_80063D8
|
||||
|
||||
thumb_func_start sub_800641C
|
||||
sub_800641C:
|
||||
push {lr}
|
||||
sub sp, 0x4
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
movs r3, 0
|
||||
str r3, [sp]
|
||||
mov r3, sp
|
||||
bl sub_8006438
|
||||
add sp, 0x4
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_800641C
|
||||
|
||||
thumb_func_start sub_8006438
|
||||
sub_8006438:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x1C
|
||||
adds r4, r0, 0
|
||||
mov r8, r3
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
mov r10, r1
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
movs r0, 0x2
|
||||
mov r9, r0
|
||||
cmp r4, 0
|
||||
bne _0800645C
|
||||
ldr r4, _080064F0
|
||||
_0800645C:
|
||||
cmp r2, 0
|
||||
beq _08006464
|
||||
bl sub_8009388
|
||||
_08006464:
|
||||
bl sub_800898C
|
||||
movs r6, 0
|
||||
adds r5, r4, 0
|
||||
adds r5, 0xC
|
||||
ldr r1, _080064F4
|
||||
str r1, [sp, 0x18]
|
||||
_08006472:
|
||||
ldr r0, [sp, 0x18]
|
||||
adds r1, r4, 0
|
||||
ldm r1!, {r2,r3,r7}
|
||||
stm r0!, {r2,r3,r7}
|
||||
ldm r1!, {r2,r3,r7}
|
||||
stm r0!, {r2,r3,r7}
|
||||
movs r1, 0
|
||||
ldrsh r0, [r5, r1]
|
||||
cmp r0, 0
|
||||
beq _080064C4
|
||||
ldr r1, _080064F8
|
||||
lsls r0, r6, 2
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
str r0, [sp]
|
||||
str r4, [sp, 0x4]
|
||||
mov r2, r10
|
||||
str r2, [sp, 0x8]
|
||||
mov r3, r9
|
||||
str r3, [sp, 0xC]
|
||||
mov r7, r8
|
||||
str r7, [sp, 0x10]
|
||||
movs r0, 0
|
||||
str r0, [sp, 0x14]
|
||||
ldr r0, _080064FC
|
||||
movs r1, 0xC0
|
||||
lsls r1, 19
|
||||
ldr r2, _08006500
|
||||
ldr r3, _08006504
|
||||
bl sub_8006554
|
||||
adds r0, r4, 0
|
||||
mov r1, r8
|
||||
bl sub_80089AC
|
||||
movs r0, 0
|
||||
ldrsh r1, [r5, r0]
|
||||
movs r2, 0x4
|
||||
ldrsh r0, [r5, r2]
|
||||
muls r0, r1
|
||||
add r9, r0
|
||||
_080064C4:
|
||||
adds r5, 0x18
|
||||
adds r4, 0x18
|
||||
ldr r3, [sp, 0x18]
|
||||
adds r3, 0x18
|
||||
str r3, [sp, 0x18]
|
||||
adds r6, 0x1
|
||||
cmp r6, 0x3
|
||||
ble _08006472
|
||||
ldr r2, _08006508
|
||||
ldr r0, _0800650C
|
||||
ldr r1, _08006510
|
||||
str r0, [r2]
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
add sp, 0x1C
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080064F0: .4byte gUnknown_80B857C
|
||||
_080064F4: .4byte gUnknown_202AFC0
|
||||
_080064F8: .4byte gUnknown_80B8804
|
||||
_080064FC: .4byte gUnknown_2027370
|
||||
_08006500: .4byte gUnknown_20274B4
|
||||
_08006504: .4byte gUnknown_202B038
|
||||
_08006508: .4byte gUnknown_203B078
|
||||
_0800650C: .4byte gUnknown_3000E94
|
||||
_08006510: .4byte gUnknown_20274A5
|
||||
thumb_func_end sub_8006438
|
||||
|
||||
thumb_func_start nullsub_152
|
||||
nullsub_152:
|
||||
bx lr
|
||||
|
||||
6
include/code_800558C.h
Normal file
6
include/code_800558C.h
Normal file
@@ -0,0 +1,6 @@
|
||||
#ifndef GUARD_code_800558C_H
|
||||
#define GUARD_code_800558C_H
|
||||
|
||||
extern void *gUnknown_203B078;
|
||||
|
||||
#endif //GUARD_code_800558C_H
|
||||
6
include/code_800B540.h
Normal file
6
include/code_800B540.h
Normal file
@@ -0,0 +1,6 @@
|
||||
#ifndef GUARD_code_800B540_H
|
||||
#define GUARD_code_800B540_H
|
||||
|
||||
void sub_800CDA8(int a0);
|
||||
|
||||
#endif //GUARD_code_800B540_H
|
||||
34
include/file_system.h
Normal file
34
include/file_system.h
Normal file
@@ -0,0 +1,34 @@
|
||||
#ifndef GUARD_FILE_SYSTEM_H
|
||||
#define GUARD_FILE_SYSTEM_H
|
||||
|
||||
struct File
|
||||
{
|
||||
char *name;
|
||||
u8 *data;
|
||||
};
|
||||
|
||||
struct OpenedFile
|
||||
{
|
||||
struct File *file;
|
||||
u8 *data;
|
||||
};
|
||||
|
||||
struct FileArchive
|
||||
{
|
||||
char magic[8];
|
||||
s32 count;
|
||||
struct File *entries;
|
||||
};
|
||||
|
||||
struct SiroArchive
|
||||
{
|
||||
u32 magic;
|
||||
u8 *data;
|
||||
};
|
||||
|
||||
struct OpenedFile *OpenFile(const char *filename, const struct FileArchive *arc);
|
||||
u8 *GetFileDataPtr(struct OpenedFile *openedFile, int unused);
|
||||
struct OpenedFile *OpenFileAndGetFileDataPtr(const char *filename, const struct FileArchive *arc);
|
||||
struct OpenedFile *Call_OpenFileAndGetFileDataPtr(const char *filename, const struct FileArchive *arc);
|
||||
|
||||
#endif //GUARD_FILE_SYSTEM_H
|
||||
@@ -56,6 +56,7 @@ SECTIONS {
|
||||
asm/sprite.o(.text);
|
||||
asm/code_800558C.o(.text);
|
||||
src/random.o(.text);
|
||||
src/text.o(.text);
|
||||
asm/text.o(.text);
|
||||
asm/code_8009804.o(.text);
|
||||
src/file_system.o(.text);
|
||||
|
||||
@@ -1,29 +1,5 @@
|
||||
#include "global.h"
|
||||
|
||||
struct File
|
||||
{
|
||||
char *name;
|
||||
u8 *data;
|
||||
};
|
||||
|
||||
struct OpenedFile
|
||||
{
|
||||
struct File *file;
|
||||
u8 *data;
|
||||
};
|
||||
|
||||
struct FileArchive
|
||||
{
|
||||
char magic[8];
|
||||
s32 count;
|
||||
struct File *entries;
|
||||
};
|
||||
|
||||
struct SiroArchive
|
||||
{
|
||||
u32 magic;
|
||||
u8 *data;
|
||||
};
|
||||
#include "file_system.h"
|
||||
|
||||
extern struct OpenedFile gFileCache[64];
|
||||
|
||||
@@ -56,7 +32,7 @@ u32 sub_800A8F8(u32 value)
|
||||
return oldValue;
|
||||
}
|
||||
|
||||
struct OpenedFile *OpenFile(char *filename, struct FileArchive *arc)
|
||||
struct OpenedFile *OpenFile(const char *filename, const struct FileArchive *arc)
|
||||
{
|
||||
char buffer[0x12C];
|
||||
s32 left, right;
|
||||
@@ -138,7 +114,7 @@ u8 *GetFileDataPtr(struct OpenedFile *openedFile, int unused)
|
||||
return GetSiroPtr(openedFile);
|
||||
}
|
||||
|
||||
struct OpenedFile *OpenFileAndGetFileDataPtr(char *filename, struct FileArchive *arc)
|
||||
struct OpenedFile *OpenFileAndGetFileDataPtr(const char *filename, const struct FileArchive *arc)
|
||||
{
|
||||
struct OpenedFile *openedFile = OpenFile(filename, arc);
|
||||
if (openedFile)
|
||||
@@ -146,7 +122,7 @@ struct OpenedFile *OpenFileAndGetFileDataPtr(char *filename, struct FileArchive
|
||||
return openedFile;
|
||||
}
|
||||
|
||||
struct OpenedFile *Call_OpenFileAndGetFileDataPtr(char *filename, struct FileArchive *arc)
|
||||
struct OpenedFile *Call_OpenFileAndGetFileDataPtr(const char *filename, const struct FileArchive *arc)
|
||||
{
|
||||
return OpenFileAndGetFileDataPtr(filename, arc);
|
||||
}
|
||||
|
||||
200
src/text.c
Normal file
200
src/text.c
Normal file
@@ -0,0 +1,200 @@
|
||||
#include "global.h"
|
||||
#include "file_system.h"
|
||||
#include "code_800558C.h"
|
||||
#include "code_800B540.h"
|
||||
|
||||
struct UnkTextStruct1 {
|
||||
u8 fill00[4];
|
||||
u16 unk04;
|
||||
u8 fill06[2];
|
||||
u16 unk08;
|
||||
u8 fill04[0x3c];
|
||||
u8 unk46;
|
||||
};
|
||||
|
||||
struct UnkTextStruct2 {
|
||||
u8 fill00[0x0c];
|
||||
s16 unk0c;
|
||||
u8 fill0e[2];
|
||||
s16 unk10;
|
||||
u8 fill12[0x06];
|
||||
};
|
||||
|
||||
extern char gUnknown_3000E94[];
|
||||
|
||||
EWRAM_DATA struct UnkTextStruct1 gUnknown_2027370[4];
|
||||
EWRAM_DATA u8 *gUnknown_2027490[2];
|
||||
EWRAM_DATA u16 gUnknown_2027498;
|
||||
EWRAM_DATA u8 gUnknown_20274A5;
|
||||
EWRAM_DATA u32 gUnknown_20274AC;
|
||||
EWRAM_DATA vu32 gUnknown_20274B0;
|
||||
EWRAM_DATA u8 gUnknown_20274B4[0x3b00];
|
||||
EWRAM_DATA struct OpenedFile *gKanji[2];
|
||||
EWRAM_DATA struct UnkTextStruct2 gUnknown_202AFC0[4];
|
||||
EWRAM_DATA u32 gUnknown_202B020;
|
||||
EWRAM_DATA u32 gUnknown_202B024;
|
||||
EWRAM_DATA u32 gUnknown_202B028[2];
|
||||
EWRAM_DATA u32 gUnknown_202B030;
|
||||
EWRAM_DATA u8 gUnknown_202B034;
|
||||
EWRAM_DATA u16 gUnknown_202B038[2][32][32];
|
||||
|
||||
u32 xxx_update_some_bg_tiles(u32 a0);
|
||||
void sub_8006438(const struct UnkTextStruct2 *a0, u8 a1, u8 a2, u32 *a3);
|
||||
void sub_8006554(void *a0, void *a1, void *a2, void *a3, u32 a4, const struct UnkTextStruct2 *a5, u8 a6, u32 a7, u32 *a8, u32 a9);
|
||||
void sub_800898C(void);
|
||||
void sub_80089AC(const struct UnkTextStruct2 *a0, void *a1);
|
||||
void sub_8009388(void);
|
||||
|
||||
extern const struct UnkTextStruct2 gUnknown_80B857C[4];
|
||||
extern const char gUnknown_80B87B4[];
|
||||
extern const char gUnknown_80B87BC[];
|
||||
extern const struct FileArchive gUnknown_8300500;
|
||||
extern const u32 gUnknown_80B87C4[8];
|
||||
extern const u32 gUnknown_80B87E4[8];
|
||||
extern const u32 gUnknown_80B8804[4];
|
||||
|
||||
void sub_8006218(void)
|
||||
{
|
||||
int i;
|
||||
int j;
|
||||
int k;
|
||||
|
||||
gUnknown_20274AC = 0;
|
||||
gKanji[0] = OpenFileAndGetFileDataPtr(gUnknown_80B87B4, &gUnknown_8300500);
|
||||
gKanji[1] = OpenFileAndGetFileDataPtr(gUnknown_80B87BC, &gUnknown_8300500);
|
||||
gUnknown_2027490[0] = gKanji[0]->data;
|
||||
gUnknown_2027490[1] = gKanji[1]->data;
|
||||
gUnknown_202B028[0] = 11;
|
||||
gUnknown_202B028[1] = 12;
|
||||
for (k = 0; k < 4; k++)
|
||||
{
|
||||
gUnknown_2027370[k].unk04 = 0;
|
||||
gUnknown_2027370[k].unk08 = 0;
|
||||
gUnknown_2027370[k].unk46 = 0;
|
||||
}
|
||||
gUnknown_2027498 = 0;
|
||||
for (i = 0; i < 20; i++)
|
||||
{
|
||||
gUnknown_202B038[0][i][0] = 0xf279;
|
||||
gUnknown_202B038[1][i][0] = 0xf27a;
|
||||
for (j = 1; j < 32; j++)
|
||||
{
|
||||
gUnknown_202B038[0][i][j] = 0;
|
||||
gUnknown_202B038[1][i][j] = 0xf27a;
|
||||
}
|
||||
}
|
||||
gUnknown_202B034 = 1;
|
||||
gUnknown_202B030 = 0x88888888;
|
||||
gUnknown_203B078 = NULL;
|
||||
gUnknown_20274A5 = 0;
|
||||
gUnknown_202B020 = 1;
|
||||
gUnknown_202B024 = 20;
|
||||
xxx_update_some_bg_tiles(0);
|
||||
}
|
||||
|
||||
u32 xxx_update_some_bg_tiles(u32 a0)
|
||||
{
|
||||
u32 r5 = gUnknown_20274B0;
|
||||
u32 *r4 = (u32 *)(VRAM + 0x4f40);
|
||||
const u32 *r2;
|
||||
gUnknown_20274B0 = a0;
|
||||
if (a0 == 0 || a0 == 2)
|
||||
{
|
||||
sub_800CDA8(2);
|
||||
r2 = gUnknown_80B87C4;
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_800CDA8(1);
|
||||
r2 = gUnknown_80B87E4;
|
||||
}
|
||||
gUnknown_202B030 = 0x88888888;
|
||||
*r4++ = *r2++;
|
||||
*r4++ = *r2++;
|
||||
*r4++ = *r2++;
|
||||
*r4++ = *r2++;
|
||||
*r4++ = *r2++;
|
||||
*r4++ = *r2++;
|
||||
*r4++ = *r2++;
|
||||
*r4++ = *r2++;
|
||||
return r5;
|
||||
}
|
||||
|
||||
u32 sub_80063B0(void)
|
||||
{
|
||||
return gUnknown_20274B0;
|
||||
}
|
||||
|
||||
u8 sub_80063BC(u8 a0)
|
||||
{
|
||||
u8 retval = gUnknown_202B034;
|
||||
gUnknown_202B034 = a0;
|
||||
return retval;
|
||||
}
|
||||
|
||||
void sub_80063CC(u32 a0)
|
||||
{
|
||||
gUnknown_20274AC = a0;
|
||||
}
|
||||
|
||||
void sub_80063D8(int a0)
|
||||
{
|
||||
u32 retval;
|
||||
if (a0 == 0)
|
||||
{
|
||||
gUnknown_20274B0;
|
||||
retval = 0x88888888;
|
||||
}
|
||||
else
|
||||
{
|
||||
retval = (a0 & 0xf) | ((a0 & 0xf) << 4);
|
||||
retval |= ((a0 & 0xf) << 8);
|
||||
retval |= ((a0 & 0xf) << 12);
|
||||
retval |= ((a0 & 0xf) << 16);
|
||||
retval |= ((a0 & 0xf) << 20);
|
||||
retval |= ((a0 & 0xf) << 24);
|
||||
retval |= ((a0 & 0xf) << 28);
|
||||
}
|
||||
gUnknown_202B030 = retval;
|
||||
}
|
||||
|
||||
void sub_800641C(void *a0, u8 a1, u8 a2)
|
||||
{
|
||||
u32 r3 = 0;
|
||||
sub_8006438(a0, a1, a2, &r3);
|
||||
}
|
||||
|
||||
void sub_8006438(const struct UnkTextStruct2 *a0, u8 a1, u8 a2, u32 *a3)
|
||||
{
|
||||
int i;
|
||||
u32 r9 = 2;
|
||||
|
||||
if (a0 == NULL)
|
||||
a0 = gUnknown_80B857C;
|
||||
if (a2)
|
||||
sub_8009388();
|
||||
sub_800898C();
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
gUnknown_202AFC0[i] = a0[i];
|
||||
if (a0[i].unk0c)
|
||||
{
|
||||
sub_8006554(gUnknown_2027370, (void *)VRAM, gUnknown_20274B4, gUnknown_202B038, gUnknown_80B8804[i], a0 + i, a1, r9, a3, 0);
|
||||
sub_80089AC(a0 + i, a3);
|
||||
r9 += a0[i].unk0c * a0[i].unk10;
|
||||
}
|
||||
}
|
||||
#ifdef NONMATCHING
|
||||
gUnknown_203B078 = gUnknown_3000E94;
|
||||
gUnknown_20274A5 = 1;
|
||||
#else
|
||||
asm(".syntax unified\n"
|
||||
"\tldr r2, =gUnknown_203B078\n"
|
||||
"\tldr r0, =gUnknown_3000E94\n"
|
||||
"\tldr r1, =gUnknown_20274A5\n"
|
||||
"\tstr r0, [r2]\n"
|
||||
"\tmovs r0, 0x1\n"
|
||||
"\tstrb r0, [r1]\n"
|
||||
".syntax divided");
|
||||
#endif
|
||||
}
|
||||
Reference in New Issue
Block a user