summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/berry_blender.s1347
-rw-r--r--data/berry_blender.s4
-rw-r--r--ld_script.txt1
-rw-r--r--src/berry_blender.c903
-rw-r--r--sym_common.txt2
5 files changed, 1135 insertions, 1122 deletions
diff --git a/asm/berry_blender.s b/asm/berry_blender.s
index b6ee5f9f3..a6ef8fd38 100644
--- a/asm/berry_blender.s
+++ b/asm/berry_blender.s
@@ -6,899 +6,8 @@
.text
- thumb_func_start sub_804E290
-sub_804E290: @ 804E290
- push {lr}
- ldr r0, _0804E2B0 @ =gMPlay_SE2
- ldr r1, _0804E2B4 @ =0x0000ffff
- ldr r2, _0804E2B8 @ =gUnknown_03004854
- ldr r2, [r2]
- adds r2, 0x56
- movs r3, 0
- ldrsh r2, [r2, r3]
- subs r2, 0x80
- lsls r2, 17
- asrs r2, 16
- bl m4aMPlayPitchControl
- pop {r0}
- bx r0
- .align 2, 0
-_0804E2B0: .4byte gMPlay_SE2
-_0804E2B4: .4byte 0x0000ffff
-_0804E2B8: .4byte gUnknown_03004854
- thumb_func_end sub_804E290
- thumb_func_start sub_804E2BC
-sub_804E2BC: @ 804E2BC
- push {lr}
- bl sub_80514A4
- bl sub_80514F0
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_804E2BC
- thumb_func_start sub_804E2D8
-sub_804E2D8: @ 804E2D8
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_804E2D8
-
- thumb_func_start sub_804E2EC
-sub_804E2EC: @ 804E2EC
- push {r4-r7,lr}
- ldr r1, _0804E308 @ =gUnknown_03004854
- ldr r0, [r1]
- ldrb r0, [r0, 0x1]
- mov r12, r1
- cmp r0, 0x9
- bls _0804E2FC
- b _0804E4F4
-_0804E2FC:
- lsls r0, 2
- ldr r1, _0804E30C @ =_0804E310
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804E308: .4byte gUnknown_03004854
-_0804E30C: .4byte _0804E310
- .align 2, 0
-_0804E310:
- .4byte _0804E338
- .4byte _0804E34C
- .4byte _0804E380
- .4byte _0804E3C4
- .4byte _0804E3D8
- .4byte _0804E3EC
- .4byte _0804E410
- .4byte _0804E434
- .4byte _0804E48C
- .4byte _0804E4BC
-_0804E338:
- ldr r0, _0804E344 @ =gUnknown_08E6C100
- ldr r1, _0804E348 @ =0x02010000
- bl sub_800D238
- b _0804E49E
- .align 2, 0
-_0804E344: .4byte gUnknown_08E6C100
-_0804E348: .4byte 0x02010000
-_0804E34C:
- ldr r1, _0804E36C @ =gUnknown_08215C2C
- ldr r2, _0804E370 @ =0x06004000
- ldr r0, _0804E374 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0804E378 @ =0x80000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _0804E37C @ =gUnknown_08215C0C
- movs r2, 0x80
- lsls r2, 1
- movs r1, 0
- bl LoadPalette
- b _0804E49E
- .align 2, 0
-_0804E36C: .4byte gUnknown_08215C2C
-_0804E370: .4byte 0x06004000
-_0804E374: .4byte 0x040000d4
-_0804E378: .4byte 0x80000200
-_0804E37C: .4byte gUnknown_08215C0C
-_0804E380:
- ldr r3, _0804E3B8 @ =0x02010000
- movs r4, 0xC0
- lsls r4, 19
- movs r5, 0x80
- lsls r5, 6
- ldr r1, _0804E3BC @ =0x040000d4
- ldr r6, _0804E3C0 @ =0x80000800
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x80
- lsls r7, 24
-_0804E396:
- str r3, [r1]
- str r4, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r2
- adds r4, r2
- subs r5, r2
- cmp r5, r2
- bhi _0804E396
- str r3, [r1]
- str r4, [r1, 0x4]
- lsrs r0, r5, 1
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r0, r12
- b _0804E4A0
- .align 2, 0
-_0804E3B8: .4byte 0x02010000
-_0804E3BC: .4byte 0x040000d4
-_0804E3C0: .4byte 0x80000800
-_0804E3C4:
- ldr r0, _0804E3D0 @ =gUnknown_08E6C920
- ldr r1, _0804E3D4 @ =0x02010000
- bl sub_800D238
- b _0804E49E
- .align 2, 0
-_0804E3D0: .4byte gUnknown_08E6C920
-_0804E3D4: .4byte 0x02010000
-_0804E3D8:
- ldr r0, _0804E3E4 @ =gUnknown_08E6D354
- ldr r1, _0804E3E8 @ =0x02013000
- bl sub_800D238
- b _0804E49E
- .align 2, 0
-_0804E3E4: .4byte gUnknown_08E6D354
-_0804E3E8: .4byte 0x02013000
-_0804E3EC:
- ldr r1, _0804E400 @ =0x02010000
- ldr r2, _0804E404 @ =0x0600e000
- ldr r0, _0804E408 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0804E40C @ =0x80000800
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- mov r0, r12
- b _0804E4A0
- .align 2, 0
-_0804E400: .4byte 0x02010000
-_0804E404: .4byte 0x0600e000
-_0804E408: .4byte 0x040000d4
-_0804E40C: .4byte 0x80000800
-_0804E410:
- ldr r1, _0804E424 @ =0x02011000
- ldr r2, _0804E428 @ =0x0600f000
- ldr r0, _0804E42C @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0804E430 @ =0x80000800
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- mov r0, r12
- b _0804E4A0
- .align 2, 0
-_0804E424: .4byte 0x02011000
-_0804E428: .4byte 0x0600f000
-_0804E42C: .4byte 0x040000d4
-_0804E430: .4byte 0x80000800
-_0804E434:
- ldr r3, _0804E474 @ =0x02013000
- movs r2, 0
- adds r6, r3, 0
- ldr r7, _0804E478 @ =gUnknown_0821602C
- movs r0, 0x80
- lsls r0, 1
- adds r5, r0, 0
- ldr r4, _0804E47C @ =0x0000027f
-_0804E444:
- lsls r0, r2, 1
- adds r0, r3
- ldrh r1, [r0]
- orrs r1, r5
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r4
- bls _0804E444
- ldr r1, _0804E480 @ =0x06006000
- ldr r0, _0804E484 @ =0x040000d4
- str r6, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0804E488 @ =0x80000280
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- adds r0, r7, 0
- movs r1, 0x80
- movs r2, 0x20
- bl LoadPalette
- b _0804E49E
- .align 2, 0
-_0804E474: .4byte 0x02013000
-_0804E478: .4byte gUnknown_0821602C
-_0804E47C: .4byte 0x0000027f
-_0804E480: .4byte 0x06006000
-_0804E484: .4byte 0x040000d4
-_0804E488: .4byte 0x80000280
-_0804E48C:
- ldr r0, _0804E4AC @ =gUnknown_082163DC
- bl LoadSpriteSheet
- ldr r0, _0804E4B0 @ =gUnknown_082164F4
- bl LoadSpriteSheet
- ldr r0, _0804E4B4 @ =gUnknown_08216454
- bl LoadSpriteSheet
-_0804E49E:
- ldr r0, _0804E4B8 @ =gUnknown_03004854
-_0804E4A0:
- ldr r1, [r0]
- ldrb r0, [r1, 0x1]
- adds r0, 0x1
- strb r0, [r1, 0x1]
- b _0804E4F4
- .align 2, 0
-_0804E4AC: .4byte gUnknown_082163DC
-_0804E4B0: .4byte gUnknown_082164F4
-_0804E4B4: .4byte gUnknown_08216454
-_0804E4B8: .4byte gUnknown_03004854
-_0804E4BC:
- ldr r0, _0804E4E0 @ =gUnknown_08216540
- bl LoadSpriteSheet
- ldr r0, _0804E4E4 @ =gUnknown_08216574
- bl LoadSpriteSheet
- ldr r0, _0804E4E8 @ =gUnknown_082163EC
- bl LoadSpritePalette
- ldr r0, _0804E4EC @ =gUnknown_082163E4
- bl LoadSpritePalette
- ldr r0, _0804E4F0 @ =gUnknown_03004854
- ldr r1, [r0]
- movs r0, 0
- strb r0, [r1, 0x1]
- movs r0, 0x1
- b _0804E4F6
- .align 2, 0
-_0804E4E0: .4byte gUnknown_08216540
-_0804E4E4: .4byte gUnknown_08216574
-_0804E4E8: .4byte gUnknown_082163EC
-_0804E4EC: .4byte gUnknown_082163E4
-_0804E4F0: .4byte gUnknown_03004854
-_0804E4F4:
- movs r0, 0
-_0804E4F6:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_804E2EC
-
- thumb_func_start sub_804E4FC
-sub_804E4FC: @ 804E4FC
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _0804E52C @ =0x00001341
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0xC
- movs r2, 0x91
- lsls r2, 7
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _0804E530 @ =0x00000c0d
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0804E534 @ =REG_BG0HOFS
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0804E52C: .4byte 0x00001341
-_0804E530: .4byte 0x00000c0d
-_0804E534: .4byte REG_BG0HOFS
- thumb_func_end sub_804E4FC
-
- thumb_func_start sub_804E538
-sub_804E538: @ 804E538
- push {lr}
- ldr r1, _0804E55C @ =gUnknown_03004854
- ldr r0, _0804E560 @ =0x02018000
- str r0, [r1]
- adds r2, r0, 0
- adds r2, 0x6F
- movs r1, 0
- strb r1, [r0]
- strb r1, [r2]
- ldr r0, _0804E564 @ =gSpecialVar_0x8004
- ldrb r0, [r0]
- bl sub_804E884
- ldr r0, _0804E568 @ =sub_804E56C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0804E55C: .4byte gUnknown_03004854
-_0804E560: .4byte 0x02018000
-_0804E564: .4byte gSpecialVar_0x8004
-_0804E568: .4byte sub_804E56C
- thumb_func_end sub_804E538
-
- thumb_func_start sub_804E56C
-sub_804E56C: @ 804E56C
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r0, _0804E588 @ =gUnknown_03004854
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r0, 0x6
- bls _0804E57C
- b _0804E71A
-_0804E57C:
- lsls r0, 2
- ldr r1, _0804E58C @ =_0804E590
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804E588: .4byte gUnknown_03004854
-_0804E58C: .4byte _0804E590
- .align 2, 0
-_0804E590:
- .4byte _0804E5AC
- .4byte _0804E614
- .4byte _0804E67C
- .4byte _0804E692
- .4byte _0804E6A8
- .4byte _0804E6D4
- .4byte _0804E700
-_0804E5AC:
- movs r0, 0x80
- lsls r0, 19
- movs r5, 0
- strh r5, [r0]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- movs r0, 0
- bl SetVBlankCallback
- ldr r4, _0804E60C @ =gWindowConfig_81E6F68
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldr r3, _0804E610 @ =gUnknown_03004854
- ldr r2, [r3]
- ldrb r0, [r2]
- adds r0, 0x1
- movs r1, 0
- strb r0, [r2]
- ldr r2, [r3]
- movs r3, 0xA0
- lsls r3, 1
- adds r0, r2, r3
- strh r1, [r0]
- subs r3, 0x2
- adds r0, r2, r3
- strh r1, [r0]
- movs r0, 0xA1
- lsls r0, 1
- adds r3, r2, r0
- movs r0, 0x50
- strh r0, [r3]
- movs r3, 0xA2
- lsls r3, 1
- adds r0, r2, r3
- strh r1, [r0]
- adds r3, 0x2
- adds r0, r2, r3
- strh r1, [r0]
- strb r5, [r2, 0x1]
- bl sub_8051474
- b _0804E71A
- .align 2, 0
-_0804E60C: .4byte gWindowConfig_81E6F68
-_0804E610: .4byte gUnknown_03004854
-_0804E614:
- bl sub_804E2EC
- lsls r0, 24
- cmp r0, 0
- bne _0804E620
- b _0804E71A
-_0804E620:
- movs r4, 0
- ldr r5, _0804E668 @ =gUnknown_082162E4
- ldr r6, _0804E66C @ =gUnknown_03004854
-_0804E626:
- ldrb r1, [r5]
- ldrb r2, [r5, 0x1]
- ldr r0, _0804E670 @ =gSpriteTemplate_82163F4
- movs r3, 0x1
- bl CreateSprite
- ldr r1, [r6]
- adds r1, 0x5C
- adds r1, r4
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x5C
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0804E674 @ =gSprites
- adds r0, r1
- adds r1, r4, 0
- adds r1, 0x8
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnim
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0804E626
- ldr r0, _0804E678 @ =sub_804E2BC
- bl SetVBlankCallback
- b _0804E6BE
- .align 2, 0
-_0804E668: .4byte gUnknown_082162E4
-_0804E66C: .4byte gUnknown_03004854
-_0804E670: .4byte gSpriteTemplate_82163F4
-_0804E674: .4byte gSprites
-_0804E678: .4byte sub_804E2BC
-_0804E67C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- bl sub_8051474
- b _0804E6BE
-_0804E692:
- bl sub_804E4FC
- ldr r0, _0804E6A4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0804E71A
- b _0804E6BE
- .align 2, 0
-_0804E6A4: .4byte gPaletteFade
-_0804E6A8:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _0804E6CC @ =gOtherText_BlenderChooseBerry
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrintMessage
-_0804E6BE:
- ldr r0, _0804E6D0 @ =gUnknown_03004854
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0804E71A
- .align 2, 0
-_0804E6CC: .4byte gOtherText_BlenderChooseBerry
-_0804E6D0: .4byte gUnknown_03004854
-_0804E6D4:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _0804E71A
- ldr r0, _0804E6FC @ =gUnknown_03004854
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- movs r0, 0x1
- negs r0, r0
- str r2, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _0804E71A
- .align 2, 0
-_0804E6FC: .4byte gUnknown_03004854
-_0804E700:
- ldr r0, _0804E730 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0804E71A
- bl sub_80A6978
- ldr r0, _0804E734 @ =gUnknown_03004854
- ldr r0, [r0]
- strb r4, [r0]
-_0804E71A:
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E730: .4byte gPaletteFade
-_0804E734: .4byte gUnknown_03004854
- thumb_func_end sub_804E56C
-
- thumb_func_start sub_804E738
-sub_804E738: @ 804E738
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x30]
- adds r0, r1
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- subs r1, r2
- ldrh r0, [r4, 0x3C]
- adds r1, r0
- strh r1, [r4, 0x32]
- ldrh r3, [r4, 0x2E]
- adds r0, r3
- strh r0, [r4, 0x2E]
- subs r2, 0x1
- strh r2, [r4, 0x36]
- lsls r0, 16
- lsls r1, 16
- cmp r0, r1
- bge _0804E786
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x36]
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _0804E780
- adds r0, r4, 0
- bl DestroySprite
- b _0804E786
-_0804E780:
- movs r0, 0x74
- bl PlaySE
-_0804E786:
- ldrh r0, [r4, 0x30]
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x32]
- strh r0, [r4, 0x22]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_804E738
-
- thumb_func_start sub_804E794
-sub_804E794: @ 804E794
- push {r4-r6,lr}
- ldr r5, [sp, 0x10]
- ldr r6, [sp, 0x14]
- lsls r2, 16
- lsrs r2, 16
- movs r4, 0
- strh r2, [r0, 0x2E]
- strh r1, [r0, 0x30]
- strh r2, [r0, 0x32]
- strh r3, [r0, 0x34]
- movs r1, 0xA
- strh r1, [r0, 0x36]
- strh r4, [r0, 0x38]
- strh r5, [r0, 0x3A]
- strh r6, [r0, 0x3C]
- ldr r1, _0804E7BC @ =sub_804E738
- str r1, [r0, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E7BC: .4byte sub_804E738
- thumb_func_end sub_804E794
-
- thumb_func_start sub_804E7C0
-sub_804E7C0: @ 804E7C0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x8
- adds r6, r1, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r0, 24
- movs r1, 0xF6
- lsls r1, 23
- adds r0, r1
- lsrs r0, 24
- movs r3, 0x1
- ands r3, r6
- movs r1, 0
- movs r2, 0x50
- bl sub_80A7DEC
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- mov r8, r2
- add r8, r0
- mov r3, r8
- lsls r3, 2
- mov r8, r3
- ldr r0, _0804E83C @ =gSprites
- add r8, r0
- ldr r5, _0804E840 @ =gUnknown_08216594
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 1
- adds r0, r4, r5
- movs r6, 0
- ldrsh r1, [r0, r6]
- adds r0, r5, 0x2
- adds r0, r4, r0
- movs r3, 0
- ldrsh r2, [r0, r3]
- adds r0, r5, 0x4
- adds r0, r4, r0
- movs r6, 0
- ldrsh r3, [r0, r6]
- adds r0, r5, 0x6
- adds r0, r4, r0
- movs r6, 0
- ldrsh r0, [r0, r6]
- str r0, [sp]
- adds r5, 0x8
- adds r4, r5
- movs r5, 0
- ldrsh r0, [r4, r5]
- str r0, [sp, 0x4]
- mov r0, r8
- bl sub_804E794
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E83C: .4byte gSprites
-_0804E840: .4byte gUnknown_08216594
- thumb_func_end sub_804E7C0
-
- thumb_func_start sub_804E844
-sub_804E844: @ 804E844
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r5, r1, 16
- lsrs r5, 16
- adds r0, r5, 0
- adds r0, 0x7C
- lsls r0, 24
- lsrs r0, 24
- bl GetBerryInfo
- adds r4, r0, 0
- strh r5, [r6]
- adds r0, r6, 0x2
- adds r1, r4, 0
- bl StringCopy
- ldrb r0, [r4, 0x15]
- strb r0, [r6, 0x9]
- ldrb r0, [r4, 0x16]
- strb r0, [r6, 0xA]
- ldrb r0, [r4, 0x17]
- strb r0, [r6, 0xB]
- ldrb r0, [r4, 0x18]
- strb r0, [r6, 0xC]
- ldrb r0, [r4, 0x19]
- strb r0, [r6, 0xD]
- ldrb r0, [r4, 0x1A]
- strb r0, [r6, 0xE]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_804E844
-
- thumb_func_start sub_804E884
-sub_804E884: @ 804E884
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _0804E89E
- ldr r2, _0804E8AC @ =gLinkPlayers
- movs r3, 0x2
- adds r0, r2, 0
- adds r0, 0x54
-_0804E896:
- strh r3, [r0, 0x1A]
- subs r0, 0x1C
- cmp r0, r2
- bge _0804E896
-_0804E89E:
- cmp r1, 0x1
- beq _0804E8C4
- cmp r1, 0x1
- bgt _0804E8B0
- cmp r1, 0
- beq _0804E8BA
- b _0804E974
- .align 2, 0
-_0804E8AC: .4byte gLinkPlayers
-_0804E8B0:
- cmp r1, 0x2
- beq _0804E8F8
- cmp r1, 0x3
- beq _0804E93C
- b _0804E974
-_0804E8BA:
- ldr r0, _0804E8C0 @ =gUnknown_03004834
- strb r1, [r0]
- b _0804E974
- .align 2, 0
-_0804E8C0: .4byte gUnknown_03004834
-_0804E8C4:
- ldr r0, _0804E8E4 @ =gUnknown_03004834
- strb r1, [r0]
- ldr r0, _0804E8E8 @ =gUnknown_03004854
- ldr r0, [r0]
- adds r0, 0x88
- movs r1, 0x2
- strb r1, [r0]
- ldr r4, _0804E8EC @ =gLinkPlayers + 0x8
- ldr r1, _0804E8F0 @ =gSaveBlock2
- adds r0, r4, 0
- bl StringCopy
- adds r4, 0x1C
- ldr r0, _0804E8F4 @ =gUnknown_082162B8
- ldr r1, [r0]
- b _0804E920
- .align 2, 0
-_0804E8E4: .4byte gUnknown_03004834
-_0804E8E8: .4byte gUnknown_03004854
-_0804E8EC: .4byte gLinkPlayers + 0x8
-_0804E8F0: .4byte gSaveBlock2
-_0804E8F4: .4byte gUnknown_082162B8
-_0804E8F8:
- ldr r0, _0804E928 @ =gUnknown_03004834
- strb r1, [r0]
- ldr r0, _0804E92C @ =gUnknown_03004854
- ldr r0, [r0]
- adds r0, 0x88
- movs r1, 0x3
- strb r1, [r0]
- ldr r4, _0804E930 @ =gLinkPlayers + 0x8
- ldr r1, _0804E934 @ =gSaveBlock2
- adds r0, r4, 0
- bl StringCopy
- adds r0, r4, 0
- adds r0, 0x1C
- ldr r5, _0804E938 @ =gUnknown_082162B8
- ldr r1, [r5]
- bl StringCopy
- adds r4, 0x38
- ldr r1, [r5, 0x4]
-_0804E920:
- adds r0, r4, 0
- bl StringCopy
- b _0804E974
- .align 2, 0
-_0804E928: .4byte gUnknown_03004834
-_0804E92C: .4byte gUnknown_03004854
-_0804E930: .4byte gLinkPlayers + 0x8
-_0804E934: .4byte gSaveBlock2
-_0804E938: .4byte gUnknown_082162B8
-_0804E93C:
- ldr r0, _0804E97C @ =gUnknown_03004834
- strb r1, [r0]
- ldr r0, _0804E980 @ =gUnknown_03004854
- ldr r0, [r0]
- adds r0, 0x88
- movs r1, 0x4
- strb r1, [r0]
- ldr r4, _0804E984 @ =gLinkPlayers + 0x8
- ldr r1, _0804E988 @ =gSaveBlock2
- adds r0, r4, 0
- bl StringCopy
- adds r0, r4, 0
- adds r0, 0x1C
- ldr r5, _0804E98C @ =gUnknown_082162B8
- ldr r1, [r5]
- bl StringCopy
- adds r0, r4, 0
- adds r0, 0x38
- ldr r1, [r5, 0x4]
- bl StringCopy
- adds r4, 0x54
- ldr r1, [r5, 0x8]
- adds r0, r4, 0
- bl StringCopy
-_0804E974:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E97C: .4byte gUnknown_03004834
-_0804E980: .4byte gUnknown_03004854
-_0804E984: .4byte gLinkPlayers + 0x8
-_0804E988: .4byte gSaveBlock2
-_0804E98C: .4byte gUnknown_082162B8
- thumb_func_end sub_804E884
-
- thumb_func_start sub_804E990
-sub_804E990: @ 804E990
- push {r4,r5,lr}
- movs r0, 0x80
- lsls r0, 19
- movs r2, 0
- strh r2, [r0]
- ldr r3, _0804E9D8 @ =gUnknown_03004854
- ldr r0, _0804E9DC @ =0x02018000
- str r0, [r3]
- movs r1, 0
- strb r2, [r0]
- movs r2, 0x9A
- lsls r2, 1
- adds r0, r2
- str r1, [r0]
- movs r2, 0
- ldr r5, _0804E9E0 @ =gSpecialVar_0x8004
- adds r4, r3, 0
- movs r3, 0
-_0804E9B4:
- ldr r0, [r4]
- lsls r1, r2, 1
- adds r0, 0x80
- adds r0, r1
- strh r3, [r0]
- adds r2, 0x1
- cmp r2, 0x3
- ble _0804E9B4
- ldrb r0, [r5]
- bl sub_804E884
- ldrh r0, [r5]
- cmp r0, 0
- bne _0804E9E8
- ldr r0, _0804E9E4 @ =sub_804E9F8
- bl SetMainCallback2
- b _0804E9EE
- .align 2, 0
-_0804E9D8: .4byte gUnknown_03004854
-_0804E9DC: .4byte 0x02018000
-_0804E9E0: .4byte gSpecialVar_0x8004
-_0804E9E4: .4byte sub_804E9F8
-_0804E9E8:
- ldr r0, _0804E9F4 @ =sub_804F378
- bl SetMainCallback2
-_0804E9EE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E9F4: .4byte sub_804F378
- thumb_func_end sub_804E990
thumb_func_start sub_804E9F8
sub_804E9F8: @ 804E9F8
@@ -906,7 +15,7 @@ sub_804E9F8: @ 804E9F8
mov r7, r8
push {r7}
sub sp, 0x4
- ldr r1, _0804EA18 @ =gUnknown_03004854
+ ldr r1, _0804EA18 @ =sBerryBlenderData
ldr r0, [r1]
ldrb r0, [r0]
mov r8, r1
@@ -920,7 +29,7 @@ _0804EA0E:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_0804EA18: .4byte gUnknown_03004854
+_0804EA18: .4byte sBerryBlenderData
_0804EA1C: .4byte _0804EA20
.align 2, 0
_0804EA20:
@@ -1031,7 +140,7 @@ _0804EBBC:
bl ResetSpriteData
bl FreeAllSpritePalettes
bl ResetTasks
- ldr r0, _0804EC60 @ =sub_804E2BC
+ ldr r0, _0804EC60 @ =VBlankCB0_BerryBlender
bl SetVBlankCallback
ldr r4, _0804EC64 @ =gWindowConfig_81E6F68
adds r0, r4, 0
@@ -1042,7 +151,7 @@ _0804EBBC:
ldr r2, _0804EC6C @ =0x00004422
adds r0, r2, 0
strh r0, [r1]
- ldr r3, _0804EC70 @ =gUnknown_03004854
+ ldr r3, _0804EC70 @ =sBerryBlenderData
ldr r1, [r3]
ldrb r0, [r1]
adds r0, 0x1
@@ -1106,11 +215,11 @@ _0804EC2A:
strb r2, [r3, 0x1]
b _0804F0CE
.align 2, 0
-_0804EC60: .4byte sub_804E2BC
+_0804EC60: .4byte VBlankCB0_BerryBlender
_0804EC64: .4byte gWindowConfig_81E6F68
_0804EC68: .4byte gLinkType
_0804EC6C: .4byte 0x00004422
-_0804EC70: .4byte gUnknown_03004854
+_0804EC70: .4byte sBerryBlenderData
_0804EC74:
bl sub_804E2EC
lsls r0, 24
@@ -1118,7 +227,7 @@ _0804EC74:
bne _0804EC80
b _0804F0CE
_0804EC80:
- ldr r0, _0804EC90 @ =gUnknown_03004854
+ ldr r0, _0804EC90 @ =sBerryBlenderData
ldr r1, [r0]
ldrb r0, [r1]
adds r0, 0x1
@@ -1126,15 +235,15 @@ _0804EC80:
bl sub_8051474
b _0804F0CE
.align 2, 0
-_0804EC90: .4byte gUnknown_03004854
+_0804EC90: .4byte sBerryBlenderData
_0804EC94:
movs r5, 0
- ldr r4, _0804ECD8 @ =gUnknown_082162E4
- ldr r6, _0804ECDC @ =gUnknown_03004854
+ ldr r4, _0804ECD8 @ =sBlenderSyncArrowsPos
+ ldr r6, _0804ECDC @ =sBerryBlenderData
_0804EC9A:
ldrb r1, [r4]
ldrb r2, [r4, 0x1]
- ldr r0, _0804ECE0 @ =gSpriteTemplate_82163F4
+ ldr r0, _0804ECE0 @ =sBlenderSyncArrow_SpriteTemplate
movs r3, 0x1
bl CreateSprite
ldr r1, [r6]
@@ -1161,9 +270,9 @@ _0804EC9A:
ble _0804EC9A
b _0804F0AA
.align 2, 0
-_0804ECD8: .4byte gUnknown_082162E4
-_0804ECDC: .4byte gUnknown_03004854
-_0804ECE0: .4byte gSpriteTemplate_82163F4
+_0804ECD8: .4byte sBlenderSyncArrowsPos
+_0804ECDC: .4byte sBerryBlenderData
+_0804ECE0: .4byte sBlenderSyncArrow_SpriteTemplate
_0804ECE4: .4byte gSprites
_0804ECE8:
movs r0, 0x1
@@ -1197,7 +306,7 @@ _0804ED14:
movs r1, 0x1
movs r2, 0xE
bl MenuPrint
- ldr r2, _0804ED44 @ =gUnknown_03004854
+ ldr r2, _0804ED44 @ =sBerryBlenderData
ldr r1, [r2]
movs r3, 0
movs r0, 0x8
@@ -1210,7 +319,7 @@ _0804ED14:
b _0804F0CE
.align 2, 0
_0804ED40: .4byte gOtherText_LinkStandby3
-_0804ED44: .4byte gUnknown_03004854
+_0804ED44: .4byte sBerryBlenderData
_0804ED48:
mov r2, r8
ldr r1, [r2]
@@ -1229,7 +338,7 @@ _0804ED48:
adds r0, r4
ldr r1, _0804ED8C @ =gScriptItemId
ldrh r1, [r1]
- bl sub_804E844
+ bl Blender_CopyBerryData
ldr r0, _0804ED90 @ =gBlockSendBuffer
mov r2, r8
ldr r1, [r2]
@@ -1334,7 +443,7 @@ _0804EE30:
b _0804EE7A
_0804EE46:
bl GetLinkPlayerCount
- ldr r2, _0804EE98 @ =gUnknown_03004854
+ ldr r2, _0804EE98 @ =sBerryBlenderData
ldr r1, [r2]
adds r1, 0x88
strb r0, [r1]
@@ -1360,7 +469,7 @@ _0804EE6C:
cmp r5, 0x3
ble _0804EE6C
_0804EE7A:
- ldr r3, _0804EE98 @ =gUnknown_03004854
+ ldr r3, _0804EE98 @ =sBerryBlenderData
ldr r1, [r3]
movs r4, 0x98
lsls r4, 1
@@ -1376,7 +485,7 @@ _0804EE7A:
adds r1, r0
b _0804F0AE
.align 2, 0
-_0804EE98: .4byte gUnknown_03004854
+_0804EE98: .4byte sBerryBlenderData
_0804EE9C: .4byte gUnknown_082162EC
_0804EEA0:
mov r1, r8
@@ -1446,7 +555,7 @@ _0804EF16:
bne _0804EF22
b _0804F0CE
_0804EF22:
- ldr r2, _0804EF30 @ =gUnknown_03004854
+ ldr r2, _0804EF30 @ =sBerryBlenderData
ldr r1, [r2]
ldrb r0, [r1]
adds r0, 0x1
@@ -1454,7 +563,7 @@ _0804EF22:
ldr r0, [r2]
b _0804EFBC
.align 2, 0
-_0804EF30: .4byte gUnknown_03004854
+_0804EF30: .4byte sBerryBlenderData
_0804EF34:
movs r2, 0x80
lsls r2, 19
@@ -1539,7 +648,7 @@ _0804EFD8:
lsls r0, 24
cmp r0, 0
beq _0804EFF6
- ldr r0, _0804F008 @ =gUnknown_03004854
+ ldr r0, _0804F008 @ =sBerryBlenderData
ldr r1, [r0]
movs r3, 0x98
lsls r3, 1
@@ -1550,7 +659,7 @@ _0804EFD8:
adds r0, 0x1
strb r0, [r1]
_0804EFF6:
- ldr r0, _0804F008 @ =gUnknown_03004854
+ ldr r0, _0804F008 @ =sBerryBlenderData
ldr r0, [r0]
movs r4, 0xB4
lsls r4, 1
@@ -1558,7 +667,7 @@ _0804EFF6:
bl sub_8051414
b _0804F0CE
.align 2, 0
-_0804F008: .4byte gUnknown_03004854
+_0804F008: .4byte sBerryBlenderData
_0804F00C:
ldr r0, _0804F01C @ =gSpriteTemplate_8216548
movs r2, 0x10
@@ -1635,7 +744,7 @@ _0804F0A0:
cmp r0, 0
beq _0804F0CE
_0804F0AA:
- ldr r0, _0804F0B8 @ =gUnknown_03004854
+ ldr r0, _0804F0B8 @ =sBerryBlenderData
_0804F0AC:
ldr r1, [r0]
_0804F0AE:
@@ -1644,7 +753,7 @@ _0804F0AE:
strb r0, [r1]
b _0804F0CE
.align 2, 0
-_0804F0B8: .4byte gUnknown_03004854
+_0804F0B8: .4byte sBerryBlenderData
_0804F0BC:
ldr r0, _0804F0EC @ =gPaletteFade
ldrb r1, [r0, 0x7]
@@ -1680,7 +789,7 @@ sub_804F0F4: @ 804F0F4
bl ResetSpriteData
bl FreeAllSpritePalettes
bl ResetTasks
- ldr r0, _0804F158 @ =sub_804E2BC
+ ldr r0, _0804F158 @ =VBlankCB0_BerryBlender
bl SetVBlankCallback
ldr r4, _0804F15C @ =gWindowConfig_81E6F68
adds r0, r4, 0
@@ -1691,7 +800,7 @@ sub_804F0F4: @ 804F0F4
ldr r2, _0804F164 @ =0x00004422
adds r0, r2, 0
strh r0, [r1]
- ldr r0, _0804F168 @ =gUnknown_03004854
+ ldr r0, _0804F168 @ =sBerryBlenderData
ldr r2, [r0]
adds r0, r2, 0
adds r0, 0x4E
@@ -1717,11 +826,11 @@ sub_804F0F4: @ 804F0F4
pop {r0}
bx r0
.align 2, 0
-_0804F158: .4byte sub_804E2BC
+_0804F158: .4byte VBlankCB0_BerryBlender
_0804F15C: .4byte gWindowConfig_81E6F68
_0804F160: .4byte gLinkType
_0804F164: .4byte 0x00004422
-_0804F168: .4byte gUnknown_03004854
+_0804F168: .4byte sBerryBlenderData
thumb_func_end sub_804F0F4
thumb_func_start task_tutorial_oak_boy_girl
@@ -1732,7 +841,7 @@ task_tutorial_oak_boy_girl: @ 804F16C
lsrs r0, 24
adds r2, r0, 0
adds r2, 0x18
- ldr r0, _0804F1A8 @ =gUnknown_03004854
+ ldr r0, _0804F1A8 @ =sBerryBlenderData
ldr r0, [r0]
lsrs r1, 23
adds r0, 0xA2
@@ -1756,7 +865,7 @@ task_tutorial_oak_boy_girl: @ 804F16C
movs r0, 0x2
b _0804F1B6
.align 2, 0
-_0804F1A8: .4byte gUnknown_03004854
+_0804F1A8: .4byte sBerryBlenderData
_0804F1AC: .4byte gUnknown_08216303
_0804F1B0:
movs r0, 0x1
@@ -1843,7 +952,7 @@ _0804F234: .4byte gUnknown_082165BC
sub_804F238: @ 804F238
push {r4-r7,lr}
movs r4, 0
- ldr r7, _0804F2A0 @ =gUnknown_03004854
+ ldr r7, _0804F2A0 @ =sBerryBlenderData
movs r6, 0xFF
ldr r5, _0804F2A4 @ =gUnknown_082162EC
_0804F242:
@@ -1869,7 +978,7 @@ _0804F242:
cmp r4, 0x3
ble _0804F242
movs r3, 0
- ldr r7, _0804F2A0 @ =gUnknown_03004854
+ ldr r7, _0804F2A0 @ =sBerryBlenderData
_0804F270:
movs r4, 0
adds r6, r3, 0x1
@@ -1898,7 +1007,7 @@ _0804F28E:
pop {r0}
bx r0
.align 2, 0
-_0804F2A0: .4byte gUnknown_03004854
+_0804F2A0: .4byte sBerryBlenderData
_0804F2A4: .4byte gUnknown_082162EC
thumb_func_end sub_804F238
@@ -1908,7 +1017,7 @@ BuyMenuDrawFieldObjects: @ 804F2A8
mov r7, r8
push {r7}
movs r6, 0
- ldr r7, _0804F360 @ =gUnknown_03004854
+ ldr r7, _0804F360 @ =sBerryBlenderData
ldr r0, _0804F364 @ =gUnknown_082162D4
mov r8, r0
_0804F2B6:
@@ -1994,7 +1103,7 @@ _0804F34A:
pop {r0}
bx r0
.align 2, 0
-_0804F360: .4byte gUnknown_03004854
+_0804F360: .4byte sBerryBlenderData
_0804F364: .4byte gUnknown_082162D4
_0804F368: .4byte gStringVar1
_0804F36C: .4byte gSprites
@@ -2008,7 +1117,7 @@ sub_804F378: @ 804F378
mov r7, r8
push {r7}
sub sp, 0x4
- ldr r1, _0804F398 @ =gUnknown_03004854
+ ldr r1, _0804F398 @ =sBerryBlenderData
ldr r0, [r1]
ldrb r0, [r0]
mov r8, r1
@@ -2022,7 +1131,7 @@ _0804F38E:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_0804F398: .4byte gUnknown_03004854
+_0804F398: .4byte sBerryBlenderData
_0804F39C: .4byte _0804F3A0
.align 2, 0
_0804F3A0:
@@ -2054,13 +1163,13 @@ _0804F3F8:
ldrh r1, [r4]
movs r0, 0
bl sub_80516C4
- ldr r5, _0804F470 @ =gUnknown_03004854
+ ldr r5, _0804F470 @ =sBerryBlenderData
ldr r0, [r5]
movs r6, 0xBE
lsls r6, 1
adds r0, r6
ldrh r1, [r4]
- bl sub_804E844
+ bl Blender_CopyBerryData
ldrh r0, [r4]
ldr r2, [r5]
adds r1, r2, 0
@@ -2106,7 +1215,7 @@ _0804F442:
b _0804F7E6
.align 2, 0
_0804F46C: .4byte gScriptItemId
-_0804F470: .4byte gUnknown_03004854
+_0804F470: .4byte sBerryBlenderData
_0804F474:
bl sub_804E2EC
lsls r0, 24
@@ -2114,7 +1223,7 @@ _0804F474:
bne _0804F480
b _0804F7E6
_0804F480:
- ldr r0, _0804F490 @ =gUnknown_03004854
+ ldr r0, _0804F490 @ =sBerryBlenderData
ldr r1, [r0]
ldrb r0, [r1]
adds r0, 0x1
@@ -2122,15 +1231,15 @@ _0804F480:
bl sub_8051474
b _0804F7E6
.align 2, 0
-_0804F490: .4byte gUnknown_03004854
+_0804F490: .4byte sBerryBlenderData
_0804F494:
movs r4, 0
- ldr r5, _0804F4DC @ =gUnknown_082162E4
- ldr r6, _0804F4E0 @ =gUnknown_03004854
+ ldr r5, _0804F4DC @ =sBlenderSyncArrowsPos
+ ldr r6, _0804F4E0 @ =sBerryBlenderData
_0804F49A:
ldrb r1, [r5]
ldrb r2, [r5, 0x1]
- ldr r0, _0804F4E4 @ =gSpriteTemplate_82163F4
+ ldr r0, _0804F4E4 @ =sBlenderSyncArrow_SpriteTemplate
movs r3, 0x1
bl CreateSprite
ldr r1, [r6]
@@ -2155,13 +1264,13 @@ _0804F49A:
adds r4, 0x1
cmp r4, 0x3
ble _0804F49A
- ldr r0, _0804F4E0 @ =gUnknown_03004854
+ ldr r0, _0804F4E0 @ =sBerryBlenderData
ldr r1, [r0]
b _0804F74C
.align 2, 0
-_0804F4DC: .4byte gUnknown_082162E4
-_0804F4E0: .4byte gUnknown_03004854
-_0804F4E4: .4byte gSpriteTemplate_82163F4
+_0804F4DC: .4byte sBlenderSyncArrowsPos
+_0804F4E0: .4byte sBerryBlenderData
+_0804F4E4: .4byte sBlenderSyncArrow_SpriteTemplate
_0804F4E8: .4byte gSprites
_0804F4EC:
movs r0, 0x1
@@ -2172,7 +1281,7 @@ _0804F4EC:
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
- ldr r2, _0804F514 @ =gUnknown_03004854
+ ldr r2, _0804F514 @ =sBerryBlenderData
ldr r1, [r2]
ldrb r0, [r1]
adds r0, 0x1
@@ -2184,7 +1293,7 @@ _0804F4EC:
str r4, [r0]
b _0804F7E6
.align 2, 0
-_0804F514: .4byte gUnknown_03004854
+_0804F514: .4byte sBerryBlenderData
_0804F518:
mov r2, r8
ldr r1, [r2]
@@ -2239,7 +1348,7 @@ _0804F564:
_0804F578:
movs r4, 0
ldr r2, _0804F5C0 @ =gUnknown_082162EC
- ldr r0, _0804F5C4 @ =gUnknown_03004854
+ ldr r0, _0804F5C4 @ =sBerryBlenderData
ldr r3, [r0]
adds r0, r3, 0
adds r0, 0x88
@@ -2260,7 +1369,7 @@ _0804F594:
cmp r4, 0x3
ble _0804F594
_0804F5A2:
- ldr r3, _0804F5C4 @ =gUnknown_03004854
+ ldr r3, _0804F5C4 @ =sBerryBlenderData
ldr r1, [r3]
movs r5, 0x98
lsls r5, 1
@@ -2277,7 +1386,7 @@ _0804F5A2:
b _0804F74C
.align 2, 0
_0804F5C0: .4byte gUnknown_082162EC
-_0804F5C4: .4byte gUnknown_03004854
+_0804F5C4: .4byte sBerryBlenderData
_0804F5C8:
mov r1, r8
ldr r3, [r1]
@@ -2431,13 +1540,13 @@ _0804F6F8:
lsls r0, 24
cmp r0, 0
beq _0804F70C
- ldr r0, _0804F71C @ =gUnknown_03004854
+ ldr r0, _0804F71C @ =sBerryBlenderData
ldr r1, [r0]
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
_0804F70C:
- ldr r0, _0804F71C @ =gUnknown_03004854
+ ldr r0, _0804F71C @ =sBerryBlenderData
ldr r0, [r0]
_0804F710:
movs r3, 0xB4
@@ -2446,7 +1555,7 @@ _0804F710:
bl sub_8051414
b _0804F7E6
.align 2, 0
-_0804F71C: .4byte gUnknown_03004854
+_0804F71C: .4byte sBerryBlenderData
_0804F720:
ldr r0, _0804F734 @ =gSpriteTemplate_8216548
movs r2, 0x10
@@ -2454,12 +1563,12 @@ _0804F720:
movs r1, 0x78
movs r3, 0x3
bl CreateSprite
- ldr r0, _0804F738 @ =gUnknown_03004854
+ ldr r0, _0804F738 @ =sBerryBlenderData
ldr r1, [r0]
b _0804F74C
.align 2, 0
_0804F734: .4byte gSpriteTemplate_8216548
-_0804F738: .4byte gUnknown_03004854
+_0804F738: .4byte sBerryBlenderData
_0804F73C:
mov r5, r8
ldr r1, [r5]
@@ -2478,7 +1587,7 @@ _0804F74C:
b _0804F7E6
_0804F754:
bl sub_804F81C
- ldr r3, _0804F804 @ =gUnknown_03004854
+ ldr r3, _0804F804 @ =sBerryBlenderData
ldr r4, [r3]
adds r5, r4, 0
adds r5, 0x56
@@ -2510,7 +1619,7 @@ _0804F792:
ldm r6!, {r0}
lsrs r1, r5, 24
bl CreateTask
- ldr r1, _0804F804 @ =gUnknown_03004854
+ ldr r1, _0804F804 @ =sBerryBlenderData
ldr r1, [r1]
movs r2, 0xA4
lsls r2, 1
@@ -2533,7 +1642,7 @@ _0804F7B8:
cmp r0, r4
beq _0804F7D6
bl GetCurrentMapMusic
- ldr r1, _0804F804 @ =gUnknown_03004854
+ ldr r1, _0804F804 @ =sBerryBlenderData
ldr r1, [r1]
movs r5, 0xBC
lsls r5, 1
@@ -2544,7 +1653,7 @@ _0804F7D6:
bl PlayBGM
movs r0, 0x35
bl PlaySE
- bl sub_804E290
+ bl Blender_ControlHitPitch
_0804F7E6:
bl RunTasks
bl AnimateSprites
@@ -2557,7 +1666,7 @@ _0804F7E6:
pop {r0}
bx r0
.align 2, 0
-_0804F804: .4byte gUnknown_03004854
+_0804F804: .4byte sBerryBlenderData
_0804F808: .4byte 0x0000014b
_0804F80C: .4byte sub_80501FC
_0804F810: .4byte gSpecialVar_0x8004
@@ -2661,7 +1770,7 @@ sub_804F8C8: @ 804F8C8
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
- ldr r4, _0804F934 @ =gUnknown_03004854
+ ldr r4, _0804F934 @ =sBerryBlenderData
ldr r0, [r4]
adds r0, 0x54
ldrh r0, [r0]
@@ -2712,7 +1821,7 @@ _0804F8FC:
ldr r0, _0804F94C @ =0x00004523
b _0804F954
.align 2, 0
-_0804F934: .4byte gUnknown_03004854
+_0804F934: .4byte sBerryBlenderData
_0804F938: .4byte gTasks
_0804F93C: .4byte 0x0000014b
_0804F940: .4byte 0x0000028f
@@ -2813,7 +1922,7 @@ sub_804F9F4: @ 804F9F4
push {r4-r6,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r6, _0804FA78 @ =gUnknown_03004854
+ ldr r6, _0804FA78 @ =sBerryBlenderData
ldr r3, [r6]
adds r0, r3, 0
adds r0, 0x54
@@ -2874,7 +1983,7 @@ sub_804F9F4: @ 804F9F4
strh r0, [r1, 0x14]
b _0804FAD4
.align 2, 0
-_0804FA78: .4byte gUnknown_03004854
+_0804FA78: .4byte sBerryBlenderData
_0804FA7C: .4byte 0x0000ffff
_0804FA80: .4byte gUnknown_08216303
_0804FA84: .4byte gTasks
@@ -2957,7 +2066,7 @@ sub_804FB1C: @ 804FB1C
push {r4-r6,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r5, _0804FB9C @ =gUnknown_03004854
+ ldr r5, _0804FB9C @ =sBerryBlenderData
ldr r3, [r5]
adds r0, r3, 0
adds r0, 0x54
@@ -3017,7 +2126,7 @@ sub_804FB1C: @ 804FB1C
strh r0, [r1, 0x16]
b _0804FC02
.align 2, 0
-_0804FB9C: .4byte gUnknown_03004854
+_0804FB9C: .4byte sBerryBlenderData
_0804FBA0: .4byte 0x0000ffff
_0804FBA4: .4byte gUnknown_08216303
_0804FBA8: .4byte gTasks
@@ -3108,7 +2217,7 @@ sub_804FC48: @ 804FC48
mov r8, r7
lsls r1, 24
ldr r0, _0804FCBC @ =gSpriteTemplate_821645C
- ldr r4, _0804FCC0 @ =gUnknown_082162E4
+ ldr r4, _0804FCC0 @ =sBlenderSyncArrowsPos
lsrs r1, 23
adds r2, r1, r4
ldrb r6, [r2]
@@ -3156,7 +2265,7 @@ sub_804FC48: @ 804FC48
b _0804FD18
.align 2, 0
_0804FCBC: .4byte gSpriteTemplate_821645C
-_0804FCC0: .4byte gUnknown_082162E4
+_0804FCC0: .4byte sBlenderSyncArrowsPos
_0804FCC4: .4byte gUnknown_082162CC
_0804FCC8: .4byte 0x00004523
_0804FCCC: .4byte gSprites
@@ -3209,7 +2318,7 @@ sub_804FD30: @ 804FD30
lsls r0, 16
lsrs r4, r0, 16
adds r5, r4, 0
- bl sub_804E290
+ bl Blender_ControlHitPitch
ldr r0, _0804FD50 @ =0x00004523
cmp r4, r0
beq _0804FD64
@@ -3230,7 +2339,7 @@ _0804FD58:
.align 2, 0
_0804FD60: .4byte 0x00005432
_0804FD64:
- ldr r7, _0804FD94 @ =gUnknown_03004854
+ ldr r7, _0804FD94 @ =sBerryBlenderData
ldr r4, [r7]
adds r5, r4, 0
adds r5, 0x56
@@ -3253,7 +2362,7 @@ _0804FD64:
strh r0, [r5]
b _0804FE60
.align 2, 0
-_0804FD94: .4byte gUnknown_03004854
+_0804FD94: .4byte sBerryBlenderData
_0804FD98: .4byte 0x000005db
_0804FD9C: .4byte gUnknown_082165DA
_0804FDA0:
@@ -3299,7 +2408,7 @@ _0804FDA0:
.align 2, 0
_0804FDF8: .4byte gUnknown_082165DA
_0804FDFC:
- ldr r0, _0804FE28 @ =gUnknown_03004854
+ ldr r0, _0804FE28 @ =sBerryBlenderData
ldr r2, [r0]
adds r4, r2, 0
adds r4, 0x56
@@ -3321,11 +2430,11 @@ _0804FDFC:
adds r0, r5, r0
b _0804FE5E
.align 2, 0
-_0804FE28: .4byte gUnknown_03004854
+_0804FE28: .4byte sBerryBlenderData
_0804FE2C: .4byte 0x000005db
_0804FE30: .4byte gUnknown_082165DA
_0804FE34:
- ldr r0, _0804FE68 @ =gUnknown_03004854
+ ldr r0, _0804FE68 @ =sBerryBlenderData
ldr r0, [r0]
adds r4, r0, 0
adds r4, 0x56
@@ -3352,7 +2461,7 @@ _0804FE60:
pop {r0}
bx r0
.align 2, 0
-_0804FE68: .4byte gUnknown_03004854
+_0804FE68: .4byte sBerryBlenderData
_0804FE6C: .4byte gUnknown_082165DA
thumb_func_end sub_804FD30
@@ -3398,7 +2507,7 @@ _0804FEAC:
bge _0804FEA4
_0804FEB6:
movs r6, 0
- ldr r7, _0804FF50 @ =gUnknown_03004854
+ ldr r7, _0804FF50 @ =sBerryBlenderData
adds r1, r7, 0
ldr r0, [r1]
adds r0, 0x88
@@ -3472,7 +2581,7 @@ _0804FF40: .4byte gSpecialVar_0x8004
_0804FF44: .4byte gSendCmd
_0804FF48: .4byte gRecvCmds
_0804FF4C: .4byte 0x00004444
-_0804FF50: .4byte gUnknown_03004854
+_0804FF50: .4byte sBerryBlenderData
_0804FF54: .4byte 0x00005432
_0804FF58: .4byte 0x00004523
_0804FF5C: .4byte 0x03e70000
@@ -3543,7 +2652,7 @@ _0804FFD6:
cmp r0, r10
bne _0805003E
_0804FFE4:
- ldr r0, _08050024 @ =gUnknown_03004854
+ ldr r0, _08050024 @ =sBerryBlenderData
ldr r0, [r0]
adds r2, r0, 0
adds r2, 0x56
@@ -3570,7 +2679,7 @@ _0804FFE4:
_08050018: .4byte 0x00002345
_0805001C: .4byte 0x000003e6
_08050020: .4byte 0x00004523
-_08050024: .4byte gUnknown_03004854
+_08050024: .4byte sBerryBlenderData
_08050028: .4byte 0x000005dc
_0805002C: .4byte 0xfffffd12
_08050030: .4byte gMPlay_BGM
@@ -3588,7 +2697,7 @@ _0805003E:
movs r0, 0x2
add r8, r0
adds r6, 0x1
- ldr r7, _0805009C @ =gUnknown_03004854
+ ldr r7, _0805009C @ =sBerryBlenderData
ldr r0, [r7]
adds r0, 0x88
ldrb r0, [r0]
@@ -3601,7 +2710,7 @@ _0805005C:
cmp r0, 0
beq _08050088
movs r6, 0
- ldr r3, _0805009C @ =gUnknown_03004854
+ ldr r3, _0805009C @ =sBerryBlenderData
ldr r0, [r3]
adds r0, 0x88
ldrb r0, [r0]
@@ -3630,7 +2739,7 @@ _08050088:
bx r0
.align 2, 0
_08050098: .4byte gMPlay_BGM
-_0805009C: .4byte gUnknown_03004854
+_0805009C: .4byte sBerryBlenderData
_080500A0: .4byte gSpecialVar_0x8004
_080500A4: .4byte gRecvCmds
thumb_func_end sub_804FE70
@@ -3639,7 +2748,7 @@ _080500A4: .4byte gRecvCmds
sub_80500A8: @ 80500A8
push {r4-r6,lr}
movs r6, 0
- ldr r5, _080500EC @ =gUnknown_03004854
+ ldr r5, _080500EC @ =sBerryBlenderData
ldr r4, [r5]
bl GetMultiplayerId
lsls r0, 24
@@ -3670,7 +2779,7 @@ sub_80500A8: @ 80500A8
lsrs r6, r0, 31
b _0805010A
.align 2, 0
-_080500EC: .4byte gUnknown_03004854
+_080500EC: .4byte sBerryBlenderData
_080500F0: .4byte gSaveBlock2
_080500F4: .4byte gMain
_080500F8: .4byte 0x00000201
@@ -3685,7 +2794,7 @@ _080500FC:
_0805010A:
cmp r6, 0
beq _0805018A
- ldr r4, _08050160 @ =gUnknown_03004854
+ ldr r4, _08050160 @ =sBerryBlenderData
ldr r1, [r4]
lsls r2, r3, 1
adds r0, r1, 0
@@ -3722,7 +2831,7 @@ _0805010A:
b _08050188
.align 2, 0
_0805015C: .4byte gMain
-_08050160: .4byte gUnknown_03004854
+_08050160: .4byte sBerryBlenderData
_08050164: .4byte gSprites
_08050168: .4byte gSendCmd
_0805016C: .4byte 0x00004523
@@ -3741,7 +2850,7 @@ _08050184:
_08050188:
strh r0, [r1, 0x4]
_0805018A:
- ldr r2, _080501EC @ =gUnknown_03004854
+ ldr r2, _080501EC @ =sBerryBlenderData
ldr r1, [r2]
adds r1, 0x7E
ldrb r0, [r1]
@@ -3792,7 +2901,7 @@ _080501DE:
.align 2, 0
_080501E4: .4byte gSendCmd
_080501E8: .4byte 0x00002345
-_080501EC: .4byte gUnknown_03004854
+_080501EC: .4byte sBerryBlenderData
_080501F0: .4byte gUnknown_020297ED
_080501F4: .4byte gMain
_080501F8: .4byte 0x0000014b
@@ -3802,7 +2911,7 @@ _080501F8: .4byte 0x0000014b
sub_80501FC: @ 80501FC
push {r4-r6,lr}
bl sub_8051474
- ldr r4, _08050294 @ =gUnknown_03004854
+ ldr r4, _08050294 @ =sBerryBlenderData
ldr r0, [r4]
movs r1, 0x96
lsls r1, 1
@@ -3866,7 +2975,7 @@ _0805027E:
pop {r0}
bx r0
.align 2, 0
-_08050294: .4byte gUnknown_03004854
+_08050294: .4byte sBerryBlenderData
_08050298: .4byte 0x00057e03
_0805029C: .4byte 0x000003e7
_080502A0: .4byte sub_8050954
@@ -4552,7 +3661,7 @@ sub_8050744: @ 8050744
thumb_func_start sub_8050760
sub_8050760: @ 8050760
push {r4-r6,lr}
- ldr r0, _08050780 @ =gUnknown_03004854
+ ldr r0, _08050780 @ =sBerryBlenderData
ldr r0, [r0]
movs r2, 0x96
lsls r2, 1
@@ -4567,7 +3676,7 @@ sub_8050760: @ 8050760
movs r2, 0x5
b _080507DA
.align 2, 0
-_08050780: .4byte gUnknown_03004854
+_08050780: .4byte sBerryBlenderData
_08050784: .4byte 0x00000383
_08050788:
ldr r3, _0805079C @ =0xfffffc7c
@@ -4743,7 +3852,7 @@ _080508D0: .4byte 0x0000fff6
thumb_func_start sub_80508D4
sub_80508D4: @ 80508D4
push {lr}
- ldr r2, _080508F8 @ =gUnknown_03004854
+ ldr r2, _080508F8 @ =sBerryBlenderData
ldr r1, [r2]
adds r1, 0xAA
strb r0, [r1]
@@ -4760,14 +3869,14 @@ sub_80508D4: @ 80508D4
pop {r0}
bx r0
.align 2, 0
-_080508F8: .4byte gUnknown_03004854
+_080508F8: .4byte sBerryBlenderData
thumb_func_end sub_80508D4
thumb_func_start sub_80508FC
sub_80508FC: @ 80508FC
push {r4,lr}
sub sp, 0x4
- ldr r4, _08050944 @ =gUnknown_03004854
+ ldr r4, _08050944 @ =sBerryBlenderData
ldr r0, [r4]
adds r0, 0xAA
movs r1, 0
@@ -4797,7 +3906,7 @@ sub_80508FC: @ 80508FC
pop {r0}
bx r0
.align 2, 0
-_08050944: .4byte gUnknown_03004854
+_08050944: .4byte sBerryBlenderData
_08050948: .4byte 0x0000ffff
_0805094C: .4byte 0x00002d9f
_08050950: .4byte gOtherText_YesNoTerminating
@@ -4808,7 +3917,7 @@ sub_8050954: @ 8050954
push {r4-r7,lr}
bl sub_8051474
bl GetMultiplayerId
- ldr r0, _08050978 @ =gUnknown_03004854
+ ldr r0, _08050978 @ =sBerryBlenderData
ldr r0, [r0]
adds r0, 0x6F
ldrb r0, [r0]
@@ -4823,7 +3932,7 @@ _0805096E:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08050978: .4byte gUnknown_03004854
+_08050978: .4byte sBerryBlenderData
_0805097C: .4byte _08050980
.align 2, 0
_08050980:
@@ -4851,7 +3960,7 @@ _080509B4:
.align 2, 0
_080509C8: .4byte gMPlay_BGM
_080509CC:
- ldr r0, _080509F0 @ =gUnknown_03004854
+ ldr r0, _080509F0 @ =sBerryBlenderData
ldr r0, [r0]
movs r1, 0xA4
lsls r1, 1
@@ -4869,10 +3978,10 @@ _080509E4:
bcc _080509CC
b _08050C82
.align 2, 0
-_080509F0: .4byte gUnknown_03004854
+_080509F0: .4byte sBerryBlenderData
_080509F4: .4byte gSpecialVar_0x8004
_080509F8:
- ldr r1, _08050A24 @ =gUnknown_03004854
+ ldr r1, _08050A24 @ =sBerryBlenderData
ldr r3, [r1]
adds r2, r3, 0
adds r2, 0x56
@@ -4895,7 +4004,7 @@ _080509F8:
adds r0, 0x1
b _08050A32
.align 2, 0
-_08050A24: .4byte gUnknown_03004854
+_08050A24: .4byte sBerryBlenderData
_08050A28: .4byte gReceivedRemoteLinkPlayers
_08050A2C:
adds r1, r3, 0
@@ -4909,7 +4018,7 @@ _08050A32:
ldr r0, _08050A48 @ =gMPlay_SE2
bl m4aMPlayStop
_08050A40:
- bl sub_804E290
+ bl Blender_ControlHitPitch
b _08050CB6
.align 2, 0
_08050A48: .4byte gMPlay_SE2
@@ -4926,7 +4035,7 @@ _08050A58:
bne _08050A64
b _08050CB6
_08050A64:
- ldr r4, _08050A90 @ =gUnknown_03004854
+ ldr r4, _08050A90 @ =sBerryBlenderData
ldr r3, [r4]
movs r2, 0xDE
lsls r2, 1
@@ -4948,7 +4057,7 @@ _08050A64:
ldr r1, [r4]
b _08050C86
.align 2, 0
-_08050A90: .4byte gUnknown_03004854
+_08050A90: .4byte sBerryBlenderData
_08050A94:
bl GetBlockReceivedStatus
lsls r0, 24
@@ -4957,7 +4066,7 @@ _08050A94:
b _08050CB6
_08050AA0:
ldr r2, _08050AC8 @ =gBlockRecvBuffer
- ldr r0, _08050ACC @ =gUnknown_03004854
+ ldr r0, _08050ACC @ =sBerryBlenderData
ldr r3, [r0]
ldrh r0, [r2, 0x4]
adds r1, r3, 0
@@ -4977,7 +4086,7 @@ _08050AA0:
b _08050CB6
.align 2, 0
_08050AC8: .4byte gBlockRecvBuffer
-_08050ACC: .4byte gUnknown_03004854
+_08050ACC: .4byte sBerryBlenderData
_08050AD0:
bl sub_8052228
lsls r0, 24
@@ -5007,7 +4116,7 @@ _08050B00:
bl IncrementGameStat
b _08050C82
_08050B08:
- ldr r0, _08050B2C @ =gUnknown_03004854
+ ldr r0, _08050B2C @ =sBerryBlenderData
ldr r1, [r0]
adds r1, 0x6F
ldrb r0, [r1]
@@ -5024,7 +4133,7 @@ _08050B08:
bl MenuPrintMessage
b _08050CB6
.align 2, 0
-_08050B2C: .4byte gUnknown_03004854
+_08050B2C: .4byte sBerryBlenderData
_08050B30: .4byte gOtherText_BlendAnotherBerryPrompt
_08050B34:
bl MenuUpdateWindowText
@@ -5035,7 +4144,7 @@ _08050B34:
_08050B40:
b _08050C82
_08050B42:
- ldr r4, _08050B54 @ =gUnknown_03004854
+ ldr r4, _08050B54 @ =sBerryBlenderData
ldr r0, [r4]
adds r0, 0xAA
movs r1, 0
@@ -5044,7 +4153,7 @@ _08050B42:
ldr r1, [r4]
b _08050C86
.align 2, 0
-_08050B54: .4byte gUnknown_03004854
+_08050B54: .4byte sBerryBlenderData
_08050B58:
ldr r0, _08050B80 @ =gMain
ldrh r1, [r0, 0x2E]
@@ -5052,7 +4161,7 @@ _08050B58:
ands r0, r1
cmp r0, 0
beq _08050B88
- ldr r0, _08050B84 @ =gUnknown_03004854
+ ldr r0, _08050B84 @ =sBerryBlenderData
ldr r0, [r0]
adds r0, 0xAA
ldrb r0, [r0]
@@ -5066,13 +4175,13 @@ _08050B76:
b _08050CB6
.align 2, 0
_08050B80: .4byte gMain
-_08050B84: .4byte gUnknown_03004854
+_08050B84: .4byte sBerryBlenderData
_08050B88:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _08050BA8
- ldr r0, _08050BA4 @ =gUnknown_03004854
+ ldr r0, _08050BA4 @ =sBerryBlenderData
ldr r0, [r0]
adds r0, 0xAA
ldrb r0, [r0]
@@ -5082,7 +4191,7 @@ _08050B88:
bl PlaySE
b _08050BD4
.align 2, 0
-_08050BA4: .4byte gUnknown_03004854
+_08050BA4: .4byte sBerryBlenderData
_08050BA8:
movs r0, 0x1
ands r0, r1
@@ -5100,7 +4209,7 @@ _08050BB8:
_08050BC2:
movs r0, 0x5
bl PlaySE
- ldr r0, _08050BDC @ =gUnknown_03004854
+ ldr r0, _08050BDC @ =sBerryBlenderData
ldr r1, [r0]
adds r1, 0x6F
ldrb r0, [r1]
@@ -5111,13 +4220,13 @@ _08050BD4:
bl sub_80508D4
b _08050CB6
.align 2, 0
-_08050BDC: .4byte gUnknown_03004854
+_08050BDC: .4byte sBerryBlenderData
_08050BE0:
ldr r6, _08050C10 @ =gSendCmd
movs r7, 0
ldr r0, _08050C14 @ =0x00002fff
strh r0, [r6]
- ldr r4, _08050C18 @ =gUnknown_03004854
+ ldr r4, _08050C18 @ =sBerryBlenderData
ldr r2, [r4]
adds r0, r2, 0
adds r0, 0xAA
@@ -5138,7 +4247,7 @@ _08050BE0:
.align 2, 0
_08050C10: .4byte gSendCmd
_08050C14: .4byte 0x00002fff
-_08050C18: .4byte gUnknown_03004854
+_08050C18: .4byte sBerryBlenderData
_08050C1C: .4byte 0x00009999
_08050C20:
bl sub_810CA00
@@ -5193,7 +4302,7 @@ _08050C78:
movs r2, 0xF
bl MenuPrintMessage
_08050C82:
- ldr r0, _08050C94 @ =gUnknown_03004854
+ ldr r0, _08050C94 @ =sBerryBlenderData
ldr r1, [r0]
_08050C86:
adds r1, 0x6F
@@ -5204,7 +4313,7 @@ _08050C88:
b _08050CB6
.align 2, 0
_08050C90: .4byte gOtherText_LinkStandby3
-_08050C94: .4byte gUnknown_03004854
+_08050C94: .4byte sBerryBlenderData
_08050C98:
bl MenuUpdateWindowText
lsls r0, 24
@@ -5213,7 +4322,7 @@ _08050C98:
ldr r0, _08050CE0 @ =sub_8050E30
_08050CA4:
bl SetMainCallback2
- ldr r2, _08050CE4 @ =gUnknown_03004854
+ ldr r2, _08050CE4 @ =sBerryBlenderData
ldr r0, [r2]
adds r0, 0x6F
movs r1, 0
@@ -5222,7 +4331,7 @@ _08050CA4:
strb r1, [r0]
_08050CB6:
bl sub_8051B18
- ldr r0, _08050CE4 @ =gUnknown_03004854
+ ldr r0, _08050CE4 @ =sBerryBlenderData
ldr r0, [r0]
adds r0, 0x56
ldrh r0, [r0]
@@ -5237,13 +4346,13 @@ _08050CB6:
bx r0
.align 2, 0
_08050CE0: .4byte sub_8050E30
-_08050CE4: .4byte gUnknown_03004854
+_08050CE4: .4byte sBerryBlenderData
thumb_func_end sub_8050954
thumb_func_start sub_8050CE8
sub_8050CE8: @ 8050CE8
push {r4,lr}
- ldr r1, _08050D08 @ =gUnknown_03004854
+ ldr r1, _08050D08 @ =sBerryBlenderData
ldr r0, [r1]
movs r2, 0xE2
lsls r2, 1
@@ -5260,7 +4369,7 @@ _08050CFE:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08050D08: .4byte gUnknown_03004854
+_08050D08: .4byte sBerryBlenderData
_08050D0C: .4byte _08050D10
.align 2, 0
_08050D10:
@@ -5273,7 +4382,7 @@ _08050D10:
.4byte _08050E06
_08050D2C:
bl sub_80084A4
- ldr r0, _08050D40 @ =gUnknown_03004854
+ ldr r0, _08050D40 @ =sBerryBlenderData
ldr r2, [r0]
movs r3, 0xE2
lsls r3, 1
@@ -5281,13 +4390,13 @@ _08050D2C:
movs r0, 0x1
b _08050DF8
.align 2, 0
-_08050D40: .4byte gUnknown_03004854
+_08050D40: .4byte sBerryBlenderData
_08050D44:
bl sub_8007ECC
lsls r0, 24
cmp r0, 0
beq _08050E28
- ldr r0, _08050D68 @ =gUnknown_03004854
+ ldr r0, _08050D68 @ =sBerryBlenderData
ldr r1, [r0]
movs r2, 0xE2
lsls r2, 1
@@ -5300,15 +4409,15 @@ _08050D44:
strb r0, [r1]
b _08050E28
.align 2, 0
-_08050D68: .4byte gUnknown_03004854
+_08050D68: .4byte sBerryBlenderData
_08050D6C: .4byte gSoftResetDisabled
_08050D70:
bl sub_8125E2C
- ldr r0, _08050D7C @ =gUnknown_03004854
+ ldr r0, _08050D7C @ =sBerryBlenderData
ldr r2, [r0]
b _08050DEE
.align 2, 0
-_08050D7C: .4byte gUnknown_03004854
+_08050D7C: .4byte sBerryBlenderData
_08050D80:
ldr r1, [r4]
movs r2, 0x98
@@ -5338,7 +4447,7 @@ _08050DA6:
lsrs r2, r0, 24
cmp r2, 0
beq _08050DD0
- ldr r0, _08050DCC @ =gUnknown_03004854
+ ldr r0, _08050DCC @ =sBerryBlenderData
ldr r0, [r0]
movs r1, 0xE2
lsls r1, 1
@@ -5347,9 +4456,9 @@ _08050DA6:
str r1, [r0]
b _08050E28
.align 2, 0
-_08050DCC: .4byte gUnknown_03004854
+_08050DCC: .4byte sBerryBlenderData
_08050DD0:
- ldr r0, _08050DE8 @ =gUnknown_03004854
+ ldr r0, _08050DE8 @ =sBerryBlenderData
ldr r1, [r0]
movs r3, 0x98
lsls r3, 1
@@ -5362,7 +4471,7 @@ _08050DD0:
str r0, [r1]
b _08050E28
.align 2, 0
-_08050DE8: .4byte gUnknown_03004854
+_08050DE8: .4byte sBerryBlenderData
_08050DEC:
ldr r2, [r4]
_08050DEE:
@@ -5408,7 +4517,7 @@ _08050E2A:
sub_8050E30: @ 8050E30
push {r4,r5,lr}
sub sp, 0x4
- ldr r1, _08050E50 @ =gUnknown_03004854
+ ldr r1, _08050E50 @ =sBerryBlenderData
ldr r0, [r1]
adds r0, 0x6F
ldrb r0, [r0]
@@ -5423,7 +4532,7 @@ _08050E44:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08050E50: .4byte gUnknown_03004854
+_08050E50: .4byte sBerryBlenderData
_08050E54: .4byte _08050E58
.align 2, 0
_08050E58:
@@ -5550,7 +4659,7 @@ _08050F6C:
bne _08050F78
b _080510C4
_08050F78:
- ldr r0, _08050F88 @ =gUnknown_03004854
+ ldr r0, _08050F88 @ =sBerryBlenderData
ldr r1, [r0]
movs r0, 0x98
lsls r0, 1
@@ -5559,7 +4668,7 @@ _08050F78:
str r0, [r2]
b _080510AC
.align 2, 0
-_08050F88: .4byte gUnknown_03004854
+_08050F88: .4byte sBerryBlenderData
_08050F8C:
ldr r2, [r5]
movs r0, 0x98
@@ -5589,18 +4698,18 @@ _08050FAA:
movs r2, 0xF
bl MenuPrint
bl sub_80084A4
- ldr r0, _08050FD0 @ =gUnknown_03004854
+ ldr r0, _08050FD0 @ =sBerryBlenderData
ldr r1, [r0]
b _080510AC
.align 2, 0
_08050FCC: .4byte gMultiText_Saving
-_08050FD0: .4byte gUnknown_03004854
+_08050FD0: .4byte sBerryBlenderData
_08050FD4:
bl sub_8007ECC
lsls r0, 24
cmp r0, 0
beq _080510C4
- ldr r3, _08051000 @ =gUnknown_03004854
+ ldr r3, _08051000 @ =sBerryBlenderData
ldr r1, [r3]
movs r2, 0x98
lsls r2, 1
@@ -5618,7 +4727,7 @@ _08050FD4:
str r2, [r0]
b _080510C4
.align 2, 0
-_08051000: .4byte gUnknown_03004854
+_08051000: .4byte sBerryBlenderData
_08051004:
bl sub_8050CE8
lsls r0, 24
@@ -5626,11 +4735,11 @@ _08051004:
beq _080510C4
movs r0, 0x37
bl PlaySE
- ldr r0, _0805101C @ =gUnknown_03004854
+ ldr r0, _0805101C @ =sBerryBlenderData
ldr r1, [r0]
b _080510AC
.align 2, 0
-_0805101C: .4byte gUnknown_03004854
+_0805101C: .4byte sBerryBlenderData
_08051020:
ldr r1, [r5]
adds r1, 0x6F
@@ -5651,11 +4760,11 @@ _08051030:
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
- ldr r0, _08051050 @ =gUnknown_03004854
+ ldr r0, _08051050 @ =sBerryBlenderData
ldr r1, [r0]
b _080510AC
.align 2, 0
-_08051050: .4byte gUnknown_03004854
+_08051050: .4byte sBerryBlenderData
_08051054:
ldr r0, _0805107C @ =gPaletteFade
ldrb r1, [r0, 0x7]
@@ -5729,7 +4838,7 @@ _080510E4: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
thumb_func_start sub_80510E8
sub_80510E8: @ 80510E8
push {lr}
- ldr r1, _08051104 @ =gUnknown_03004854
+ ldr r1, _08051104 @ =sBerryBlenderData
ldr r0, [r1]
adds r0, 0x6F
ldrb r0, [r0]
@@ -5744,7 +4853,7 @@ _080510FA:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08051104: .4byte gUnknown_03004854
+_08051104: .4byte sBerryBlenderData
_08051108: .4byte _0805110C
.align 2, 0
_0805110C:
@@ -5829,18 +4938,18 @@ _080511BC:
lsls r0, 24
cmp r0, 0
beq _0805121E
- ldr r0, _080511D4 @ =gUnknown_03004854
+ ldr r0, _080511D4 @ =sBerryBlenderData
ldr r0, [r0]
adds r0, 0x6F
movs r1, 0x9
strb r1, [r0]
b _0805121E
.align 2, 0
-_080511D4: .4byte gUnknown_03004854
+_080511D4: .4byte sBerryBlenderData
_080511D8:
movs r0, 0x3
bl BeginFastPaletteFade
- ldr r0, _080511EC @ =gUnknown_03004854
+ ldr r0, _080511EC @ =sBerryBlenderData
ldr r1, [r0]
adds r1, 0x6F
ldrb r0, [r1]
@@ -5848,7 +4957,7 @@ _080511D8:
strb r0, [r1]
b _0805121E
.align 2, 0
-_080511EC: .4byte gUnknown_03004854
+_080511EC: .4byte sBerryBlenderData
_080511F0:
ldr r0, _08051210 @ =gPaletteFade
ldrb r1, [r0, 0x7]
@@ -5920,13 +5029,13 @@ _08051284:
_08051286:
cmp r3, r0
beq _08051298
- ldr r2, _08051294 @ =gUnknown_03004854
+ ldr r2, _08051294 @ =sBerryBlenderData
b _080512A8
.align 2, 0
_08051290: .4byte 0x0000aaaa
-_08051294: .4byte gUnknown_03004854
+_08051294: .4byte sBerryBlenderData
_08051298:
- ldr r2, _080512B0 @ =gUnknown_03004854
+ ldr r2, _080512B0 @ =sBerryBlenderData
ldr r0, [r2]
adds r1, r0, 0
adds r1, 0x78
@@ -5940,13 +5049,13 @@ _080512A8:
ldr r1, _080512B4 @ =0x00001111
b _080512C4
.align 2, 0
-_080512B0: .4byte gUnknown_03004854
+_080512B0: .4byte sBerryBlenderData
_080512B4: .4byte 0x00001111
_080512B8:
ldr r0, _080512F4 @ =0x00002222
cmp r1, r0
bne _080512C6
- ldr r0, _080512F8 @ =gUnknown_03004854
+ ldr r0, _080512F8 @ =sBerryBlenderData
ldr r0, [r0]
adds r0, 0x70
_080512C4:
@@ -5958,7 +5067,7 @@ _080512C6:
beq _080512D2
b _08051404
_080512D2:
- ldr r2, _080512F8 @ =gUnknown_03004854
+ ldr r2, _080512F8 @ =sBerryBlenderData
ldr r0, [r2]
adds r0, 0x70
ldrh r1, [r0]
@@ -5978,7 +5087,7 @@ _080512EA:
b _0805134E
.align 2, 0
_080512F4: .4byte 0x00002222
-_080512F8: .4byte gUnknown_03004854
+_080512F8: .4byte sBerryBlenderData
_080512FC: .4byte 0x00001111
_08051300: .4byte 0x00002fff
_08051304:
@@ -6041,7 +5150,7 @@ _0805136E:
lsrs r0, 24
cmp r4, r0
bcs _0805138A
- ldr r0, _0805139C @ =gUnknown_03004854
+ ldr r0, _0805139C @ =sBerryBlenderData
ldr r0, [r0]
lsls r1, r4, 1
adds r0, 0x70
@@ -6059,7 +5168,7 @@ _0805138A:
ldr r5, _080513A0 @ =0x00007779
b _080513AA
.align 2, 0
-_0805139C: .4byte gUnknown_03004854
+_0805139C: .4byte sBerryBlenderData
_080513A0: .4byte 0x00007779
_080513A4:
adds r0, r4, 0x1
@@ -6071,7 +5180,7 @@ _080513AA:
lsrs r0, 24
cmp r4, r0
bcs _080513C6
- ldr r0, _080513E0 @ =gUnknown_03004854
+ ldr r0, _080513E0 @ =sBerryBlenderData
ldr r0, [r0]
lsls r1, r4, 1
adds r0, 0x70
@@ -6093,14 +5202,14 @@ _080513C6:
strh r0, [r5, 0x2]
b _08051404
.align 2, 0
-_080513E0: .4byte gUnknown_03004854
+_080513E0: .4byte sBerryBlenderData
_080513E4: .4byte gSendCmd
_080513E8: .4byte 0x00002fff
_080513EC: .4byte 0x00002222
_080513F0:
ldr r0, _0805140C @ =0x00001111
strh r0, [r5, 0x2]
- ldr r0, _08051410 @ =gUnknown_03004854
+ ldr r0, _08051410 @ =sBerryBlenderData
ldr r0, [r0]
lsls r1, r4, 1
adds r0, 0x70
@@ -6114,7 +5223,7 @@ _08051404:
bx r0
.align 2, 0
_0805140C: .4byte 0x00001111
-_08051410: .4byte gUnknown_03004854
+_08051410: .4byte sBerryBlenderData
thumb_func_end sub_805123C
thumb_func_start sub_8051414
@@ -6129,7 +5238,7 @@ sub_8051414: @ 8051414
lsls r0, 7
str r0, [sp, 0x4]
mov r3, sp
- ldr r0, _08051470 @ =gUnknown_03004854
+ ldr r0, _08051470 @ =sBerryBlenderData
ldr r0, [r0]
mov r12, r0
movs r0, 0xA2
@@ -6165,13 +5274,13 @@ sub_8051414: @ 8051414
pop {r0}
bx r0
.align 2, 0
-_08051470: .4byte gUnknown_03004854
+_08051470: .4byte sBerryBlenderData
thumb_func_end sub_8051414
thumb_func_start sub_8051474
sub_8051474: @ 8051474
push {lr}
- ldr r0, _080514A0 @ =gUnknown_03004854
+ ldr r0, _080514A0 @ =sBerryBlenderData
ldr r3, [r0]
adds r1, r3, 0
adds r1, 0x54
@@ -6191,13 +5300,13 @@ sub_8051474: @ 8051474
pop {r0}
bx r0
.align 2, 0
-_080514A0: .4byte gUnknown_03004854
+_080514A0: .4byte sBerryBlenderData
thumb_func_end sub_8051474
thumb_func_start sub_80514A4
sub_80514A4: @ 80514A4
ldr r1, _080514E8 @ =REG_BG2PA
- ldr r0, _080514EC @ =gUnknown_03004854
+ ldr r0, _080514EC @ =sBerryBlenderData
ldr r2, [r0]
movs r3, 0xB4
lsls r3, 1
@@ -6232,13 +5341,13 @@ sub_80514A4: @ 80514A4
bx lr
.align 2, 0
_080514E8: .4byte REG_BG2PA
-_080514EC: .4byte gUnknown_03004854
+_080514EC: .4byte sBerryBlenderData
thumb_func_end sub_80514A4
thumb_func_start sub_80514F0
sub_80514F0: @ 80514F0
ldr r1, _0805151C @ =REG_BG1HOFS
- ldr r0, _08051520 @ =gUnknown_03004854
+ ldr r0, _08051520 @ =sBerryBlenderData
ldr r3, [r0]
movs r0, 0xA2
lsls r0, 1
@@ -6260,7 +5369,7 @@ sub_80514F0: @ 80514F0
bx lr
.align 2, 0
_0805151C: .4byte REG_BG1HOFS
-_08051520: .4byte gUnknown_03004854
+_08051520: .4byte sBerryBlenderData
thumb_func_end sub_80514F0
thumb_func_start sub_8051524
@@ -6330,7 +5439,7 @@ sub_805156C: @ 805156C
movs r7, 0x10
_08051598:
bl Random
- ldr r1, _08051640 @ =gUnknown_03004854
+ ldr r1, _08051640 @ =sBerryBlenderData
ldr r4, [r1]
adds r4, 0x54
lsls r0, 16
@@ -6409,7 +5518,7 @@ _08051628:
.align 2, 0
_08051638: .4byte gSineTable
_0805163C: .4byte gSprites
-_08051640: .4byte gUnknown_03004854
+_08051640: .4byte sBerryBlenderData
_08051644: .4byte gSpriteTemplate_82164FC
_08051648: .4byte gSprites + 0x1C
_0805164C: .4byte sub_8051524
@@ -6487,7 +5596,7 @@ sub_80516C4: @ 80516C4
lsrs r0, 24
lsls r1, 16
lsrs r1, 16
- ldr r2, _080516F4 @ =gUnknown_03004854
+ ldr r2, _080516F4 @ =sBerryBlenderData
ldr r3, [r2]
lsls r4, r0, 1
adds r2, r3, 0
@@ -6500,12 +5609,12 @@ sub_80516C4: @ 80516C4
adds r0, r2
adds r3, r0
adds r0, r3, 0
- bl sub_804E844
+ bl Blender_CopyBerryData
pop {r4}
pop {r0}
bx r0
.align 2, 0
-_080516F4: .4byte gUnknown_03004854
+_080516F4: .4byte sBerryBlenderData
thumb_func_end sub_80516C4
thumb_func_start unref_sub_80516F8
@@ -6542,7 +5651,7 @@ _08051730:
ldrsh r0, [r4, r1]
cmp r0, 0x64
bne _080517A0
- ldr r0, _080517C0 @ =gUnknown_03004854
+ ldr r0, _080517C0 @ =sBerryBlenderData
ldr r0, [r0]
adds r0, 0x4
movs r1, 0x14
@@ -6605,7 +5714,7 @@ _080517A0:
.align 2, 0
_080517B8: .4byte gTasks
_080517BC: .4byte gReceivedRemoteLinkPlayers
-_080517C0: .4byte gUnknown_03004854
+_080517C0: .4byte sBerryBlenderData
_080517C4: .4byte gLinkPlayers + 0x4
_080517C8: .4byte gUnknown_08216284
_080517CC: .4byte gOtherText_PressAToStart
@@ -6795,7 +5904,7 @@ _0805191E:
asrs r0, 16
cmp r0, 0xB0
ble _0805193C
- ldr r0, _08051948 @ =gUnknown_03004854
+ ldr r0, _08051948 @ =sBerryBlenderData
ldr r1, [r0]
ldrb r0, [r1]
adds r0, 0x1
@@ -6809,7 +5918,7 @@ _0805193C:
pop {r0}
bx r0
.align 2, 0
-_08051948: .4byte gUnknown_03004854
+_08051948: .4byte sBerryBlenderData
thumb_func_end sub_80518CC
thumb_func_start sub_805194C
@@ -6819,7 +5928,7 @@ sub_805194C: @ 805194C
lsrs r0, 16
lsls r1, 16
lsrs r3, r1, 16
- ldr r1, _08051978 @ =gUnknown_03004854
+ ldr r1, _08051978 @ =sBerryBlenderData
ldr r1, [r1]
movs r2, 0xA0
lsls r2, 1
@@ -6836,7 +5945,7 @@ _08051972:
pop {r0}
bx r0
.align 2, 0
-_08051978: .4byte gUnknown_03004854
+_08051978: .4byte sBerryBlenderData
thumb_func_end sub_805194C
thumb_func_start sub_805197C
@@ -6954,7 +6063,7 @@ sub_8051A3C: @ 8051A3C
lsrs r0, 16
bl sub_8051A1C
adds r5, r0, 0
- ldr r0, _08051ABC @ =gUnknown_03004854
+ ldr r0, _08051ABC @ =sBerryBlenderData
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0x5A
@@ -7012,7 +6121,7 @@ _08051A5C:
pop {r0}
bx r0
.align 2, 0
-_08051ABC: .4byte gUnknown_03004854
+_08051ABC: .4byte sBerryBlenderData
_08051AC0: .4byte 0x06006458
_08051AC4: .4byte 0x00008172
thumb_func_end sub_8051A3C
@@ -7068,7 +6177,7 @@ _08051B14:
thumb_func_start sub_8051B18
sub_8051B18: @ 8051B18
push {r4,lr}
- ldr r4, _08051B3C @ =gUnknown_03004854
+ ldr r4, _08051B3C @ =sBerryBlenderData
ldr r0, [r4]
movs r1, 0xA2
lsls r1, 1
@@ -7083,7 +6192,7 @@ sub_8051B18: @ 8051B18
pop {r0}
bx r0
.align 2, 0
-_08051B3C: .4byte gUnknown_03004854
+_08051B3C: .4byte sBerryBlenderData
thumb_func_end sub_8051B18
thumb_func_start sub_8051B40
@@ -7133,7 +6242,7 @@ _08051B84:
thumb_func_start sub_8051B8C
sub_8051B8C: @ 8051B8C
push {r4,r5,lr}
- ldr r5, _08051BE4 @ =gUnknown_03004854
+ ldr r5, _08051BE4 @ =sBerryBlenderData
ldr r2, [r5]
movs r4, 0x98
lsls r4, 1
@@ -7175,7 +6284,7 @@ _08051BAC:
movs r0, 0
b _08051BFC
.align 2, 0
-_08051BE4: .4byte gUnknown_03004854
+_08051BE4: .4byte sBerryBlenderData
_08051BE8:
movs r1, 0xA2
lsls r1, 1
@@ -7195,7 +6304,7 @@ _08051BFC:
thumb_func_start sub_8051C04
sub_8051C04: @ 8051C04
- ldr r1, _08051C20 @ =gUnknown_03004854
+ ldr r1, _08051C20 @ =sBerryBlenderData
ldr r2, [r1]
movs r3, 0xA2
lsls r3, 1
@@ -7210,14 +6319,14 @@ sub_8051C04: @ 8051C04
strh r1, [r0, 0x26]
bx lr
.align 2, 0
-_08051C20: .4byte gUnknown_03004854
+_08051C20: .4byte sBerryBlenderData
thumb_func_end sub_8051C04
thumb_func_start sub_8051C24
sub_8051C24: @ 8051C24
push {lr}
ldr r2, _08051C4C @ =gSaveBlock1
- ldr r0, _08051C50 @ =gUnknown_03004854
+ ldr r0, _08051C50 @ =sBerryBlenderData
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0x88
@@ -7238,7 +6347,7 @@ _08051C48:
bx r0
.align 2, 0
_08051C4C: .4byte gSaveBlock1
-_08051C50: .4byte gUnknown_03004854
+_08051C50: .4byte sBerryBlenderData
_08051C54: .4byte 0x0000096c
thumb_func_end sub_8051C24
@@ -7250,7 +6359,7 @@ sub_8051C58: @ 8051C58
mov r5, r8
push {r5-r7}
sub sp, 0x34
- ldr r1, _08051C7C @ =gUnknown_03004854
+ ldr r1, _08051C7C @ =sBerryBlenderData
ldr r0, [r1]
ldrb r0, [r0]
adds r2, r1, 0
@@ -7264,7 +6373,7 @@ _08051C72:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08051C7C: .4byte gUnknown_03004854
+_08051C7C: .4byte sBerryBlenderData
_08051C80: .4byte _08051C84
.align 2, 0
_08051C84:
@@ -7316,7 +6425,7 @@ _08051CD0:
_08051CE4:
movs r6, 0
_08051CE6:
- ldr r4, _08051D18 @ =gUnknown_03004854
+ ldr r4, _08051D18 @ =sBerryBlenderData
ldr r0, [r4]
adds r0, 0x50
adds r0, r6
@@ -7340,7 +6449,7 @@ _08051CE6:
str r0, [r2]
b _08051FE2
.align 2, 0
-_08051D18: .4byte gUnknown_03004854
+_08051D18: .4byte sBerryBlenderData
_08051D1C: .4byte gSprites
_08051D20:
movs r0, 0x4
@@ -7354,7 +6463,7 @@ _08051D20:
movs r3, 0xA0
bl sub_8072BD8
movs r6, 0
- ldr r1, _08051F18 @ =gUnknown_03004854
+ ldr r1, _08051F18 @ =sBerryBlenderData
ldr r0, [r1]
adds r0, 0x88
add r2, sp, 0xC
@@ -7450,7 +6559,7 @@ _08051D56:
cmp r6, r0
bcc _08051D56
_08051E04:
- ldr r6, _08051F18 @ =gUnknown_03004854
+ ldr r6, _08051F18 @ =sBerryBlenderData
ldr r0, [r6]
adds r0, 0x5A
ldrh r0, [r0]
@@ -7569,7 +6678,7 @@ _08051E04:
b _08051FE2
.align 2, 0
_08051F14: .4byte gOtherText_ResultsOfBlending
-_08051F18: .4byte gUnknown_03004854
+_08051F18: .4byte sBerryBlenderData
_08051F1C: .4byte gLinkPlayers
_08051F20: .4byte gOtherText_Berry
_08051F24: .4byte gLinkPlayers + 0x8
@@ -7600,7 +6709,7 @@ _08051F58:
bl MenuDrawTextWindow
movs r6, 0
add r5, sp, 0x28
- ldr r0, _08051FEC @ =gUnknown_03004854
+ ldr r0, _08051FEC @ =sBerryBlenderData
ldr r0, [r0]
adds r3, r0, 0
adds r3, 0x80
@@ -7621,7 +6730,7 @@ _08051F86:
cmp r6, 0x3
bls _08051F76
bl sub_8050760
- ldr r4, _08051FEC @ =gUnknown_03004854
+ ldr r4, _08051FEC @ =sBerryBlenderData
ldr r3, [r4]
movs r1, 0xBE
lsls r1, 1
@@ -7660,7 +6769,7 @@ _08051FE2:
strb r0, [r1]
b _0805200A
.align 2, 0
-_08051FEC: .4byte gUnknown_03004854
+_08051FEC: .4byte sBerryBlenderData
_08051FF0: .4byte sub_8052BD0
_08051FF4: .4byte gScriptItemId
_08051FF8:
@@ -7819,7 +6928,7 @@ sub_8052124: @ 8052124
push {r5-r7}
sub sp, 0x18
movs r5, 0
- ldr r1, _08052144 @ =gUnknown_03004854
+ ldr r1, _08052144 @ =sBerryBlenderData
ldr r0, [r1]
adds r0, 0x88
mov r10, r1
@@ -7828,7 +6937,7 @@ sub_8052124: @ 8052124
str r2, [sp, 0x14]
b _08052158
.align 2, 0
-_08052144: .4byte gUnknown_03004854
+_08052144: .4byte sBerryBlenderData
_08052148:
mov r4, sp
adds r0, r4, r5
@@ -7953,7 +7062,7 @@ sub_8052228: @ 8052228
push {r4-r7,lr}
mov r7, r8
push {r7}
- ldr r1, _08052248 @ =gUnknown_03004854
+ ldr r1, _08052248 @ =sBerryBlenderData
ldr r0, [r1]
ldrb r0, [r0]
adds r2, r1, 0
@@ -7967,7 +7076,7 @@ _0805223C:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08052248: .4byte gUnknown_03004854
+_08052248: .4byte sBerryBlenderData
_0805224C: .4byte _08052250
.align 2, 0
_08052250:
@@ -8037,7 +7146,7 @@ _080522B6:
movs r2, 0x34
movs r3, 0
bl CreateSprite
- ldr r7, _08052374 @ =gUnknown_03004854
+ ldr r7, _08052374 @ =sBerryBlenderData
ldr r1, [r7]
adds r1, 0x50
strb r0, [r1]
@@ -8107,7 +7216,7 @@ _080522B6:
.align 2, 0
_0805236C: .4byte gOtherText_Ranking
_08052370: .4byte gSpriteTemplate_821645C
-_08052374: .4byte gUnknown_03004854
+_08052374: .4byte sBerryBlenderData
_08052378: .4byte gSprites
_0805237C: .4byte SpriteCallbackDummy
_08052380:
@@ -8205,7 +7314,7 @@ _0805243C:
ldrb r0, [r0]
cmp r8, r0
bcc _08052380
- ldr r0, _08052460 @ =gUnknown_03004854
+ ldr r0, _08052460 @ =sBerryBlenderData
ldr r1, [r0]
movs r0, 0x98
lsls r0, 1
@@ -8216,7 +7325,7 @@ _0805243C:
.align 2, 0
_08052458: .4byte gLinkPlayers + 0x8
_0805245C: .4byte gUnknown_082165F3
-_08052460: .4byte gUnknown_03004854
+_08052460: .4byte sBerryBlenderData
_08052464:
ldr r2, [r2]
movs r0, 0x98
@@ -8240,7 +7349,7 @@ _0805247E:
beq _080524AE
movs r0, 0x5
bl PlaySE
- ldr r0, _080524A0 @ =gUnknown_03004854
+ ldr r0, _080524A0 @ =sBerryBlenderData
ldr r1, [r0]
_08052494:
ldrb r0, [r1]
@@ -8249,7 +7358,7 @@ _08052494:
b _080524AE
.align 2, 0
_0805249C: .4byte gMain
-_080524A0: .4byte gUnknown_03004854
+_080524A0: .4byte sBerryBlenderData
_080524A4:
ldr r1, [r2]
movs r0, 0
@@ -8272,7 +7381,7 @@ unref_sub_80524BC: @ 80524BC
bl ResetSpriteData
bl FreeAllSpritePalettes
bl ResetTasks
- ldr r0, _0805251C @ =sub_804E2D8
+ ldr r0, _0805251C @ =VBlankCB1_BerryBlender
bl SetVBlankCallback
ldr r4, _08052520 @ =gWindowConfig_81E6CE4
adds r0, r4, 0
@@ -8305,7 +7414,7 @@ unref_sub_80524BC: @ 80524BC
pop {r0}
bx r0
.align 2, 0
-_0805251C: .4byte sub_804E2D8
+_0805251C: .4byte VBlankCB1_BerryBlender
_08052520: .4byte gWindowConfig_81E6CE4
_08052524: .4byte gMain
_08052528: .4byte gUnknown_03000560
@@ -8945,7 +8054,7 @@ _08052A26:
adds r1, 0x85
lsls r1, 16
lsrs r1, 16
- bl sub_804E844
+ bl Blender_CopyBerryData
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
@@ -9144,7 +8253,7 @@ _08052BF6:
lsls r0, 24
cmp r0, 0
beq _08052C16
- ldr r0, _08052C24 @ =gUnknown_03004854
+ ldr r0, _08052C24 @ =sBerryBlenderData
ldr r0, [r0]
movs r1, 0xBC
lsls r1, 1
@@ -9160,5 +8269,5 @@ _08052C16:
.align 2, 0
_08052C1C: .4byte gTasks
_08052C20: .4byte 0x0000016f
-_08052C24: .4byte gUnknown_03004854
+_08052C24: .4byte sBerryBlenderData
thumb_func_end sub_8052BD0
diff --git a/data/berry_blender.s b/data/berry_blender.s
index ff0f06473..4c097bc20 100644
--- a/data/berry_blender.s
+++ b/data/berry_blender.s
@@ -102,7 +102,7 @@ gUnknown_082162D4:: @ 82162D4
.byte 1, 12
.byte 22, 12
-gUnknown_082162E4:: @ 82162E4
+sBlenderSyncArrowsPos:: @ 82162E4
.byte 72, 32
.byte 168, 32
.byte 72, 128
@@ -241,7 +241,7 @@ gUnknown_082163EC:: @ 82163EC
obj_pal gBerryBlenderArrowPalette, 12312
.align 2
-gSpriteTemplate_82163F4:: @ 82163F4
+sBlenderSyncArrow_SpriteTemplate:: @ 82163F4
spr_template 46545, 12312, gOamData_8216314, gSpriteAnimTable_82163AC, NULL, gDummySpriteAffineAnimTable, sub_8051C04
.align 2
diff --git a/ld_script.txt b/ld_script.txt
index a0054668e..b58196615 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -84,6 +84,7 @@ SECTIONS {
asm/trade.o(.text.sub_804A9F4);
src/trade.o(.text.sub_804DAD4);
asm/trade.o(.text.sub_804DB2C);
+ src/berry_blender.o(.text);
asm/berry_blender.o(.text);
src/play_time.o(.text);
src/new_game.o(.text);
diff --git a/src/berry_blender.c b/src/berry_blender.c
new file mode 100644
index 000000000..7e7f58db7
--- /dev/null
+++ b/src/berry_blender.c
@@ -0,0 +1,903 @@
+#include "global.h"
+#include "decompress.h"
+#include "palette.h"
+#include "event_data.h"
+#include "main.h"
+#include "text_window.h"
+#include "menu.h"
+#include "strings2.h"
+#include "sound.h"
+#include "berry.h"
+#include "string_util.h"
+#include "link.h"
+#include "task.h"
+
+//needed to match Blender_ControlHitPitch
+struct MusicPlayerInfo
+{
+ struct SongHeader *songHeader;
+ u32 status;
+ u8 trackCount;
+ u8 priority;
+ u8 cmd;
+ u8 unk_B;
+ u32 clock;
+ u8 gap[8];
+ u8 *memAccArea;
+ u16 tempoD;
+ u16 tempoU;
+ u16 tempoI;
+ u16 tempoC;
+ u16 fadeOI;
+ u16 fadeOC;
+ u16 fadeOV;
+ struct MusicPlayerTrack *tracks;
+ struct ToneData *tone;
+ u32 ident;
+ u32 func;
+ u32 intp;
+};
+
+// other files functions
+void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s16 pitch);
+void sub_80A6978(void);
+u8 sub_80A7DEC(u8 berryId, u8 x, u8 y, bool8 animate);
+
+#define BLENDER_MAX_PLAYERS 4
+
+struct BlenderBerry
+{
+ u16 field_0;
+ u8 name[7];
+ u8 spicy;
+ u8 dry;
+ u8 sweet;
+ u8 bitter;
+ u8 sour;
+ u8 smoothness;
+};
+
+struct BerryBlenderData
+{
+ u8 field_0;
+ u8 field_1;
+ u8 field_2;
+ u8 field_3;
+ u8 field_4;
+ u8 field_5;
+ u8 field_6;
+ u8 field_7;
+ u8 field_8;
+ u8 field_9;
+ u8 field_A;
+ u8 field_B;
+ u8 field_C;
+ u8 field_D;
+ u8 field_E;
+ u8 field_F;
+ u8 field_10;
+ u8 field_11;
+ u8 field_12;
+ u8 field_13;
+ u8 field_14;
+ u8 field_15;
+ u8 field_16;
+ u8 field_17;
+ u8 field_18;
+ u8 field_19;
+ u8 field_1A;
+ u8 field_1B;
+ u8 field_1C;
+ u8 field_1D;
+ u8 field_1E;
+ u8 field_1F;
+ u8 field_20;
+ u8 field_21;
+ u8 field_22;
+ u8 field_23;
+ u8 field_24;
+ u8 field_25;
+ u8 field_26;
+ u8 field_27;
+ u8 field_28;
+ u8 field_29;
+ u8 field_2A;
+ u8 field_2B;
+ u8 field_2C;
+ u8 field_2D;
+ u8 field_2E;
+ u8 field_2F;
+ u8 field_30;
+ u8 field_31;
+ u8 field_32;
+ u8 field_33;
+ u8 field_34;
+ u8 field_35;
+ u8 field_36;
+ u8 field_37;
+ u8 field_38;
+ u8 field_39;
+ u8 field_3A;
+ u8 field_3B;
+ u8 field_3C;
+ u8 field_3D;
+ u8 field_3E;
+ u8 field_3F;
+ u8 field_40;
+ u8 field_41;
+ u8 field_42;
+ u8 field_43;
+ u8 field_44;
+ u8 field_45;
+ u8 field_46;
+ u8 field_47;
+ u8 field_48;
+ u8 field_49;
+ u8 field_4A;
+ u8 field_4B;
+ u8 field_4C;
+ u8 field_4D;
+ u16 field_4E;
+ u8 field_50;
+ u8 field_51;
+ u8 field_52;
+ u8 field_53;
+ u16 field_54;
+ s16 hitPitch; //56
+ u8 field_58;
+ u8 field_59;
+ u16 field_5A;
+ u8 SyncArrowSpriteID[BLENDER_MAX_PLAYERS];
+ u8 field_60;
+ u8 field_61;
+ u8 field_62;
+ u8 field_63;
+ u8 field_64;
+ u8 field_65;
+ u8 field_66;
+ u8 field_67;
+ u8 field_68;
+ u8 field_69;
+ u8 field_6A;
+ u8 field_6B;
+ u8 field_6C;
+ u8 field_6D;
+ u8 field_6E;
+ u8 field_6F;
+ u16 field_70[BLENDER_MAX_PLAYERS];
+ u8 field_78;
+ u8 field_79;
+ u8 field_7A;
+ u8 field_7B;
+ u16 field_7C;
+ u8 field_7E;
+ u8 field_7F;
+ u16 field_80[BLENDER_MAX_PLAYERS];
+ u8 field_88;
+ u8 field_89;
+ u8 field_8A;
+ u8 field_8B;
+ u8 field_8C;
+ u8 field_8D;
+ u8 field_8E;
+ u8 field_8F;
+ u8 field_90;
+ u8 field_91;
+ u8 field_92;
+ u8 field_93;
+ u8 field_94;
+ u8 field_95;
+ u8 field_96;
+ u8 field_97;
+ u8 field_98;
+ u8 field_99;
+ u8 field_9A;
+ u8 field_9B;
+ u8 field_9C;
+ u8 field_9D;
+ u8 field_9E;
+ u8 field_9F;
+ u8 field_A0;
+ u8 field_A1;
+ u8 field_A2;
+ u8 field_A3;
+ u8 field_A4;
+ u8 field_A5;
+ u8 field_A6;
+ u8 field_A7;
+ u8 field_A8;
+ u8 field_A9;
+ u8 field_AA;
+ u8 field_AB;
+ u8 field_AC;
+ u8 field_AD;
+ u8 field_AE;
+ u8 field_AF;
+ u8 field_B0;
+ u8 field_B1;
+ u8 field_B2;
+ u8 field_B3;
+ u8 field_B4;
+ u8 field_B5;
+ u8 field_B6;
+ u8 field_B7;
+ u8 field_B8;
+ u8 field_B9;
+ u8 field_BA;
+ u8 field_BB;
+ u8 field_BC;
+ u8 field_BD;
+ u8 field_BE;
+ u8 field_BF;
+ u8 field_C0;
+ u8 field_C1;
+ u8 field_C2;
+ u8 field_C3;
+ u8 field_C4;
+ u8 field_C5;
+ u8 field_C6;
+ u8 field_C7;
+ u8 field_C8;
+ u8 field_C9;
+ u8 field_CA;
+ u8 field_CB;
+ u8 field_CC;
+ u8 field_CD;
+ u8 field_CE;
+ u8 field_CF;
+ u8 field_D0;
+ u8 field_D1;
+ u8 field_D2;
+ u8 field_D3;
+ u8 field_D4;
+ u8 field_D5;
+ u8 field_D6;
+ u8 field_D7;
+ u8 field_D8;
+ u8 field_D9;
+ u8 field_DA;
+ u8 field_DB;
+ u8 field_DC;
+ u8 field_DD;
+ u8 field_DE;
+ u8 field_DF;
+ u8 field_E0;
+ u8 field_E1;
+ u8 field_E2;
+ u8 field_E3;
+ u8 field_E4;
+ u8 field_E5;
+ u8 field_E6;
+ u8 field_E7;
+ u8 field_E8;
+ u8 field_E9;
+ u8 field_EA;
+ u8 field_EB;
+ u8 field_EC;
+ u8 field_ED;
+ u8 field_EE;
+ u8 field_EF;
+ u8 field_F0;
+ u8 field_F1;
+ u8 field_F2;
+ u8 field_F3;
+ u8 field_F4;
+ u8 field_F5;
+ u8 field_F6;
+ u8 field_F7;
+ u8 field_F8;
+ u8 field_F9;
+ u8 field_FA;
+ u8 field_FB;
+ u8 field_FC;
+ u8 field_FD;
+ u8 field_FE;
+ u8 field_FF;
+ u8 field_100;
+ u8 field_101;
+ u8 field_102;
+ u8 field_103;
+ u8 field_104;
+ u8 field_105;
+ u8 field_106;
+ u8 field_107;
+ u8 field_108;
+ u8 field_109;
+ u8 field_10A;
+ u8 field_10B;
+ u8 field_10C;
+ u8 field_10D;
+ u8 field_10E;
+ u8 field_10F;
+ u8 field_110;
+ u8 field_111;
+ u8 field_112;
+ u8 field_113;
+ u8 field_114;
+ u8 field_115;
+ u8 field_116;
+ u8 field_117;
+ u8 field_118;
+ u8 field_119;
+ u8 field_11A;
+ u8 field_11B;
+ u8 field_11C;
+ u8 field_11D;
+ u8 field_11E;
+ u8 field_11F;
+ u8 field_120;
+ u8 field_121;
+ u8 field_122;
+ u8 field_123;
+ u8 field_124;
+ u8 field_125;
+ u8 field_126;
+ u8 field_127;
+ u8 field_128;
+ u8 field_129;
+ u8 field_12A;
+ u8 field_12B;
+ u8 field_12C;
+ u8 field_12D;
+ u8 field_12E;
+ u8 field_12F;
+ u32 field_130;
+ u32 field_134;
+ u8 field_138;
+ u8 field_139;
+ u8 field_13A;
+ u8 field_13B;
+ u8 field_13C;
+ u8 field_13D;
+ u16 field_13E;
+ u16 field_140;
+ u16 field_142;
+ u16 field_144;
+ u16 field_146;
+ u8 field_148;
+ u8 field_149;
+ u8 field_14A;
+ u8 field_14B;
+ u16 field_14C[BLENDER_MAX_PLAYERS][2];
+ u8 field_15C;
+ u8 field_15D;
+ u8 field_15E;
+ u8 field_15F;
+ u8 field_160;
+ u8 field_161;
+ u8 field_162;
+ u8 field_163;
+ u8 field_164;
+ u8 field_165;
+ u8 field_166;
+ u8 field_167;
+ u8 field_168;
+ u8 field_169;
+ u8 field_16A;
+ u8 field_16B;
+ u8 field_16C;
+ u8 field_16D;
+ u8 field_16E;
+ u8 field_16F;
+ u8 field_170;
+ u8 field_171;
+ u8 field_172;
+ u8 field_173;
+ u8 field_174;
+ u8 field_175;
+ u8 field_176;
+ u8 field_177;
+ u8 field_178;
+ u8 field_179;
+ u8 field_17A;
+ u8 field_17B;
+ struct BlenderBerry blendedBerries[BLENDER_MAX_PLAYERS];
+};
+
+extern struct BerryBlenderData* sBerryBlenderData;
+
+extern struct MusicPlayerInfo gMPlay_SE2;
+extern u8 ewram[];
+
+// this file's functions:
+void sub_80514A4(void);
+void sub_80514F0(void);
+void sub_804E56C(void);
+void sub_804E884(u8 a0);
+void sub_8051474(void);
+void sub_804E9F8(void);
+void sub_804F378(void);
+void sub_8051414(void*);
+
+void Blender_ControlHitPitch(void)
+{
+ m4aMPlayPitchControl(&gMPlay_SE2, 0xFFFF, (sBerryBlenderData->hitPitch - 128) * 2);
+}
+
+void VBlankCB0_BerryBlender(void)
+{
+ sub_80514A4();
+ sub_80514F0();
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+void VBlankCB1_BerryBlender(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+extern const u8 gUnknown_08E6C100[];
+extern const u8 gUnknown_08215C2C[];
+extern const u8 gUnknown_08E6C920[];
+extern const u8 gUnknown_08E6D354[];
+extern const u16 gUnknown_08215C0C[];
+extern const u16 gUnknown_0821602C[];
+extern const struct SpriteSheet gUnknown_082163DC;
+extern const struct SpriteSheet gUnknown_082164F4;
+extern const struct SpriteSheet gUnknown_08216454;
+extern const struct SpriteSheet gUnknown_08216540;
+extern const struct SpriteSheet gUnknown_08216574;
+extern const struct SpritePalette gUnknown_082163EC;
+extern const struct SpritePalette gUnknown_082163E4;
+
+bool8 sub_804E2EC(void)
+{
+ switch (sBerryBlenderData->field_1)
+ {
+ case 0:
+ sub_800D238(gUnknown_08E6C100, &ewram[0x10000]);
+ sBerryBlenderData->field_1++;
+ break;
+ case 1:
+ {
+ const void* offsetRead = gUnknown_08215C2C;
+ void* offsetWrite = (void*)(VRAM + 0x4000);
+
+ DmaCopy16(3, offsetRead, offsetWrite, 0x400);
+ LoadPalette(gUnknown_08215C0C, 0, 0x100);
+ sBerryBlenderData->field_1++;
+ }
+ break;
+ case 2:
+ {
+ void* offsetRead = &ewram[0x10000];
+ void* offsetWrite = (void*)(VRAM);
+ u32 size = 0x2000;
+ while (TRUE)
+ {
+ DmaCopy16(3, offsetRead, offsetWrite, 0x1000);
+ offsetRead += 0x1000;
+ offsetWrite += 0x1000;
+ size -= 0x1000;
+ if (size <= 0x1000)
+ {
+ DmaCopy16(3, offsetRead, offsetWrite, size);
+ break;
+ }
+ }
+ sBerryBlenderData->field_1++;
+ }
+ break;
+ case 3:
+ sub_800D238(gUnknown_08E6C920, &ewram[0x10000]);
+ sBerryBlenderData->field_1++;
+ break;
+ case 4:
+ sub_800D238(gUnknown_08E6D354, &ewram[0x13000]);
+ sBerryBlenderData->field_1++;
+ break;
+ case 5:
+ {
+ void* offsetRead = &ewram[0x10000];
+ void* offsetWrite = (void*)(VRAM + 0xE000);
+
+ DmaCopy16(3, offsetRead, offsetWrite, 0x1000);
+ sBerryBlenderData->field_1++;
+ }
+ break;
+ case 6:
+ {
+ void* offsetRead = &ewram[0x11000];
+ void* offsetWrite = (void*)(VRAM + 0xF000);
+
+ DmaCopy16(3, offsetRead, offsetWrite, 0x1000);
+ sBerryBlenderData->field_1++;
+ }
+ break;
+ case 7:
+ {
+ u16 i;
+ u16* palStore = (u16*)(&ewram[0x13000]);
+ void* offsetRead;
+ void* offsetWrite;
+
+ for (i = 0; i < 640; i++)
+ {
+ *(palStore + i) |= 0x100;
+ }
+ offsetRead = &ewram[0x13000];
+ offsetWrite = (void*)(VRAM + 0x6000);
+ DmaCopy16(3, offsetRead, offsetWrite, 0x500);
+ LoadPalette(gUnknown_0821602C, 0x80, 0x20);
+ sBerryBlenderData->field_1++;
+ }
+ break;
+ case 8:
+ LoadSpriteSheet(&gUnknown_082163DC);
+ LoadSpriteSheet(&gUnknown_082164F4);
+ LoadSpriteSheet(&gUnknown_08216454);
+ sBerryBlenderData->field_1++;
+ break;
+ case 9:
+ LoadSpriteSheet(&gUnknown_08216540);
+ LoadSpriteSheet(&gUnknown_08216574);
+ LoadSpritePalette(&gUnknown_082163EC);
+ LoadSpritePalette(&gUnknown_082163E4);
+ sBerryBlenderData->field_1 = 0;
+ return 1;
+ }
+ return 0;
+}
+
+void sub_804E4FC(void)
+{
+ REG_DISPCNT = 0x1341;
+ REG_BG2CNT = 0x4880;
+ REG_BG1CNT = 0xC0D;
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+}
+
+void sub_804E538(void)
+{
+ u8* field6F; //this temp value is needed to match
+
+ sBerryBlenderData = (struct BerryBlenderData*)(&ewram[0x18000]);
+
+ field6F = &sBerryBlenderData->field_6F;
+ sBerryBlenderData->field_0 = 0;
+ *field6F = 0;
+
+ sub_804E884(gSpecialVar_0x8004);
+ SetMainCallback2(sub_804E56C);
+}
+
+extern const struct WindowConfig gWindowConfig_81E6F68;
+extern const u8 sBlenderSyncArrowsPos[][2];
+extern const struct SpriteTemplate sBlenderSyncArrow_SpriteTemplate;
+
+void sub_804E56C(void)
+{
+ s32 i;
+ switch (sBerryBlenderData->field_0)
+ {
+ case 0:
+ REG_DISPCNT = 0;
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ SetVBlankCallback(NULL);
+ SetUpWindowConfig(&gWindowConfig_81E6F68);
+ InitMenuWindow(&gWindowConfig_81E6F68);
+ sBerryBlenderData->field_0++;
+ sBerryBlenderData->field_140 = 0;
+ sBerryBlenderData->field_13E = 0;
+ sBerryBlenderData->field_142 = 0x50;
+ sBerryBlenderData->field_144 = 0;
+ sBerryBlenderData->field_146 = 0;
+ sBerryBlenderData->field_1 = 0;
+ sub_8051474();
+ break;
+ case 1:
+ if (sub_804E2EC())
+ {
+ for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
+ {
+ sBerryBlenderData->SyncArrowSpriteID[i] = CreateSprite(&sBlenderSyncArrow_SpriteTemplate, sBlenderSyncArrowsPos[i][0], sBlenderSyncArrowsPos[i][1], 1);
+ StartSpriteAnim(&gSprites[sBerryBlenderData->SyncArrowSpriteID[i]], i + 8);
+ }
+ SetVBlankCallback(VBlankCB0_BerryBlender);
+ sBerryBlenderData->field_0++;
+ }
+ break;
+ case 2:
+ BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
+ sub_8051474();
+ sBerryBlenderData->field_0++;
+ break;
+ case 3:
+ sub_804E4FC();
+ if (!gPaletteFade.active)
+ {
+ sBerryBlenderData->field_0++;
+ }
+ break;
+ case 4:
+ MenuDrawTextWindow(0, 14, 29, 19);
+ MenuPrintMessage(gOtherText_BlenderChooseBerry, 1, 15);
+ sBerryBlenderData->field_0++;
+ break;
+ case 5:
+ if (MenuUpdateWindowText())
+ {
+ sBerryBlenderData->field_0++;
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
+ }
+ break;
+ case 6:
+ if (!gPaletteFade.active)
+ {
+ sub_80A6978();
+ sBerryBlenderData->field_0 = 0;
+ }
+ break;
+ }
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
+
+void sub_804E738(struct Sprite* sprite)
+{
+ sprite->data1 += sprite->data6;
+ sprite->data2 -= sprite->data4;
+ sprite->data2 += sprite->data7;
+ sprite->data0 += sprite->data7;
+ sprite->data4--;
+
+ if (sprite->data0 < sprite->data2)
+ {
+ sprite->data3 = sprite->data4 = sprite->data3 - 1;
+ if (++sprite->data5 > 3)
+ DestroySprite(sprite);
+ else
+ PlaySE(116);
+ }
+ sprite->pos1.x = sprite->data1;
+ sprite->pos1.y = sprite->data2;
+}
+
+void sub_804E794(struct Sprite* sprite, s16 a2, s16 a3, s16 a4, s16 a5, s16 a6)
+{
+ sprite->data0 = a3;
+ sprite->data1 = a2;
+ sprite->data2 = a3;
+ sprite->data3 = a4;
+ sprite->data4 = 10;
+ sprite->data5 = 0;
+ sprite->data6 = a5;
+ sprite->data7 = a6;
+ sprite->callback = sub_804E738;
+}
+
+extern const s16 gUnknown_08216594[][5];
+
+void sub_804E7C0(u16 a0, u8 a1)
+{
+ u8 spriteID = sub_80A7DEC(a0 + 123, 0, 80, a1 & 1);
+ sub_804E794(&gSprites[spriteID], gUnknown_08216594[a1][0], gUnknown_08216594[a1][1], gUnknown_08216594[a1][2], gUnknown_08216594[a1][3], gUnknown_08216594[a1][4]);
+}
+
+void Blender_CopyBerryData(struct BlenderBerry* berry, u16 itemID)
+{
+ const struct Berry *berryInfo = GetBerryInfo(itemID + 124);
+ berry->field_0 = itemID;
+ StringCopy(berry->name, berryInfo->name);
+ berry->spicy = berryInfo->spicy;
+ berry->dry = berryInfo->dry;
+ berry->sweet = berryInfo->sweet;
+ berry->bitter = berryInfo->bitter;
+ berry->sour = berryInfo->sour;
+ berry->smoothness = berryInfo->smoothness;
+}
+
+extern u8 gUnknown_03004834;
+extern const u8* const gUnknown_082162B8[];
+
+void sub_804E884(u8 a0)
+{
+ int i;
+ if (a0)
+ {
+ for (i = 0; i < 4; i++)
+ gLinkPlayers[i].language = LANGUAGE_ENGLISH;
+ }
+ switch (a0)
+ {
+ case 0:
+ gUnknown_03004834 = 0;
+ break;
+ case 1:
+ gUnknown_03004834 = 1;
+ sBerryBlenderData->field_88 = 2;
+ StringCopy(gLinkPlayers[0].name, gSaveBlock2.playerName);
+ StringCopy(gLinkPlayers[1].name, gUnknown_082162B8[0]);
+ break;
+ case 2:
+ gUnknown_03004834 = 2;
+ sBerryBlenderData->field_88 = 3;
+ StringCopy(gLinkPlayers[0].name, gSaveBlock2.playerName);
+ StringCopy(gLinkPlayers[1].name, gUnknown_082162B8[0]);
+ StringCopy(gLinkPlayers[2].name, gUnknown_082162B8[1]);
+ break;
+ case 3:
+ gUnknown_03004834 = 3;
+ sBerryBlenderData->field_88 = 4;
+ StringCopy(gLinkPlayers[0].name, gSaveBlock2.playerName);
+ StringCopy(gLinkPlayers[1].name, gUnknown_082162B8[0]);
+ StringCopy(gLinkPlayers[2].name, gUnknown_082162B8[1]);
+ StringCopy(gLinkPlayers[3].name, gUnknown_082162B8[2]);
+ break;
+ }
+}
+
+void sub_804E990(void)
+{
+ s32 i;
+
+ REG_DISPCNT = 0;
+ sBerryBlenderData = (struct BerryBlenderData*)(&ewram[0x18000]);
+ sBerryBlenderData->field_0 = 0;
+ sBerryBlenderData->field_134 = 0;
+ for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
+ {
+ sBerryBlenderData->field_80[i] = 0;
+ }
+ sub_804E884(gSpecialVar_0x8004);
+ if (gSpecialVar_0x8004 == 0)
+ SetMainCallback2(sub_804E9F8);
+ else
+ SetMainCallback2(sub_804F378);
+}
+
+extern u16 gScriptItemId;
+
+extern const u8 gUnknown_082162EC[3][4];
+extern const u16 gUnknown_082162F8[];
+extern const u8 gUnknown_08216300[];
+
+void sub_804E9F8(void)
+{
+ int i, j;
+ switch (sBerryBlenderData->field_0)
+ {
+ case 0:
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ ResetTasks();
+ SetVBlankCallback(VBlankCB0_BerryBlender);
+ SetUpWindowConfig(&gWindowConfig_81E6F68);
+ InitMenuWindow(&gWindowConfig_81E6F68);
+ gLinkType = 0x4422;
+ sBerryBlenderData->field_0++;
+ sBerryBlenderData->field_4E = 0;
+ sBerryBlenderData->field_7E = 0;
+ sBerryBlenderData->field_144 = 0;
+ sBerryBlenderData->field_146 = 0;
+ for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
+ {
+ sBerryBlenderData->field_70[i] = 0;
+ for (j = 0; j < 2; j++)
+ {
+ sBerryBlenderData->field_14C[i][j] = 0;
+ }
+ }
+ sBerryBlenderData->field_7C = 0;
+ sBerryBlenderData->hitPitch = 0;
+ sBerryBlenderData->field_54 = 0;
+ sBerryBlenderData->field_5A = 0;
+ sBerryBlenderData->field_1 = 0;
+ break;
+ case 1:
+ if (!sub_804E2EC())
+ {
+ sBerryBlenderData->field_0++;
+ sub_8051474();
+ }
+ break;
+ case 2:
+ for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
+ {
+ sBerryBlenderData->SyncArrowSpriteID[i] = CreateSprite(&sBlenderSyncArrow_SpriteTemplate, sBlenderSyncArrowsPos[i][0], sBlenderSyncArrowsPos[i][1], 1);
+ StartSpriteAnim(&gSprites[sBerryBlenderData->SyncArrowSpriteID[i]], i + 8);
+ }
+ sBerryBlenderData->field_0++;
+ break;
+ case 3:
+ BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
+ sBerryBlenderData->field_0++;
+ break;
+ case 4:
+ sub_804E4FC();
+ if (!gPaletteFade.active)
+ {
+ sBerryBlenderData->field_0++;
+ }
+ break;
+ case 5:
+ MenuDrawTextWindow(0, 14, 29, 19);
+ MenuPrint(gOtherText_BlenderChooseBerry, 1, 15);
+ sBerryBlenderData->field_0 = 8;
+ sBerryBlenderData->field_130 = 0;
+ break;
+ case 8:
+ sBerryBlenderData->field_0++;
+ sBerryBlenderData->field_13C = 0;
+ Blender_CopyBerryData(&sBerryBlenderData->blendedBerries[0], gScriptItemId);
+ memcpy(gBlockSendBuffer, &sBerryBlenderData->blendedBerries[0], sizeof(struct BlenderBerry));
+ sub_80084A4();
+ sBerryBlenderData->field_130 = 0;
+ break;
+ case 9:
+ if (sub_8007ECC())
+ {
+ ResetBlockReceivedFlags();
+ if (GetMultiplayerId() == 0)
+ sub_8007E9C(4);
+ sBerryBlenderData->field_0++;
+ }
+ break;
+ case 10:
+ if (++sBerryBlenderData->field_130 > 20)
+ {
+ MenuZeroFillScreen();
+ if (GetBlockReceivedStatus() == sub_8008198())
+ {
+ for (i = 0; i < GetLinkPlayerCount(); i++)
+ {
+ memcpy(&sBerryBlenderData->blendedBerries[i], &gBlockRecvBuffer[i][256], sizeof(struct BlenderBerry));
+ sBerryBlenderData->field_80[i] = sBerryBlenderData->blendedBerries[i].field_0;
+ }
+ ResetBlockReceivedFlags();
+ sBerryBlenderData->field_0++;
+ }
+ }
+ break;
+ case 11:
+ sBerryBlenderData->field_88 = GetLinkPlayerCount();
+ for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
+ {
+ if (sBerryBlenderData->field_13C == gUnknown_082162EC[sBerryBlenderData->field_88][i])
+ {
+ sub_804E7C0(sBerryBlenderData->field_80[sBerryBlenderData->field_88], i);
+ break;
+ }
+ }
+ sBerryBlenderData->field_130 = 0;
+ sBerryBlenderData->field_0++;
+ sBerryBlenderData->field_13C++;
+ break;
+ case 12:
+ if (++sBerryBlenderData->field_130 > 60)
+ {
+ if (sBerryBlenderData->field_13C >= sBerryBlenderData->field_88)
+ {
+ sBerryBlenderData->field_0++;
+ sBerryBlenderData->field_54 = gUnknown_082162F8[gUnknown_08216300[sBerryBlenderData->field_88 - 2]] - 22528;
+ }
+ else
+ sBerryBlenderData->field_0--;
+ sBerryBlenderData->field_130 = 0;
+ }
+ break;
+ case 13:
+ if (sub_8007ECC())
+ {
+ sBerryBlenderData->field_0++;
+ sub_8051414(&sBerryBlenderData->field_168);
+ }
+ break;
+ case 14:
+
+ break;
+ }
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
diff --git a/sym_common.txt b/sym_common.txt
index fc729a587..338d60d96 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -134,7 +134,7 @@ gUnknown_03004834: @ 3004834
gUnknown_03004840: @ 3004840
.space 0x14
-gUnknown_03004854: @ 3004854
+sBerryBlenderData: @ 3004854
.space 0x4
.include "rom4.o"