summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/dodrio_berry_picking.s98
-rw-r--r--data/data_8479668.s (renamed from data/data_8471F50.s)177
-rw-r--r--data/strings.s31
-rw-r--r--graphics/link_games/dodrioberry_berrysprites.pngbin0 -> 395 bytes
-rw-r--r--graphics/link_games/dodrioberry_bg1.binbin0 -> 1280 bytes
-rw-r--r--graphics/link_games/dodrioberry_bg1.pal19
-rw-r--r--graphics/link_games/dodrioberry_bg1.pngbin0 -> 1887 bytes
-rw-r--r--graphics/link_games/dodrioberry_bg2.pal19
-rw-r--r--graphics/link_games/dodrioberry_bg2.pngbin0 -> 2856 bytes
-rw-r--r--graphics/link_games/dodrioberry_bg2left.binbin0 -> 1280 bytes
-rw-r--r--graphics/link_games/dodrioberry_bg2right.binbin0 -> 1280 bytes
-rw-r--r--graphics/link_games/dodrioberry_pkmn.pngbin0 -> 3330 bytes
-rw-r--r--graphics/link_games/dodrioberry_platform.pngbin0 -> 310 bytes
-rw-r--r--graphics/link_games/dodrioberry_shiny.pal19
-rw-r--r--graphics/link_games/dodrioberry_status.pngbin0 -> 195 bytes
-rw-r--r--include/strings.h22
-rw-r--r--ld_script.txt6
-rw-r--r--src/dodrio_berry_picking.c748
18 files changed, 899 insertions, 240 deletions
diff --git a/asm/dodrio_berry_picking.s b/asm/dodrio_berry_picking.s
index ceccf74ff..892dff901 100644
--- a/asm/dodrio_berry_picking.s
+++ b/asm/dodrio_berry_picking.s
@@ -6691,7 +6691,7 @@ sub_8153A9C: @ 8153A9C
ldr r0, [r0]
str r0, [sp, 0x10]
str r1, [sp, 0x14]
- ldr r0, _08153AF8 @ =gUnknown_8477374
+ ldr r0, _08153AF8 @ =gDodrioBerryPkmnGfx
adds r1, r4, 0
bl LZ77UnCompWram
cmp r4, 0
@@ -6714,7 +6714,7 @@ _08153ADC:
.align 2, 0
_08153AF0: .4byte gUnknown_8478D90
_08153AF4: .4byte gUnknown_8478D98
-_08153AF8: .4byte gUnknown_8477374
+_08153AF8: .4byte gDodrioBerryPkmnGfx
thumb_func_end sub_8153A9C
thumb_func_start sub_8153AFC
@@ -6741,9 +6741,9 @@ sub_8153AFC: @ 8153AFC
mov r0, sp
adds r0, 0x1A
strh r2, [r0]
- ldr r0, _08153B88 @ =gUnknown_8478C98
+ ldr r0, _08153B88 @ =sOamData_8478C98
str r0, [sp, 0x1C]
- ldr r0, _08153B8C @ =gUnknown_8478CE0
+ ldr r0, _08153B8C @ =sSpriteAnimTable_8478CE0
str r0, [sp, 0x20]
str r3, [sp, 0x24]
ldr r0, _08153B90 @ =gDummySpriteAffineAnimTable
@@ -6784,8 +6784,8 @@ sub_8153AFC: @ 8153AFC
pop {r0}
bx r0
.align 2, 0
-_08153B88: .4byte gUnknown_8478C98
-_08153B8C: .4byte gUnknown_8478CE0
+_08153B88: .4byte sOamData_8478C98
+_08153B8C: .4byte sSpriteAnimTable_8478CE0
_08153B90: .4byte gDummySpriteAffineAnimTable
_08153B94: .4byte sub_8153B9C
_08153B98: .4byte gUnknown_203F3E4
@@ -7167,7 +7167,7 @@ sub_8153E28: @ 8153E28
ldr r0, [r0]
str r0, [sp, 0x20]
str r1, [sp, 0x24]
- ldr r0, _08153ECC @ =gUnknown_8477198
+ ldr r0, _08153ECC @ =gDodrioBerryStatusGfx
adds r1, r6, 0
bl LZ77UnCompWram
cmp r6, 0
@@ -7231,7 +7231,7 @@ _08153EB8:
bx r0
.align 2, 0
_08153EC8: .4byte gUnknown_8478DA0
-_08153ECC: .4byte gUnknown_8477198
+_08153ECC: .4byte gDodrioBerryStatusGfx
_08153ED0: .4byte gUnknown_8478DA8
_08153ED4: .4byte gUnknown_203F43C
thumb_func_end sub_8153E28
@@ -7563,7 +7563,7 @@ sub_8154128: @ 8154128
ldr r0, [r0]
str r0, [sp, 0x8]
str r1, [sp, 0xC]
- ldr r0, _08154178 @ =gUnknown_8475968
+ ldr r0, _08154178 @ =gDodrioBerrySpritesGfx
adds r1, r4, 0
bl LZ77UnCompWram
cmp r4, 0
@@ -7586,7 +7586,7 @@ _0815415E:
bx r0
.align 2, 0
_08154174: .4byte gUnknown_8478DCC
-_08154178: .4byte gUnknown_8475968
+_08154178: .4byte gDodrioBerrySpritesGfx
thumb_func_end sub_8154128
thumb_func_start sub_815417C
@@ -7971,7 +7971,7 @@ sub_8154438: @ 8154438
ldr r0, [r0]
str r0, [sp, 0x20]
str r1, [sp, 0x24]
- ldr r0, _081544E0 @ =gUnknown_847722C
+ ldr r0, _081544E0 @ =gDodrioBerryPlatformGfx
adds r1, r6, 0
bl LZ77UnCompWram
cmp r6, 0
@@ -8034,7 +8034,7 @@ _081544C6:
bx r0
.align 2, 0
_081544DC: .4byte gUnknown_8478E18
-_081544E0: .4byte gUnknown_847722C
+_081544E0: .4byte gDodrioBerryPlatformGfx
_081544E4: .4byte gUnknown_8478E20
_081544E8: .4byte gUnknown_8478E0E
_081544EC: .4byte gUnknown_203F3F8
@@ -8777,17 +8777,17 @@ _08154A6E:
_08154A80: .4byte gUnknown_203F440
_08154A84: .4byte 0x00003014
_08154A88:
- ldr r1, _08154AC0 @ =gUnknown_8478590
+ ldr r1, _08154AC0 @ =gDodrioBerryBgTilemap1
movs r0, 0x3
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
- ldr r1, _08154AC4 @ =gUnknown_8478A4C
+ ldr r1, _08154AC4 @ =gDodrioBerryBgTilemap2Left
movs r0, 0x1
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
- ldr r1, _08154AC8 @ =gUnknown_84787FC
+ ldr r1, _08154AC8 @ =gDodrioBerryBgTilemap2Right
movs r0, 0x2
movs r2, 0
movs r3, 0
@@ -8800,9 +8800,9 @@ _08154A88:
bl CopyBgTilemapBufferToVram
b _08154B08
.align 2, 0
-_08154AC0: .4byte gUnknown_8478590
-_08154AC4: .4byte gUnknown_8478A4C
-_08154AC8: .4byte gUnknown_84787FC
+_08154AC0: .4byte gDodrioBerryBgTilemap1
+_08154AC4: .4byte gDodrioBerryBgTilemap2Left
+_08154AC8: .4byte gDodrioBerryBgTilemap2Right
_08154ACC:
movs r0, 0
bl ShowBg
@@ -9215,7 +9215,7 @@ _08154E1C:
bcc _08154DF4
_08154E22:
movs r5, 0
- ldr r4, _08154F68 @ =gUnknown_841CE1C
+ ldr r4, _08154F68 @ =gText_SpacePoints
cmp r5, r7
bcs _08154E48
add r1, sp, 0x34
@@ -9354,7 +9354,7 @@ _08154EC8:
str r4, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
- ldr r2, _08154F68 @ =gUnknown_841CE1C
+ ldr r2, _08154F68 @ =gText_SpacePoints
lsrs r3, 24
bl AddTextPrinterParameterized
adds r0, r5, 0x1
@@ -9373,7 +9373,7 @@ _08154F52:
bx r0
.align 2, 0
_08154F64: .4byte gUnknown_8478F14
-_08154F68: .4byte gUnknown_841CE1C
+_08154F68: .4byte gText_SpacePoints
_08154F6C: .4byte 0x00003009
_08154F70: .4byte gUnknown_203F440
_08154F74: .4byte gUnknown_8478E94
@@ -9488,7 +9488,7 @@ _08155060:
ldrb r0, [r0]
movs r1, 0x11
bl FillWindowPixelBuffer
- ldr r2, _081551B4 @ =gUnknown_841CD03
+ ldr r2, _081551B4 @ =gText_BerryPickingResults
mov r8, r2
movs r2, 0x1
negs r2, r2
@@ -9516,7 +9516,7 @@ _08155060:
ldr r0, [r4]
add r0, r9
ldrb r0, [r0]
- ldr r2, _081551B8 @ =gUnknown_841CD25
+ ldr r2, _081551B8 @ =gText_10P30P50P50P
movs r1, 0x10
str r1, [sp]
str r6, [sp, 0x4]
@@ -9616,7 +9616,7 @@ _0815512E:
lsrs r2, 24
mov r1, r8
ldrb r3, [r1]
- ldr r1, _081551CC @ =gUnknown_8478E3B
+ ldr r1, _081551CC @ =gUnknown_8478E38+0x3
str r1, [sp]
movs r1, 0x1
negs r1, r1
@@ -9630,13 +9630,13 @@ _0815512E:
_081551A8: .4byte gUnknown_203F440
_081551AC: .4byte 0x00003008
_081551B0: .4byte 0x00003009
-_081551B4: .4byte gUnknown_841CD03
-_081551B8: .4byte gUnknown_841CD25
+_081551B4: .4byte gText_BerryPickingResults
+_081551B8: .4byte gText_10P30P50P50P
_081551BC: .4byte gUnknown_8478EB0
_081551C0: .4byte gUnknown_8478E38
_081551C4: .4byte gUnknown_8478EA8
_081551C8: .4byte 0x0000270f
-_081551CC: .4byte gUnknown_8478E3B
+_081551CC: .4byte gUnknown_8478E38+0x3
_081551D0:
ldr r0, _0815523C @ =gUnknown_203F440
ldr r0, [r0]
@@ -9773,7 +9773,7 @@ _081552DC:
ldrb r0, [r0]
movs r1, 0x11
bl FillWindowPixelBuffer
- ldr r6, _0815533C @ =gUnknown_841CD43
+ ldr r6, _0815533C @ =gText_AnnouncingRankings
movs r2, 0x1
negs r2, r2
movs r0, 0
@@ -9801,7 +9801,7 @@ _081552DC:
_08155330: .4byte gUnknown_203F440
_08155334: .4byte 0x00003008
_08155338: .4byte 0x00003009
-_0815533C: .4byte gUnknown_841CD43
+_0815533C: .4byte gText_AnnouncingRankings
_08155340:
ldr r0, [sp, 0x84]
bl sub_8154D9C
@@ -9957,7 +9957,7 @@ _08155480:
ldrb r0, [r0]
movs r1, 0x11
bl FillWindowPixelBuffer
- ldr r5, _08155568 @ =gUnknown_841CD58
+ ldr r5, _08155568 @ =gText_AnnouncingPrizes
movs r2, 0x1
negs r2, r2
movs r0, 0
@@ -9993,7 +9993,7 @@ _08155480:
movs r0, 0
adds r1, r5, 0
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- ldr r1, _0815556C @ =gUnknown_841CD7A
+ ldr r1, _0815556C @ =gText_FirstPlacePrize
add r0, sp, 0xC
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
ldr r0, [r4]
@@ -10027,7 +10027,7 @@ _08155480:
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
cmp r4, 0x2
bne _08155574
- ldr r1, _08155570 @ =gUnknown_841CD9F
+ ldr r1, _08155570 @ =gText_CantHoldAnyMore
add r0, sp, 0xC
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
b _08155580
@@ -10036,13 +10036,13 @@ _08155558: .4byte 0x00000101
_0815555C: .4byte gUnknown_203F440
_08155560: .4byte 0x00003008
_08155564: .4byte 0x00003009
-_08155568: .4byte gUnknown_841CD58
-_0815556C: .4byte gUnknown_841CD7A
-_08155570: .4byte gUnknown_841CD9F
+_08155568: .4byte gText_AnnouncingPrizes
+_0815556C: .4byte gText_FirstPlacePrize
+_08155570: .4byte gText_CantHoldAnyMore
_08155574:
cmp r6, 0x1
bne _08155580
- ldr r1, _081555C4 @ =gUnknown_841CDBA
+ ldr r1, _081555C4 @ =gText_FilledStorageSpace
add r0, sp, 0xC
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
_08155580:
@@ -10079,7 +10079,7 @@ _0815559E:
adds r1, r0
b _0815565E
.align 2, 0
-_081555C4: .4byte gUnknown_841CDBA
+_081555C4: .4byte gText_FilledStorageSpace
_081555C8: .4byte gUnknown_203F440
_081555CC: .4byte 0x00003009
_081555D0: .4byte 0x00003008
@@ -10310,7 +10310,7 @@ _0815579C:
ldr r0, [r2]
add r0, r8
ldrb r0, [r0]
- ldr r2, _08155854 @ =gUnknown_841CDD7
+ ldr r2, _08155854 @ =gText_WantToPlayAgain
movs r1, 0x6
str r1, [sp]
movs r5, 0xFF
@@ -10376,7 +10376,7 @@ _0815579C:
.align 2, 0
_0815584C: .4byte 0x00003008
_08155850: .4byte 0x00003009
-_08155854: .4byte gUnknown_841CDD7
+_08155854: .4byte gText_WantToPlayAgain
_08155858: .4byte gText_Yes
_0815585C: .4byte gText_No
_08155860: .4byte gFameCheckerText_ListMenuCursor
@@ -10789,7 +10789,7 @@ _08155BA4:
ldr r0, [r5]
adds r0, r4
ldrb r0, [r0]
- ldr r2, _08155BE4 @ =gUnknown_841CE24
+ ldr r2, _08155BE4 @ =gText_CommunicationStandby3
movs r1, 0x6
str r1, [sp]
movs r1, 0xFF
@@ -10810,7 +10810,7 @@ _08155BA4:
b _08155C0C
.align 2, 0
_08155BE0: .4byte 0x00003008
-_08155BE4: .4byte gUnknown_841CE24
+_08155BE4: .4byte gText_CommunicationStandby3
_08155BE8: .4byte 0x00003014
_08155BEC:
bl IsDma3ManagerBusyWithBgCopy
@@ -10961,7 +10961,7 @@ _08155D08:
ldr r0, [r6]
adds r0, r4
ldrb r0, [r0]
- ldr r2, _08155D48 @ =gUnknown_841CDEB
+ ldr r2, _08155D48 @ =gText_SomeoneDroppedOut
movs r1, 0x6
str r1, [sp]
movs r1, 0xFF
@@ -10982,7 +10982,7 @@ _08155D08:
b _08155D70
.align 2, 0
_08155D44: .4byte 0x00003008
-_08155D48: .4byte gUnknown_841CDEB
+_08155D48: .4byte gText_SomeoneDroppedOut
_08155D4C: .4byte 0x00003014
_08155D50:
bl IsDma3ManagerBusyWithBgCopy
@@ -11340,26 +11340,26 @@ _08156008:
.4byte _0815605C
.4byte _0815606A
_08156020:
- ldr r0, _0815602C @ =gUnknown_84758A8
+ ldr r0, _0815602C @ =gDodrioBerryBgPal1
movs r1, 0
movs r2, 0x40
bl LoadPalette
b _08156082
.align 2, 0
-_0815602C: .4byte gUnknown_84758A8
+_0815602C: .4byte gDodrioBerryBgPal1
_08156030:
bl ResetTempTileDataBuffers
b _08156082
_08156036:
- ldr r1, _08156040 @ =gUnknown_8475B3C
+ ldr r1, _08156040 @ =gDodrioBerryBgGfx1
movs r0, 0
str r0, [sp]
movs r0, 0x3
b _0815604C
.align 2, 0
-_08156040: .4byte gUnknown_8475B3C
+_08156040: .4byte gDodrioBerryBgGfx1
_08156044:
- ldr r1, _08156058 @ =gUnknown_84763CC
+ ldr r1, _08156058 @ =gDodrioBerryBgGfx2
movs r0, 0
str r0, [sp]
movs r0, 0x1
@@ -11369,7 +11369,7 @@ _0815604C:
bl DecompressAndCopyTileDataToVram
b _08156082
.align 2, 0
-_08156058: .4byte gUnknown_84763CC
+_08156058: .4byte gDodrioBerryBgGfx2
_0815605C:
bl FreeTempTileDataBuffersIfPossible
lsls r0, 24
diff --git a/data/data_8471F50.s b/data/data_8479668.s
index 8a3a7ae77..8527b4f09 100644
--- a/data/data_8471F50.s
+++ b/data/data_8479668.s
@@ -14,183 +14,6 @@
.section .rodata
.align 2
-gUnknown_8471F50:: @ 8471F50
- .incbin "baserom.gba", 0x471F50, 0x113
-
-gUnknown_8472063:: @ 8472063
- .incbin "baserom.gba", 0x472063, 0x4B
-
-gUnknown_84720AE:: @ 84720AE
- .incbin "baserom.gba", 0x4720AE, 0x4E
-
-gUnknown_84720FC:: @ 84720FC
- .incbin "baserom.gba", 0x4720FC, 0x37
-
-gUnknown_8472133:: @ 8472133
- .incbin "baserom.gba", 0x472133, 0x3409
-
-gUnknown_847553C:: @ 847553C
- .incbin "baserom.gba", 0x47553C, 0xC
-
-gUnknown_8475548:: @ 8475548
- .incbin "baserom.gba", 0x475548, 0x8
-
-gUnknown_8475550:: @ 8475550
- .incbin "baserom.gba", 0x475550, 0x8
-
-gUnknown_8475558:: @ 8475558
- .incbin "baserom.gba", 0x475558, 0x20
-
-gUnknown_8475578:: @ 8475578
- .incbin "baserom.gba", 0x475578, 0x30
-
-gUnknown_84755A8:: @ 84755A8
- .incbin "baserom.gba", 0x4755A8, 0x30
-
-gUnknown_84755D8:: @ 84755D8
- .incbin "baserom.gba", 0x4755D8, 0x8
-
-gUnknown_84755E0:: @ 84755E0
- .incbin "baserom.gba", 0x4755E0, 0x8
-
-gUnknown_84755E8:: @ 84755E8
- .incbin "baserom.gba", 0x4755E8, 0x10
-
-gUnknown_84755F8:: @ 84755F8
- .incbin "baserom.gba", 0x4755F8, 0x4
-
-gUnknown_84755FC:: @ 84755FC
- .incbin "baserom.gba", 0x4755FC, 0x6
-
-gUnknown_8475602:: @ 8475602
- .incbin "baserom.gba", 0x475602, 0x6
-
-gUnknown_8475608:: @ 8475608
- .incbin "baserom.gba", 0x475608, 0x40
-
-gUnknown_8475648:: @ 8475648
- .incbin "baserom.gba", 0x475648, 0x14
-
-gUnknown_847565C:: @ 847565C
- .incbin "baserom.gba", 0x47565C, 0x18
-
-gUnknown_8475674:: @ 8475674
- .incbin "baserom.gba", 0x475674, 0x10
-
-gUnknown_8475684:: @ 8475684
- .incbin "baserom.gba", 0x475684, 0x8
-
-gUnknown_847568C:: @ 847568C
- .incbin "baserom.gba", 0x47568C, 0x10
-
-gUnknown_847569C:: @ 847569C
- .incbin "baserom.gba", 0x47569C, 0x8
-
-gUnknown_84756A4:: @ 84756A4
- .incbin "baserom.gba", 0x4756A4, 0x204
-
-gUnknown_84758A8:: @ 84758A8
- .incbin "baserom.gba", 0x4758A8, 0xC0
-
-gUnknown_8475968:: @ 8475968
- .incbin "baserom.gba", 0x475968, 0x1D4
-
-gUnknown_8475B3C:: @ 8475B3C
- .incbin "baserom.gba", 0x475B3C, 0x890
-
-gUnknown_84763CC:: @ 84763CC
- .incbin "baserom.gba", 0x4763CC, 0xDCC
-
-gUnknown_8477198:: @ 8477198
- .incbin "baserom.gba", 0x477198, 0x94
-
-gUnknown_847722C:: @ 847722C
- .incbin "baserom.gba", 0x47722C, 0x148
-
-gUnknown_8477374:: @ 8477374
- .incbin "baserom.gba", 0x477374, 0x121C
-
-gUnknown_8478590:: @ 8478590
- .incbin "baserom.gba", 0x478590, 0x26C
-
-gUnknown_84787FC:: @ 84787FC
- .incbin "baserom.gba", 0x4787FC, 0x250
-
-gUnknown_8478A4C:: @ 8478A4C
- .incbin "baserom.gba", 0x478A4C, 0x24C
-
-gUnknown_8478C98:: @ 8478C98
- .incbin "baserom.gba", 0x478C98, 0x48
-
-gUnknown_8478CE0:: @ 8478CE0
- .incbin "baserom.gba", 0x478CE0, 0xB0
-
-gUnknown_8478D90:: @ 8478D90
- .incbin "baserom.gba", 0x478D90, 0x8
-
-gUnknown_8478D98:: @ 8478D98
- .incbin "baserom.gba", 0x478D98, 0x8
-
-gUnknown_8478DA0:: @ 8478DA0
- .incbin "baserom.gba", 0x478DA0, 0x8
-
-gUnknown_8478DA8:: @ 8478DA8
- .incbin "baserom.gba", 0x478DA8, 0x24
-
-gUnknown_8478DCC:: @ 8478DCC
- .incbin "baserom.gba", 0x478DCC, 0x8
-
-gUnknown_8478DD4:: @ 8478DD4
- .incbin "baserom.gba", 0x478DD4, 0x8
-
-gUnknown_8478DDC:: @ 8478DDC
- .incbin "baserom.gba", 0x478DDC, 0x18
-
-gUnknown_8478DF4:: @ 8478DF4
- .incbin "baserom.gba", 0x478DF4, 0x18
-
-gUnknown_8478E0C:: @ 8478E0C
- .incbin "baserom.gba", 0x478E0C, 0x2
-
-gUnknown_8478E0E:: @ 8478E0E
- .incbin "baserom.gba", 0x478E0E, 0xA
-
-gUnknown_8478E18:: @ 8478E18
- .incbin "baserom.gba", 0x478E18, 0x8
-
-gUnknown_8478E20:: @ 8478E20
- .incbin "baserom.gba", 0x478E20, 0x18
-
-gUnknown_8478E38:: @ 8478E38
- .incbin "baserom.gba", 0x478E38, 0x3
-
-gUnknown_8478E3B:: @ 8478E3B
- .incbin "baserom.gba", 0x478E3B, 0x45
-
-gUnknown_8478E80:: @ 8478E80
- .incbin "baserom.gba", 0x478E80, 0x14
-
-gUnknown_8478E94:: @ 8478E94
- .incbin "baserom.gba", 0x478E94, 0x14
-
-gUnknown_8478EA8:: @ 8478EA8
- .incbin "baserom.gba", 0x478EA8, 0x8
-
-gUnknown_8478EB0:: @ 8478EB0
- .incbin "baserom.gba", 0x478EB0, 0xA
-
-gUnknown_8478EBA:: @ 8478EBA
- .incbin "baserom.gba", 0x478EBA, 0xA
-
-gUnknown_8478EC4:: @ 8478EC4
- .incbin "baserom.gba", 0x478EC4, 0x50
-
-gUnknown_8478F14:: @ 8478F14
- .incbin "baserom.gba", 0x478F14, 0x8
-
- .section .rodata.8479668
-
- .align 2
gUnknown_8479668:: @ 8479668
.incbin "graphics/misc/unk_8479688.gbapal"
diff --git a/data/strings.s b/data/strings.s
index ac7241354..27481f0a0 100644
--- a/data/strings.s
+++ b/data/strings.s
@@ -3351,58 +3351,67 @@ gUnknown_841CC64:: @ 841CC64
.string "SAVING...\n"
.string "DON'T TURN OFF THE POWER.$"
+gText_BerryPickingRecords::
.string "DODRIO BERRY-PICKING RECORDS$"
+gText_BerriesPicked::
.string "BERRIES picked:$"
+gText_BestScore::
.string "Best score:$"
+gText_BerriesInRowFivePlayers::
.string "BERRIES picked in a row with\n"
.string "five players:$"
-gUnknown_841CD03:: @ 841CD03
+gText_BerryPickingResults:: @ 841CD03
.string "Announcing BERRY-PICKING results!$"
-gUnknown_841CD25:: @ 841CD25
+gText_10P30P50P50P:: @ 841CD25
.string "10P 30P 50P {EXTRA 0xDD}50P$"
-gUnknown_841CD43:: @ 841CD43
+gText_AnnouncingRankings:: @ 841CD43
.string "Announcing rankings!$"
-gUnknown_841CD58:: @ 841CD58
+gText_AnnouncingPrizes:: @ 841CD58
.string "Announcing prizes!$"
+gText_1Colon::
.string "1:$"
+gText_2Colon::
.string "2:$"
+gText_3Colon::
.string "3:$"
+gText_4Colon::
.string "4:$"
+gText_5Colon::
.string "5:$"
-gUnknown_841CD7A:: @ 841CD7A
+gText_FirstPlacePrize:: @ 841CD7A
.string "The first-place winner gets\n"
.string "this {DYNAMIC 00}!$"
-gUnknown_841CD9F:: @ 841CD9F
+gText_CantHoldAnyMore:: @ 841CD9F
.string "You can't hold any more...$"
-gUnknown_841CDBA:: @ 841CDBA
+gText_FilledStorageSpace:: @ 841CDBA
.string "It filled its storage space.$"
-gUnknown_841CDD7:: @ 841CDD7
+gText_WantToPlayAgain:: @ 841CDD7
.string "Want to play again?$"
-gUnknown_841CDEB:: @ 841CDEB
+gText_SomeoneDroppedOut:: @ 841CDEB
.string "Somebody dropped out.\n"
.string "The link will be canceled.$"
-gUnknown_841CE1C:: @ 841CE1C
+gText_SpacePoints:: @ 841CE1C
.string " points$"
-gUnknown_841CE24:: @ 841CE24
+gText_CommunicationStandby3:: @ 841CE24
.string "Communication standby…$"
.align 2
diff --git a/graphics/link_games/dodrioberry_berrysprites.png b/graphics/link_games/dodrioberry_berrysprites.png
new file mode 100644
index 000000000..81d3a6f97
--- /dev/null
+++ b/graphics/link_games/dodrioberry_berrysprites.png
Binary files differ
diff --git a/graphics/link_games/dodrioberry_bg1.bin b/graphics/link_games/dodrioberry_bg1.bin
new file mode 100644
index 000000000..8547f63fb
--- /dev/null
+++ b/graphics/link_games/dodrioberry_bg1.bin
Binary files differ
diff --git a/graphics/link_games/dodrioberry_bg1.pal b/graphics/link_games/dodrioberry_bg1.pal
new file mode 100644
index 000000000..c06550002
--- /dev/null
+++ b/graphics/link_games/dodrioberry_bg1.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+230 246 255
+82 180 172
+82 205 189
+156 156 131
+106 156 148
+123 123 98
+189 172 98
+189 189 139
+74 172 156
+172 172 131
+74 156 123
+115 115 82
+139 139 106
+164 164 115
+197 197 148
+230 246 255
diff --git a/graphics/link_games/dodrioberry_bg1.png b/graphics/link_games/dodrioberry_bg1.png
new file mode 100644
index 000000000..7079e8094
--- /dev/null
+++ b/graphics/link_games/dodrioberry_bg1.png
Binary files differ
diff --git a/graphics/link_games/dodrioberry_bg2.pal b/graphics/link_games/dodrioberry_bg2.pal
new file mode 100644
index 000000000..be2b62cc9
--- /dev/null
+++ b/graphics/link_games/dodrioberry_bg2.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+230 246 255
+246 246 222
+230 230 180
+139 238 139
+246 246 189
+197 246 164
+246 230 197
+230 246 255
+230 213 180
+205 197 164
+148 222 148
+222 238 255
+139 205 139
+213 238 246
+222 246 255
+213 205 164
diff --git a/graphics/link_games/dodrioberry_bg2.png b/graphics/link_games/dodrioberry_bg2.png
new file mode 100644
index 000000000..ee343dd13
--- /dev/null
+++ b/graphics/link_games/dodrioberry_bg2.png
Binary files differ
diff --git a/graphics/link_games/dodrioberry_bg2left.bin b/graphics/link_games/dodrioberry_bg2left.bin
new file mode 100644
index 000000000..73e83c6dd
--- /dev/null
+++ b/graphics/link_games/dodrioberry_bg2left.bin
Binary files differ
diff --git a/graphics/link_games/dodrioberry_bg2right.bin b/graphics/link_games/dodrioberry_bg2right.bin
new file mode 100644
index 000000000..a93db06df
--- /dev/null
+++ b/graphics/link_games/dodrioberry_bg2right.bin
Binary files differ
diff --git a/graphics/link_games/dodrioberry_pkmn.png b/graphics/link_games/dodrioberry_pkmn.png
new file mode 100644
index 000000000..41ecd921d
--- /dev/null
+++ b/graphics/link_games/dodrioberry_pkmn.png
Binary files differ
diff --git a/graphics/link_games/dodrioberry_platform.png b/graphics/link_games/dodrioberry_platform.png
new file mode 100644
index 000000000..9074ec740
--- /dev/null
+++ b/graphics/link_games/dodrioberry_platform.png
Binary files differ
diff --git a/graphics/link_games/dodrioberry_shiny.pal b/graphics/link_games/dodrioberry_shiny.pal
new file mode 100644
index 000000000..5d8b5b7a5
--- /dev/null
+++ b/graphics/link_games/dodrioberry_shiny.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+238 255 238
+41 41 41
+213 222 90
+172 180 49
+90 98 16
+246 131 164
+197 82 82
+255 255 156
+255 205 98
+139 106 16
+148 148 148
+82 82 82
+255 205 230
+131 139 16
+0 0 0
+255 255 255
diff --git a/graphics/link_games/dodrioberry_status.png b/graphics/link_games/dodrioberry_status.png
new file mode 100644
index 000000000..e48d499f0
--- /dev/null
+++ b/graphics/link_games/dodrioberry_status.png
Binary files differ
diff --git a/include/strings.h b/include/strings.h
index e55cb02f5..a4c550a51 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -589,6 +589,28 @@ extern const u8 gText_HaventReceivedGiftOkayToDiscard[];
extern const u8 gText_SendingWonderCard[];
extern const u8 gText_SendingWonderNews[];
+// Dodrio Berry Picking
+extern const u8 gText_BerryPickingRecords[];
+extern const u8 gText_BerriesPicked[];
+extern const u8 gText_BerriesInRowFivePlayers[];
+extern const u8 gText_BestScore[];
+extern const u8 gText_1Colon[];
+extern const u8 gText_2Colon[];
+extern const u8 gText_3Colon[];
+extern const u8 gText_4Colon[];
+extern const u8 gText_5Colon[];
+extern const u8 gText_SpacePoints[];
+extern const u8 gText_10P30P50P50P[];
+extern const u8 gText_AnnouncingPrizes[];
+extern const u8 gText_AnnouncingRankings[];
+extern const u8 gText_FirstPlacePrize[];
+extern const u8 gText_CantHoldAnyMore[];
+extern const u8 gText_FilledStorageSpace[];
+extern const u8 gText_BerryPickingResults[];
+extern const u8 gText_WantToPlayAgain[];
+extern const u8 gText_CommunicationStandby3[];
+extern const u8 gText_SomeoneDroppedOut[];
+
// player_pc
extern const u8 gText_WhatWouldYouLikeToDo[];
extern const u8 gText_TakeOutItemsFromThePC[];
diff --git a/ld_script.txt b/ld_script.txt
index 6b8c45d96..793c9466b 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -552,18 +552,18 @@ SECTIONS {
src/text_window_graphics.o(.rodata);
src/quest_log_8150454.o(.rodata);
data/berry_powder.o(.rodata);
- data/data_8471F50.o(.rodata);
+ src/dodrio_berry_picking.o(.rodata);
src/battle_controller_pokedude.o(.rodata);
src/teachy_tv.o(.rodata);
src/unk_815C980.o(.rodata);
- data/data_8471F50.o(.rodata.8479668);
+ data/data_8479668.o(.rodata);
src/ss_anne.o(.rodata);
src/cereader_tool.o(.rodata);
src/renewable_hidden_items.o(.rodata);
src/trainer_tower.o(.rodata);
src/unk_815F138.o(.rodata);
src/berry_fix_program.o(.rodata);
- data/data_8471F50.o(.rodata.after_trainer_tower);
+ data/data_8479668.o(.rodata.after_trainer_tower);
/* These should not be moved to C files */
src/mystery_event_msg.o(.rodata);
diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c
new file mode 100644
index 000000000..35e8ceed7
--- /dev/null
+++ b/src/dodrio_berry_picking.c
@@ -0,0 +1,748 @@
+#include "global.h"
+#include "bg.h"
+#include "strings.h"
+#include "window.h"
+
+/*static*/ void sub_8150C78(void);
+/*static*/ void sub_8150CBC(void);
+/*static*/ void sub_8150CF4(void);
+/*static*/ void sub_8150D7C(void);
+/*static*/ void sub_8150DA4(void);
+/*static*/ void sub_8150FDC(void);
+/*static*/ void sub_8151198(void);
+/*static*/ void sub_81512B4(void);
+/*static*/ void sub_8151488(void);
+/*static*/ void sub_81514F0(void);
+/*static*/ void sub_815159C(void);
+/*static*/ void sub_8150F40(void);
+/*static*/ void sub_8150E68(void);
+/*static*/ void sub_815109C(void);
+/*static*/ void sub_8150FC4(void);
+/*static*/ void nullsub_97(struct Sprite *sprite);
+/*static*/ void sub_81543E8(struct Sprite *sprite);
+/*static*/ void sub_8154A2C(void);
+/*static*/ void sub_8154B34(void);
+/*static*/ void sub_8154F80(void);
+/*static*/ void sub_81556E0(void);
+/*static*/ void sub_8155A78(void);
+/*static*/ void sub_8155B4C(void);
+/*static*/ void sub_8155C2C(void);
+/*static*/ void sub_8155C80(void);
+/*static*/ void unused_0(void);
+/*static*/ void nullsub_98(void);
+
+// const rom data
+/*static*/ const u8 gUnknown_8471F50[5][5][11] =
+{
+ {
+ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0},
+ },
+ {
+ {0, 1, 2, 3, 4, 5, 6, 3, 8, 9, 0},
+ {0, 1, 2, 5, 6, 3, 4, 5, 8, 9, 0},
+ },
+ {
+ {0, 1, 2, 3, 4, 5, 6, 7, 2, 9, 0},
+ {0, 1, 4, 5, 6, 7, 2, 3, 4, 9, 0},
+ {0, 1, 6, 7, 2, 3, 4, 5, 6, 9, 0},
+ },
+ {
+ {0, 1, 2, 3, 4, 5, 6, 7, 8, 1, 0},
+ {0, 3, 4, 5, 6, 7, 8, 1, 2, 3, 0},
+ {0, 5, 6, 7, 8, 1, 2, 3, 4, 5, 0},
+ {0, 7, 8, 1, 2, 3, 4, 5, 6, 7, 0},
+ },
+ {
+ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0},
+ {2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2},
+ {4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4},
+ {6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6},
+ {8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8},
+ },
+};
+
+/*static*/ const u8 gUnknown_8472063[5][5][3] =
+{
+ {
+ {4, 5, 6},
+ },
+ {
+ {3, 4, 5},
+ {5, 6, 3},
+ },
+ {
+ {4, 5, 6},
+ {6, 7, 2},
+ {2, 3, 4},
+ },
+ {
+ {3, 4, 5},
+ {5, 6, 7},
+ {7, 8, 1},
+ {1, 2, 3},
+ },
+ {
+ {4, 5, 6},
+ {6, 7, 8},
+ {8, 9, 0},
+ {0, 1, 2},
+ {2, 3, 4},
+ },
+};
+
+/*static*/ const u8 gUnknown_84720AE[5][5][3] =
+{
+ {
+ {1, 0, 1},
+ },
+ {
+ {1, 0, 1},
+ {0, 1, 0},
+ },
+ {
+ {2, 0, 1},
+ {0, 1, 2},
+ {1, 2, 0},
+ },
+ {
+ {3, 0, 1},
+ {0, 1, 2},
+ {1, 2, 3},
+ {2, 3, 0},
+ },
+ {
+ {4, 0, 1},
+ {0, 1, 2},
+ {1, 2, 3},
+ {2, 3, 4},
+ {3, 4, 0},
+ },
+};
+
+ALIGNED(4)
+/*static*/ const u8 gUnknown_84720FC[5][11] =
+{
+ {9, 9, 9, 9, 1, 1, 1, 9, 9, 9, 9},
+ {9, 9, 9, 0, 0, 1, 1, 0, 9, 9, 9},
+ {9, 9, 2, 2, 0, 0, 1, 1, 1, 9, 9},
+ {9, 3, 3, 0, 0, 1, 1, 2, 2, 3, 9},
+ {3, 3, 4, 4, 0, 0, 1, 1, 2, 2, 3},
+};
+
+/*static*/ const u8 gUnknown_8472133[5][5] =
+{
+ {5},
+ {4, 6},
+ {3, 5, 7},
+ {2, 4, 6, 8},
+ {1, 3, 5, 6, 9},
+};
+
+// Duplicate and unused gfx. Feel free to remove.
+/*static*/ const u32 sDuplicateGfx[] = INCBIN_U32("graphics/link_games/dodrioberry_bg1.gbapal",
+ "graphics/link_games/dodrioberry_bg2.gbapal",
+ "graphics/link_games/dodrioberry_pkmn.gbapal",
+ "graphics/link_games/dodrioberry_shiny.gbapal",
+ "graphics/link_games/dodrioberry_status.gbapal",
+ "graphics/link_games/dodrioberry_berrysprites.gbapal",
+ "graphics/link_games/dodrioberry_berrysprites.4bpp.lz",
+ "graphics/link_games/dodrioberry_platform.gbapal",
+ "graphics/link_games/dodrioberry_bg1.4bpp.lz",
+ "graphics/link_games/dodrioberry_bg2.4bpp.lz",
+ "graphics/link_games/dodrioberry_status.4bpp.lz",
+ "graphics/link_games/dodrioberry_platform.4bpp.lz",
+ "graphics/link_games/dodrioberry_pkmn.4bpp.lz",
+ "graphics/link_games/dodrioberry_bg1.bin.lz",
+ "graphics/link_games/dodrioberry_bg2right.bin.lz",
+ "graphics/link_games/dodrioberry_bg2left.bin.lz");
+
+/*static*/ const u8 gUnknown_847553C[][3] =
+{
+ {40, 24, 13},
+ {32, 19, 10},
+ {22, 13, 7},
+};
+
+ALIGNED(4)
+/*static*/ const u8 gUnknown_8475548[] = {8, 5, 8, 11, 15};
+
+ALIGNED(4)
+/*static*/ const u8 gUnknown_8475550[] = {5, 10, 20, 30, 50, 70, 100};
+
+ALIGNED(4)
+/*static*/ const u8 gUnknown_8475558[][10] =
+{
+ {15, 16, 17, 18, 19, 19, 18, 17, 16, 15},
+ {20, 21, 22, 23, 24, 25, 26, 27, 28, 29},
+ {30, 31, 32, 33, 34, 34, 33, 32, 31, 30},
+};
+
+/*static*/ void (*const gUnknown_8475578[])(void) =
+{
+ sub_8150C78,
+ sub_8150CBC,
+ sub_8150CF4,
+ sub_8150D7C,
+ sub_8150DA4,
+ sub_8150FDC,
+ sub_8151198,
+ sub_81512B4,
+ sub_8151488,
+ sub_81514F0,
+ sub_815159C,
+ sub_8150F40
+};
+
+/*static*/ void (*const gUnknown_84755A8[])(void) =
+{
+ sub_8150C78,
+ sub_8150CBC,
+ sub_8150CF4,
+ sub_8150D7C,
+ sub_8150E68,
+ sub_815109C,
+ sub_8151198,
+ sub_81512B4,
+ sub_8151488,
+ sub_81514F0,
+ sub_815159C,
+ sub_8150FC4
+};
+
+/*static*/ const s16 gUnknown_84755D8[] = {10, 30, 50, 50};
+
+// Data related to printing saved results.
+/*static*/ const struct WindowTemplate gUnknown_84755E0 =
+{
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 1,
+ .width = 28,
+ .height = 11,
+ .paletteNum = 15,
+ .baseBlock = 1,
+};
+
+/*static*/ const u8 *const gUnknown_84755E8[] = {gText_BerryPickingRecords, gText_BerriesPicked, gText_BestScore, gText_BerriesInRowFivePlayers};
+/*static*/ const u8 gUnknown_84755F8[] = {4, 7, 4};
+
+ALIGNED(4)
+/*static*/ const u8 gUnknown_84755FC[][2] = {{24}, {40}, {56}};
+/*static*/ const u8 gUnknown_8475602[][2] = {{24}, {40}, {70}};
+
+// Debug functions?
+/*static*/ const u16 gUnknown_8475608[][4] =
+{
+ {9999, 0, 90, 9999},
+ {9999, 9999, 70, 9999},
+ {9999, 0, 9999, 0},
+ {9999, 9999, 60, 0},
+ {9999, 9999, 9999, 0},
+};
+
+/*static*/ const u8 gUnknown_8475630[] = _("あいうえおかき");
+/*static*/ const u8 gUnknown_8475638[] = _("ABCDEFG");
+/*static*/ const u8 gUnknown_8475640[] = _("0123456");
+
+/*static*/ const u8 *const gUnknown_8475648[] =
+{
+ gUnknown_8475630,
+ gUnknown_8475630,
+ gUnknown_8475630,
+ gUnknown_8475638,
+ gUnknown_8475640
+};
+
+// Large chunk of data
+/*static*/ const struct BgTemplate gUnknown_847565C[] =
+{
+ {
+ .bg = 0,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 30,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0
+ },
+ {
+ .bg = 1,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 12,
+ .screenSize = 1,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0
+ },
+ {
+ .bg = 2,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 14,
+ .screenSize = 1,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0
+ },
+ {
+ .bg = 3,
+ .charBaseIndex = 3,
+ .mapBaseIndex = 31,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0
+ },
+};
+
+// Unknown unreferenced data, feel free to remove.
+/*static*/ const u32 sUnused[] = {255, 0};
+
+/*static*/ const struct WindowTemplate gUnknown_8475674[] =
+{
+ {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 1,
+ .width = 28,
+ .height = 3,
+ .paletteNum = 13,
+ .baseBlock = 0x13,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 6,
+ .width = 28,
+ .height = 13,
+ .paletteNum = 13,
+ .baseBlock = 0x67,
+ }
+};
+
+/*static*/ const struct WindowTemplate gUnknown_8475684 =
+{
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 6,
+ .width = 28,
+ .height = 7,
+ .paletteNum = 13,
+ .baseBlock = 0x67,
+};
+
+/*static*/ const struct WindowTemplate gUnknown_847568C[] =
+{
+ {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 8,
+ .width = 19,
+ .height = 3,
+ .paletteNum = 13,
+ .baseBlock = 0x13,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 22,
+ .tilemapTop = 7,
+ .width = 6,
+ .height = 4,
+ .paletteNum = 13,
+ .baseBlock = 0x4C,
+ }
+};
+
+/*static*/ const struct WindowTemplate gUnknown_847569C =
+{
+ .bg = 0,
+ .tilemapLeft = 4,
+ .tilemapTop = 6,
+ .width = 22,
+ .height = 5,
+ .paletteNum = 13,
+ .baseBlock = 0x13,
+};
+
+/*static*/ const struct WindowTemplate gUnknown_84756A4 =
+{
+ .bg = 0,
+ .tilemapLeft = 5,
+ .tilemapTop = 8,
+ .width = 19,
+ .height = 3,
+ .paletteNum = 13,
+ .baseBlock = 0x13,
+};
+
+// This is an unused copy of the tables from the top of the file. Feel free to remove.
+/*static*/ const u8 sDuplicateArray[] =
+{
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 3, 8, 9, 0, 0, 1, 2, 5, 6, 3, 4, 5, 8, 9, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 2, 9,
+ 0, 0, 1, 4, 5, 6, 7, 2, 3, 4, 9, 0, 0, 1, 6, 7, 2, 3, 4, 5, 6, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 1, 0, 0, 3, 4, 5, 6, 7, 8, 1, 2, 3, 0, 0, 5, 6, 7, 8, 1, 2, 3, 4, 5, 0, 0, 7,
+ 8, 1, 2, 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 2, 3, 4, 5, 6, 7, 8, 9, 0,
+ 1, 2, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 4, 5, 6, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 5, 6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 6, 7, 2, 2, 3, 4, 0, 0, 0, 0, 0, 0,
+ 3, 4, 5, 5, 6, 7, 7, 8, 1, 1, 2, 3, 0, 0, 0, 4, 5, 6, 6, 7, 8, 8, 9, 0, 0, 1, 2, 2, 3, 4, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 1, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 1,
+ 2, 1, 2, 3, 2, 3, 0, 0, 0, 0, 4, 0, 1, 0, 1, 2, 1, 2, 3, 2, 3, 4, 3, 4, 0, 0, 0, 0, 9, 9, 9, 9, 1, 1, 1, 9, 9, 9, 9, 9,
+ 9, 9, 0, 0, 1, 1, 0, 9, 9, 9, 9, 9, 2, 2, 0, 0, 1, 1, 1, 9, 9, 9, 3, 3, 0, 0, 1, 1, 2, 2, 3, 9, 3, 3, 4, 4, 0, 0, 1, 1,
+ 2, 2, 3, 5, 0, 0, 0, 0, 4, 6, 0, 0, 0, 3, 5, 7, 0, 0, 2, 4, 6, 8, 0, 1, 3, 5, 6, 9
+};
+
+/*static*/ const u16 gDodrioBerryBgPal1[] = INCBIN_U16("graphics/link_games/dodrioberry_bg1.gbapal",
+ "graphics/link_games/dodrioberry_bg2.gbapal");
+/*static*/ const u16 gDodrioBerryPkmnPal[] = INCBIN_U16("graphics/link_games/dodrioberry_pkmn.gbapal");
+/*static*/ const u16 gDodrioBerryShinyPal[] = INCBIN_U16("graphics/link_games/dodrioberry_shiny.gbapal");
+/*static*/ const u16 gDodrioBerryStatusPal[] = INCBIN_U16("graphics/link_games/dodrioberry_status.gbapal");
+/*static*/ const u16 gDodrioBerrySpritesPal[] = INCBIN_U16("graphics/link_games/dodrioberry_berrysprites.gbapal");
+/*static*/ const u32 gDodrioBerrySpritesGfx[] = INCBIN_U32("graphics/link_games/dodrioberry_berrysprites.4bpp.lz");
+/*static*/ const u16 gDodrioBerryPlatformPal[] = INCBIN_U16("graphics/link_games/dodrioberry_platform.gbapal");
+/*static*/ const u32 gDodrioBerryBgGfx1[] = INCBIN_U32("graphics/link_games/dodrioberry_bg1.4bpp.lz");
+/*static*/ const u32 gDodrioBerryBgGfx2[] = INCBIN_U32("graphics/link_games/dodrioberry_bg2.4bpp.lz");
+/*static*/ const u32 gDodrioBerryStatusGfx[] = INCBIN_U32("graphics/link_games/dodrioberry_status.4bpp.lz");
+/*static*/ const u32 gDodrioBerryPlatformGfx[] = INCBIN_U32("graphics/link_games/dodrioberry_platform.4bpp.lz");
+/*static*/ const u32 gDodrioBerryPkmnGfx[] = INCBIN_U32("graphics/link_games/dodrioberry_pkmn.4bpp.lz");
+/*static*/ const u32 gDodrioBerryBgTilemap1[] = INCBIN_U32("graphics/link_games/dodrioberry_bg1.bin.lz");
+/*static*/ const u32 gDodrioBerryBgTilemap2Right[] = INCBIN_U32("graphics/link_games/dodrioberry_bg2right.bin.lz");
+/*static*/ const u32 gDodrioBerryBgTilemap2Left[] = INCBIN_U32("graphics/link_games/dodrioberry_bg2left.bin.lz");
+
+/*static*/ const struct OamData sOamData_8478C98 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+/*static*/ const struct OamData sOamData_8478CA0 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 1,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+/*static*/ const struct OamData sOamData_8478CA8 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 1,
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+/*static*/ const struct OamData sOamData_8478CB0 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 1,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 3,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+/*static*/ const union AnimCmd sSpriteAnim_8478CB8[] =
+{
+ ANIMCMD_FRAME(0, 20),
+ ANIMCMD_JUMP(0)
+};
+
+/*static*/ const union AnimCmd sSpriteAnim_8478CC0[] =
+{
+ ANIMCMD_FRAME(64, 20),
+ ANIMCMD_JUMP(0)
+};
+
+/*static*/ const union AnimCmd sSpriteAnim_8478CC8[] =
+{
+ ANIMCMD_FRAME(128, 20),
+ ANIMCMD_JUMP(0)
+};
+
+/*static*/ const union AnimCmd sSpriteAnim_8478CD0[] =
+{
+ ANIMCMD_FRAME(192, 20),
+ ANIMCMD_JUMP(0)
+};
+
+/*static*/ const union AnimCmd sSpriteAnim_8478CD8[] =
+{
+ ANIMCMD_FRAME(256, 20),
+ ANIMCMD_JUMP(0)
+};
+
+/*static*/ const union AnimCmd *const sSpriteAnimTable_8478CE0[] =
+{
+ sSpriteAnim_8478CB8,
+ sSpriteAnim_8478CC0,
+ sSpriteAnim_8478CC8,
+ sSpriteAnim_8478CD0,
+ sSpriteAnim_8478CD8
+};
+
+/*static*/ const union AnimCmd sSpriteAnim_8478CF4[] =
+{
+ ANIMCMD_FRAME(0, 20),
+ ANIMCMD_JUMP(0)
+};
+
+/*static*/ const union AnimCmd sSpriteAnim_8478CFC[] =
+{
+ ANIMCMD_FRAME(4, 20),
+ ANIMCMD_JUMP(0)
+};
+
+/*static*/ const union AnimCmd sSpriteAnim_8478D04[] =
+{
+ ANIMCMD_FRAME(8, 20),
+ ANIMCMD_JUMP(0)
+};
+
+/*static*/ const union AnimCmd *const sSpriteAnimTable_8478D0C[] =
+{
+ sSpriteAnim_8478CF4,
+ sSpriteAnim_8478CFC,
+ sSpriteAnim_8478D04
+};
+
+/*static*/ const union AnimCmd sSpriteAnim_8478D18[] =
+{
+ ANIMCMD_FRAME(0, 20),
+ ANIMCMD_JUMP(0)
+};
+
+/*static*/ const union AnimCmd sSpriteAnim_8478D20[] =
+{
+ ANIMCMD_FRAME(4, 20),
+ ANIMCMD_JUMP(0)
+};
+
+/*static*/ const union AnimCmd sSpriteAnim_8478D28[] =
+{
+ ANIMCMD_FRAME(8, 20),
+ ANIMCMD_JUMP(0)
+};
+
+/*static*/ const union AnimCmd sSpriteAnim_8478D30[] =
+{
+ ANIMCMD_FRAME(12, 20),
+ ANIMCMD_JUMP(0)
+};
+
+/*static*/ const union AnimCmd sSpriteAnim_8478D38[] =
+{
+ ANIMCMD_FRAME(16, 20),
+ ANIMCMD_JUMP(0)
+};
+
+/*static*/ const union AnimCmd sSpriteAnim_8478D40[] =
+{
+ ANIMCMD_FRAME(20, 20),
+ ANIMCMD_JUMP(0)
+};
+
+/*static*/ const union AnimCmd sSpriteAnim_8478D48[] =
+{
+ ANIMCMD_FRAME(24, 20),
+ ANIMCMD_JUMP(0)
+};
+
+/*static*/ const union AnimCmd sSpriteAnim_8478D50[] =
+{
+ ANIMCMD_FRAME(28, 20),
+ ANIMCMD_JUMP(0)
+};
+
+/*static*/ const union AnimCmd sSpriteAnim_8478D58[] =
+{
+ ANIMCMD_FRAME(32, 20),
+ ANIMCMD_JUMP(0)
+};
+
+/*static*/ const union AnimCmd *const sSpriteAnimTable_8478D60[] =
+{
+ sSpriteAnim_8478D18,
+ sSpriteAnim_8478D20,
+ sSpriteAnim_8478D28,
+ sSpriteAnim_8478D30,
+ sSpriteAnim_8478D38,
+ sSpriteAnim_8478D40,
+ sSpriteAnim_8478D48,
+ sSpriteAnim_8478D50,
+ sSpriteAnim_8478D58
+};
+
+/*static*/ const union AnimCmd sSpriteAnim_8478D84[] =
+{
+ ANIMCMD_FRAME(0, 20),
+ ANIMCMD_JUMP(0)
+};
+
+/*static*/ const union AnimCmd *const sSpriteAnimTable_8478D8C[] =
+{
+ sSpriteAnim_8478D84
+};
+
+// These are declared inside pokeemerald's sub_80283A8
+const struct SpritePalette gUnknown_8478D90 = {gDodrioBerryPkmnPal, 0};
+const struct SpritePalette gUnknown_8478D98 = {gDodrioBerryShinyPal, 1};
+
+// These are declared inside pokeemerald's sub_8028734
+const struct SpritePalette gUnknown_8478DA0 = {gDodrioBerryStatusPal, 2};
+const struct SpriteTemplate gUnknown_8478DA8 =
+ {
+ .tileTag = 1,
+ .paletteTag = 2,
+ .oam = &sOamData_8478CA0,
+ .anims = sSpriteAnimTable_8478D0C,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = nullsub_97,
+ };
+
+// Unknown unused data, feel free to remove.
+/*static*/ const u8 sUnused2[] = {0xCD, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0xF4, 0x0, 0x0};
+
+// This is declared inside pokeemerald's sub_8028A34
+const struct SpritePalette gUnknown_8478DCC = {gDodrioBerrySpritesPal, 3};
+
+/*static*/ const s16 gUnknown_8478DD4[] = {88, 128, 168, 208};
+
+// These are declared inside pokeemerald's sub_8028A88
+const struct SpriteTemplate gUnknown_8478DDC =
+ {
+ .tileTag = 2,
+ .paletteTag = 3,
+ .oam = &sOamData_8478CA8,
+ .anims = sSpriteAnimTable_8478D60,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+ };
+const struct SpriteTemplate gUnknown_8478DF4 =
+ {
+ .tileTag = 2,
+ .paletteTag = 3,
+ .oam = &sOamData_8478CA0,
+ .anims = sSpriteAnimTable_8478D60,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+ };
+
+// This is declared inside pokeemerald's sub_8028CF4
+/*static*/ const u8 gUnknown_8478E0C[] = {30, 20};
+
+/*static*/ const s16 gUnknown_8478E0E[][2] = {{230, 55}, {30, 74}};
+
+// These are declared inside pokeemerald's sub_8028D44
+const struct SpritePalette gUnknown_8478E18 = {gDodrioBerryPlatformPal, 6};
+const struct SpriteTemplate gUnknown_8478E20 =
+ {
+ .tileTag = 5,
+ .paletteTag = 6,
+ .oam = &sOamData_8478CB0,
+ .anims = sSpriteAnimTable_8478D8C,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_81543E8,
+ };
+
+struct WinCoords
+{
+ u8 left;
+ u8 top;
+};
+
+/*static*/ const u8 gUnknown_8478E38[][3] =
+{
+ {1, 2, 3},
+ {1, 4, 5},
+ {1, 8, 9},
+ {1, 6, 7},
+};
+
+/*static*/ const struct WinCoords gUnknown_8478E44[] = {{12, 6}};
+/*static*/ const struct WinCoords gUnknown_8478E48[] = {{9, 10}, {15, 6}};
+/*static*/ const struct WinCoords gUnknown_8478E50[] = {{12, 6}, {18, 10}, {6, 10}};
+/*static*/ const struct WinCoords gUnknown_8478E5C[] = {{9, 10}, {15, 6}, {21, 10}, {3, 6}};
+/*static*/ const struct WinCoords gUnknown_8478E6C[] = {{12, 6}, {18, 10}, {23, 6}, {1, 6}, {6, 10}};
+
+/*static*/ const struct WinCoords *const gUnknown_8478E80[] =
+{
+ gUnknown_8478E44,
+ gUnknown_8478E48,
+ gUnknown_8478E50,
+ gUnknown_8478E5C,
+ gUnknown_8478E6C,
+};
+
+/*static*/ const u8 *const gUnknown_8478E94[] =
+{
+ gText_1Colon,
+ gText_2Colon,
+ gText_3Colon,
+ gText_4Colon,
+ gText_5Colon,
+};
+
+/*static*/ const u16 gUnknown_8478EA8[] = {92, 132, 172, 212};
+/*static*/ const u16 gUnknown_8478EB0[] = {30, 45, 60, 75, 90};
+/*static*/ const u16 gUnknown_8478EBA[] = {12, 28, 44, 60, 76};
+
+struct
+{
+ u8 id;
+ void (*func)(void);
+} const gUnknown_8478EC4[] =
+{
+ {0, sub_8154A2C},
+ {1, sub_8154B34},
+ {2, sub_8154F80},
+ {3, sub_81556E0},
+ {4, sub_8155A78},
+ {5, sub_8155B4C},
+ {6, sub_8155C2C},
+ {7, sub_8155C80},
+ {8, unused_0},
+ {9, nullsub_98},
+};
+
+// This is declared inside pokeemerald's sub_80296A8
+const u8 gUnknown_8478F14[5] = {0, 1, 2, 3, 4};