summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorscnorton <scnorton@biociphers.org>2019-04-11 11:04:48 -0400
committerscnorton <scnorton@biociphers.org>2019-04-11 11:04:48 -0400
commitb2b26e0e3b3d1824ae01c0bf05c0041dd055e536 (patch)
treebb8c980c297753c2d9972cf13cf8e929cc29313d
parent6eb7cc6cfae14b93feee880b23e903c336c58dcd (diff)
through sub_8130FD4 and associated rodata
-rw-r--r--asm/oak_speech.s207
-rw-r--r--data/data_835B488.s13
-rw-r--r--data/data_845FD54.s76
-rw-r--r--data/oak_speech/unk_84629D0.pal19
-rw-r--r--data/oak_speech/unk_84629F0.pal19
-rw-r--r--data/oak_speech/unk_8462A10.pngbin0 -> 271 bytes
-rw-r--r--data/oak_speech/unk_8462B74.pngbin0 -> 350 bytes
-rw-r--r--data/oak_speech/unk_8462D34.pngbin0 -> 228 bytes
-rw-r--r--data/oak_speech/unk_8462E18.pngbin0 -> 119 bytes
-rw-r--r--src/oak_speech.c52
10 files changed, 169 insertions, 217 deletions
diff --git a/asm/oak_speech.s b/asm/oak_speech.s
index d3d7ffc4a..f9d4e9b5a 100644
--- a/asm/oak_speech.s
+++ b/asm/oak_speech.s
@@ -5,213 +5,6 @@
.text
- thumb_func_start sub_8130FB8
-sub_8130FB8: @ 8130FB8
- ldr r3, _08130FD0 @ =gSprites
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- adds r1, 0x2B
- ldrb r1, [r1]
- strh r1, [r0, 0x26]
- bx lr
- .align 2, 0
-_08130FD0: .4byte gSprites
- thumb_func_end sub_8130FB8
-
- thumb_func_start sub_8130FD4
-sub_8130FD4: @ 8130FD4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- movs r4, 0
- cmp r1, 0
- beq _08130FF4
- cmp r1, 0x1
- beq _081310C8
- b _08131146
-_08130FF4:
- ldr r4, _081310B0 @ =gUnknown_8462EFC
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- adds r0, r4, 0
- adds r0, 0x8
- bl LoadCompressedObjectPic
- adds r4, 0x10
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- ldr r0, _081310B4 @ =gUnknown_8462F1C
- bl LoadSpritePalette
- ldr r0, _081310B8 @ =gUnknown_846302C
- mov r8, r0
- movs r1, 0x10
- movs r2, 0x11
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r6, _081310BC @ =gSprites
- lsls r1, r7, 4
- adds r1, r7
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x5]
- movs r5, 0xD
- negs r5, r5
- adds r0, r5, 0
- ands r0, r2
- strb r0, [r1, 0x5]
- ldr r0, _081310C0 @ =gTasks
- mov r1, r9
- lsls r4, r1, 2
- add r4, r9
- lsls r4, 3
- adds r4, r0
- strh r7, [r4, 0x16]
- mov r0, r8
- adds r0, 0x18
- movs r1, 0x10
- movs r2, 0x9
- movs r3, 0x3
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, r7, 4
- adds r1, r7
- lsls r1, 2
- adds r2, r1, r6
- ldrb r3, [r2, 0x5]
- adds r0, r5, 0
- ands r0, r3
- strb r0, [r2, 0x5]
- ldrh r0, [r4, 0x16]
- strh r0, [r2, 0x2E]
- movs r2, 0x1C
- adds r2, r6
- mov r10, r2
- add r1, r10
- ldr r3, _081310C4 @ =sub_8130FB8
- mov r9, r3
- str r3, [r1]
- strh r7, [r4, 0x18]
- movs r0, 0x30
- add r8, r0
- mov r0, r8
- movs r1, 0x18
- movs r2, 0xD
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- adds r6, r0, r6
- ldrb r1, [r6, 0x5]
- ands r5, r1
- strb r5, [r6, 0x5]
- ldrh r1, [r4, 0x16]
- strh r1, [r6, 0x2E]
- add r0, r10
- mov r1, r9
- str r1, [r0]
- strh r7, [r4, 0x1A]
- b _08131146
- .align 2, 0
-_081310B0: .4byte gUnknown_8462EFC
-_081310B4: .4byte gUnknown_8462F1C
-_081310B8: .4byte gUnknown_846302C
-_081310BC: .4byte gSprites
-_081310C0: .4byte gTasks
-_081310C4: .4byte sub_8130FB8
-_081310C8:
- ldr r0, _08131154 @ =gUnknown_8462F14
- bl LoadCompressedObjectPic
- ldr r0, _08131158 @ =gUnknown_8462F24
- bl LoadSpritePalette
- mov r2, r9
- lsls r5, r2, 2
- ldr r3, _0813115C @ =gTasks+0x8
- mov r8, r3
- ldr r6, _08131160 @ =gSprites
-_081310DE:
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r1, _08131164 @ =gUnknown_8462F50
- adds r0, r1
- lsls r1, r4, 21
- movs r2, 0xB0
- lsls r2, 15
- adds r1, r2
- asrs r1, 16
- movs r2, 0x70
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r2, r7, 4
- adds r2, r7
- lsls r2, 2
- adds r2, r6
- ldrb r1, [r2, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r0, r3, 0
- ands r1, r0
- movs r0, 0x8
- orrs r1, r0
- strb r1, [r2, 0x5]
- adds r3, r2, 0
- adds r3, 0x2C
- ldrb r0, [r3]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r3]
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- adds r1, r4, 0x7
- lsls r1, 1
- mov r2, r9
- adds r0, r5, r2
- lsls r0, 3
- adds r1, r0
- add r1, r8
- strh r7, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081310DE
-_08131146:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08131154: .4byte gUnknown_8462F14
-_08131158: .4byte gUnknown_8462F24
-_0813115C: .4byte gTasks+0x8
-_08131160: .4byte gSprites
-_08131164: .4byte gUnknown_8462F50
- thumb_func_end sub_8130FD4
-
thumb_func_start sub_8131168
sub_8131168: @ 8131168
push {r4-r7,lr}
diff --git a/data/data_835B488.s b/data/data_835B488.s
index 71e98b2ba..c5b533348 100644
--- a/data/data_835B488.s
+++ b/data/data_835B488.s
@@ -738,13 +738,22 @@ sFanfares:: @ 83AC990
.incbin "baserom.gba", 0x3AC990, 0x40
gUnknown_83AC9D0:: @ 83AC9D0
- .incbin "baserom.gba", 0x3AC9D0, 0x28
+ .incbin "baserom.gba", 0x3AC9D0, 0x8
+
+gUnknown_83AC9D8::
+ .incbin "baserom.gba", 0x3AC9D8, 0x10
+
+gUnknown_83AC9E8::
+ .incbin "baserom.gba", 0x3AC9E8, 0x10
gUnknown_83AC9F8::
.incbin "baserom.gba", 0x3AC9F8, 0x8
gUnknown_83ACA00::
- .incbin "baserom.gba", 0x3ACA00, 0x208
+ .incbin "baserom.gba", 0x3ACA00, 0xF8
+
+gUnknown_83ACAF8::
+ .incbin "baserom.gba", 0x3ACAF8, 0x110
gUnknown_83ACC08:: @ 83ACC08
.incbin "baserom.gba", 0x3ACC08, 0x440
diff --git a/data/data_845FD54.s b/data/data_845FD54.s
index 67c69c261..41c9ac2d3 100644
--- a/data/data_845FD54.s
+++ b/data/data_845FD54.s
@@ -33,7 +33,25 @@ gUnknown_84623AC:: @ 84623AC
.incbin "baserom.gba", 0x4623AC, 0x40
gUnknown_84623EC:: @ 84623EC
- .incbin "baserom.gba", 0x4623EC, 0xA6C
+ .incbin "baserom.gba", 0x4623EC, 0x5E4
+
+gUnknown_84629D0::
+ .incbin "data/oak_speech/unk_84629D0.gbapal"
+
+gUnknown_84629F0::
+ .incbin "data/oak_speech/unk_84629F0.gbapal"
+
+gUnknown_8462A10::
+ .incbin "data/oak_speech/unk_8462A10.4bpp.lz"
+
+gUnknown_8462B74::
+ .incbin "data/oak_speech/unk_8462B74.4bpp.lz"
+
+gUnknown_8462D34::
+ .incbin "data/oak_speech/unk_8462D34.4bpp.lz"
+
+gUnknown_8462E18::
+ .incbin "data/oak_speech/unk_8462E18.4bpp.lz"
gUnknown_8462E58:: @ 8462E58
.incbin "baserom.gba", 0x462E58, 0xC
@@ -100,22 +118,64 @@ gUnknown_8462EF0:: @ 8462EF0
.4byte gUnknown_81C5BB9
gUnknown_8462EFC:: @ 8462EFC
- .incbin "baserom.gba", 0x462EFC, 0x18
+ obj_tiles gUnknown_8462B74, 0x0400, 0x1001
+ obj_tiles gUnknown_8462D34, 0x0200, 0x1002
+ obj_tiles gUnknown_8462E18, 0x0080, 0x1003
gUnknown_8462F14:: @ 8462F14
- .incbin "baserom.gba", 0x462F14, 0x8
+ obj_tiles gUnknown_8462A10, 0x0600, 0x1000
gUnknown_8462F1C:: @ 8462F1C
- .incbin "baserom.gba", 0x462F1C, 0x8
+ obj_pal gUnknown_84629F0, 0x1001
+
+gUnknown_8462F24:: @ 8462F14
+ obj_pal gUnknown_84629D0, 0x1000
+
+gUnknown_8462F2C::
+ .incbin "baserom.gba", 0x462F2C, 0x8
+
+gUnknown_8462F34::
+ .incbin "baserom.gba", 0x462F34, 0x8
-gUnknown_8462F24:: @ 8462F24
- .incbin "baserom.gba", 0x462F24, 0x2C
+gUnknown_8462F3C::
+ .incbin "baserom.gba", 0x462F3C, 0x8
+
+gUnknown_8462F44::
+ .4byte gUnknown_8462F2C
+
+gUnknown_8462F48::
+ .4byte gUnknown_8462F34
+
+gUnknown_8462F4C::
+ .4byte gUnknown_8462F3C
gUnknown_8462F50:: @ 8462F50
- .incbin "baserom.gba", 0x462F50, 0xDC
+ spr_template 0x1000, 0x1000, gUnknown_83ACAF8, gUnknown_8462F44, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+ spr_template 0x1000, 0x1000, gUnknown_83ACAF8, gUnknown_8462F48, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+ spr_template 0x1000, 0x1000, gUnknown_83ACAF8, gUnknown_8462F4C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+gUnknown_8462F98::
+ .incbin "baserom.gba", 0x462F98, 0xC
+
+gUnknown_8462FA4::
+ .incbin "baserom.gba", 0x462FA4, 0x40
+
+gUnknown_8462FE4::
+ .incbin "baserom.gba", 0x462FE4, 0x3C
+
+gUnknown_8463020::
+ .4byte gUnknown_8462F98
+
+gUnknown_8463024::
+ .4byte gUnknown_8462FA4
+
+gUnknown_8463028::
+ .4byte gUnknown_8462FE4
gUnknown_846302C:: @ 846302C
- .incbin "baserom.gba", 0x46302C, 0x48
+ spr_template 0x1001, 0x1001, gUnknown_83AC9D8, gUnknown_8463020, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+ spr_template 0x1002, 0x1001, gUnknown_83AC9F8, gUnknown_8463024, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+ spr_template 0x1003, 0x1001, gUnknown_83AC9E8, gUnknown_8463028, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
gUnknown_8463074:: @ 8463074
.incbin "baserom.gba", 0x463074, 0x18
diff --git a/data/oak_speech/unk_84629D0.pal b/data/oak_speech/unk_84629D0.pal
new file mode 100644
index 000000000..4fb339128
--- /dev/null
+++ b/data/oak_speech/unk_84629D0.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+189 189 164
+65 139 131
+82 148 139
+106 164 156
+131 180 172
+156 197 189
+180 213 205
+205 230 222
+230 246 238
+0 0 0
+255 0 255
+139 189 164
+156 205 172
+180 222 197
+205 238 222
+115 172 156
diff --git a/data/oak_speech/unk_84629F0.pal b/data/oak_speech/unk_84629F0.pal
new file mode 100644
index 000000000..4d2e92c74
--- /dev/null
+++ b/data/oak_speech/unk_84629F0.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+205 205 180
+255 255 255
+255 246 106
+246 213 0
+238 172 0
+197 139 0
+131 82 0
+255 0 255
+255 0 255
+180 180 180
+255 74 74
+230 0 0
+180 0 0
+106 106 106
+16 16 16
+255 0 255
diff --git a/data/oak_speech/unk_8462A10.png b/data/oak_speech/unk_8462A10.png
new file mode 100644
index 000000000..324529e90
--- /dev/null
+++ b/data/oak_speech/unk_8462A10.png
Binary files differ
diff --git a/data/oak_speech/unk_8462B74.png b/data/oak_speech/unk_8462B74.png
new file mode 100644
index 000000000..674cef46d
--- /dev/null
+++ b/data/oak_speech/unk_8462B74.png
Binary files differ
diff --git a/data/oak_speech/unk_8462D34.png b/data/oak_speech/unk_8462D34.png
new file mode 100644
index 000000000..56715aadb
--- /dev/null
+++ b/data/oak_speech/unk_8462D34.png
Binary files differ
diff --git a/data/oak_speech/unk_8462E18.png b/data/oak_speech/unk_8462E18.png
new file mode 100644
index 000000000..f6796f724
--- /dev/null
+++ b/data/oak_speech/unk_8462E18.png
Binary files differ
diff --git a/src/oak_speech.c b/src/oak_speech.c
index 8cdfd2bb5..159a377cb 100644
--- a/src/oak_speech.c
+++ b/src/oak_speech.c
@@ -545,6 +545,12 @@ extern const struct WindowTemplate gUnknown_8462ED0;
extern const struct TextColor gUnknown_8462EE8;
extern const struct TextColor gUnknown_8462EEC;
extern const u8 *const gUnknown_8462EF0[];
+extern const struct CompressedSpriteSheet gUnknown_8462EFC[3];
+extern const struct CompressedSpriteSheet gUnknown_8462F14;
+extern const struct SpritePalette gUnknown_8462F1C;
+extern const struct SpritePalette gUnknown_8462F24;
+extern const struct SpriteTemplate gUnknown_8462F50[3];
+extern const struct SpriteTemplate gUnknown_846302C[3];
extern const u8 *const gUnknown_8463074[];
void sub_812E944(u8 a0, u8 a1, u8 a2, u8 a3, u8 a4, u8 a5)
@@ -1793,3 +1799,49 @@ static void CreateNidoranFSprite(u8 taskId)
gSprites[spriteId].invisible = TRUE;
gTasks[taskId].data[4] = spriteId;
}
+
+void sub_8130FB8(struct Sprite * sprite)
+{
+ sprite->pos2.y = gSprites[sprite->data[0]].animCmdIndex;
+}
+
+void sub_8130FD4(u8 taskId, u8 state)
+{
+ u8 spriteId;
+ u8 i = 0;
+
+ switch (state)
+ {
+ case 0:
+ LoadCompressedObjectPic(&gUnknown_8462EFC[0]);
+ LoadCompressedObjectPic(&gUnknown_8462EFC[1]);
+ LoadCompressedObjectPic(&gUnknown_8462EFC[2]);
+ LoadSpritePalette(&gUnknown_8462F1C);
+ spriteId = CreateSprite(&gUnknown_846302C[0], 0x10, 0x11, 2);
+ gSprites[spriteId].oam.priority = 0;
+ gTasks[taskId].data[7] = spriteId;
+ spriteId = CreateSprite(&gUnknown_846302C[1], 0x10, 0x09, 3);
+ gSprites[spriteId].oam.priority = 0;
+ gSprites[spriteId].data[0] = gTasks[taskId].data[7];
+ gSprites[spriteId].callback = sub_8130FB8;
+ gTasks[taskId].data[8] = spriteId;
+ spriteId = CreateSprite(&gUnknown_846302C[2], 0x18, 0x0D, 1);
+ gSprites[spriteId].oam.priority = 0;
+ gSprites[spriteId].data[0] = gTasks[taskId].data[7];
+ gSprites[spriteId].callback = sub_8130FB8;
+ gTasks[taskId].data[9] = spriteId;
+ break;
+ case 1:
+ LoadCompressedObjectPic(&gUnknown_8462F14);
+ LoadSpritePalette(&gUnknown_8462F24);
+ for (i = 0; i < 3; i++)
+ {
+ spriteId = CreateSprite(&gUnknown_8462F50[i], i * 32 + 88, 0x70, 1);
+ gSprites[spriteId].oam.priority = 2;
+ gSprites[spriteId].animPaused = TRUE;
+ gSprites[spriteId].coordOffsetEnabled = TRUE;
+ gTasks[taskId].data[7 + i] = spriteId;
+ }
+ break;
+ }
+}