summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/mevent_8145654.s176
-rw-r--r--data/data_8466FB8.s37
-rw-r--r--include/decompress.h2
-rw-r--r--src/mevent_8145654.c21
4 files changed, 52 insertions, 184 deletions
diff --git a/asm/mevent_8145654.s b/asm/mevent_8145654.s
index d561f2766..e8af5eeae 100644
--- a/asm/mevent_8145654.s
+++ b/asm/mevent_8145654.s
@@ -5,182 +5,6 @@
.text
- thumb_func_start sub_8146060
-sub_8146060: @ 8146060
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r7, 0
- ldr r4, =gUnknown_203F3C8
- ldr r0, [r4]
- movs r1, 0xBE
- lsls r1, 1
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldr r0, [r4]
- movs r2, 0xA9
- lsls r2, 1
- adds r1, r0, r2
- ldrh r0, [r1]
- cmp r0, 0
- beq _081460C8
- bl sub_8096FD4
- lsls r0, 16
- lsrs r0, 16
- ldr r1, =SpriteCallbackDummy
- str r7, [sp]
- str r7, [sp, 0x4]
- movs r2, 0xDC
- movs r3, 0x14
- bl sub_8096ECC
- ldr r1, [r4]
- movs r3, 0xBE
- lsls r3, 1
- adds r1, r3
- strb r0, [r1]
- ldr r2, =gSprites
- ldr r0, [r4]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x5]
-_081460C8:
- ldr r1, [r4]
- ldrb r0, [r1, 0x9]
- cmp r0, 0
- beq _081461AC
- ldrb r1, [r1, 0x8]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- bne _081461AC
- ldr r0, =gUnknown_8467F58
- bl sub_800F034
- ldr r0, [r4]
- movs r1, 0xB8
- lsls r1, 1
- adds r0, r1
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- lsrs r0, 4
- lsls r0, 3
- ldr r1, =gUnknown_8467F60
- adds r0, r1
- bl LoadSpritePalette
- ldr r0, [r4]
- ldrb r0, [r0, 0x9]
- cmp r7, r0
- bcs _081461AC
- adds r6, r4, 0
- ldr r2, =0x0000017d
- mov r10, r2
- movs r3, 0
- mov r9, r3
- movs r0, 0xFF
- mov r8, r0
-_0814610E:
- ldr r1, [r6]
- lsls r4, r7, 1
- add r1, r10
- adds r1, r4
- ldrb r0, [r1]
- mov r2, r8
- orrs r0, r2
- strb r0, [r1]
- ldr r1, [r6]
- movs r3, 0xBF
- lsls r3, 1
- adds r1, r3
- adds r1, r4
- ldrb r0, [r1]
- orrs r0, r2
- strb r0, [r1]
- lsls r1, r7, 5
- movs r0, 0xD8
- subs r5, r0, r1
- ldr r0, =gUnknown_8467FA0
- adds r1, r5, 0
- movs r2, 0x90
- movs r3, 0x8
- bl CreateSprite
- ldr r1, [r6]
- add r1, r10
- adds r1, r4
- strb r0, [r1]
- ldr r0, [r6]
- movs r1, 0xAA
- lsls r1, 1
- adds r0, r1
- adds r1, r0, r4
- ldrh r0, [r1]
- cmp r0, 0
- beq _0814619E
- bl sub_8096FD4
- lsls r0, 16
- lsrs r0, 16
- mov r2, r9
- str r2, [sp]
- str r2, [sp, 0x4]
- ldr r1, =SpriteCallbackDummy
- adds r2, r5, 0
- movs r3, 0x88
- bl sub_8096ECC
- ldr r1, [r6]
- movs r3, 0xBF
- lsls r3, 1
- adds r1, r3
- adds r1, r4
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, r3
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r2, r1
- movs r1, 0x8
- orrs r2, r1
- strb r2, [r0, 0x5]
-_0814619E:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, [r6]
- ldrb r0, [r0, 0x9]
- cmp r7, r0
- bcc _0814610E
-_081461AC:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8146060
-
thumb_func_start sub_81461D8
sub_81461D8: @ 81461D8
push {r4-r7,lr}
diff --git a/data/data_8466FB8.s b/data/data_8466FB8.s
index e7b8c4fbb..38cd46b8c 100644
--- a/data/data_8466FB8.s
+++ b/data/data_8466FB8.s
@@ -89,16 +89,45 @@ gUnknown_8467CAC::
.incbin "data/graphics/mevent/tilemap_467CAC.bin.lz"
gUnknown_8467DF4::
- .incbin "baserom.gba", 0x467DF4, 0x100
+ .incbin "data/graphics/mevent/pal_467DF4.gbapal"
+
+gUnknown_8467E14::
+ .incbin "data/graphics/mevent/pal_467E14.gbapal"
+
+gUnknown_8467E34::
+ .incbin "data/graphics/mevent/pal_467E34.gbapal"
+
+gUnknown_8467E54::
+ .incbin "data/graphics/mevent/pal_467E54.gbapal"
+
+gUnknown_8467E74::
+ .incbin "data/graphics/mevent/pal_467E74.gbapal"
+
+gUnknown_8467E94::
+ .incbin "data/graphics/mevent/pal_467E94.gbapal"
+
+gUnknown_8467EB4::
+ .incbin "data/graphics/mevent/pal_467EB4.gbapal"
+
+gUnknown_8467ED4::
+ .incbin "data/graphics/mevent/pal_467ED4.gbapal"
gUnknown_8467EF4::
- .incbin "baserom.gba", 0x467EF4, 0x64
+ .incbin "data/graphics/mevent/gfx_467F58.4bpp.lz"
gUnknown_8467F58:: @ 8467F58
- .incbin "baserom.gba", 0x467F58, 0x8
+ .4byte gUnknown_8467EF4
+ .2byte 0x0100, 0x8000
gUnknown_8467F60:: @ 8467F60
- .incbin "baserom.gba", 0x467F60, 0x40
+ obj_pal gUnknown_8467DF4, 0x8000
+ obj_pal gUnknown_8467E14, 0x8000
+ obj_pal gUnknown_8467E34, 0x8000
+ obj_pal gUnknown_8467E54, 0x8000
+ obj_pal gUnknown_8467E74, 0x8000
+ obj_pal gUnknown_8467E94, 0x8000
+ obj_pal gUnknown_8467EB4, 0x8000
+ obj_pal gUnknown_8467ED4, 0x8000
gUnknown_8467FA0:: @ 8467FA0
.incbin "baserom.gba", 0x467FA0, 0x18
diff --git a/include/decompress.h b/include/decompress.h
index 5f3863dc7..36672dcfd 100644
--- a/include/decompress.h
+++ b/include/decompress.h
@@ -32,4 +32,6 @@ void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src
u32 sub_8034974(const u8 *ptr);
+void sub_800F034(const struct CompressedSpriteSheet *src);
+
#endif // GUARD_DECOMPRESS_H
diff --git a/src/mevent_8145654.c b/src/mevent_8145654.c
index ec1664643..db714ce80 100644
--- a/src/mevent_8145654.c
+++ b/src/mevent_8145654.c
@@ -37,7 +37,7 @@ struct UnkStruct_203F3C8
/*0175*/ u8 unk_0175;
/*0176*/ u16 unk_0176[3];
/*017C*/ u8 unk_017C;
- /*017D*/ u8 filler_017D[14];
+ /*017D*/ u8 unk_017D[7][2];
/*018B*/ u8 unk_018B[41];
/*01B4*/ u8 unk_01B4[41];
/*01DD*/ u8 unk_01DD[7];
@@ -66,7 +66,9 @@ extern const u8 gUnknown_8467070[3];
extern const struct WindowTemplate gUnknown_8467074[3];
extern const struct CompressedSpriteSheet gUnknown_8467F58;
+extern const struct SpritePalette gUnknown_8467F60[];
extern const struct UnkStruct_8467FB8 gUnknown_8467FB8[8];
+extern const struct SpriteTemplate gUnknown_8467FA0;
bool32 sub_8145654(struct MEventBuffer_32E0_Sub * r5, struct MEventBuffer_3430_Sub * r6)
{
@@ -333,9 +335,9 @@ void sub_8145D18(u8 whichWindow)
CopyWindowToVram(windowId, 3);
}
-/*
void sub_8146060(void)
{
+ u8 r7 = 0;
gUnknown_203F3C8->unk_017C = 0xFF;
if (gUnknown_203F3C8->unk_014C.unk_06 != SPECIES_NONE)
{
@@ -344,7 +346,18 @@ void sub_8146060(void)
}
if (gUnknown_203F3C8->unk_0000.unk_09 != 0 && gUnknown_203F3C8->unk_0000.unk_08_0 == 1)
{
- sub_800F034(gUnknown_8467F58);
+ sub_800F034(&gUnknown_8467F58);
+ LoadSpritePalette(&gUnknown_8467F60[gUnknown_203F3C8->unk_0170->textPal4]);
+ for (; r7 < gUnknown_203F3C8->unk_0000.unk_09; r7++)
+ {
+ gUnknown_203F3C8->unk_017D[r7][0] = 0xFF;
+ gUnknown_203F3C8->unk_017D[r7][1] = 0xFF;
+ gUnknown_203F3C8->unk_017D[r7][0] = CreateSprite(&gUnknown_8467FA0, 0xd8 - 32 * r7, 0x90, 8);
+ if (gUnknown_203F3C8->unk_014C.unk_08[0][r7] != 0)
+ {
+ gUnknown_203F3C8->unk_017D[r7][1] = sub_8096ECC(sub_8096FD4(gUnknown_203F3C8->unk_014C.unk_08[0][r7]), SpriteCallbackDummy, 0xd8 - 32 * r7, 0x88, 0, 0);
+ gSprites[gUnknown_203F3C8->unk_017D[r7][1]].oam.priority = 2;
+ }
+ }
}
}
- */