through sub_8101BA8
This commit is contained in:
@@ -5,170 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_8101A90
|
|
||||||
sub_8101A90: @ 8101A90
|
|
||||||
push {r4,r5,lr}
|
|
||||||
ldr r0, _08101AB8 @ =gUnknown_843F8F0
|
|
||||||
bl LoadSpriteSheets
|
|
||||||
ldr r0, _08101ABC @ =gUnknown_843F910
|
|
||||||
bl LoadSpritePalettes
|
|
||||||
movs r5, 0
|
|
||||||
ldr r4, _08101AC0 @ =gUnknown_843F938
|
|
||||||
_08101AA2:
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl LoadCompressedSpriteSheet
|
|
||||||
adds r4, 0x8
|
|
||||||
adds r5, 0x1
|
|
||||||
cmp r5, 0x3
|
|
||||||
bls _08101AA2
|
|
||||||
pop {r4,r5}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08101AB8: .4byte gUnknown_843F8F0
|
|
||||||
_08101ABC: .4byte gUnknown_843F910
|
|
||||||
_08101AC0: .4byte gUnknown_843F938
|
|
||||||
thumb_func_end sub_8101A90
|
|
||||||
|
|
||||||
thumb_func_start sub_8101AC4
|
|
||||||
sub_8101AC4: @ 8101AC4
|
|
||||||
push {lr}
|
|
||||||
bl GetEasyChatScreenFrameId
|
|
||||||
lsls r0, 24
|
|
||||||
ldr r1, _08101B10 @ =sPhraseFrameDimensions
|
|
||||||
lsrs r0, 22
|
|
||||||
adds r0, r1
|
|
||||||
ldrb r1, [r0]
|
|
||||||
lsls r1, 19
|
|
||||||
ldrb r2, [r0, 0x1]
|
|
||||||
adds r2, 0x1
|
|
||||||
lsls r2, 3
|
|
||||||
adds r2, 0x1
|
|
||||||
ldr r0, _08101B14 @ =gUnknown_843F968
|
|
||||||
movs r3, 0xD0
|
|
||||||
lsls r3, 12
|
|
||||||
adds r1, r3
|
|
||||||
asrs r1, 16
|
|
||||||
movs r3, 0x2
|
|
||||||
bl CreateSprite
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
ldr r1, _08101B18 @ =gUnknown_203ACEC
|
|
||||||
ldr r2, [r1]
|
|
||||||
movs r1, 0xB6
|
|
||||||
lsls r1, 2
|
|
||||||
adds r2, r1
|
|
||||||
lsls r1, r0, 4
|
|
||||||
adds r1, r0
|
|
||||||
lsls r1, 2
|
|
||||||
ldr r0, _08101B1C @ =gSprites
|
|
||||||
adds r1, r0
|
|
||||||
str r1, [r2]
|
|
||||||
movs r0, 0x1
|
|
||||||
strh r0, [r1, 0x30]
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08101B10: .4byte sPhraseFrameDimensions
|
|
||||||
_08101B14: .4byte gUnknown_843F968
|
|
||||||
_08101B18: .4byte gUnknown_203ACEC
|
|
||||||
_08101B1C: .4byte gSprites
|
|
||||||
thumb_func_end sub_8101AC4
|
|
||||||
|
|
||||||
thumb_func_start sub_8101B20
|
|
||||||
sub_8101B20: @ 8101B20
|
|
||||||
push {lr}
|
|
||||||
adds r1, r0, 0
|
|
||||||
movs r2, 0x30
|
|
||||||
ldrsh r0, [r1, r2]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08101B4E
|
|
||||||
ldrh r0, [r1, 0x2E]
|
|
||||||
adds r0, 0x1
|
|
||||||
strh r0, [r1, 0x2E]
|
|
||||||
lsls r0, 16
|
|
||||||
asrs r0, 16
|
|
||||||
cmp r0, 0x2
|
|
||||||
ble _08101B4E
|
|
||||||
movs r0, 0
|
|
||||||
strh r0, [r1, 0x2E]
|
|
||||||
ldrh r0, [r1, 0x24]
|
|
||||||
adds r0, 0x1
|
|
||||||
strh r0, [r1, 0x24]
|
|
||||||
lsls r0, 16
|
|
||||||
cmp r0, 0
|
|
||||||
ble _08101B4E
|
|
||||||
ldr r0, _08101B54 @ =0x0000fffa
|
|
||||||
strh r0, [r1, 0x24]
|
|
||||||
_08101B4E:
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08101B54: .4byte 0x0000fffa
|
|
||||||
thumb_func_end sub_8101B20
|
|
||||||
|
|
||||||
thumb_func_start sub_8101B58
|
|
||||||
sub_8101B58: @ 8101B58
|
|
||||||
push {r4,lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
lsls r1, 24
|
|
||||||
lsrs r1, 24
|
|
||||||
ldr r2, _08101B84 @ =gUnknown_203ACEC
|
|
||||||
ldr r2, [r2]
|
|
||||||
movs r3, 0xB6
|
|
||||||
lsls r3, 2
|
|
||||||
adds r2, r3
|
|
||||||
ldr r3, [r2]
|
|
||||||
movs r4, 0
|
|
||||||
strh r0, [r3, 0x20]
|
|
||||||
ldr r0, [r2]
|
|
||||||
strh r1, [r0, 0x22]
|
|
||||||
ldr r0, [r2]
|
|
||||||
strh r4, [r0, 0x24]
|
|
||||||
ldr r0, [r2]
|
|
||||||
strh r4, [r0, 0x2E]
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08101B84: .4byte gUnknown_203ACEC
|
|
||||||
thumb_func_end sub_8101B58
|
|
||||||
|
|
||||||
thumb_func_start sub_8101B88
|
|
||||||
sub_8101B88: @ 8101B88
|
|
||||||
ldr r0, _08101BA4 @ =gUnknown_203ACEC
|
|
||||||
ldr r1, [r0]
|
|
||||||
movs r0, 0xB6
|
|
||||||
lsls r0, 2
|
|
||||||
adds r1, r0
|
|
||||||
ldr r0, [r1]
|
|
||||||
movs r2, 0
|
|
||||||
strh r2, [r0, 0x2E]
|
|
||||||
ldr r0, [r1]
|
|
||||||
strh r2, [r0, 0x30]
|
|
||||||
ldr r0, [r1]
|
|
||||||
strh r2, [r0, 0x24]
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_08101BA4: .4byte gUnknown_203ACEC
|
|
||||||
thumb_func_end sub_8101B88
|
|
||||||
|
|
||||||
thumb_func_start sub_8101BA8
|
|
||||||
sub_8101BA8: @ 8101BA8
|
|
||||||
ldr r0, _08101BBC @ =gUnknown_203ACEC
|
|
||||||
ldr r0, [r0]
|
|
||||||
movs r1, 0xB6
|
|
||||||
lsls r1, 2
|
|
||||||
adds r0, r1
|
|
||||||
ldr r1, [r0]
|
|
||||||
movs r0, 0x1
|
|
||||||
strh r0, [r1, 0x30]
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
_08101BBC: .4byte gUnknown_203ACEC
|
|
||||||
thumb_func_end sub_8101BA8
|
|
||||||
|
|
||||||
thumb_func_start sub_8101BC0
|
thumb_func_start sub_8101BC0
|
||||||
sub_8101BC0: @ 8101BC0
|
sub_8101BC0: @ 8101BC0
|
||||||
push {r4-r6,lr}
|
push {r4-r6,lr}
|
||||||
|
|||||||
@@ -7,34 +7,6 @@
|
|||||||
.section .rodata
|
.section .rodata
|
||||||
.align 2
|
.align 2
|
||||||
|
|
||||||
gUnknown_843F8F0:: @ 843F8F0 sprite_sheet
|
|
||||||
obj_tiles gUnknown_843F3F8, 0x0020, 0
|
|
||||||
obj_tiles gUnknown_843F418, 0x0100, 2
|
|
||||||
obj_tiles gUnknown_843F518, 0x0100, 3
|
|
||||||
null_obj_tiles
|
|
||||||
|
|
||||||
gUnknown_843F910:: @ 843F910 sprite_palette
|
|
||||||
obj_pal gUnknown_843F3B8, 0
|
|
||||||
obj_pal gUnknown_843F3D8, 1
|
|
||||||
obj_pal gUnknown_8E99F24, 2
|
|
||||||
obj_pal gUnknown_843F618, 3
|
|
||||||
null_obj_pal
|
|
||||||
|
|
||||||
gUnknown_843F938:: @ 843F938 sprite_sheet
|
|
||||||
obj_tiles gUnknown_843F638, 0x0800, 5
|
|
||||||
obj_tiles gUnknown_8E9BD28, 0x1000, 1
|
|
||||||
obj_tiles gUnknown_8E99F44, 0x0800, 6
|
|
||||||
obj_tiles gUnknown_8E9A168, 0x1000, 4
|
|
||||||
|
|
||||||
gUnknown_843F958:: @ 843F958 data8
|
|
||||||
.byte 0x00, 0x0c, 0x18, 0x38, 0x44, 0x50, 0x5c, 0x00
|
|
||||||
|
|
||||||
gUnknown_843F960::
|
|
||||||
.4byte 0x00000000, 0x00000c00
|
|
||||||
|
|
||||||
gUnknown_843F968:: @ 843F968 sprite_template
|
|
||||||
spr_template 0, 0, gUnknown_843F960, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8101B20
|
|
||||||
|
|
||||||
gUnknown_843F980::
|
gUnknown_843F980::
|
||||||
.4byte 0xc0004000, 0x00000400
|
.4byte 0xc0004000, 0x00000400
|
||||||
|
|
||||||
|
|||||||
@@ -4890,5 +4890,9 @@ extern const u32 gUnknown_8EB0ADC[];
|
|||||||
extern const u32 gEasyChatWindow_Gfx[];
|
extern const u32 gEasyChatWindow_Gfx[];
|
||||||
extern const u32 gEasyChatWindow_Tilemap[];
|
extern const u32 gEasyChatWindow_Tilemap[];
|
||||||
extern const u32 gEasyChatMode_Pal[];
|
extern const u32 gEasyChatMode_Pal[];
|
||||||
|
extern const u16 gUnknown_8E99F24[];
|
||||||
|
extern const u32 gUnknown_8E9BD28[];
|
||||||
|
extern const u32 gUnknown_8E99F44[];
|
||||||
|
extern const u32 gUnknown_8E9A168[];
|
||||||
|
|
||||||
#endif //GUARD_GRAPHICS_H
|
#endif //GUARD_GRAPHICS_H
|
||||||
|
|||||||
+113
-1
@@ -1,6 +1,7 @@
|
|||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "gflib.h"
|
#include "gflib.h"
|
||||||
#include "data_8479668.h"
|
#include "data_8479668.h"
|
||||||
|
#include "decompress.h"
|
||||||
#include "easy_chat.h"
|
#include "easy_chat.h"
|
||||||
#include "graphics.h"
|
#include "graphics.h"
|
||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
@@ -102,7 +103,8 @@ s32 sub_8101A48(void);
|
|||||||
void sub_8101A5C(u8 left, u8 top, u8 right, u8 bottom);
|
void sub_8101A5C(u8 left, u8 top, u8 right, u8 bottom);
|
||||||
void sub_8101A90(void);
|
void sub_8101A90(void);
|
||||||
void sub_8101AC4(void);
|
void sub_8101AC4(void);
|
||||||
void sub_8101B58(u8 a0, u8 a1);
|
void sub_8101B20(struct Sprite * sprite);
|
||||||
|
void sub_8101B58(u8 x, u8 y);
|
||||||
void sub_8101B88(void);
|
void sub_8101B88(void);
|
||||||
void sub_8101BA8(void);
|
void sub_8101BA8(void);
|
||||||
void sub_8101BC0(void);
|
void sub_8101BC0(void);
|
||||||
@@ -274,6 +276,63 @@ const u8 *const sEasyChatKeyboardText[] = {
|
|||||||
gUnknown_847A934
|
gUnknown_847A934
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const struct SpriteSheet sEasyChatSpriteSheets[] = {
|
||||||
|
{gUnknown_843F3F8, 0x0020, 0},
|
||||||
|
{gUnknown_843F418, 0x0100, 2},
|
||||||
|
{gUnknown_843F518, 0x0100, 3},
|
||||||
|
{}
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct SpritePalette sEasyChatSpritePalettes[] = {
|
||||||
|
{gUnknown_843F3B8, 0},
|
||||||
|
{gUnknown_843F3D8, 1},
|
||||||
|
{gUnknown_8E99F24, 2},
|
||||||
|
{gUnknown_843F618, 3},
|
||||||
|
{}
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct CompressedSpriteSheet gUnknown_843F938[] = {
|
||||||
|
{gUnknown_843F638, 0x0800, 5},
|
||||||
|
{gUnknown_8E9BD28, 0x1000, 1},
|
||||||
|
{gUnknown_8E99F44, 0x0800, 6},
|
||||||
|
{gUnknown_8E9A168, 0x1000, 4}
|
||||||
|
};
|
||||||
|
|
||||||
|
const u8 gUnknown_843F958[] = {
|
||||||
|
0,
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
56,
|
||||||
|
68,
|
||||||
|
80,
|
||||||
|
92
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct OamData gUnknown_843F960 = {
|
||||||
|
.y = 0,
|
||||||
|
.affineMode = ST_OAM_AFFINE_OFF,
|
||||||
|
.objMode = ST_OAM_OBJ_NORMAL,
|
||||||
|
.bpp = ST_OAM_4BPP,
|
||||||
|
.mosaic = FALSE,
|
||||||
|
.shape = SPRITE_SHAPE(8x8),
|
||||||
|
.x = 0,
|
||||||
|
.matrixNum = 0,
|
||||||
|
.size = SPRITE_SIZE(8x8),
|
||||||
|
.tileNum = 0x000,
|
||||||
|
.priority = 3,
|
||||||
|
.paletteNum = 0
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct SpriteTemplate gUnknown_843F968 = {
|
||||||
|
.tileTag = 0,
|
||||||
|
.paletteTag = 0,
|
||||||
|
.oam = &gUnknown_843F960,
|
||||||
|
.anims = gDummySpriteAnimTable,
|
||||||
|
.images = NULL,
|
||||||
|
.affineAnims = gDummySpriteAffineAnimTable,
|
||||||
|
.callback = sub_8101B20
|
||||||
|
};
|
||||||
|
|
||||||
bool8 sub_80FFF80(void)
|
bool8 sub_80FFF80(void)
|
||||||
{
|
{
|
||||||
if (!sub_8100BF4())
|
if (!sub_8100BF4())
|
||||||
@@ -1640,3 +1699,56 @@ void sub_8101A5C(u8 left, u8 top, u8 width, u8 height)
|
|||||||
SetGpuReg(REG_OFFSET_WIN0H, horizontalDimensions);
|
SetGpuReg(REG_OFFSET_WIN0H, horizontalDimensions);
|
||||||
SetGpuReg(REG_OFFSET_WIN0V, verticalDimensions);
|
SetGpuReg(REG_OFFSET_WIN0V, verticalDimensions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sub_8101A90(void)
|
||||||
|
{
|
||||||
|
u32 i;
|
||||||
|
|
||||||
|
LoadSpriteSheets(sEasyChatSpriteSheets);
|
||||||
|
LoadSpritePalettes(sEasyChatSpritePalettes);
|
||||||
|
for (i = 0; i < NELEMS(gUnknown_843F938); i++)
|
||||||
|
LoadCompressedSpriteSheet(&gUnknown_843F938[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8101AC4(void)
|
||||||
|
{
|
||||||
|
u8 frameId = GetEasyChatScreenFrameId();
|
||||||
|
s16 x = sPhraseFrameDimensions[frameId].left * 8 + 13;
|
||||||
|
s16 y = (sPhraseFrameDimensions[frameId].top + 1) * 8 + 1;
|
||||||
|
u8 spriteId = CreateSprite(&gUnknown_843F968, x, y, 2);
|
||||||
|
gUnknown_203ACEC->unk2D8 = &gSprites[spriteId];
|
||||||
|
gSprites[spriteId].data[1] = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8101B20(struct Sprite *sprite)
|
||||||
|
{
|
||||||
|
if (sprite->data[1])
|
||||||
|
{
|
||||||
|
if (++sprite->data[0] > 2)
|
||||||
|
{
|
||||||
|
sprite->data[0] = 0;
|
||||||
|
if (++sprite->pos2.x > 0)
|
||||||
|
sprite->pos2.x = -6;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8101B58(u8 x, u8 y)
|
||||||
|
{
|
||||||
|
gUnknown_203ACEC->unk2D8->pos1.x = x;
|
||||||
|
gUnknown_203ACEC->unk2D8->pos1.y = y;
|
||||||
|
gUnknown_203ACEC->unk2D8->pos2.x = 0;
|
||||||
|
gUnknown_203ACEC->unk2D8->data[0] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8101B88(void)
|
||||||
|
{
|
||||||
|
gUnknown_203ACEC->unk2D8->data[0] = 0;
|
||||||
|
gUnknown_203ACEC->unk2D8->data[1] = 0;
|
||||||
|
gUnknown_203ACEC->unk2D8->pos2.x = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8101BA8(void)
|
||||||
|
{
|
||||||
|
gUnknown_203ACEC->unk2D8->data[1] = 1;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user