summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/battle_1.s2
-rw-r--r--asm/battle_4.s4
-rw-r--r--asm/battle_5.s8
-rw-r--r--asm/cable_club.s406
-rw-r--r--asm/contest.s6
-rw-r--r--asm/daycare.s8
-rw-r--r--asm/decoration_inventory.s14
-rw-r--r--asm/easy_chat.s6
-rw-r--r--asm/field_screen_effect.s (renamed from asm/rom_8080874.s)0
-rw-r--r--asm/field_specials.s80
-rw-r--r--asm/field_weather.s (renamed from asm/field_screeneffect.s)6
-rw-r--r--asm/item_menu.s8
-rw-r--r--asm/mail_data.s266
-rw-r--r--asm/menu_helpers.s2
-rw-r--r--asm/mystery_event_script.s4
-rw-r--r--asm/party_menu.s32
-rw-r--r--asm/player_pc.s2
-rw-r--r--asm/pokeblock.s16
-rw-r--r--asm/pokemon_icon.s10
-rw-r--r--asm/pokemon_menu.s10
-rw-r--r--asm/pokemon_storage_system.s205
-rw-r--r--asm/pokenav.s62
-rw-r--r--asm/region_map.s2
-rw-r--r--asm/reshow_battle_screen.s (renamed from asm/rom5.s)16
-rw-r--r--asm/secret_base.s50
-rw-r--r--asm/slot_machine.s312
-rw-r--r--asm/trade.s6
-rw-r--r--asm/tv.s12
-rw-r--r--data/field_weather.s (renamed from data/field_screeneffect.s)0
-rw-r--r--data/specials.inc12
-rw-r--r--include/asm.inc.h30
-rw-r--r--include/berry.h2
-rw-r--r--include/dewford_trend.h2
-rw-r--r--include/field_weather.h (renamed from include/field_screeneffect.h)0
-rw-r--r--include/flags.h1
-rw-r--r--include/global.berry.h2
-rw-r--r--include/link.h2
-rw-r--r--include/new_game.h2
-rw-r--r--include/pokedex.h2
-rw-r--r--include/pokemon.h1
-rw-r--r--include/vars.h6
-rw-r--r--ld_script.txt24
-rw-r--r--src/battle_811DA74.c1
-rw-r--r--src/battle_anim.c1
-rw-r--r--src/battle_setup.c2
-rw-r--r--src/berry.c22
-rw-r--r--src/berry_tag_screen.c6
-rw-r--r--src/cable_club.c304
-rw-r--r--src/clear_save_data_menu.c6
-rw-r--r--src/clock.c32
-rw-r--r--src/contest_painting.c6
-rw-r--r--src/credits.c8
-rw-r--r--src/dewford_trend.c6
-rw-r--r--src/diploma.c2
-rw-r--r--src/field_control_avatar.c2
-rw-r--r--src/field_effect.c2
-rw-r--r--src/field_fadetransition.c2
-rw-r--r--src/field_region_map.c4
-rw-r--r--src/field_special_scene.c4
-rw-r--r--src/field_weather.c (renamed from src/field_screeneffect.c)2
-rw-r--r--src/item_use.c2
-rw-r--r--src/link.c8
-rw-r--r--src/mail.c10
-rw-r--r--src/mail_data.c151
-rw-r--r--src/main_menu.c9
-rw-r--r--src/matsuda_debug_menu.c5
-rw-r--r--src/mystery_event_menu.c2
-rw-r--r--src/naming_screen.c8
-rw-r--r--src/new_game.c30
-rw-r--r--src/player_pc.c2
-rw-r--r--src/pokedex.c32
-rw-r--r--src/pokemon_storage_system.c93
-rw-r--r--src/pokenav.c45
-rw-r--r--src/record_mixing.c2
-rw-r--r--src/rom3.c1
-rw-r--r--src/rom4.c2
-rw-r--r--src/rom_800D42C.c2
-rw-r--r--src/save_failed_screen.c6
-rw-r--r--src/scrcmd.c2
-rw-r--r--src/secret_base.c18
-rw-r--r--src/shop.c2
-rw-r--r--src/slot_machine.c154
-rw-r--r--src/start_menu.c4
-rw-r--r--src/starter_choose.c6
-rw-r--r--src/tv.c2
-rw-r--r--src/wallclock.c4
86 files changed, 1071 insertions, 1584 deletions
diff --git a/asm/battle_1.s b/asm/battle_1.s
index 5fe4672d9..44d0b245f 100644
--- a/asm/battle_1.s
+++ b/asm/battle_1.s
@@ -1358,7 +1358,7 @@ _0800E148:
ldrsh r0, [r1, r5]
cmp r0, 0
beq _0800E154
- bl sub_800DC24
+ bl PrintLinkBattleWinLossTie
_0800E154:
movs r0, 0x78
bl PlaySE
diff --git a/asm/battle_4.s b/asm/battle_4.s
index c1a6513be..0581d1e7d 100644
--- a/asm/battle_4.s
+++ b/asm/battle_4.s
@@ -15879,7 +15879,7 @@ _08023C3E:
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
- ldr r3, _08023C78 @ =sub_807AD58
+ ldr r3, _08023C78 @ =ReshowBattleScreenAfterMenu
ldr r4, _08023C7C @ =word_2024E82
ldrh r4, [r4]
str r4, [sp]
@@ -15894,7 +15894,7 @@ _08023C68: .4byte gPaletteFade
_08023C6C: .4byte gPlayerParty
_08023C70: .4byte 0x00016018
_08023C74: .4byte gPlayerPartyCount
-_08023C78: .4byte sub_807AD58
+_08023C78: .4byte ReshowBattleScreenAfterMenu
_08023C7C: .4byte word_2024E82
_08023C80: .4byte 0x0001601a
_08023C84:
diff --git a/asm/battle_5.s b/asm/battle_5.s
index ec95d76db..01541c120 100644
--- a/asm/battle_5.s
+++ b/asm/battle_5.s
@@ -4487,23 +4487,23 @@ nullsub_8: @ 802E410
thumb_func_start sub_802E414
sub_802E414: @ 802E414
push {lr}
- ldr r0, _0802E420 @ =sub_807AD58
+ ldr r0, _0802E420 @ =ReshowBattleScreenAfterMenu
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
-_0802E420: .4byte sub_807AD58
+_0802E420: .4byte ReshowBattleScreenAfterMenu
thumb_func_end sub_802E414
thumb_func_start sub_802E424
sub_802E424: @ 802E424
push {lr}
- ldr r0, _0802E430 @ =sub_807AD58
+ ldr r0, _0802E430 @ =ReshowBattleScreenAfterMenu
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
-_0802E430: .4byte sub_807AD58
+_0802E430: .4byte ReshowBattleScreenAfterMenu
thumb_func_end sub_802E424
thumb_func_start sub_802E434
diff --git a/asm/cable_club.s b/asm/cable_club.s
index 4c9dca6af..bd7a2bd5c 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -464,413 +464,15 @@ _08083034: .4byte gTasks
_08083038: .4byte sub_808303C
thumb_func_end sub_8082FEC
- thumb_func_start sub_808303C
-sub_808303C: @ 808303C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- mov r8, r0
- ldr r0, _080830D0 @ =gTasks + 0x8
- mov r9, r0
- mov r7, r8
- add r7, r9
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- bl sub_8082E28
- cmp r0, 0x1
- beq _080830C2
- adds r0, r4, 0
- bl sub_8082EB8
- cmp r0, 0x1
- beq _080830C2
- adds r0, r4, 0
- bl sub_8082DF4
- cmp r0, 0x1
- beq _080830C2
- adds r6, r5, 0
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_8082D60
- ldr r0, _080830D4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080830C2
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r5, r0
- blt _080830C2
- adds r0, r6, 0
- bl sub_80081C8
- bl sub_8082D4C
- ldr r0, _080830D8 @ =gStringVar1
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- ldr r0, _080830DC @ =gUnknown_081A4975
- bl ShowFieldAutoScrollMessage
- mov r0, r9
- subs r0, 0x8
- add r0, r8
- ldr r1, _080830E0 @ =sub_80830E4
- str r1, [r0]
-_080830C2:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080830D0: .4byte gTasks + 0x8
-_080830D4: .4byte gMain
-_080830D8: .4byte gStringVar1
-_080830DC: .4byte gUnknown_081A4975
-_080830E0: .4byte sub_80830E4
- thumb_func_end sub_808303C
+.section .text_80830E4
+
+
+
- thumb_func_start sub_80830E4
-sub_80830E4: @ 80830E4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- adds r0, r5, 0
- bl sub_8082E28
- cmp r0, 0x1
- beq _08083178
- adds r0, r5, 0
- bl sub_8082EB8
- cmp r0, 0x1
- beq _08083178
- adds r0, r5, 0
- bl sub_8082DF4
- cmp r0, 0x1
- beq _08083178
- bl GetFieldMessageBoxMode
- lsls r0, 24
- cmp r0, 0
- bne _08083178
- bl sub_800820C
- adds r4, r0, 0
- bl GetLinkPlayerCount_2
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _08083132
- ldr r0, _08083148 @ =gMain
- ldrh r1, [r0, 0x2C]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08083158
-_08083132:
- ldr r0, _0808314C @ =gUnknown_081A4932
- bl ShowFieldAutoScrollMessage
- ldr r1, _08083150 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _08083154 @ =sub_8082FEC
- str r1, [r0]
- b _08083178
- .align 2, 0
-_08083148: .4byte gMain
-_0808314C: .4byte gUnknown_081A4932
-_08083150: .4byte gTasks
-_08083154: .4byte sub_8082FEC
-_08083158:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08083178
- movs r0, 0x5
- bl PlaySE
- bl sub_8007F4C
- ldr r0, _08083180 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _08083184 @ =sub_8083188
- str r0, [r1]
-_08083178:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08083180: .4byte gTasks
-_08083184: .4byte sub_8083188
- thumb_func_end sub_80830E4
- thumb_func_start sub_8083188
-sub_8083188: @ 8083188
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080831CC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- ldrb r7, [r5, 0xA]
- ldrb r6, [r5, 0xC]
- adds r0, r4, 0
- bl sub_8082DF4
- cmp r0, 0x1
- beq _080831EA
- adds r0, r4, 0
- bl sub_8083444
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080831EA
- bl GetLinkPlayerCount_2
- adds r4, r0, 0
- bl sub_800820C
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080831D4
- ldr r0, _080831D0 @ =sub_8083418
- b _080831E8
- .align 2, 0
-_080831CC: .4byte gTasks
-_080831D0: .4byte sub_8083418
-_080831D4:
- ldr r4, _080831F0 @ =gScriptResult
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_8082D9C
- strh r0, [r4]
- lsls r0, 16
- cmp r0, 0
- beq _080831EA
- ldr r0, _080831F4 @ =sub_8083288
-_080831E8:
- str r0, [r5]
-_080831EA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080831F0: .4byte gScriptResult
-_080831F4: .4byte sub_8083288
- thumb_func_end sub_8083188
- thumb_func_start sub_80831F8
-sub_80831F8: @ 80831F8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08083244 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- ldrb r7, [r5, 0xA]
- ldrb r6, [r5, 0xC]
- adds r0, r4, 0
- bl sub_8082E28
- cmp r0, 0x1
- beq _08083270
- adds r0, r4, 0
- bl sub_8082DF4
- cmp r0, 0x1
- beq _08083270
- ldr r4, _08083248 @ =gScriptResult
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_8082D9C
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _08083270
- cmp r0, 0x3
- bne _08083250
- bl sub_800832C
- bl HideFieldMessageBox
- ldr r0, _0808324C @ =sub_80833C4
- b _0808326E
- .align 2, 0
-_08083244: .4byte gTasks
-_08083248: .4byte gScriptResult
-_0808324C: .4byte sub_80833C4
-_08083250:
- bl GetLinkPlayerCount_2
- ldr r4, _08083278 @ =gFieldLinkPlayerCount
- strb r0, [r4]
- bl GetMultiplayerId
- ldr r1, _0808327C @ =gUnknown_03004860
- strb r0, [r1]
- ldrb r0, [r4]
- bl sub_80081C8
- ldr r0, _08083280 @ =gBlockSendBuffer
- bl sub_8093390
- ldr r0, _08083284 @ =sub_8083314
-_0808326E:
- str r0, [r5]
-_08083270:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08083278: .4byte gFieldLinkPlayerCount
-_0808327C: .4byte gUnknown_03004860
-_08083280: .4byte gBlockSendBuffer
-_08083284: .4byte sub_8083314
- thumb_func_end sub_80831F8
- thumb_func_start sub_8083288
-sub_8083288: @ 8083288
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- adds r0, r4, 0
- bl sub_8082DF4
- cmp r0, 0x1
- beq _080832F8
- ldr r0, _080832BC @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0x3
- bne _080832C8
- bl sub_800832C
- bl HideFieldMessageBox
- ldr r0, _080832C0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080832C4 @ =sub_80833C4
- str r0, [r1]
- b _080832F8
- .align 2, 0
-_080832BC: .4byte gScriptResult
-_080832C0: .4byte gTasks
-_080832C4: .4byte sub_80833C4
-_080832C8:
- bl GetLinkPlayerCount_2
- ldr r4, _08083300 @ =gFieldLinkPlayerCount
- strb r0, [r4]
- bl GetMultiplayerId
- ldr r1, _08083304 @ =gUnknown_03004860
- strb r0, [r1]
- ldrb r0, [r4]
- bl sub_80081C8
- ldr r0, _08083308 @ =gBlockSendBuffer
- bl sub_8093390
- ldr r1, _0808330C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _08083310 @ =sub_8083314
- str r1, [r0]
- movs r0, 0x2
- bl sub_8007E9C
-_080832F8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08083300: .4byte gFieldLinkPlayerCount
-_08083304: .4byte gUnknown_03004860
-_08083308: .4byte gBlockSendBuffer
-_0808330C: .4byte gTasks
-_08083310: .4byte sub_8083314
- thumb_func_end sub_8083288
- thumb_func_start sub_8083314
-sub_8083314: @ 8083314
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_8082DF4
- cmp r0, 0x1
- beq _080833B6
- bl GetBlockReceivedStatus
- adds r4, r0, 0
- bl sub_8008198
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080833B6
- movs r4, 0
- ldr r6, _0808333C @ =gTrainerCards
- b _0808335A
- .align 2, 0
-_0808333C: .4byte gTrainerCards
-_08083340:
- lsls r1, r4, 8
- ldr r0, _08083394 @ =gBlockRecvBuffer
- adds r1, r0
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 3
- adds r0, r6
- movs r2, 0x38
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_0808335A:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _08083340
- movs r0, 0
- bl SetSuppressLinkErrorMessage
- bl ResetBlockReceivedFlags
- bl HideFieldMessageBox
- ldr r0, _08083398 @ =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _080833A4
- ldr r0, _0808339C @ =gLinkType
- ldrh r1, [r0]
- ldr r0, _080833A0 @ =0x00004411
- bl sub_8082D4C
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
- b _080833B6
- .align 2, 0
-_08083394: .4byte gBlockRecvBuffer
-_08083398: .4byte gScriptResult
-_0808339C: .4byte gLinkType
-_080833A0: .4byte 0x00004411
-_080833A4:
- bl sub_800832C
- ldr r0, _080833BC @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080833C0 @ =sub_80833C4
- str r0, [r1]
-_080833B6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080833BC: .4byte gTasks
-_080833C0: .4byte sub_80833C4
- thumb_func_end sub_8083314
thumb_func_start sub_80833C4
sub_80833C4: @ 80833C4
diff --git a/asm/contest.s b/asm/contest.s
index 3f53a31e9..214935952 100644
--- a/asm/contest.s
+++ b/asm/contest.s
@@ -11,15 +11,15 @@ nullsub_89: @ 80AB1AC
bx lr
thumb_func_end nullsub_89
- thumb_func_start sub_80AB1B0
-sub_80AB1B0: @ 80AB1B0
+ thumb_func_start ResetLinkContestBoolean
+ResetLinkContestBoolean: @ 80AB1B0
ldr r1, _080AB1B8 @ =gIsLinkContest
movs r0, 0
strb r0, [r1]
bx lr
.align 2, 0
_080AB1B8: .4byte gIsLinkContest
- thumb_func_end sub_80AB1B0
+ thumb_func_end ResetLinkContestBoolean
thumb_func_start sub_80AB1BC
sub_80AB1BC: @ 80AB1BC
diff --git a/asm/daycare.s b/asm/daycare.s
index 0e8a796d9..47a84e8e0 100644
--- a/asm/daycare.s
+++ b/asm/daycare.s
@@ -111,7 +111,7 @@ sub_80413C8: @ 80413C8
lsrs r4, r0, 24
mov r9, r4
adds r0, r7, 0
- bl sub_80A2B94
+ bl MonHasMail
lsls r0, 24
cmp r0, 0
beq _0804144A
@@ -156,7 +156,7 @@ sub_80413C8: @ 80413C8
ldm r1!, {r0,r2,r3}
stm r4!, {r0,r2,r3}
adds r0, r7, 0
- bl sub_80A2DF8
+ bl TakeMailFromMon
_0804144A:
mov r2, r9
lsls r4, r2, 24
@@ -372,7 +372,7 @@ _080415D8:
adds r4, r5, r4
mov r0, r8
adds r1, r4, 0
- bl sub_80A2D88
+ bl GiveMailToMon2
adds r0, r4, 0
bl sub_80417F4
_08041610:
@@ -644,7 +644,7 @@ _08041812:
subs r1, 0x1
cmp r1, r2
bge _08041812
- bl sub_80A2B40
+ bl ClearMailStruct
pop {r0}
bx r0
thumb_func_end sub_80417F4
diff --git a/asm/decoration_inventory.s b/asm/decoration_inventory.s
index e44c1abf2..953d770ae 100644
--- a/asm/decoration_inventory.s
+++ b/asm/decoration_inventory.s
@@ -6,8 +6,8 @@
.text
- thumb_func_start sub_8133F4C
-sub_8133F4C: @ 8133F4C
+ thumb_func_start ClearDecorationInventory
+ClearDecorationInventory: @ 8133F4C
push {r4,r5,lr}
lsls r0, 24
movs r3, 0
@@ -36,15 +36,15 @@ _08133F76:
bx r0
.align 2, 0
_08133F7C: .4byte gDecorationInventories
- thumb_func_end sub_8133F4C
+ thumb_func_end ClearDecorationInventory
- thumb_func_start sub_8133F80
-sub_8133F80: @ 8133F80
+ thumb_func_start ClearDecorationInventories
+ClearDecorationInventories: @ 8133F80
push {r4,lr}
movs r4, 0
_08133F84:
adds r0, r4, 0
- bl sub_8133F4C
+ bl ClearDecorationInventory
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
@@ -53,7 +53,7 @@ _08133F84:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_8133F80
+ thumb_func_end ClearDecorationInventories
thumb_func_start sub_8133F9C
sub_8133F9C: @ 8133F9C
diff --git a/asm/easy_chat.s b/asm/easy_chat.s
index b8bfaac18..b9f27b895 100644
--- a/asm/easy_chat.s
+++ b/asm/easy_chat.s
@@ -825,8 +825,8 @@ _080E675C: .4byte 0x00009da4
_080E6760: .4byte 0x00009f6e
thumb_func_end sub_80E6690
- thumb_func_start sub_80E6764
-sub_80E6764: @ 80E6764
+ thumb_func_start InitEasyChatPhrases
+InitEasyChatPhrases: @ 80E6764
push {r4-r6,lr}
movs r3, 0
ldr r4, _080E680C @ =gSaveBlock1 + 0x2B1C
@@ -926,7 +926,7 @@ _080E681C: .4byte gSaveBlock1 + 0x2B34
_080E6820: .4byte 0x0000ffff
_080E6824: .4byte gSaveBlock1 + 0x2B4C
_080E6828: .4byte gSaveBlock1 + 0x2D8C
- thumb_func_end sub_80E6764
+ thumb_func_end InitEasyChatPhrases
thumb_func_start sub_80E682C
sub_80E682C: @ 80E682C
diff --git a/asm/rom_8080874.s b/asm/field_screen_effect.s
index 4fbfae1a2..4fbfae1a2 100644
--- a/asm/rom_8080874.s
+++ b/asm/field_screen_effect.s
diff --git a/asm/field_specials.s b/asm/field_specials.s
index 684ab248b..63677b6a0 100644
--- a/asm/field_specials.s
+++ b/asm/field_specials.s
@@ -33,8 +33,8 @@ ResetSSTidalFlag: @ 810D9A0
_0810D9AC: .4byte 0x0000082d
thumb_func_end ResetSSTidalFlag
- thumb_func_start sub_810D9B0
-sub_810D9B0: @ 810D9B0
+ thumb_func_start CountSSTidalStep
+CountSSTidalStep: @ 810D9B0
push {r4,lr}
lsls r0, 16
lsrs r4, r0, 16
@@ -64,10 +64,10 @@ _0810D9E6:
pop {r4}
pop {r1}
bx r1
- thumb_func_end sub_810D9B0
+ thumb_func_end CountSSTidalStep
- thumb_func_start sub_810D9EC
-sub_810D9EC: @ 810D9EC
+ thumb_func_start GetSSTidalLocation
+GetSSTidalLocation: @ 810D9EC
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -179,7 +179,7 @@ _0810DABE:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end sub_810D9EC
+ thumb_func_end GetSSTidalLocation
thumb_func_start GetLinkPartnerNames
GetLinkPartnerNames: @ 810DAC8
@@ -231,8 +231,8 @@ _0810DB20: .4byte gUnknown_083D1464
_0810DB24: .4byte gLinkPlayers + 0x8
thumb_func_end GetLinkPartnerNames
- thumb_func_start sub_810DB28
-sub_810DB28: @ 810DB28
+ thumb_func_start SpawnBerryBlenderLinkPlayerSprites
+SpawnBerryBlenderLinkPlayerSprites: @ 810DB28
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -403,10 +403,10 @@ _0810DC5C:
.align 2, 0
_0810DC74: .4byte gLinkPlayers
_0810DC78: .4byte gSpecialVar_0x8004
- thumb_func_end sub_810DB28
+ thumb_func_end SpawnBerryBlenderLinkPlayerSprites
- thumb_func_start sub_810DC7C
-sub_810DC7C: @ 810DC7C
+ thumb_func_start MauvilleGymSpecial1
+MauvilleGymSpecial1: @ 810DC7C
push {r4,r5,lr}
movs r4, 0
ldr r5, _0810DC9C @ =gUnknown_083F8364
@@ -444,10 +444,10 @@ _0810DCB6:
bx r0
.align 2, 0
_0810DCC8: .4byte 0x00000205
- thumb_func_end sub_810DC7C
+ thumb_func_end MauvilleGymSpecial1
- thumb_func_start sub_810DCCC
-sub_810DCCC: @ 810DCCC
+ thumb_func_start MauvilleGymSpecial2
+MauvilleGymSpecial2: @ 810DCCC
push {r4-r6,lr}
movs r5, 0xC
_0810DCD0:
@@ -681,10 +681,10 @@ _0810DED0:
bx r0
.align 2, 0
_0810DED8: .4byte 0x00000251
- thumb_func_end sub_810DCCC
+ thumb_func_end MauvilleGymSpecial2
- thumb_func_start sub_810DEDC
-sub_810DEDC: @ 810DEDC
+ thumb_func_start MauvilleGymSpecial3
+MauvilleGymSpecial3: @ 810DEDC
push {r4-r6,lr}
ldr r4, _0810DF18 @ =gUnknown_083F8364
movs r5, 0x2
@@ -850,10 +850,10 @@ _0810E066:
bx r0
.align 2, 0
_0810E06C: .4byte 0x00000251
- thumb_func_end sub_810DEDC
+ thumb_func_end MauvilleGymSpecial3
- thumb_func_start sub_810E070
-sub_810E070: @ 810E070
+ thumb_func_start PetalburgGymSpecial1
+PetalburgGymSpecial1: @ 810E070
push {lr}
ldr r0, _0810E090 @ =gUnknown_02039258
movs r1, 0
@@ -862,7 +862,7 @@ sub_810E070: @ 810E070
strb r1, [r0]
movs r0, 0x2C
bl PlaySE
- ldr r0, _0810E098 @ =sub_810E09C
+ ldr r0, _0810E098 @ =Task_PetalburgGym
movs r1, 0x8
bl CreateTask
pop {r0}
@@ -870,11 +870,11 @@ sub_810E070: @ 810E070
.align 2, 0
_0810E090: .4byte gUnknown_02039258
_0810E094: .4byte gUnknown_02039259
-_0810E098: .4byte sub_810E09C
- thumb_func_end sub_810E070
+_0810E098: .4byte Task_PetalburgGym
+ thumb_func_end PetalburgGymSpecial1
- thumb_func_start sub_810E09C
-sub_810E09C: @ 810E09C
+ thumb_func_start Task_PetalburgGym
+Task_PetalburgGym: @ 810E09C
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
@@ -893,7 +893,7 @@ sub_810E09C: @ 810E09C
lsls r1, 1
adds r1, r2
ldrh r1, [r1]
- bl sub_810E104
+ bl PetalburgGymFunc
movs r0, 0
strb r0, [r4]
ldrb r0, [r5]
@@ -920,10 +920,10 @@ _0810E0FC:
pop {r4-r6}
pop {r0}
bx r0
- thumb_func_end sub_810E09C
+ thumb_func_end Task_PetalburgGym
- thumb_func_start sub_810E104
-sub_810E104: @ 810E104
+ thumb_func_start PetalburgGymFunc
+PetalburgGymFunc: @ 810E104
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -1078,22 +1078,22 @@ _0810E21E:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_810E104
+ thumb_func_end PetalburgGymFunc
- thumb_func_start sub_810E230
-sub_810E230: @ 810E230
+ thumb_func_start PetalburgGymSpecial2
+PetalburgGymSpecial2: @ 810E230
push {lr}
ldr r0, _0810E244 @ =gSpecialVar_0x8004
ldrb r0, [r0]
ldr r1, _0810E248 @ =gUnknown_083F8376
ldrh r1, [r1, 0x8]
- bl sub_810E104
+ bl PetalburgGymFunc
pop {r0}
bx r0
.align 2, 0
_0810E244: .4byte gSpecialVar_0x8004
_0810E248: .4byte gUnknown_083F8376
- thumb_func_end sub_810E230
+ thumb_func_end PetalburgGymSpecial2
thumb_func_start ShowFieldMessageStringVar4
ShowFieldMessageStringVar4: @ 810E24C
@@ -3695,8 +3695,8 @@ _0810F612:
bx r1
thumb_func_end sub_810F5BC
- thumb_func_start sub_810F618
-sub_810F618: @ 810F618
+ thumb_func_start SetShoalItemFlag
+SetShoalItemFlag: @ 810F618
push {lr}
ldr r0, _0810F624 @ =0x0000085f
bl FlagSet
@@ -3704,7 +3704,7 @@ sub_810F618: @ 810F618
bx r0
.align 2, 0
_0810F624: .4byte 0x0000085f
- thumb_func_end sub_810F618
+ thumb_func_end SetShoalItemFlag
thumb_func_start PutZigzagoonInPlayerParty
PutZigzagoonInPlayerParty: @ 810F628
@@ -4270,8 +4270,8 @@ _0810FA4A:
_0810FA50: .4byte gStringVar1
thumb_func_end sub_810F9AC
- thumb_func_start sub_810FA54
-sub_810FA54: @ 810FA54
+ thumb_func_start ResetFanClub
+ResetFanClub: @ 810FA54
ldr r0, _0810FA68 @ =gSaveBlock1
ldr r2, _0810FA6C @ =0x000013c2
adds r1, r0, r2
@@ -4285,7 +4285,7 @@ sub_810FA54: @ 810FA54
_0810FA68: .4byte gSaveBlock1
_0810FA6C: .4byte 0x000013c2
_0810FA70: .4byte 0x000013c4
- thumb_func_end sub_810FA54
+ thumb_func_end ResetFanClub
thumb_func_start sub_810FA74
sub_810FA74: @ 810FA74
diff --git a/asm/field_screeneffect.s b/asm/field_weather.s
index 01190c75e..92d2ffab2 100644
--- a/asm/field_screeneffect.s
+++ b/asm/field_weather.s
@@ -7537,8 +7537,8 @@ _0808082E:
bx r1
thumb_func_end TranslateWeatherNum
- thumb_func_start sub_8080834
-sub_8080834: @ 8080834
+ thumb_func_start UpdateWeatherPerDay
+UpdateWeatherPerDay: @ 8080834
lsls r0, 16
ldr r2, _08080850 @ =gSaveBlock1
adds r2, 0x2F
@@ -7554,7 +7554,7 @@ sub_8080834: @ 8080834
bx lr
.align 2, 0
_08080850: .4byte gSaveBlock1
- thumb_func_end sub_8080834
+ thumb_func_end UpdateWeatherPerDay
thumb_func_start UpdateRainCounter
UpdateRainCounter: @ 8080854
diff --git a/asm/item_menu.s b/asm/item_menu.s
index 29109f3d9..7463663d8 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -709,8 +709,8 @@ _080A370A:
bx r0
thumb_func_end sub_80A36B8
- thumb_func_start sub_80A3714
-sub_80A3714: @ 80A3714
+ thumb_func_start ClearBag
+ClearBag: @ 80A3714
push {r4,r5,lr}
movs r4, 0
ldr r5, _080A373C @ =gBagPockets
@@ -731,7 +731,7 @@ _080A371A:
bx r0
.align 2, 0
_080A373C: .4byte gBagPockets
- thumb_func_end sub_80A3714
+ thumb_func_end ClearBag
thumb_func_start sub_80A3740
sub_80A3740: @ 80A3740
@@ -3413,7 +3413,7 @@ _080A4BB4: .4byte 0x00000103
_080A4BB8: .4byte gOtherText_Walk
_080A4BBC:
adds r0, r4, 0
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/mail_data.s b/asm/mail_data.s
deleted file mode 100644
index 23425c0cf..000000000
--- a/asm/mail_data.s
+++ /dev/null
@@ -1,266 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80A2D64
-sub_80A2D64: @ 80A2D64
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, _080A2D7C @ =0xffff8ad0
- adds r2, r3, r0
- lsls r0, r2, 16
- lsrs r0, 16
- cmp r0, 0x1B
- bhi _080A2D80
- movs r0, 0xC9
- strh r2, [r1]
- b _080A2D82
- .align 2, 0
-_080A2D7C: .4byte 0xffff8ad0
-_080A2D80:
- adds r0, r3, 0
-_080A2D82:
- pop {r1}
- bx r1
- thumb_func_end sub_80A2D64
-
- thumb_func_start sub_80A2D88
-sub_80A2D88: @ 80A2D88
- push {r4-r7,lr}
- sub sp, 0x8
- adds r6, r0, 0
- adds r7, r1, 0
- ldrh r5, [r7, 0x20]
- adds r1, r5, 0
- bl sub_80A2BC4
- add r4, sp, 0x4
- strb r0, [r4]
- ldrb r2, [r4]
- cmp r2, 0xFF
- beq _080A2DE8
- ldr r0, _080A2DE0 @ =gSaveBlock1
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldr r0, _080A2DE4 @ =0x00002b4c
- adds r1, r0
- adds r0, r7, 0
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- adds r0, r6, 0
- movs r1, 0x40
- adds r2, r4, 0
- bl SetMonData
- mov r0, sp
- strb r5, [r0]
- mov r1, sp
- lsrs r0, r5, 8
- strb r0, [r1, 0x1]
- adds r0, r6, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- ldrb r0, [r4]
- b _080A2DEA
- .align 2, 0
-_080A2DE0: .4byte gSaveBlock1
-_080A2DE4: .4byte 0x00002b4c
-_080A2DE8:
- movs r0, 0xFF
-_080A2DEA:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2D88
-
- thumb_func_start unref_sub_80A2DF4
-unref_sub_80A2DF4: @ 80A2DF4
- movs r0, 0
- bx lr
- thumb_func_end unref_sub_80A2DF4
-
- thumb_func_start sub_80A2DF8
-sub_80A2DF8: @ 80A2DF8
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- bl sub_80A2B94
- lsls r0, 24
- cmp r0, 0
- beq _080A2E46
- adds r0, r4, 0
- movs r1, 0x40
- bl GetMonData
- add r2, sp, 0x4
- strb r0, [r2]
- ldr r3, _080A2E50 @ =gSaveBlock1
- ldrb r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r1, _080A2E54 @ =0x00002b6c
- adds r0, r1
- movs r3, 0
- movs r1, 0
- strh r1, [r0]
- movs r0, 0xFF
- strb r0, [r2]
- mov r0, sp
- strb r3, [r0]
- strb r3, [r0, 0x1]
- adds r0, r4, 0
- movs r1, 0x40
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
-_080A2E46:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A2E50: .4byte gSaveBlock1
-_080A2E54: .4byte 0x00002b6c
- thumb_func_end sub_80A2DF8
-
- thumb_func_start unref_sub_80A2E58
-unref_sub_80A2E58: @ 80A2E58
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A2E70 @ =gSaveBlock1
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldr r0, _080A2E74 @ =0x00002b6c
- adds r1, r0
- movs r0, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080A2E70: .4byte gSaveBlock1
-_080A2E74: .4byte 0x00002b6c
- thumb_func_end unref_sub_80A2E58
-
- thumb_func_start sub_80A2E78
-sub_80A2E78: @ 80A2E78
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- adds r5, r0, 0
- mov r0, sp
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0, 0x1]
- add r1, sp, 0x4
- movs r0, 0xFF
- strb r0, [r1]
- movs r7, 0x6
- mov r9, r1
- ldr r0, _080A2F04 @ =gSaveBlock1
- mov r8, r0
- ldr r2, _080A2F08 @ =0x00002b4c
- add r2, r8
-_080A2E9E:
- lsls r0, r7, 3
- adds r0, r7
- lsls r4, r0, 2
- mov r1, r8
- adds r0, r4, r1
- ldr r3, _080A2F0C @ =0x00002b6c
- adds r0, r3
- ldrh r6, [r0]
- cmp r6, 0
- bne _080A2F10
- adds r4, r2
- adds r0, r5, 0
- movs r1, 0x40
- str r2, [sp, 0x8]
- bl GetMonData
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r2, [sp, 0x8]
- adds r1, r2
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- adds r0, r5, 0
- movs r1, 0x40
- bl GetMonData
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldr r0, _080A2F0C @ =0x00002b6c
- adds r1, r0
- strh r6, [r1]
- adds r0, r5, 0
- movs r1, 0x40
- mov r2, r9
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- adds r0, r7, 0
- b _080A2F1C
- .align 2, 0
-_080A2F04: .4byte gSaveBlock1
-_080A2F08: .4byte 0x00002b4c
-_080A2F0C: .4byte 0x00002b6c
-_080A2F10:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0xF
- bls _080A2E9E
- movs r0, 0xFF
-_080A2F1C:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A2E78
-
- thumb_func_start itemid_is_mail
-itemid_is_mail: @ 80A2F2C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x84
- bgt _080A2F3E
- cmp r0, 0x79
- blt _080A2F3E
- movs r0, 0x1
- b _080A2F40
-_080A2F3E:
- movs r0, 0
-_080A2F40:
- pop {r1}
- bx r1
- thumb_func_end itemid_is_mail
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s
index 0b95b553e..f10070110 100644
--- a/asm/menu_helpers.s
+++ b/asm/menu_helpers.s
@@ -420,7 +420,7 @@ sub_80F931C: @ 80F931C
cmp r0, 0x1
bne _080F933C
adds r0, r4, 0
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/mystery_event_script.s b/asm/mystery_event_script.s
index f0e842626..93abd97bc 100644
--- a/asm/mystery_event_script.s
+++ b/asm/mystery_event_script.s
@@ -677,13 +677,13 @@ _081266C6:
bl GetMonData
lsls r0, 16
lsrs r0, 16
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _081266E4
adds r0, r7, 0
mov r1, sp
- bl sub_80A2D88
+ bl GiveMailToMon2
_081266E4:
bl party_compaction
bl CalculatePlayerPartyCount
diff --git a/asm/party_menu.s b/asm/party_menu.s
index f405d174a..534d4aaa4 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -5808,7 +5808,7 @@ _0806DBAC:
adds r0, r7, r5
ldrb r4, [r0]
adds r0, r1, 0
- bl itemid_is_mail
+ bl ItemIsMail
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -5841,7 +5841,7 @@ _0806DBF0:
adds r0, r5, r7
ldrb r4, [r0, 0x6]
adds r0, r1, 0
- bl itemid_is_mail
+ bl ItemIsMail
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -5991,7 +5991,7 @@ _0806DD2C: .4byte gSpriteTemplate_837660C
_0806DD30: .4byte gSprites
_0806DD34:
adds r0, r7, 0
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _0806DD46
@@ -6321,7 +6321,7 @@ _0806DFAC:
bl GetMonData
lsls r0, 16
lsrs r0, 16
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _0806DFD8
@@ -7486,14 +7486,14 @@ PartyMenuUpdateMonHeldItem: @ 806E904
lsls r1, 16
lsrs r4, r1, 16
adds r0, r4, 0
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0806E93C
adds r0, r5, 0
adds r1, r4, 0
- bl sub_80A2BC4
+ bl GiveMailToMon
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
@@ -7571,7 +7571,7 @@ PartyMenuTryGiveMonHeldItem: @ 806E964
cmp r2, 0
beq _0806EA44
adds r0, r2, 0
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -7609,7 +7609,7 @@ _0806E9F0:
movs r1, 0x5
bl CreateTask
adds r0, r5, 0
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -7631,7 +7631,7 @@ _0806EA44:
movs r1, 0x1
bl RemoveBagItem
adds r0, r5, 0
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _0806EA66
@@ -7726,7 +7726,7 @@ PartyMenuTryGiveMonHeldItem_806EACC: @ 806EACC
ldrh r1, [r4, 0x6]
bl PartyMenuUpdateMonHeldItem
ldrh r0, [r4, 0x6]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _0806EB34
@@ -7923,9 +7923,9 @@ _0806ECB8: .4byte party_menu_link_mon_held_item_object
_0806ECBC:
ldr r0, [r5]
adds r1, r4, 0
- bl sub_80A2D88
+ bl GiveMailToMon2
adds r0, r4, 0
- bl sub_80A2B40
+ bl ClearMailStruct
ldr r0, _0806ECE0 @ =gOtherText_MailTransferredMailbox
movs r1, 0x1
bl sub_806E834
@@ -7997,13 +7997,13 @@ _0806ED50:
cmp r0, 0x1
bne _0806ED92
adds r0, r4, 0
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0806ED7C
ldr r0, [r5]
- bl sub_80A2DF8
+ bl TakeMailFromMon
_0806ED7C:
ldrb r0, [r5, 0x5]
adds r1, r6, 0
@@ -8126,7 +8126,7 @@ Task_LoseMailMessage: @ 806EE5C
cmp r0, 0x1
bne _0806EE98
ldr r0, [r5]
- bl sub_80A2DF8
+ bl TakeMailFromMon
ldr r0, _0806EE94 @ =gOtherText_MailTaken
movs r1, 0
bl sub_806E834
@@ -8235,7 +8235,7 @@ Task_TakeHeldMail: @ 806EF38
bl MenuZeroFillWindowRect
ldr r0, _0806EF70 @ =0x0201c000
ldr r0, [r0]
- bl sub_80A2E78
+ bl TakeMailFromMon2
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
diff --git a/asm/player_pc.s b/asm/player_pc.s
index 42edeba49..5e2adb775 100644
--- a/asm/player_pc.s
+++ b/asm/player_pc.s
@@ -1076,7 +1076,7 @@ _0813B5CC:
movs r3, 0
bl DisplayItemMessageOnField
adds r0, r6, 0
- bl sub_80A2B40
+ bl ClearMailStruct
bl sub_813AF78
ldrb r0, [r4, 0x3]
subs r0, 0x1
diff --git a/asm/pokeblock.s b/asm/pokeblock.s
index 55bc29dc5..44ac16b7e 100644
--- a/asm/pokeblock.s
+++ b/asm/pokeblock.s
@@ -2320,8 +2320,8 @@ _0810C944:
_0810C94C: .4byte SpriteCallbackDummy
thumb_func_end sub_810C8D4
- thumb_func_start sub_810C950
-sub_810C950: @ 810C950
+ thumb_func_start ClearPokeblock
+ClearPokeblock: @ 810C950
lsls r0, 24
ldr r1, _0810C988 @ =gSaveBlock1
lsrs r0, 21
@@ -2354,15 +2354,15 @@ sub_810C950: @ 810C950
_0810C988: .4byte gSaveBlock1
_0810C98C: .4byte 0x000007f9
_0810C990: .4byte 0x000007fe
- thumb_func_end sub_810C950
+ thumb_func_end ClearPokeblock
- thumb_func_start sub_810C994
-sub_810C994: @ 810C994
+ thumb_func_start ClearPokeblocks
+ClearPokeblocks: @ 810C994
push {r4,lr}
movs r4, 0
_0810C998:
adds r0, r4, 0
- bl sub_810C950
+ bl ClearPokeblock
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
@@ -2371,7 +2371,7 @@ _0810C998:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_810C994
+ thumb_func_end ClearPokeblocks
thumb_func_start sub_810C9B0
sub_810C9B0: @ 810C9B0
@@ -2499,7 +2499,7 @@ sub_810CA6C: @ 810CA6C
cmp r0, 0
beq _0810CA94
adds r0, r2, 0
- bl sub_810C950
+ bl ClearPokeblock
movs r0, 0x1
b _0810CA96
.align 2, 0
diff --git a/asm/pokemon_icon.s b/asm/pokemon_icon.s
index a63779b28..5aa8b5901 100644
--- a/asm/pokemon_icon.s
+++ b/asm/pokemon_icon.s
@@ -228,7 +228,7 @@ mon_icon_convert_unown_species_id: @ 809D434
cmp r2, SPECIES_UNOWN
bne _0809D45E
adds r0, r1, 0
- bl sub_809D474
+ bl GetUnownLetterByPersonality
lsls r0, 16
lsrs r0, 16
cmp r0, 0
@@ -258,8 +258,8 @@ _0809D46C:
bx r1
thumb_func_end mon_icon_convert_unown_species_id
- thumb_func_start sub_809D474
-sub_809D474: @ 809D474
+ thumb_func_start GetUnownLetterByPersonality
+GetUnownLetterByPersonality: @ 809D474
push {lr}
adds r2, r0, 0
movs r0, 0xC0
@@ -285,7 +285,7 @@ sub_809D474: @ 809D474
lsrs r0, 16
pop {r1}
bx r1
- thumb_func_end sub_809D474
+ thumb_func_end GetUnownLetterByPersonality
thumb_func_start sub_809D4A8
sub_809D4A8: @ 809D4A8
@@ -295,7 +295,7 @@ sub_809D4A8: @ 809D4A8
lsrs r4, r0, 16
adds r0, r4, 0
mov r1, sp
- bl sub_80A2D64
+ bl MailSpeciesToSpecies
lsls r0, 16
lsrs r0, 16
cmp r0, SPECIES_UNOWN
diff --git a/asm/pokemon_menu.s b/asm/pokemon_menu.s
index 2f1c16f8c..57bcd4904 100644
--- a/asm/pokemon_menu.s
+++ b/asm/pokemon_menu.s
@@ -143,7 +143,7 @@ _08089B76:
bl GetMonData
lsls r0, 16
lsrs r0, 16
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _08089BB4
@@ -964,7 +964,7 @@ sub_808A228: @ 808A228
lsrs r4, r0, 24
ldr r0, _0808A268 @ =gScriptItemId
ldrh r0, [r0]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _0808A278
@@ -1188,7 +1188,7 @@ sub_808A3F8: @ 808A3F8
push {r4,lr}
ldr r0, _0808A460 @ =gScriptItemId
ldrh r0, [r0]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _0808A47E
@@ -1349,7 +1349,7 @@ _0808A542:
ldrb r0, [r6]
muls r0, r5
adds r0, r4
- bl sub_80A2DF8
+ bl TakeMailFromMon
ldrb r0, [r6]
muls r0, r5
adds r0, r4
@@ -3202,7 +3202,7 @@ _0808B416:
ldrb r0, [r6]
muls r0, r5
adds r0, r4
- bl sub_80A2DF8
+ bl TakeMailFromMon
ldrb r0, [r6]
muls r0, r5
adds r0, r4
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 89f0e2865..176a42124 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -1186,8 +1186,8 @@ _080961D0: .4byte sub_8096130
_080961D4: .4byte c2_exit_to_overworld_2_switch
thumb_func_end sub_80961A8
- thumb_func_start sub_80961D8
-sub_80961D8: @ 80961D8
+ thumb_func_start ResetPokemonStorageSystem
+ResetPokemonStorageSystem: @ 80961D8
push {r4-r7,lr}
ldr r1, _08096258 @ =gPokemonStorage
movs r0, 0
@@ -1256,7 +1256,7 @@ _0809623E:
_08096258: .4byte gPokemonStorage
_0809625C: .4byte gPokemonStorage + 0x8344
_08096260: .4byte gPCText_BOX
- thumb_func_end sub_80961D8
+ thumb_func_end ResetPokemonStorageSystem
thumb_func_start sub_8096264
sub_8096264: @ 8096264
@@ -2620,7 +2620,7 @@ _08096D66:
ldr r1, _08096D8C @ =0x000011f2
adds r0, r4, r1
ldrh r0, [r0]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
bne _08096E4C
@@ -2712,7 +2712,7 @@ _08096E30:
ldr r1, _08096E58 @ =0x000011f2
adds r0, r4, r1
ldrh r0, [r0]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _08096E5C
@@ -3102,7 +3102,7 @@ _08097190:
ldr r1, _080971C4 @ =0x000011f2
adds r0, r4, r1
ldrh r0, [r0]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
bne _08097210
@@ -3145,7 +3145,7 @@ _08097200:
ldr r1, _08097218 @ =0x000011f2
adds r0, r4, r1
ldrh r0, [r0]
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _0809721C
@@ -5891,196 +5891,7 @@ _08098892:
bx r1
thumb_func_end sub_8098830
- thumb_func_start sub_8098898
-sub_8098898: @ 8098898
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0xA
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r1, _080988C4 @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldrb r0, [r0, 0x4]
- cmp r0, 0x6
- bls _080988B8
- b _080989F4
-_080988B8:
- lsls r0, 2
- ldr r1, _080988C8 @ =_080988CC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080988C4: .4byte gUnknown_083B6DF4
-_080988C8: .4byte _080988CC
- .align 2, 0
-_080988CC:
- .4byte _080989F4
- .4byte _08098930
- .4byte _080988E8
- .4byte _08098974
- .4byte _08098954
- .4byte _08098910
- .4byte _080989B8
-_080988E8:
- ldr r4, _08098904 @ =0x02002694
- ldr r1, _08098908 @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r0, _0809890C @ =0xffffeb66
- adds r4, r0
- adds r0, r2, 0
- adds r1, r4, 0
- b _080989FE
- .align 2, 0
-_08098904: .4byte 0x02002694
-_08098908: .4byte gUnknown_083B6DF4
-_0809890C: .4byte 0xffffeb66
-_08098910:
- ldr r4, _08098928 @ =0x02002694
- ldr r1, _0809892C @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- adds r2, r0, 0
- adds r4, 0x50
- adds r1, r4, 0
- b _080989FE
- .align 2, 0
-_08098928: .4byte 0x02002694
-_0809892C: .4byte gUnknown_083B6DF4
-_08098930:
- ldr r0, _08098948 @ =0x02002694
- ldr r2, _0809894C @ =0xffffeb66
- adds r1, r0, r2
- bl StringCopy
- adds r2, r0, 0
- ldr r1, _08098950 @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- b _080989FE
- .align 2, 0
-_08098948: .4byte 0x02002694
-_0809894C: .4byte 0xffffeb66
-_08098950: .4byte gUnknown_083B6DF4
-_08098954:
- ldr r0, _0809896C @ =0x02002694
- adds r1, r0, 0
- adds r1, 0x50
- bl StringCopy
- adds r2, r0, 0
- ldr r1, _08098970 @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- b _080989FE
- .align 2, 0
-_0809896C: .4byte 0x02002694
-_08098970: .4byte gUnknown_083B6DF4
-_08098974:
- ldr r1, _080989AC @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldr r6, [r0]
- adds r0, r6, 0
- bl StringLength
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r4, r6, r4
- adds r4, 0x1
- ldr r5, _080989B0 @ =0x02002694
- adds r0, r5, 0
- adds r1, r6, 0
- bl StringCopy
- adds r2, r0, 0
- ldr r0, _080989B4 @ =0xffffeb66
- adds r5, r0
- adds r0, r2, 0
- adds r1, r5, 0
- bl StringCopy
- adds r2, r0, 0
- adds r1, r4, 0
- b _080989FE
- .align 2, 0
-_080989AC: .4byte gUnknown_083B6DF4
-_080989B0: .4byte 0x02002694
-_080989B4: .4byte 0xffffeb66
-_080989B8:
- ldr r1, _080989EC @ =gUnknown_083B6DF4
- lsls r0, r5, 3
- adds r0, r1
- ldr r6, [r0]
- adds r0, r6, 0
- bl StringLength
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r4, r6, r4
- subs r4, 0x1
- ldr r5, _080989F0 @ =0x02002694
- adds r0, r5, 0
- adds r1, r6, 0
- bl StringCopy
- adds r2, r0, 0
- subs r0, r2, 0x1
- adds r5, 0x50
- adds r1, r5, 0
- bl StringCopy
- adds r2, r0, 0
- adds r1, r4, 0
- b _080989FE
- .align 2, 0
-_080989EC: .4byte gUnknown_083B6DF4
-_080989F0: .4byte 0x02002694
-_080989F4:
- ldr r0, _08098A2C @ =0x02002694
- ldr r2, _08098A30 @ =gUnknown_083B6DF4
- lsls r1, r5, 3
- adds r1, r2
- ldr r1, [r1]
-_080989FE:
- bl StringCopy
- adds r2, r0, 0
- ldr r0, _08098A34 @ =0x020026a6
- adds r3, r0, 0
- subs r3, 0x12
- cmp r2, r0
- bcs _08098A18
- movs r1, 0
-_08098A10:
- strb r1, [r2]
- adds r2, 0x1
- cmp r2, r0
- bcc _08098A10
-_08098A18:
- movs r0, 0xFF
- strb r0, [r2]
- adds r0, r3, 0
- movs r1, 0xB
- movs r2, 0x11
- bl MenuPrint
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08098A2C: .4byte 0x02002694
-_08098A30: .4byte gUnknown_083B6DF4
-_08098A34: .4byte 0x020026a6
- thumb_func_end sub_8098898
+.section .text_8098A38
thumb_func_start sub_8098A38
sub_8098A38: @ 8098A38
diff --git a/asm/pokenav.s b/asm/pokenav.s
index 966285ab3..757a2a5a2 100644
--- a/asm/pokenav.s
+++ b/asm/pokenav.s
@@ -22849,67 +22849,7 @@ sub_80F6FFC: @ 80F6FFC
_080F7008: .4byte REG_BLDCNT
thumb_func_end sub_80F6FFC
- thumb_func_start sub_80F700C
-sub_80F700C: @ 80F700C
- push {r4,r5,lr}
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _080F7078 @ =gUnknown_083DFEC4
- ldr r4, [r2]
- lsls r2, r1, 3
- adds r2, r4, r2
- ldr r3, _080F707C @ =0x0000cee8
- adds r2, r3
- ldrh r3, [r2]
- lsls r2, r3, 2
- adds r2, r3
- lsls r2, 3
- ldr r3, _080F7080 @ =gTrainers
- adds r5, r2, r3
- adds r3, r0, 0
- ldr r0, _080F7084 @ =0x0000d158
- adds r4, r0
- ldrh r4, [r4]
- cmp r1, r4
- bcs _080F7060
- ldrb r1, [r5, 0x1]
- movs r0, 0xD
- muls r1, r0
- ldr r0, _080F7088 @ =gTrainerClassNames
- adds r1, r0
- adds r0, r3, 0
- bl StringCopy
- adds r3, r0, 0
- movs r0, 0xFC
- strb r0, [r3]
- movs r0, 0x13
- strb r0, [r3, 0x1]
- movs r0, 0x4B
- strb r0, [r3, 0x2]
- adds r3, 0x3
- adds r1, r5, 0x4
- adds r0, r3, 0
- bl StringCopy
- adds r3, r0, 0
-_080F7060:
- movs r0, 0xFC
- strb r0, [r3]
- movs r0, 0x13
- strb r0, [r3, 0x1]
- movs r0, 0x80
- strb r0, [r3, 0x2]
- movs r0, 0xFF
- strb r0, [r3, 0x3]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F7078: .4byte gUnknown_083DFEC4
-_080F707C: .4byte 0x0000cee8
-_080F7080: .4byte gTrainers
-_080F7084: .4byte 0x0000d158
-_080F7088: .4byte gTrainerClassNames
- thumb_func_end sub_80F700C
+.section .text_80F708C
thumb_func_start sub_80F708C
sub_80F708C: @ 80F708C
diff --git a/asm/region_map.s b/asm/region_map.s
index 8113afe64..44d6a4e91 100644
--- a/asm/region_map.s
+++ b/asm/region_map.s
@@ -1759,7 +1759,7 @@ sub_80FB600: @ 80FB600
adds r1, r4, 0
adds r2, r5, 0
adds r3, r6, 0
- bl sub_810D9EC
+ bl GetSSTidalLocation
lsls r0, 24
lsrs r0, 24
mov r10, r5
diff --git a/asm/rom5.s b/asm/reshow_battle_screen.s
index 93f73dca8..88fa5dbde 100644
--- a/asm/rom5.s
+++ b/asm/reshow_battle_screen.s
@@ -11,8 +11,8 @@ nullsub_14: @ 807AD54
bx lr
thumb_func_end nullsub_14
- thumb_func_start sub_807AD58
-sub_807AD58: @ 807AD58
+ thumb_func_start ReshowBattleScreenAfterMenu
+ReshowBattleScreenAfterMenu: @ 807AD58
push {lr}
ldr r2, _0807AD90 @ =gPaletteFade
ldrb r0, [r2, 0x8]
@@ -33,7 +33,7 @@ sub_807AD58: @ 807AD58
ldr r1, _0807ADA0 @ =0x0001fffe
adds r0, r1
strb r2, [r0]
- ldr r0, _0807ADA4 @ =sub_807ADA8
+ ldr r0, _0807ADA4 @ =CB2_ReshowBattleScreenAfterMenu
bl SetMainCallback2
pop {r0}
bx r0
@@ -43,11 +43,11 @@ _0807AD94: .4byte REG_MOSAIC
_0807AD98: .4byte 0x02000000
_0807AD9C: .4byte 0x0001ffff
_0807ADA0: .4byte 0x0001fffe
-_0807ADA4: .4byte sub_807ADA8
- thumb_func_end sub_807AD58
+_0807ADA4: .4byte CB2_ReshowBattleScreenAfterMenu
+ thumb_func_end ReshowBattleScreenAfterMenu
- thumb_func_start sub_807ADA8
-sub_807ADA8: @ 807ADA8
+ thumb_func_start CB2_ReshowBattleScreenAfterMenu
+CB2_ReshowBattleScreenAfterMenu: @ 807ADA8
push {r4-r7,lr}
sub sp, 0x8
ldr r0, _0807ADC4 @ =0x02000000
@@ -352,7 +352,7 @@ _0807B05C: .4byte gPaletteFade
_0807B060: .4byte sub_800F808
_0807B064: .4byte 0x02000000
_0807B068: .4byte 0x0001ffff
- thumb_func_end sub_807ADA8
+ thumb_func_end CB2_ReshowBattleScreenAfterMenu
thumb_func_start sub_807B06C
sub_807B06C: @ 807B06C
diff --git a/asm/secret_base.s b/asm/secret_base.s
index bfa0e573d..81225ba4b 100644
--- a/asm/secret_base.s
+++ b/asm/secret_base.s
@@ -131,8 +131,8 @@ _080BB54C:
bx r0
thumb_func_end sub_80BB4AC
- thumb_func_start sub_80BB594
-sub_80BB594: @ 80BB594
+ thumb_func_start ResetSecretBase
+ResetSecretBase: @ 80BB594
push {lr}
adds r1, r0, 0
lsls r1, 24
@@ -147,16 +147,16 @@ sub_80BB594: @ 80BB594
bx r0
.align 2, 0
_080BB5B0: .4byte gSaveBlock1 + 0x1A08
- thumb_func_end sub_80BB594
+ thumb_func_end ResetSecretBase
- thumb_func_start sub_80BB5B4
-sub_80BB5B4: @ 80BB5B4
+ thumb_func_start ResetSecretBases
+ResetSecretBases: @ 80BB5B4
push {r4,lr}
movs r4, 0
_080BB5B8:
lsls r0, r4, 24
lsrs r0, 24
- bl sub_80BB594
+ bl ResetSecretBase
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
@@ -165,7 +165,7 @@ _080BB5B8:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_80BB5B4
+ thumb_func_end ResetSecretBases
thumb_func_start sub_80BB5D0
sub_80BB5D0: @ 80BB5D0
@@ -1701,37 +1701,7 @@ _080BC18A:
bx r1
thumb_func_end sub_80BC14C
- thumb_func_start sub_80BC190
-sub_80BC190: @ 80BC190
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r4, r1, 2
- adds r4, r1
- lsls r4, 5
- ldr r0, _080BC1C8 @ =gSaveBlock1 + 0x1A0A
- adds r4, r0
- adds r0, r4, 0
- bl sub_80BB8A8
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringCopyN
- movs r1, 0xFF
- strb r1, [r0]
- ldr r1, _080BC1CC @ =gOtherText_PlayersBase
- adds r0, r5, 0
- bl StringAppend
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080BC1C8: .4byte gSaveBlock1 + 0x1A0A
-_080BC1CC: .4byte gOtherText_PlayersBase
- thumb_func_end sub_80BC190
+.section .text_80BC1D0
thumb_func_start GetSecretBaseMapName
GetSecretBaseMapName: @ 80BC1D0
@@ -2043,7 +2013,7 @@ sub_80BC440: @ 80BC440
adds r4, r0
ldrh r5, [r4]
movs r0, 0
- bl sub_80BB594
+ bl ResetSecretBase
strh r5, [r4]
bl sub_80BC0F8
pop {r4,r5}
@@ -2155,7 +2125,7 @@ sub_80BC50C: @ 80BC50C
adds r4, r0
ldrh r5, [r4]
movs r0, 0
- bl sub_80BB594
+ bl ResetSecretBase
strh r5, [r4]
pop {r4,r5}
pop {r0}
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
index 32abb287d..46af5bc0f 100644
--- a/asm/slot_machine.s
+++ b/asm/slot_machine.s
@@ -7048,72 +7048,7 @@ _08104CA4: .4byte gTasks
_08104CA8: .4byte 0x0000ffff
thumb_func_end sub_8104C5C
- thumb_func_start sub_8104CAC
-sub_8104CAC: @ 8104CAC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8104DA4
- ldr r0, _08104D24 @ =0x02000000
- adds r0, 0x3D
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08104D28 @ =gTasks
- adds r7, r0, r1
- strh r4, [r7, 0xA]
- movs r6, 0
- ldr r1, _08104D2C @ =gUnknown_083ED048
- lsls r5, r4, 2
- adds r0, r5, r1
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _08104D18
- mov r8, r1
-_08104CE0:
- mov r0, r8
- adds r4, r5, r0
- ldr r0, [r4]
- lsls r2, r6, 2
- adds r2, r0
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- movs r3, 0x2
- ldrsh r2, [r2, r3]
- bl sub_8105BB4
- lsls r0, 24
- lsrs r0, 24
- adds r2, r6, 0x4
- lsls r2, 1
- adds r1, r7, 0
- adds r1, 0x8
- adds r1, r2
- strh r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, [r4]
- lsls r0, r6, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08104CE0
-_08104D18:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08104D24: .4byte 0x02000000
-_08104D28: .4byte gTasks
-_08104D2C: .4byte gUnknown_083ED048
- thumb_func_end sub_8104CAC
+.section .text_8104D30
thumb_func_start sub_8104D30
sub_8104D30: @ 8104D30
@@ -10221,249 +10156,4 @@ _08106440: .4byte gUnknown_083EDCDC
_08106444: .4byte gUnknown_083EDCE4
thumb_func_end sub_8106404
- thumb_func_start sub_8106448
-sub_8106448: @ 8106448
- push {r4-r7,lr}
- ldr r0, _081064A0 @ =gSlotMachine_Gfx
- ldr r4, _081064A4 @ =0x02010000
- adds r1, r4, 0
- bl sub_800D238
- movs r3, 0xC0
- lsls r3, 19
- movs r5, 0xE9
- lsls r5, 5
- ldr r1, _081064A8 @ =0x040000d4
- ldr r6, _081064AC @ =0x80000800
- movs r2, 0x80
- lsls r2, 5
- movs r7, 0x80
- lsls r7, 24
-_08106468:
- str r4, [r1]
- str r3, [r1, 0x4]
- str r6, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r4, r2
- adds r3, r2
- subs r5, r2
- cmp r5, r2
- bhi _08106468
- str r4, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r5, 1
- orrs r0, r7
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r0, _081064B0 @ =gUnknown_08E95A18
- movs r1, 0
- movs r2, 0xA0
- bl LoadPalette
- ldr r0, _081064B4 @ =gPalette_83EDE24
- movs r1, 0xD0
- movs r2, 0x20
- bl LoadPalette
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081064A0: .4byte gSlotMachine_Gfx
-_081064A4: .4byte 0x02010000
-_081064A8: .4byte 0x040000d4
-_081064AC: .4byte 0x80000800
-_081064B0: .4byte gUnknown_08E95A18
-_081064B4: .4byte gPalette_83EDE24
- thumb_func_end sub_8106448
-
- thumb_func_start sub_81064B8
-sub_81064B8: @ 81064B8
- push {lr}
- ldr r0, _081064D0 @ =gUnknown_08E95AB8
- ldr r1, _081064D4 @ =0x0600e800
- movs r2, 0xA0
- lsls r2, 2
- bl CpuSet
- bl sub_81064D8
- pop {r0}
- bx r0
- .align 2, 0
-_081064D0: .4byte gUnknown_08E95AB8
-_081064D4: .4byte 0x0600e800
- thumb_func_end sub_81064B8
-
- thumb_func_start sub_81064D8
-sub_81064D8: @ 81064D8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r6, _0810658C @ =0x0600f000
- movs r3, 0x4
- movs r0, 0xC0
- lsls r0, 1
- mov r12, r0
- movs r1, 0xC0
- lsls r1, 2
- mov r9, r1
- movs r2, 0xA0
- lsls r2, 1
- mov r8, r2
-_081064F6:
- movs r0, 0
- lsls r4, r3, 16
- asrs r5, r4, 16
-_081064FC:
- lsls r2, r0, 16
- asrs r2, 16
- adds r1, r5, r2
- lsls r1, 1
- adds r1, r6
- mov r7, r8
- adds r3, r1, r7
- ldr r7, _08106590 @ =0x00002051
- adds r0, r7, 0
- strh r0, [r3]
- movs r0, 0xD0
- lsls r0, 2
- adds r3, r1, r0
- ldr r7, _08106594 @ =0x00002851
- adds r0, r7, 0
- strh r0, [r3]
- mov r0, r12
- adds r3, r1, r0
- ldr r7, _08106598 @ =0x00002061
- adds r0, r7, 0
- strh r0, [r3]
- add r1, r9
- ldr r3, _0810659C @ =0x00002861
- adds r0, r3, 0
- strh r0, [r1]
- adds r2, 0x1
- lsls r2, 16
- lsrs r0, r2, 16
- asrs r2, 16
- cmp r2, 0x3
- ble _081064FC
- asrs r3, r4, 16
- lsls r1, r3, 1
- adds r1, r6
- mov r5, r12
- adds r2, r1, r5
- adds r7, 0x5D
- adds r0, r7, 0
- strh r0, [r2]
- add r1, r9
- ldr r2, _081065A0 @ =0x000028be
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0x7
- ldr r5, _081065A4 @ =0x000020bf
- adds r2, r5, 0
-_08106558:
- lsls r1, r0, 16
- asrs r1, 16
- lsls r0, r1, 5
- adds r0, r3
- lsls r0, 1
- adds r0, r6
- strh r2, [r0]
- adds r1, 0x1
- lsls r1, 16
- lsrs r0, r1, 16
- asrs r1, 16
- cmp r1, 0xB
- ble _08106558
- movs r7, 0xA0
- lsls r7, 11
- adds r0, r4, r7
- lsrs r3, r0, 16
- asrs r0, 16
- cmp r0, 0x11
- ble _081064F6
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810658C: .4byte 0x0600f000
-_08106590: .4byte 0x00002051
-_08106594: .4byte 0x00002851
-_08106598: .4byte 0x00002061
-_0810659C: .4byte 0x00002861
-_081065A0: .4byte 0x000028be
-_081065A4: .4byte 0x000020bf
- thumb_func_end sub_81064D8
-
- thumb_func_start sub_81065A8
-sub_81065A8: @ 81065A8
- push {r4-r6,lr}
- ldr r5, [sp, 0x10]
- lsls r0, 16
- asrs r0, 15
- ldr r6, _081065D0 @ =0x0600ebc0
- adds r4, r0, r6
- strh r1, [r4]
- ldr r4, _081065D4 @ =0x0600ebc2
- adds r1, r0, r4
- strh r2, [r1]
- adds r6, 0x40
- adds r1, r0, r6
- strh r3, [r1]
- ldr r1, _081065D8 @ =0x0600ec02
- adds r0, r1
- strh r5, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081065D0: .4byte 0x0600ebc0
-_081065D4: .4byte 0x0600ebc2
-_081065D8: .4byte 0x0600ec02
- thumb_func_end sub_81065A8
-
- thumb_func_start sub_81065DC
-sub_81065DC: @ 81065DC
- push {r4,r5,lr}
- ldr r0, _08106624 @ =gUnknown_08E95FB8
- ldr r1, _08106628 @ =0x0600e800
- movs r2, 0xA0
- lsls r2, 2
- bl CpuSet
- ldr r5, _0810662C @ =0x0600f000
- movs r1, 0
- movs r4, 0
-_081065F0:
- movs r0, 0
- lsls r3, r1, 16
- asrs r2, r3, 11
-_081065F6:
- lsls r1, r0, 16
- asrs r1, 16
- adds r0, r2, r1
- lsls r0, 1
- adds r0, r5
- strh r4, [r0]
- adds r1, 0x1
- lsls r1, 16
- lsrs r0, r1, 16
- asrs r1, 16
- cmp r1, 0x1D
- ble _081065F6
- movs r1, 0x80
- lsls r1, 9
- adds r0, r3, r1
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _081065F0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08106624: .4byte gUnknown_08E95FB8
-_08106628: .4byte 0x0600e800
-_0810662C: .4byte 0x0600f000
- thumb_func_end sub_81065DC
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/trade.s b/asm/trade.s
index d1fe82d6c..756423ee7 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -7639,7 +7639,7 @@ sub_804BA94: @ 804BA94
lsls r0, 2
ldr r1, _0804BB68 @ =gSaveBlock1 + 0x2B4C
adds r0, r1
- bl sub_80A2B40
+ bl ClearMailStruct
_0804BAE8:
ldr r4, _0804BB6C @ =gUnknown_03004828
ldr r0, [r4]
@@ -7678,7 +7678,7 @@ _0804BB28:
ldr r0, _0804BB70 @ =gUnknown_02029700
adds r1, r0
adds r0, r7, 0
- bl sub_80A2D88
+ bl GiveMailToMon2
_0804BB3E:
mov r0, r9
bl sub_804BA18
@@ -11262,7 +11262,7 @@ sub_804D948: @ 804D948
ldrh r0, [r5, 0x28]
cmp r0, 0
beq _0804DAC0
- bl itemid_is_mail
+ bl ItemIsMail
lsls r0, 24
cmp r0, 0
beq _0804DAB4
diff --git a/asm/tv.s b/asm/tv.s
index fd5fdeeac..ca2e5e410 100644
--- a/asm/tv.s
+++ b/asm/tv.s
@@ -7,8 +7,8 @@
.text
- thumb_func_start sub_80BD7A8
-sub_80BD7A8: @ 80BD7A8
+ thumb_func_start ClearTVShowData
+ClearTVShowData: @ 80BD7A8
push {r4-r7,lr}
movs r3, 0
ldr r6, _080BD7F0 @ =gSaveBlock1
@@ -50,7 +50,7 @@ _080BD7F0: .4byte gSaveBlock1
_080BD7F4: .4byte 0x0000273a
_080BD7F8: .4byte 0x00002738
_080BD7FC: .4byte 0x00002739
- thumb_func_end sub_80BD7A8
+ thumb_func_end ClearTVShowData
thumb_func_start special_0x44
special_0x44: @ 80BD800
@@ -417,8 +417,8 @@ _080BDAAE:
bx r1
thumb_func_end special_0x4a
- thumb_func_start sub_80BDAB4
-sub_80BDAB4: @ 80BDAB4
+ thumb_func_start ResetGabbyAndTy
+ResetGabbyAndTy: @ 80BDAB4
push {r4,lr}
ldr r2, _080BDAF8 @ =gSaveBlock1
ldr r1, _080BDAFC @ =0x00002b10
@@ -461,7 +461,7 @@ _080BDB04: .4byte 0x00002b16
_080BDB08: .4byte 0x0000ffff
_080BDB0C: .4byte 0x00002b1b
_080BDB10: .4byte 0x00002b18
- thumb_func_end sub_80BDAB4
+ thumb_func_end ResetGabbyAndTy
thumb_func_start GabbyAndTyBeforeInterview
GabbyAndTyBeforeInterview: @ 80BDB14
diff --git a/data/field_screeneffect.s b/data/field_weather.s
index 836bfbe99..836bfbe99 100644
--- a/data/field_screeneffect.s
+++ b/data/field_weather.s
diff --git a/data/specials.inc b/data/specials.inc
index 941fd12a8..bac45b91b 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -38,7 +38,7 @@ gSpecials::
.4byte sub_8083820
.4byte sub_8083614
.4byte GetLinkPartnerNames
- .4byte sub_810DB28
+ .4byte SpawnBerryBlenderLinkPlayerSprites
.4byte SavePlayerParty
.4byte LoadPlayerParty
.4byte sub_80C5568
@@ -139,14 +139,14 @@ gSpecials::
.4byte sub_80C4C78
.4byte sub_80C4D50
.4byte ShowContestWinner
- .4byte sub_810DCCC
- .4byte sub_810DC7C
+ .4byte MauvilleGymSpecial2
+ .4byte MauvilleGymSpecial1
.4byte ShowFieldMessageStringVar4
.4byte DrawWholeMapView
.4byte StorePlayerCoordsInVars
- .4byte sub_810DEDC
- .4byte sub_810E070
- .4byte sub_810E230
+ .4byte MauvilleGymSpecial3
+ .4byte PetalburgGymSpecial1
+ .4byte PetalburgGymSpecial2
.4byte GetPlayerTrainerIdOnesDigit
.4byte GetPlayerBigGuyGirlString
.4byte GetRivalSonDaughterString
diff --git a/include/asm.inc.h b/include/asm.inc.h
index eb3cec985..0c111a991 100644
--- a/include/asm.inc.h
+++ b/include/asm.inc.h
@@ -166,7 +166,7 @@ u8 battle_get_per_side_status(u8);
u8 battle_get_side_with_given_state(u8);
bool8 IsDoubleBattle();
-// asm/field_screeneffect.o
+// asm/field_weather.o
void SetWeather(u32);
// src/field_fadetransition.o
@@ -218,7 +218,7 @@ void sub_808AB90(void);
u8 pokemon_order_func(u8);
// asm/pokemon_storage_system.o
-void sub_80961D8(void);
+void ResetPokemonStorageSystem(void);
// asm/pokemon_icon.o
u8 sub_809D3A4(u16 arg0, void (*)(struct Sprite *), int, u8 arg3, u32 arg4);
@@ -236,8 +236,8 @@ bool8 sub_80A212C(u8, u8, u8);
void sub_80A2178(void);
// asm/mail_data.o
-void sub_80A2B18(void);
-u16 sub_80A2D64(u16, u8 *);
+void ClearMailData(void);
+u16 MailSpeciesToSpecies(u16, u8 *);
// src/map_name_popup.o
void ShowMapNamePopup(void);
@@ -245,7 +245,7 @@ void HideMapNamePopup();
// asm/item_menu.o
void sub_80A3684(void);
-void sub_80A3714(void);
+void ClearBag(void);
void sub_80A53F8(void);
void sub_80A5B40(void);
void sub_80A68CC();
@@ -254,7 +254,7 @@ void sub_80A7DD4(void);
u8 sub_80A7E5C(u8);
// asm/contest.o
-void sub_80AB1B0(void);
+void ResetLinkContestBoolean(void);
void sub_80AE098(u8);
void sub_80AE398(u8, u8);
u32 sub_80AE770(u8, u8);
@@ -269,16 +269,16 @@ void CreateDecorationShop1Menu(void *);
void CreateDecorationShop2Menu(void *);
// asm/secret_base.o
-void sub_80BB5B4(void);
+void ResetSecretBases(void);
u8 sub_80BBB24(void);
void sub_80BBCCC(u8);
u8 *sub_80BCCE8(void);
void sub_80BD674(void *, u32, u8);
// asm/tv.o
-void sub_80BD7A8(void);
+void ClearTVShowData(void);
void UpdateTVScreensOnMap(u32, u32);
-void sub_80BDAB4(void);
+void ResetGabbyAndTy(void);
u8 sub_80BDEAC(u8 *);
void sub_80BE160(TVShow *);
void sub_80BE8EC(u16);
@@ -326,7 +326,7 @@ void sub_80C8EBC(u8);
void sub_80C8F34(u8);
// asm/easy_chat.o
-void sub_80E6764(void);
+void InitEasyChatPhrases(void);
u8* sub_80EB3FC(u8 *, u16);
u8 ConvertEasyChatWordsToString(u8 *dst, u16 *words, u16, u16);
@@ -353,7 +353,7 @@ u8 *CopyLocationName(u8 *dest, u8 location);
void PlaySlotMachine(u8, void *);
// asm/pokeblock.o
-void sub_810C994(void);
+void ClearPokeblocks(void);
void sub_810CA6C(s32);
s16 sub_810CAE4(u8, struct Pokeblock *);
@@ -365,12 +365,12 @@ u8 IsMirageIslandPresent(void);
// asm/field_specials.o
void ResetCyclingRoadChallengeData(void);
-bool32 sub_810D9B0(u16);
-u8 sub_810D9EC(s8 *, s8 *, s16 *, s16 *);
+bool32 CountSSTidalStep(u16);
+u8 GetSSTidalLocation(s8 *, s8 *, s16 *, s16 *);
void ScriptAddElevatorMenuItem(u8, u8, u8, u8);
void ScriptShowElevatorMenu(void);
u8 GetLeadMonIndex(void);
-void sub_810FA54(void);
+void ResetFanClub(void);
// asm/battle_records.o
void InitLinkBattleRecords(void);
@@ -410,7 +410,7 @@ u8 sub_8128124(u8 id);
void sub_8132670(void);
// asm/decoration_inventory.o
-void sub_8133F80(void);
+void ClearDecorationInventories(void);
u8 sub_8133FE4(u8);
u8 IsThereStorageSpaceForDecoration(u8);
u8 sub_8134074(u8);
diff --git a/include/berry.h b/include/berry.h
index 0013b4dba..f0acbe0ad 100644
--- a/include/berry.h
+++ b/include/berry.h
@@ -22,7 +22,7 @@ bool8 IsPlayerFacingPlantedBerryTree(void);
bool8 TryToWaterBerryTree(void);
void ClearBerryTrees(void);
bool32 BerryTreeGrow(struct BerryTree *tree);
-void BerryTreeTimeUpdate(int time);
+void BerryTreeTimeUpdate(s32 minutes);
void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle);
void RemoveBerryTree(u8 id);
u8 GetBerryTypeByBerryTreeId(u8 id);
diff --git a/include/dewford_trend.h b/include/dewford_trend.h
index 713d491b6..a37de3389 100644
--- a/include/dewford_trend.h
+++ b/include/dewford_trend.h
@@ -4,7 +4,7 @@
#define ARRAY_2007800 ((struct EasyChatPair *)(unk_2000000 + 0x7800))
#define ARRAY_2007900 ((struct EasyChatPair *)(unk_2000000 + 0x7900))
-void sub_80FA17C(void);
+void InitDewfordTrend(void);
void sub_80FA4E4(void *, u32, u8);
#endif
diff --git a/include/field_screeneffect.h b/include/field_weather.h
index af07c970d..af07c970d 100644
--- a/include/field_screeneffect.h
+++ b/include/field_weather.h
diff --git a/include/flags.h b/include/flags.h
index 0c0cebc5f..56325dea6 100644
--- a/include/flags.h
+++ b/include/flags.h
@@ -51,6 +51,7 @@
#define SYS_BRAILLE_WAIT 0x851
#define SYS_BRAILLE_FLY 0x852
+#define SYS_SHOAL_ITEM 0x85F
#define SYS_B_DASH 0x860 // got Running Shoes
#define SYS_CTRL_OBJ_DELETE 0x861
#define SYS_RESET_RTC_ENABLE 0x862
diff --git a/include/global.berry.h b/include/global.berry.h
index 3f835f075..6632e55e2 100644
--- a/include/global.berry.h
+++ b/include/global.berry.h
@@ -45,7 +45,7 @@ struct BerryTree
u8 berry;
u8 stage:7;
u8 growthSparkle:1;
- u16 secondsUntilNextStage;
+ u16 minutesUntilNextStage;
u8 berryYield;
u8 regrowthCount:4;
u8 watered1:1;
diff --git a/include/link.h b/include/link.h
index f88cf8f5a..eb6f642bc 100644
--- a/include/link.h
+++ b/include/link.h
@@ -124,8 +124,10 @@ struct Link
extern struct Link gLink;
extern u16 gRecvCmds[CMD_LENGTH][MAX_LINK_PLAYERS];
+extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE];
extern u16 gLinkType;
extern u32 gLinkStatus;
+extern u16 gBlockRecvBuffer[MAX_LINK_PLAYERS][BLOCK_BUFFER_SIZE / 2];
extern u16 gSendCmd[CMD_LENGTH];
extern u8 gShouldAdvanceLinkState;
extern struct LinkPlayer gLinkPlayers[];
diff --git a/include/new_game.h b/include/new_game.h
index 62e83f8f0..f59154af4 100644
--- a/include/new_game.h
+++ b/include/new_game.h
@@ -3,7 +3,7 @@
void write_word_to_mem(u32 var, u8 *dataPtr);
void copy_word_to_mem(u8 *copyTo, u8 *copyFrom);
-void set_player_trainer_id(void);
+void InitPlayerTrainerId(void);
void SetDefaultOptions(void);
void ClearPokedexFlags(void);
void sub_8052DA8(void);
diff --git a/include/pokedex.h b/include/pokedex.h
index fded1ec65..5dd44cd2f 100644
--- a/include/pokedex.h
+++ b/include/pokedex.h
@@ -55,7 +55,7 @@ struct PokedexView
u8 unk65E[8];
};
-void sub_808C02C(void);
+void ResetPokedex(void);
void sub_808C0A0(void);
void sub_808C0B8(void);
void ClearPokedexView(struct PokedexView *pokedexView);
diff --git a/include/pokemon.h b/include/pokemon.h
index 8e216e04a..ae02de8ca 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -117,6 +117,7 @@
#define PARTY_SIZE 6
#define MAX_TOTAL_EVS 510
#define NUM_STATS 6
+#define UNOWN_FORM_COUNT 28
enum {
NATURE_HARDY,
diff --git a/include/vars.h b/include/vars.h
index 5477ba98a..55df0a5e3 100644
--- a/include/vars.h
+++ b/include/vars.h
@@ -3,7 +3,7 @@
#define VAR_RECYCLE_GOODS 0x4020
#define VAR_REPEL_STEP_COUNT 0x4021
-
+#define VAR_ICE_STEP_COUNT 0x4022
#define VAR_FIRST_POKE 0x4023
#define VAR_MIRAGE_RND_H 0x4024
#define VAR_MIRAGE_RND_L 0x4025
@@ -18,9 +18,9 @@
#define VAR_POKELOT_PRIZE 0x4045
#define VAR_NATIONAL_DEX 0x4046
#define VAR_SHROOMISH_SIZE_RECORD 0x4047
-
+#define VAR_ASH_GATHER_COUNT 0x4048
#define VAR_BIRCH_STATE 0x4049
-
+#define VAR_CRUISE_STEP_COUNT 0x404A
#define VAR_POKELOT_RND1 0x404B
#define VAR_POKELOT_RND2 0x404C
diff --git a/ld_script.txt b/ld_script.txt
index d43c8886b..0cc6ef0f0 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -76,7 +76,7 @@ SECTIONS {
asm/daycare.o(.text);
src/egg_hatch.o(.text);
asm/egg_hatch.o(.text);
- src/battle_interface.o(.text);
+ src/battle_interface.o(.text);
src/smokescreen.o(.text);
asm/pokeball.o(.text);
src/load_save.o(.text);
@@ -121,16 +121,18 @@ SECTIONS {
src/battle_anim.o(.text);
src/rom_8077ABC.o(.text);
src/task.o(.text);
- asm/rom5.o(.text);
+ asm/reshow_battle_screen.o(.text);
asm/battle_anim_807B69C.o(.text);
src/title_screen.o(.text);
- src/field_screeneffect.o(.text);
- asm/field_screeneffect.o(.text);
+ src/field_weather.o(.text);
+ asm/field_weather.o(.text);
src/field_fadetransition.o(.text);
asm/field_fadetransition.o(.text);
- asm/rom_8080874.o(.text);
+ asm/field_screen_effect.o(.text);
src/battle_setup.o(.text);
asm/cable_club.o(.text);
+ src/cable_club.o(.text);
+ asm/cable_club.o(.text_80830E4);
src/mori_debug_menu.o(.text);
src/trainer_see.o(.text);
src/wild_encounter.o(.text);
@@ -147,6 +149,8 @@ SECTIONS {
asm/rom_8094928.o(.text);
src/battle_party_menu.o(.text);
asm/pokemon_storage_system.o(.text);
+ src/pokemon_storage_system.o(.text);
+ asm/pokemon_storage_system.o(.text_8098A38);
asm/pokemon_icon.o(.text);
asm/pokemon_summary_screen.o(.text);
src/pokemon_summary_screen.o(.text);
@@ -154,7 +158,6 @@ SECTIONS {
src/script_movement.o(.text);
src/fldeff_cut.o(.text);
src/mail_data.o(.text);
- asm/mail_data.o(.text);
src/map_name_popup.o(.text);
asm/item_menu.o(.text);
src/battle_anim_80A7E7C.o(.text);
@@ -172,6 +175,8 @@ SECTIONS {
asm/record_mixing.o(.text);
asm/sound_check_menu.o(.text);
asm/secret_base.o(.text);
+ src/secret_base.o(.text);
+ asm/secret_base.o(.text_80BC1D0);
asm/tv.o(.text);
src/tv.o(.text);
asm/tv.o(.text_80BE8EC);
@@ -195,6 +200,8 @@ SECTIONS {
asm/easy_chat.o(.text);
src/easy_chat.o(.text);
asm/pokenav.o(.text);
+ src/pokenav.o(.text);
+ asm/pokenav.o(.text_80F708C);
asm/mon_markings.o(.text);
src/mauville_old_man.o(.text);
asm/mauville_old_man.o(.text);
@@ -209,6 +216,9 @@ SECTIONS {
src/decoration.o(.text);
asm/decoration.o(.text_80FE868);
asm/slot_machine.o(.text);
+ src/slot_machine.o(.text);
+ asm/slot_machine.o(.text_8104D30)
+ src/slot_machine.o(.text_b);
src/contest_painting.o(.text);
src/battle_ai.o(.text);
asm/trader.o(.text);
@@ -385,7 +395,7 @@ SECTIONS {
data/task.o(.rodata);
data/battle_anim_807B69C.o(.rodata);
src/title_screen.o(.rodata);
- data/field_screeneffect.o(.rodata);
+ data/field_weather.o(.rodata);
data/rom_8080874.o(.rodata);
src/battle_setup.o(.rodata);
data/cable_club.o(.rodata);
diff --git a/src/battle_811DA74.c b/src/battle_811DA74.c
index 4d66910ba..328b45f49 100644
--- a/src/battle_811DA74.c
+++ b/src/battle_811DA74.c
@@ -69,7 +69,6 @@ extern void c3_0802FDF4(u8);
extern void sub_8031F88();
extern void sub_8141828();
extern void c2_8011A1C(void);
-extern void sub_800832C();
extern void dp01_prepare_buffer_wireless_probably();
extern void dp01_build_cmdbuf_x1D_1D_numargs_varargs(int, u16, void *);
diff --git a/src/battle_anim.c b/src/battle_anim.c
index b9aa5b898..bdb34365f 100644
--- a/src/battle_anim.c
+++ b/src/battle_anim.c
@@ -65,7 +65,6 @@ extern u8 sub_8078874(u8);
extern void sub_8078914();
extern u8 sub_80AEB1C();
extern void sub_80E4EF8(int, int, int, int, u16, u8, int);
-extern void sub_800D238();
extern u8 sub_80789BC();
extern void sub_80AB2AC(void);
extern void sub_800D7B8(void);
diff --git a/src/battle_setup.c b/src/battle_setup.c
index abc0b978d..0753fba70 100644
--- a/src/battle_setup.c
+++ b/src/battle_setup.c
@@ -7,7 +7,7 @@
#include "field_map_obj_helpers.h"
#include "field_message_box.h"
#include "field_player_avatar.h"
-#include "field_screeneffect.h"
+#include "field_weather.h"
#include "main.h"
#include "map_constants.h"
#include "metatile_behavior.h"
diff --git a/src/berry.c b/src/berry.c
index 6c12af053..257248e5c 100644
--- a/src/berry.c
+++ b/src/berry.c
@@ -1130,7 +1130,7 @@ bool32 BerryTreeGrow(struct BerryTree *tree)
return TRUE;
}
-void BerryTreeTimeUpdate(int time)
+void BerryTreeTimeUpdate(s32 minutes)
{
int i;
struct BerryTree *tree;
@@ -1141,27 +1141,27 @@ void BerryTreeTimeUpdate(int time)
if (tree->berry && tree->stage && !tree->growthSparkle)
{
- if (time >= GetStageDurationByBerryType(tree->berry) * 71)
+ if (minutes >= GetStageDurationByBerryType(tree->berry) * 71)
{
*tree = gBlankBerryTree;
}
else
{
- int time2 = time;
+ s32 time = minutes;
- while (time2 != 0)
+ while (time != 0)
{
- if (tree->secondsUntilNextStage > time2)
+ if (tree->minutesUntilNextStage > time)
{
- tree->secondsUntilNextStage -= time2;
+ tree->minutesUntilNextStage -= time;
break;
}
- time2 -= tree->secondsUntilNextStage;
- tree->secondsUntilNextStage = GetStageDurationByBerryType(tree->berry);
+ time -= tree->minutesUntilNextStage;
+ tree->minutesUntilNextStage = GetStageDurationByBerryType(tree->berry);
if (!BerryTreeGrow(tree))
break;
if (tree->stage == 5)
- tree->secondsUntilNextStage *= 4;
+ tree->minutesUntilNextStage *= 4;
}
}
}
@@ -1174,12 +1174,12 @@ void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle)
*tree = gBlankBerryTree;
tree->berry = berry;
- tree->secondsUntilNextStage = GetStageDurationByBerryType(berry);
+ tree->minutesUntilNextStage = GetStageDurationByBerryType(berry);
tree->stage = stage;
if (stage == 5)
{
tree->berryYield = CalcBerryYield(tree);
- tree->secondsUntilNextStage *= 4;
+ tree->minutesUntilNextStage *= 4;
}
if (!sparkle)
{
diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c
index 103f0a85e..511b88c5a 100644
--- a/src/berry_tag_screen.c
+++ b/src/berry_tag_screen.c
@@ -178,9 +178,9 @@ void BerryTagScreen_814625C(u8 taskId)
static void sub_8146288(void)
{
- REG_BG1CNT = 0x502;
- REG_BG2CNT = 0x600;
- REG_BG3CNT = 0x703;
+ REG_BG1CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(5) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_BG2CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(6) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_BG3CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(7) | BGCNT_16COLOR | BGCNT_TXT256x256;
gUnknown_030041B4 = 0;
}
diff --git a/src/cable_club.c b/src/cable_club.c
new file mode 100644
index 000000000..45fb347f3
--- /dev/null
+++ b/src/cable_club.c
@@ -0,0 +1,304 @@
+#include "global.h"
+#include "asm.h"
+#include "field_message_box.h"
+#include "link.h"
+#include "main.h"
+#include "script.h"
+#include "songs.h"
+#include "sound.h"
+#include "string_util.h"
+#include "task.h"
+#include "text.h"
+#include "trainer_card.h"
+
+extern u16 gScriptResult;
+extern struct TrainerCard gTrainerCards[4];
+
+extern u8 gUnknown_03004860;
+extern u8 gFieldLinkPlayerCount;
+
+extern u8 gUnknown_081A4932[];
+extern const u8 gUnknown_081A4975[];
+
+void sub_8082D4C();
+void sub_8082D60(u8, u8);
+u16 sub_8082D9C(u8, u8);
+u32 sub_8082DF4(u8);
+u32 sub_8082E28(u8);
+u32 sub_8082EB8(u8);
+void sub_8082FEC(u8 taskId);
+static void sub_80830E4(u8 taskId);
+void sub_8083188(u8 taskId);
+static void sub_8083288(u8 taskId);
+static void sub_8083314(u8 taskId);
+void sub_80833C4(u8 taskId);
+void sub_8083418(u8 taskId);
+u8 sub_8083444(u8 taskId);
+
+void sub_808303C(u8 taskId) {
+ s32 linkPlayerCount;
+ s16 *taskData;
+
+ taskData = gTasks[taskId].data;
+
+ linkPlayerCount = GetLinkPlayerCount_2();
+
+ if (sub_8082E28(taskId) == 1 ||
+ sub_8082EB8(taskId) == 1 ||
+ sub_8082DF4(taskId) == 1)
+ {
+ return;
+ }
+
+ sub_8082D60(taskId, linkPlayerCount);
+
+ if (!(gMain.newKeys & A_BUTTON))
+ {
+ return;
+ }
+
+ if (linkPlayerCount < taskData[1])
+ {
+ return;
+ }
+
+ sub_80081C8(linkPlayerCount);
+ sub_8082D4C();
+ ConvertIntToDecimalStringN(gStringVar1, linkPlayerCount, STR_CONV_MODE_LEFT_ALIGN, 1); // r5
+ ShowFieldAutoScrollMessage((u8 *) gUnknown_081A4975);
+ gTasks[taskId].func = sub_80830E4;
+}
+
+#ifdef NONMATCHING
+static void sub_80830E4(u8 taskId) {
+ if (sub_8082E28(taskId) == 1 ||
+ sub_8082EB8(taskId) == 1 ||
+ sub_8082DF4(taskId) == 1 ||
+ GetFieldMessageBoxMode())
+ {
+ return;
+ }
+
+ if (sub_800820C() == GetLinkPlayerCount_2() &&
+ !(gMain.heldKeys & B_BUTTON))
+ {
+ ShowFieldAutoScrollMessage(gUnknown_081A4932);
+ gTasks[taskId].func = sub_8082FEC;
+ return;
+ }
+
+ if (gMain.heldKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_8007F4C();
+ gTasks[(u32) taskId].func = sub_8083188;
+ }
+}
+#else
+__attribute__((naked))
+static void sub_80830E4(u8 taskId) {
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ adds r6, r5, 0\n\
+ adds r0, r5, 0\n\
+ bl sub_8082E28\n\
+ cmp r0, 0x1\n\
+ beq _08083178\n\
+ adds r0, r5, 0\n\
+ bl sub_8082EB8\n\
+ cmp r0, 0x1\n\
+ beq _08083178\n\
+ adds r0, r5, 0\n\
+ bl sub_8082DF4\n\
+ cmp r0, 0x1\n\
+ beq _08083178\n\
+ bl GetFieldMessageBoxMode\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _08083178\n\
+ bl sub_800820C\n\
+ adds r4, r0, 0\n\
+ bl GetLinkPlayerCount_2\n\
+ lsls r4, 24\n\
+ lsls r0, 24\n\
+ cmp r4, r0\n\
+ bne _08083132\n\
+ ldr r0, _08083148 @ =gMain\n\
+ ldrh r1, [r0, 0x2C]\n\
+ movs r0, 0x2\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _08083158\n\
+_08083132:\n\
+ ldr r0, _0808314C @ =gUnknown_081A4932\n\
+ bl ShowFieldAutoScrollMessage\n\
+ ldr r1, _08083150 @ =gTasks\n\
+ lsls r0, r5, 2\n\
+ adds r0, r5\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ ldr r1, _08083154 @ =sub_8082FEC\n\
+ str r1, [r0]\n\
+ b _08083178\n\
+ .align 2, 0\n\
+_08083148: .4byte gMain\n\
+_0808314C: .4byte gUnknown_081A4932\n\
+_08083150: .4byte gTasks\n\
+_08083154: .4byte sub_8082FEC\n\
+_08083158:\n\
+ movs r0, 0x1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _08083178\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ bl sub_8007F4C\n\
+ ldr r0, _08083180 @ =gTasks\n\
+ lsls r1, r6, 2\n\
+ adds r1, r6\n\
+ lsls r1, 3\n\
+ adds r1, r0\n\
+ ldr r0, _08083184 @ =sub_8083188\n\
+ str r0, [r1]\n\
+_08083178:\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_08083180: .4byte gTasks\n\
+_08083184: .4byte sub_8083188\n\
+ .syntax divided\n");
+}
+#endif
+
+void sub_8083188(u8 taskId) {
+ u8 local1, local2;
+ u16 *result;
+
+ local1 = gTasks[taskId].data[1];
+ local2 = gTasks[taskId].data[2];
+
+
+ if (sub_8082DF4(taskId) == 1 ||
+ sub_8083444(taskId) == 1)
+ {
+ return;
+ }
+
+ if (GetLinkPlayerCount_2() != sub_800820C())
+ {
+ gTasks[taskId].func = sub_8083418;
+ return;
+ }
+
+ result = &gScriptResult;
+ *result = sub_8082D9C(local1, local2);
+ if (*result)
+ {
+ gTasks[taskId].func = sub_8083288;
+ }
+}
+
+void sub_80831F8(u8 taskId) {
+ u8 local1, local2;
+ u16 *result;
+
+ local1 = gTasks[taskId].data[1];
+ local2 = gTasks[taskId].data[2];
+
+ if (sub_8082E28(taskId) == 1 ||
+ sub_8082DF4(taskId) == 1)
+ {
+ return;
+ }
+
+ result = &gScriptResult;
+ *result = sub_8082D9C(local1, local2);
+ if (*result == 0)
+ {
+ return;
+ }
+
+
+ if (*result == 3)
+ {
+ sub_800832C();
+ HideFieldMessageBox();
+ gTasks[taskId].func = sub_80833C4;
+ }
+ else
+ {
+ gFieldLinkPlayerCount = GetLinkPlayerCount_2();
+ gUnknown_03004860 = GetMultiplayerId();
+ sub_80081C8(gFieldLinkPlayerCount);
+ sub_8093390((struct TrainerCard *) gBlockSendBuffer);
+ gTasks[taskId].func = sub_8083314;
+ }
+}
+
+static void sub_8083288(u8 taskId) {
+ if (sub_8082DF4(taskId) == 1)
+ {
+ return;
+ }
+
+ if (gScriptResult == 3)
+ {
+ sub_800832C();
+ HideFieldMessageBox();
+ gTasks[taskId].func = sub_80833C4;
+ }
+ else
+ {
+ gFieldLinkPlayerCount = GetLinkPlayerCount_2();
+ gUnknown_03004860 = GetMultiplayerId();
+ sub_80081C8(gFieldLinkPlayerCount);
+ sub_8093390((struct TrainerCard *) gBlockSendBuffer);
+ gTasks[taskId].func = sub_8083314;
+ sub_8007E9C(2);
+ }
+}
+
+static void sub_8083314(u8 taskId) {
+ u8 index;
+
+ struct TrainerCard *trainerCards;
+
+ if (sub_8082DF4(taskId) == 1)
+ {
+ return;
+ }
+
+ if (GetBlockReceivedStatus() != sub_8008198())
+ {
+ return;
+ }
+
+ index = 0;
+ trainerCards = gTrainerCards;
+ for (index = 0; index < GetLinkPlayerCount(); index++)
+ {
+ void *src;
+ src = gBlockRecvBuffer[index];
+ memcpy(&trainerCards[index], src, sizeof(struct TrainerCard));
+ }
+
+ SetSuppressLinkErrorMessage(FALSE);
+ ResetBlockReceivedFlags();
+ HideFieldMessageBox();
+
+ if (gScriptResult == 1)
+ {
+ u16 linkType;
+ linkType = gLinkType;
+ sub_8082D4C(0x00004411, linkType);
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ return;
+ }
+
+ sub_800832C();
+ gTasks[taskId].func = sub_80833C4;
+}
diff --git a/src/clear_save_data_menu.c b/src/clear_save_data_menu.c
index 6b0cc821a..21cd643ef 100644
--- a/src/clear_save_data_menu.c
+++ b/src/clear_save_data_menu.c
@@ -41,7 +41,7 @@ static void Task_InitMenu(u8 taskId)
{
ResetSpriteData();
- REG_DISPCNT = DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON;
SetVBlankCallback(VBlankCB_ClearSaveDataScreen);
MenuDrawTextWindow(2, 14, 27, 19);
@@ -148,8 +148,8 @@ static u8 InitClearSaveDataScreen(void)
SetVBlankCallback(VBlankCB_InitClearSaveDataScreen);
- REG_BG3CNT = 0x0703;
- REG_DISPCNT = 0x0900;
+ REG_BG3CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(7) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_BG0_ON | DISPCNT_BG3_ON;
gMain.state = 1;
return 0;
case 1:
diff --git a/src/clock.c b/src/clock.c
index 4ec49807c..b263e99ae 100644
--- a/src/clock.c
+++ b/src/clock.c
@@ -8,17 +8,17 @@
#include "rtc.h"
#include "wallclock.h"
-extern void sub_80FA220(u16);
-extern void sub_80BE8C4(u16);
-extern void sub_8080834(u16);
+extern void UpdateDewfordTrendPerDay(u16);
+extern void UpdateTVShowsPerDay(u16);
+extern void UpdateWeatherPerDay(u16);
extern void UpdatePartyPokerusTime(u16);
extern void UpdateMirageRnd(u16);
extern void UpdateBirchState(u16);
-extern void sub_810F618(u16);
+extern void SetShoalItemFlag(u16);
static void InitTimeBasedEvents(void);
static void UpdatePerDay(struct Time *time);
-static void UpdatePerSecond(struct Time *time);
+static void UpdatePerMinute(struct Time *time);
static void ReturnFromStartWallClock(void);
static void InitTimeBasedEvents(void)
@@ -35,7 +35,7 @@ void DoTimeBasedEvents(void)
{
RtcCalcLocalTime();
UpdatePerDay(&gLocalTime);
- UpdatePerSecond(&gLocalTime);
+ UpdatePerMinute(&gLocalTime);
}
}
@@ -49,32 +49,32 @@ static void UpdatePerDay(struct Time *time)
{
newDays = time->days - days;
ClearUpperFlags();
- sub_80FA220(newDays);
- sub_80BE8C4(newDays);
- sub_8080834(newDays);
+ UpdateDewfordTrendPerDay(newDays);
+ UpdateTVShowsPerDay(newDays);
+ UpdateWeatherPerDay(newDays);
UpdatePartyPokerusTime(newDays);
UpdateMirageRnd(newDays);
UpdateBirchState(newDays);
- sub_810F618(newDays);
+ SetShoalItemFlag(newDays);
SetRandomLotteryNumber(newDays);
*varPtr = time->days;
}
}
-static void UpdatePerSecond(struct Time *time)
+static void UpdatePerMinute(struct Time *time)
{
struct Time newTime;
- s32 totalSeconds;
+ s32 minutes;
CalcTimeDifference(&newTime, &gSaveBlock2.lastBerryTreeUpdate, time);
- totalSeconds = 1440 * newTime.days + 60 * newTime.hours + newTime.minutes;
+ minutes = 1440 * newTime.days + 60 * newTime.hours + newTime.minutes;
// there's no way to get the correct assembly other than with this nested if check. so dumb.
- if (totalSeconds != 0)
+ if (minutes != 0)
{
- if (totalSeconds >= 0)
+ if (minutes >= 0)
{
- BerryTreeTimeUpdate(totalSeconds);
+ BerryTreeTimeUpdate(minutes);
gSaveBlock2.lastBerryTreeUpdate = *time;
}
}
diff --git a/src/contest_painting.c b/src/contest_painting.c
index 08244597e..2ef50ee17 100644
--- a/src/contest_painting.c
+++ b/src/contest_painting.c
@@ -336,8 +336,8 @@ static void ContestPaintingInitBG(void)
{
REG_DISPCNT = 0;
REG_IE |= INTR_FLAG_VBLANK;
- REG_BG0CNT = 0x0C42;
- REG_BG1CNT = 0x0A45;
+ REG_BG0CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(12) | BGCNT_MOSAIC | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_BG1CNT = BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(10) | BGCNT_MOSAIC | BGCNT_16COLOR | BGCNT_TXT256x256;
REG_BLDCNT = 0;
REG_BLDALPHA = 0;
REG_BLDY = 0;
@@ -367,7 +367,7 @@ static void ContestPaintingMosaic(void)
return;
}
- REG_BG1CNT = 0xA45;
+ REG_BG1CNT = BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(10) | BGCNT_MOSAIC | BGCNT_16COLOR | BGCNT_TXT256x256;
gUnknown_03000752 = gUnknown_03000754 / 2;
REG_MOSAIC = (gUnknown_03000752 << 12) | (gUnknown_03000752 << 8) | (gUnknown_03000752 << 4) | (gUnknown_03000752 << 0);
diff --git a/src/credits.c b/src/credits.c
index 17d3507aa..01af78bce 100644
--- a/src/credits.c
+++ b/src/credits.c
@@ -474,8 +474,8 @@ void task_a_8143D04(u8 taskIdA)
BeginNormalPaletteFade(-1, 0, 16, 0, 0);
REG_BG3HOFS = 0;
REG_BG3VOFS = 32;
- REG_BG3CNT = 0x703;
- REG_DISPCNT = 0x1940;
+ REG_BG3CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(7) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON;
gMain.state = 0;
gUnknown_0203935C = 0;
@@ -518,13 +518,13 @@ static void task_a_8143F3C(u8 taskIdA)
FreeAllSpritePalettes();
BeginNormalPaletteFade(-1, 8, 16, 0, 0);
- REG_BG0CNT = 0x700;
+ REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(7) | BGCNT_16COLOR | BGCNT_TXT256x256;
backup = REG_IME;
REG_IME = 0;
REG_IE |= INTR_FLAG_VBLANK;
REG_IME = backup;
REG_DISPSTAT |= DISPSTAT_VBLANK_INTR;
- REG_DISPCNT = 0x140;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON;
gTasks[taskIdA].data[TDA_0] = 0x100;
gTasks[taskIdA].func = task_a_8143FDC;
diff --git a/src/dewford_trend.c b/src/dewford_trend.c
index b90100d90..d69baef7f 100644
--- a/src/dewford_trend.c
+++ b/src/dewford_trend.c
@@ -19,7 +19,7 @@ static bool8 SB1ContainsWords(u16 *a);
static bool8 IsEasyChatPairEqual(u16 *words1, u16 *words2);
static s16 sub_80FA828(struct EasyChatPair *a, u16 b);
-void sub_80FA17C(void)
+void InitDewfordTrend(void)
{
u16 i;
@@ -39,7 +39,7 @@ void sub_80FA17C(void)
}
#ifdef NONMATCHING
-void sub_80FA220(u16 a)
+void UpdateDewfordTrendPerDay(u16 a)
{
u16 i;
u32 sp0;
@@ -103,7 +103,7 @@ void sub_80FA220(u16 a)
#else
__attribute__((naked))
-void sub_80FA220(u16 a)
+void UpdateDewfordTrendPerDay(u16 a)
{
asm(".syntax unified\n\
push {r4-r7,lr}\n\
diff --git a/src/diploma.c b/src/diploma.c
index 112647956..c32b72a70 100644
--- a/src/diploma.c
+++ b/src/diploma.c
@@ -87,7 +87,7 @@ void sub_8145D88(void)
REG_BLDCNT = 0;
REG_BLDALPHA = 0;
REG_BLDY = 0;
- REG_BG3CNT = 0x4603;
+ REG_BG3CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(6) | BGCNT_16COLOR | BGCNT_TXT512x256;
REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON;
CreateTask(Task_DiplomaFadeIn, 0);
diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c
index 1f049c0bd..c5f2c08e7 100644
--- a/src/field_control_avatar.c
+++ b/src/field_control_avatar.c
@@ -517,7 +517,7 @@ bool8 sub_8068894(void)
}
if (SafariZoneTakeStep() == TRUE)
return TRUE;
- if (sub_810D9B0(1) == TRUE)
+ if (CountSSTidalStep(1) == TRUE)
{
ScriptContext1_SetupScript(gUnknown_0815FD0D);
return TRUE;
diff --git a/src/field_effect.c b/src/field_effect.c
index 1b2346a00..bbc1144c1 100644
--- a/src/field_effect.c
+++ b/src/field_effect.c
@@ -1,6 +1,6 @@
#include "global.h"
#include "field_effect.h"
-#include "field_screeneffect.h"
+#include "field_weather.h"
#include "sprite.h"
#include "text.h"
diff --git a/src/field_fadetransition.c b/src/field_fadetransition.c
index f7d591c69..b5e6c1039 100644
--- a/src/field_fadetransition.c
+++ b/src/field_fadetransition.c
@@ -1,6 +1,6 @@
#include "global.h"
#include "gba/syscall.h"
-#include "field_screeneffect.h"
+#include "field_weather.h"
#include "global.fieldmap.h"
#include "script.h"
#include "task.h"
diff --git a/src/field_region_map.c b/src/field_region_map.c
index db12eb6a5..ec630ad00 100644
--- a/src/field_region_map.c
+++ b/src/field_region_map.c
@@ -64,7 +64,7 @@ void CB2_FieldInitRegionMap(void)
SetUpWindowConfig(&gWindowConfig_81E709C);
InitMenuWindow(&gWindowConfig_81E709C);
MenuZeroFillScreen();
- REG_BG0CNT = 7936;
+ REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(31) | BGCNT_16COLOR | BGCNT_TXT256x256;
MenuDrawTextWindow(21, 0, 29, 3);
sub_8072BD8(gOtherText_Hoenn, 0x16, 1, 0x38);
MenuDrawTextWindow(16, 16, 29, 19);
@@ -94,7 +94,7 @@ void sub_813EFDC(void)
switch (unk_2000000.unk888)
{
case 0:
- REG_DISPCNT = 5441;
+ REG_DISPCNT = DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON;
unk_2000000.unk888++;
break;
case 1:
diff --git a/src/field_special_scene.c b/src/field_special_scene.c
index fc4d96e18..59280b743 100644
--- a/src/field_special_scene.c
+++ b/src/field_special_scene.c
@@ -239,7 +239,7 @@ bool8 sub_80C7754(void)
s8 mapGroup, mapNum;
s16 x, y;
- if (sub_810D9EC(&mapGroup, &mapNum, &x, &y))
+ if (GetSSTidalLocation(&mapGroup, &mapNum, &x, &y))
{
return FALSE;
}
@@ -270,7 +270,7 @@ void Task_HandlePorthole(u8 taskId)
data[1] = 1;
if (!sub_80A212C(0xFF, location->mapNum, location->mapGroup))
return;
- if (sub_810D9B0(1) == TRUE)
+ if (CountSSTidalStep(1) == TRUE)
{
if (*var == 2)
*var = 9;
diff --git a/src/field_screeneffect.c b/src/field_weather.c
index 6cae0c18a..ff5d5b507 100644
--- a/src/field_screeneffect.c
+++ b/src/field_weather.c
@@ -1,5 +1,5 @@
#include "global.h"
-#include "field_screeneffect.h"
+#include "field_weather.h"
#include "asm.h"
#include "palette.h"
#include "sprite.h"
diff --git a/src/item_use.c b/src/item_use.c
index 762bb70f2..4047ade5c 100644
--- a/src/item_use.c
+++ b/src/item_use.c
@@ -6,7 +6,7 @@
#include "event_data.h"
#include "field_map_obj_helpers.h"
#include "field_player_avatar.h"
-#include "field_screeneffect.h"
+#include "field_weather.h"
#include "fieldmap.h"
#include "item.h"
#include "items.h"
diff --git a/src/link.c b/src/link.c
index 336616f1a..224c0ae1c 100644
--- a/src/link.c
+++ b/src/link.c
@@ -207,13 +207,13 @@ static void InitLinkTestBG(u8 paletteNum, u8 bgNum, u8 screenBaseBlock, u8 charB
switch (bgNum)
{
case 1:
- REG_BG1CNT = 1 | (screenBaseBlock << 8) | (charBaseBlock << 2);
+ REG_BG1CNT = BGCNT_PRIORITY(1) | BGCNT_SCREENBASE(screenBaseBlock) | BGCNT_CHARBASE(charBaseBlock);
break;
case 2:
- REG_BG2CNT = 1 | (screenBaseBlock << 8) | (charBaseBlock << 2);
+ REG_BG2CNT = BGCNT_PRIORITY(1) | BGCNT_SCREENBASE(screenBaseBlock) | BGCNT_CHARBASE(charBaseBlock);
break;
case 3:
- REG_BG3CNT = 1 | (screenBaseBlock << 8) | (charBaseBlock << 2);
+ REG_BG3CNT = BGCNT_PRIORITY(1) | BGCNT_SCREENBASE(screenBaseBlock) | BGCNT_CHARBASE(charBaseBlock);
break;
}
}
@@ -255,7 +255,7 @@ void LinkTestScreen(void)
}
InitLinkTestBG(0, 2, 4, 0);
- REG_DISPCNT = DISPCNT_OBJ_ON | DISPCNT_BG0_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_1D_MAP;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_ON | DISPCNT_BG0_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_1D_MAP;
CreateTask(Task_DestroySelf, 0);
RunTasks();
AnimateSprites();
diff --git a/src/mail.c b/src/mail.c
index 1bd4e73dc..807864332 100644
--- a/src/mail.c
+++ b/src/mail.c
@@ -116,7 +116,7 @@ void HandleReadMail(struct MailStruct *arg0, MainCallback arg1, bool8 arg2)
break;
}
- if (((sub_80A2D64(arg0->species, buffer) << 16) + 0xFFFF0000) <= (410 << 16))
+ if (((MailSpeciesToSpecies(arg0->species, buffer) << 16) + 0xFFFF0000) <= (410 << 16))
{
switch (ewram0.varFA)
{
@@ -273,11 +273,11 @@ static u8 sub_80F8A28(void)
RETURN_SKIP_STATE;
case 18:
- REG_BG0CNT = 0x9F08;
- REG_BG1CNT = 0x0801;
- REG_BG2CNT = 0x0902;
+ REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(31) | BGCNT_16COLOR | BGCNT_TXT256x512;
+ REG_BG1CNT = BGCNT_PRIORITY(1) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(8) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_BG2CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(9) | BGCNT_16COLOR | BGCNT_TXT256x256;
REG_BLDCNT = 0;
- REG_DISPCNT = DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON;
BeginNormalPaletteFade(-1, 0, 16, 0, 0);
gPaletteFade.bufferTransferDisabled = 0;
ewram0.varF0 = sub_80F8F58;
diff --git a/src/mail_data.c b/src/mail_data.c
index 0794d268d..23d22e21f 100644
--- a/src/mail_data.c
+++ b/src/mail_data.c
@@ -1,23 +1,24 @@
#include "global.h"
+#include "items.h"
#include "name_string_util.h"
#include "pokemon.h"
#include "species.h"
#include "text.h"
-void sub_80A2B40(struct MailStruct *);
-u16 sub_80A2D44(u16, u32);
-bool8 itemid_is_mail(u16);
-u16 sub_809D474(u32);
+void ClearMailStruct(struct MailStruct *);
+u16 SpeciesToMailSpecies(u16, u32);
+bool8 ItemIsMail(u16);
+u16 GetUnownLetterByPersonality(u32);
-void sub_80A2B18(void)
+void ClearMailData(void)
{
u8 i;
for (i = 0; i < 16; i++)
- sub_80A2B40(&gSaveBlock1.mail[i]);
+ ClearMailStruct(&gSaveBlock1.mail[i]);
}
-void sub_80A2B40(struct MailStruct *mail)
+void ClearMailStruct(struct MailStruct *mail)
{
int i;
@@ -34,16 +35,16 @@ void sub_80A2B40(struct MailStruct *mail)
mail->itemId = 0;
}
-bool8 sub_80A2B94(struct Pokemon *mon)
+bool8 MonHasMail(struct Pokemon *mon)
{
u16 heldItem = GetMonData(mon, MON_DATA_HELD_ITEM);
- if (itemid_is_mail(heldItem) && GetMonData(mon, MON_DATA_MAIL) != 0xFF)
+ if (ItemIsMail(heldItem) && GetMonData(mon, MON_DATA_MAIL) != 0xFF)
return TRUE;
else
return FALSE;
}
-u8 sub_80A2BC4(struct Pokemon *mon, u16 itemId)
+u8 GiveMailToMon(struct Pokemon *mon, u16 itemId)
{
u16 _itemId;
u8 heldItem[2];
@@ -72,9 +73,9 @@ u8 sub_80A2BC4(struct Pokemon *mon, u16 itemId)
for (i = 0; i < 4; i++)
gSaveBlock1.mail[id].trainerId[i] = gSaveBlock2.playerTrainerId[i];
- species = GetBoxMonData(mon, MON_DATA_SPECIES);
- personality = GetBoxMonData(mon, MON_DATA_PERSONALITY);
- gSaveBlock1.mail[id].species = sub_80A2D44(species, personality);
+ species = GetBoxMonData(&mon->box, MON_DATA_SPECIES);
+ personality = GetBoxMonData(&mon->box, MON_DATA_PERSONALITY);
+ gSaveBlock1.mail[id].species = SpeciesToMailSpecies(species, personality);
gSaveBlock1.mail[id].itemId = _itemId;
SetMonData(mon, MON_DATA_MAIL, &id);
SetMonData(mon, MON_DATA_HELD_ITEM, heldItem);
@@ -86,9 +87,125 @@ u8 sub_80A2BC4(struct Pokemon *mon, u16 itemId)
return -1;
}
-u16 sub_80A2D44(u16 species, u32 personality)
+u16 SpeciesToMailSpecies(u16 species, u32 personality)
{
- if (species != SPECIES_UNOWN)
- return species;
- return ((sub_809D474(personality) << 16) + (30000 << 16)) >> 16;
+ if (species == SPECIES_UNOWN)
+ {
+ int mailSpecies = GetUnownLetterByPersonality(personality) + 30000;
+ return mailSpecies;
+ }
+
+ return species;
+}
+
+u16 MailSpeciesToSpecies(u16 a1, u16 *a2)
+{
+ u16 result;
+
+ if (a1 >= 30000 && a1 < (30000 + UNOWN_FORM_COUNT))
+ {
+ result = SPECIES_UNOWN;
+ *a2 = a1 - 30000;
+ }
+ else
+ {
+ result = a1;
+ }
+
+ return result;
+}
+
+u8 GiveMailToMon2(struct Pokemon *mon, struct MailStruct *mail)
+{
+ u8 heldItem[2];
+ u16 itemId = mail->itemId;
+ u8 mailId = GiveMailToMon(mon, itemId);
+
+ if (mailId == 0xFF)
+ return 0xFF;
+
+ gSaveBlock1.mail[mailId] = *mail;
+
+ SetMonData(mon, MON_DATA_MAIL, &mailId);
+
+ heldItem[0] = itemId;
+ heldItem[1] = itemId >> 8;
+
+ SetMonData(mon, MON_DATA_HELD_ITEM, heldItem);
+
+ return mailId;
+}
+
+int unref_sub_80A2DF4(void)
+{
+ return 0;
+}
+
+void TakeMailFromMon(struct Pokemon *mon)
+{
+ u8 heldItem[2];
+ u8 mailId;
+
+ if (MonHasMail(mon))
+ {
+ mailId = GetMonData(mon, MON_DATA_MAIL);
+ gSaveBlock1.mail[mailId].itemId = 0;
+ mailId = 0xFF;
+ heldItem[0] = 0;
+ heldItem[1] = 0;
+ SetMonData(mon, MON_DATA_MAIL, &mailId);
+ SetMonData(mon, MON_DATA_HELD_ITEM, heldItem);
+ }
+}
+
+void DeleteMail(u8 mailId)
+{
+ gSaveBlock1.mail[mailId].itemId = 0;
+}
+
+u8 TakeMailFromMon2(struct Pokemon *mon)
+{
+ u8 i;
+ u8 newHeldItem[2];
+ u8 newMailId;
+
+ newHeldItem[0] = 0;
+ newHeldItem[1] = 0;
+ newMailId = 0xFF;
+
+ for (i = 6; i < 16; i++)
+ {
+ if (gSaveBlock1.mail[i].itemId == 0)
+ {
+ memcpy(&gSaveBlock1.mail[i], &gSaveBlock1.mail[GetMonData(mon, MON_DATA_MAIL)], sizeof(struct MailStruct));
+ gSaveBlock1.mail[GetMonData(mon, MON_DATA_MAIL)].itemId = 0;
+ SetMonData(mon, MON_DATA_MAIL, &newMailId);
+ SetMonData(mon, MON_DATA_HELD_ITEM, newHeldItem);
+ return i;
+ }
+ }
+
+ return 0xFF;
+}
+
+bool8 ItemIsMail(u16 itemId)
+{
+ switch (itemId)
+ {
+ case ITEM_ORANGE_MAIL:
+ case ITEM_HARBOR_MAIL:
+ case ITEM_GLITTER_MAIL:
+ case ITEM_MECH_MAIL:
+ case ITEM_WOOD_MAIL:
+ case ITEM_WAVE_MAIL:
+ case ITEM_BEAD_MAIL:
+ case ITEM_SHADOW_MAIL:
+ case ITEM_TROPIC_MAIL:
+ case ITEM_DREAM_MAIL:
+ case ITEM_FAB_MAIL:
+ case ITEM_RETRO_MAIL:
+ return TRUE;
+ default:
+ return FALSE;
+ }
}
diff --git a/src/main_menu.c b/src/main_menu.c
index 294d33620..50fefc471 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -250,7 +250,8 @@ u32 InitMainMenu(u8 a1)
SetVBlankCallback(VBlankCB_MainMenu);
SetMainCallback2(CB2_MainMenu);
- REG_DISPCNT = DISPCNT_OBJ_1D_MAP
+ REG_DISPCNT = DISPCNT_MODE_0
+ | DISPCNT_OBJ_1D_MAP
| DISPCNT_BG0_ON
| DISPCNT_OBJ_ON
| DISPCNT_WIN0_ON;
@@ -747,8 +748,8 @@ static void Task_NewGameSpeech1(u8 taskId)
FreeAllSpritePalettes();
AddBirchSpeechObjects(taskId);
BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
- REG_BG1CNT = 0x00000703;
- REG_DISPCNT = DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP;
+ REG_BG1CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(7) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP;
gTasks[taskId].data[TD_BGHOFS] = 0;
gTasks[taskId].func = Task_NewGameSpeech2;
gTasks[taskId].data[TD_TRAINER_SPRITE_ID] = 0xFF;
@@ -1391,7 +1392,7 @@ void CB_ContinueNewGameSpeechPart2()
SetVBlankCallback(VBlankCB_MainMenu);
SetMainCallback2(CB2_MainMenu);
- REG_BG1CNT = 1795;
+ REG_BG1CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(7) | BGCNT_16COLOR | BGCNT_TXT256x256;
REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP |
DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_ON;
}
diff --git a/src/matsuda_debug_menu.c b/src/matsuda_debug_menu.c
index 39c338658..d2ca754bb 100644
--- a/src/matsuda_debug_menu.c
+++ b/src/matsuda_debug_menu.c
@@ -64,7 +64,6 @@ extern u8* gMatsudaDebugMenuTextList3[];
extern u8 gMatsudaDebugMenuContestTopLeft[][2];
extern bool8 gReceivedRemoteLinkPlayers;
-extern u16 gBlockRecvBuffer[MAX_LINK_PLAYERS][BLOCK_BUFFER_SIZE / 2];
extern struct MenuAction gMatsudaDebugMenuActions[];
@@ -290,7 +289,7 @@ static void sub_80A9F10(u8 taskId)
static void sub_80A9F50(void)
{
- REG_DISPCNT = DISPCNT_OBJ_1D_MAP;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP;
REG_DISPCNT |= DISPCNT_OBJ_ON | DISPCNT_BG0_ON;
SetUpWindowConfig(&gWindowConfig_81E6C3C);
InitWindowFromConfig(&gMenuWindow, &gWindowConfig_81E6C3C);
@@ -1073,7 +1072,7 @@ void unref_sub_80AB084(u8 *text)
REG_WIN0V = 0;
REG_WIN1H = 0;
REG_WIN1V = 0;
- REG_DISPCNT = 0x1F40;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON;
savedIme = REG_IME;
REG_IME = 0;
diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c
index 693b28948..97deb348c 100644
--- a/src/mystery_event_menu.c
+++ b/src/mystery_event_menu.c
@@ -54,7 +54,7 @@ void CB2_InitMysteryEventMenu(void)
SetUpWindowConfig(&gWindowConfig_81E6CE4);
InitMenuWindow(&gWindowConfig_81E6CE4);
MenuZeroFillScreen();
- REG_DISPCNT = 320;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON;
REG_BLDCNT = 0;
CreateTask(Task_DestroySelf, 0);
StopMapMusic();
diff --git a/src/naming_screen.c b/src/naming_screen.c
index f00a9bd3e..b14c690e2 100644
--- a/src/naming_screen.c
+++ b/src/naming_screen.c
@@ -298,10 +298,10 @@ static void NamingScreen_SetUpVideoRegs(void)
REG_BG2VOFS = 0;
REG_BG3HOFS = 0;
REG_BG3VOFS = 0;
- REG_BG0CNT = 0x1F00;
- REG_BG1CNT = 0x1C01;
- REG_BG2CNT = 0x1D0A;
- REG_BG3CNT = 0x1E03;
+ REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(31) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_BG1CNT = BGCNT_PRIORITY(1) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(28) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_BG2CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(29) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_BG3CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(30) | BGCNT_16COLOR | BGCNT_TXT256x256;
REG_BLDCNT = 0x640;
REG_BLDALPHA = 0x80C;
}
diff --git a/src/new_game.c b/src/new_game.c
index 3b93d37cc..12e04a4ef 100644
--- a/src/new_game.c
+++ b/src/new_game.c
@@ -47,7 +47,7 @@ void copy_word_to_mem(u8 *copyTo, u8 *copyFrom)
copyTo[i] = copyFrom[i];
}
-void set_player_trainer_id(void)
+void InitPlayerTrainerId(void)
{
write_word_to_mem((Random() << 16) | Random(), gSaveBlock2.playerTrainerId);
}
@@ -113,21 +113,21 @@ void NewGameInitData(void)
gDifferentSaveFile = 1;
ZeroPlayerPartyMons();
ZeroEnemyPartyMons();
- sub_808C02C();
+ ResetPokedex();
sub_8052DE4();
memset(&gSaveBlock1, 0, sizeof(gSaveBlock1));
- sub_80A2B18();
+ ClearMailData();
gSaveBlock2.specialSaveWarp = 0;
- set_player_trainer_id();
+ InitPlayerTrainerId();
PlayTimeCounter_Reset();
ClearPokedexFlags();
InitEventData();
- sub_80BD7A8();
- sub_80BDAB4();
- sub_80BB5B4();
+ ClearTVShowData();
+ ResetGabbyAndTy();
+ ResetSecretBases();
ClearBerryTrees();
gSaveBlock1.money = 3000;
- sub_80AB1B0();
+ ResetLinkContestBoolean();
ResetGameStats();
sub_8052DA8();
InitLinkBattleRecords();
@@ -135,18 +135,18 @@ void NewGameInitData(void)
InitBarboachSizeRecord();
gPlayerPartyCount = 0;
ZeroPlayerPartyMons();
- sub_80961D8();
+ ResetPokemonStorageSystem();
ClearRoamerData();
ClearRoamerLocationData();
gSaveBlock1.registeredItem = 0;
- sub_80A3714();
+ ClearBag();
NewGameInitPCItems();
- sub_810C994();
- sub_8133F80();
- sub_80E6764();
+ ClearPokeblocks();
+ ClearDecorationInventories();
+ InitEasyChatPhrases();
SetMauvilleOldMan();
- sub_80FA17C();
- sub_810FA54();
+ InitDewfordTrend();
+ ResetFanClub();
ResetLotteryCorner();
WarpToTruck();
ScriptContext2_RunNewScript(gUnknown_0819FA81);
diff --git a/src/player_pc.c b/src/player_pc.c
index 02a2dc1a2..f0f0709b1 100644
--- a/src/player_pc.c
+++ b/src/player_pc.c
@@ -1,6 +1,6 @@
#include "global.h"
#include "asm.h"
-#include "field_screeneffect.h"
+#include "field_weather.h"
#include "item.h"
#include "items.h"
#include "main.h"
diff --git a/src/pokedex.c b/src/pokedex.c
index 3ef1de51e..5ea1f9938 100644
--- a/src/pokedex.c
+++ b/src/pokedex.c
@@ -115,7 +115,7 @@ u16 NationalPokedexNumToSpecies(u16);
// asm/pokedex_area_screen
void ShowPokedexAreaScreen(u16 species, u8 *string);
-void sub_808C02C(void)
+void ResetPokedex(void)
{
u16 i;
@@ -789,10 +789,10 @@ bool8 sub_808D344(u8 a)
REG_BLDCNT = 0;
REG_BLDALPHA = 0;
REG_BLDY = 0;
- REG_BG3CNT = 0xF03;
- REG_BG1CNT = 0xD01;
- REG_BG0CNT = 0xC00;
- REG_DISPCNT = 0x9F40;
+ REG_BG3CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(15) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_BG1CNT = BGCNT_PRIORITY(1) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(13) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(12) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON | DISPCNT_OBJWIN_ON;
gMain.state++;
break;
case 6:
@@ -2296,8 +2296,8 @@ void Task_InitPageScreenMultistep(u8 taskId)
REG_BLDCNT = 0;
REG_BLDALPHA = 0;
REG_BLDY = 0;
- REG_BG3CNT = 0xF03;
- REG_BG1CNT = 0xD00;
+ REG_BG3CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(15) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_BG1CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(13) | BGCNT_16COLOR | BGCNT_TXT256x256;
REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON;
gMain.state++;
break;
@@ -2422,7 +2422,7 @@ void Task_InitAreaScreenMultistep(u8 taskId)
sub_8090540(0xD);
sub_8090644(1, 0xD);
sub_808D640();
- REG_BG1CNT = 0xD00;
+ REG_BG1CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(13) | BGCNT_16COLOR | BGCNT_TXT256x256;
gMain.state++;
break;
case 2:
@@ -2544,10 +2544,10 @@ void Task_InitCryScreenMultistep(u8 taskId)
REG_BLDCNT = 0;
REG_BLDALPHA = 0;
REG_BLDY = 0;
- REG_BG2CNT = 0xE02;
- REG_BG0CNT = 0x1F07;
- REG_BG1CNT = 0xD00;
- REG_DISPCNT = 0x1F07 + 0x39;
+ REG_BG2CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(14) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_BG0CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(31) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_BG1CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(13) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON;
gMain.state++;
break;
case 10:
@@ -2715,8 +2715,8 @@ void Task_InitSizeScreenMultistep(u8 taskId)
REG_BLDCNT = 0;
REG_BLDALPHA = 0;
REG_BLDY = 0;
- REG_BG2CNT = 0xE03;
- REG_DISPCNT = 0x1E40;
+ REG_BG2CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(14) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON;
gMain.state++;
break;
case 9:
@@ -3156,8 +3156,8 @@ void sub_8090750(u8 taskId)
REG_BLDCNT = 0;
REG_BLDALPHA = 0;
REG_BLDY = 0;
- REG_BG3CNT = 0xF07;
- REG_DISPCNT = 0x1C40;
+ REG_BG3CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(15) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG2_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON;
gTasks[taskId].data[0]++;
break;
case 6:
diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c
new file mode 100644
index 000000000..679ec0bc4
--- /dev/null
+++ b/src/pokemon_storage_system.c
@@ -0,0 +1,93 @@
+#include "global.h"
+#include "menu.h"
+#include "string_util.h"
+
+struct StorageAction {
+ u8 *text;
+ u8 format;
+};
+
+extern const struct StorageAction gUnknown_083B6DF4[];
+
+extern const u8 unk_2000000[];
+
+#define gUnk2002694 (u8 *)(&unk_2000000[0x2694])
+#define gUnk20026A6 (u8 *)(&unk_2000000[0x26a6])
+#define gUnk20011fa (u8 *)(&unk_2000000[0x11fa])
+#define gUnk20026e4 (u8 *)(&unk_2000000[0x26e4])
+
+void sub_8098898(u8 index) {
+ u8 *ptr;
+
+ MenuDrawTextWindow(10, 16, 29, 19);
+
+ switch (gUnknown_083B6DF4[index].format)
+ {
+
+ case 2:
+ ptr = StringCopy(gUnk2002694, gUnknown_083B6DF4[index].text);
+ ptr = StringCopy(ptr, gUnk20011fa);
+ break;
+
+ case 5:
+ ptr = StringCopy(gUnk2002694, gUnknown_083B6DF4[index].text);
+ ptr = StringCopy(ptr, gUnk20026e4);
+ break;
+
+ case 1:
+ // {var} + " is selected."
+ ptr = StringCopy(gUnk2002694, gUnk20011fa);
+ ptr = StringCopy(ptr, gUnknown_083B6DF4[index].text);
+ break;
+
+ case 4:
+ // TODO: fix for German
+ // {var} + " was released."
+ ptr = StringCopy(gUnk2002694, gUnk20026e4);
+ ptr = StringCopy(ptr, gUnknown_083B6DF4[index].text);
+ break;
+
+ case 3:
+ {
+ u8 *stringLength;
+ u8 *text;
+
+ text = gUnknown_083B6DF4[index].text;
+ stringLength = &text[StringLength(text)] + 1;
+
+ ptr = StringCopy(gUnk2002694, gUnknown_083B6DF4[index].text);
+ ptr = StringCopy(ptr, gUnk20011fa);
+ ptr = StringCopy(ptr, stringLength);
+ }
+ break;
+
+ case 6:
+ // "Bye-bye, ".substr(0, -1) + {var} + "Bye-bye, !".substr(-1, 1)
+ {
+ u8 *stringLength;
+ u8 *text;
+
+ text = gUnknown_083B6DF4[index].text;
+ stringLength = &text[StringLength(text)] - 1;
+
+ ptr = StringCopy(gUnk2002694, gUnknown_083B6DF4[index].text);
+ ptr = StringCopy(ptr - 1, gUnk20026e4);
+ ptr = StringCopy(ptr, stringLength);
+ }
+ break;
+
+ case 0:
+ default:
+ ptr = StringCopy(gUnk2002694, gUnknown_083B6DF4[index].text);
+ break;
+ }
+
+ while (ptr < gUnk20026A6)
+ {
+ ptr[0] = CHAR_SPACE;
+ ptr++;
+ }
+
+ ptr[0] = EOS;
+ MenuPrint(gUnk2002694, 11, 17);
+}
diff --git a/src/pokenav.c b/src/pokenav.c
new file mode 100644
index 000000000..60e7c73e1
--- /dev/null
+++ b/src/pokenav.c
@@ -0,0 +1,45 @@
+#include "global.h"
+#include "battle.h"
+#include "string_util.h"
+
+struct UnkPokenavStruct_Sub {
+ /*0x0*/ u16 unk0;
+ /*0x2*/ u8 filler2[6];
+};
+
+
+struct UnkPokenavStruct {
+ /*0x0000*/ u8 filler0000[0xCEE8];
+ /*0xCEE8*/ struct UnkPokenavStruct_Sub unkCEE8[78];
+ /*0xD158*/ u16 unkD158;
+
+};
+
+extern struct UnkPokenavStruct *gUnknown_083DFEC4;
+
+extern const struct Trainer gTrainers[];
+extern const u8 gTrainerClassNames[][13];
+
+void sub_80F700C(u8 *arg0, u16 arg1) {
+ struct Trainer *trainer;
+ u8 *ptr;
+
+ trainer = (struct Trainer *) &gTrainers[gUnknown_083DFEC4->unkCEE8[arg1].unk0];
+
+ ptr = arg0;
+ if (arg1 < gUnknown_083DFEC4->unkD158)
+ {
+ ptr = StringCopy(ptr, gTrainerClassNames[trainer->trainerClass]);
+
+ ptr[0] = 0xFC;
+ ptr[1] = 0x13;
+ ptr[2] = 0x4B;
+ ptr += 3;
+ ptr = StringCopy(ptr, trainer->trainerName);
+ }
+
+ ptr[0] = 0xFC;
+ ptr[1] = 0x13;
+ ptr[2] = 0x80;
+ ptr[3] = 0xFF;
+}
diff --git a/src/record_mixing.c b/src/record_mixing.c
index c08128637..76fe13059 100644
--- a/src/record_mixing.c
+++ b/src/record_mixing.c
@@ -31,8 +31,6 @@ extern u8 gUnknown_0300071C[];
extern u8 gOtherText_MixingComplete[];
extern u8 gOtherText_MixingRecordsWithFriend[];
extern bool8 gReceivedRemoteLinkPlayers;
-extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE];
-extern u16 gBlockRecvBuffer[MAX_LINK_PLAYERS][BLOCK_BUFFER_SIZE / 2];
#define BUFFER_CHUNK_SIZE 200
diff --git a/src/rom3.c b/src/rom3.c
index b0ef7f088..126248705 100644
--- a/src/rom3.c
+++ b/src/rom3.c
@@ -13,7 +13,6 @@ extern u8 unk_2000000[];
#define EWRAM_15000 ((u8 *)(unk_2000000 + 0x15000))
extern u16 gBattleTypeFlags;
-extern u16 gBlockRecvBuffer[MAX_LINK_PLAYERS][BLOCK_BUFFER_SIZE / 2];
extern const u32 gBitTable[];
extern u16 gBattleWeather;
extern const struct BattleMove gBattleMoves[];
diff --git a/src/rom4.c b/src/rom4.c
index 5beb698ab..79ac6d769 100644
--- a/src/rom4.c
+++ b/src/rom4.c
@@ -13,7 +13,7 @@
#include "field_map_obj_helpers.h"
#include "field_message_box.h"
#include "field_player_avatar.h"
-#include "field_screeneffect.h"
+#include "field_weather.h"
#include "field_special_scene.h"
#include "heal_location.h"
#include "link.h"
diff --git a/src/rom_800D42C.c b/src/rom_800D42C.c
index 93fbce556..ac564eddd 100644
--- a/src/rom_800D42C.c
+++ b/src/rom_800D42C.c
@@ -34,7 +34,7 @@ extern u8 BattleText_Tie[];
#define PRINT_MESSAGE_LEFT(text, tileDataStartOffset) PRINT_MESSAGE(text, tileDataStartOffset, LEFT_MESSAGE_X)
#define PRINT_MESSAGE_RIGHT(text, tileDataStartOffset) PRINT_MESSAGE(text, tileDataStartOffset, RIGHT_MESSAGE_X)
-void sub_800DC24(void)
+void PrintLinkBattleWinLossTie(void)
{
if (gUnknown_02024D26 == 3)
diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c
index 102909779..d46abc74d 100644
--- a/src/save_failed_screen.c
+++ b/src/save_failed_screen.c
@@ -150,9 +150,9 @@ static void CB2_SaveFailedScreen(void)
REG_IME = ime;
REG_DISPSTAT |= DISPSTAT_VBLANK_INTR;
SetVBlankCallback(VBlankCB);
- REG_BG3CNT = 0x703;
- REG_BG2CNT = 0x602;
- REG_BG0CNT = 0x1f08;
+ REG_BG3CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(7) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_BG2CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(6) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(31) | BGCNT_16COLOR | BGCNT_TXT256x256;
REG_DISPCNT = DISPCNT_OBJ_ON | DISPCNT_BG3_ON | DISPCNT_BG2_ON | DISPCNT_BG0_ON | DISPCNT_OBJ_1D_MAP | DISPCNT_MODE_0;
gMain.state++;
break;
diff --git a/src/scrcmd.c b/src/scrcmd.c
index 7569462e6..136181bd3 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -13,7 +13,7 @@
#include "field_map_obj_helpers.h"
#include "field_message_box.h"
#include "field_player_avatar.h"
-#include "field_screeneffect.h"
+#include "field_weather.h"
#include "item.h"
#include "main.h"
#include "map_obj_lock.h"
diff --git a/src/secret_base.c b/src/secret_base.c
new file mode 100644
index 000000000..572dfaa1d
--- /dev/null
+++ b/src/secret_base.c
@@ -0,0 +1,18 @@
+#include "global.h"
+#include "string_util.h"
+#include "strings.h"
+#include "text.h"
+
+u8 sub_80BB8A8(void *);
+
+u8 *sub_80BC190(u8 *dest, u8 arg1) {
+ u8 local1;
+ u8 *str;
+
+ local1 = sub_80BB8A8(gSaveBlock1.secretBases[arg1].sbr_field_2);
+
+ str = StringCopyN(dest, gSaveBlock1.secretBases[arg1].sbr_field_2, local1);
+ str[0] = EOS;
+
+ return StringAppend(dest, gOtherText_PlayersBase);
+}
diff --git a/src/shop.c b/src/shop.c
index c78771be7..780dff02a 100644
--- a/src/shop.c
+++ b/src/shop.c
@@ -1,7 +1,7 @@
#include "global.h"
#include "asm.h"
#include "decompress.h"
-#include "field_screeneffect.h"
+#include "field_weather.h"
#include "main.h"
#include "menu.h"
#include "money.h"
diff --git a/src/slot_machine.c b/src/slot_machine.c
new file mode 100644
index 000000000..c087bf6b4
--- /dev/null
+++ b/src/slot_machine.c
@@ -0,0 +1,154 @@
+#include "global.h"
+#include "decompress.h"
+#include "palette.h"
+#include "task.h"
+
+struct UnkStruct2000000 {
+ /*0x00*/ u8 filler00[61];
+ /*0x3D*/ u8 unk3D;
+};
+
+struct UnkStruct1 {
+ /*0x00*/ u8 unk00;
+ /*0x01*/ u8 unk01;
+ /*0x02*/ s16 unk02;
+};
+
+extern struct UnkStruct2000000 unk_2000000;
+
+extern struct UnkStruct1 *gUnknown_083ED048[];
+extern const u16 gPalette_83EDE24[];
+
+extern const u8 gSlotMachine_Gfx[];
+#if ENGLISH
+#define SLOTMACHINE_GFX_TILES 233
+#elif GERMAN
+#define SLOTMACHINE_GFX_TILES 236
+#endif
+
+extern const u16 gUnknown_08E95A18[];
+
+extern u16 gUnknown_08E95AB8[];
+extern u16 gUnknown_08E95FB8[];
+
+
+void sub_8104DA4(void);
+
+u8 sub_8105BB4(u8, u8, s16);
+
+static void LoadSlotMachineWheelOverlay(void);
+
+void sub_8104CAC(u8 arg0) {
+ u8 i;
+ struct Task *task;
+
+ sub_8104DA4();
+
+ task = &gTasks[unk_2000000.unk3D];
+ task->data[1] = arg0;
+
+ i = 0;
+ while (gUnknown_083ED048[arg0][i].unk00 != 0xFF)
+ {
+ u8 spriteId;
+ spriteId = sub_8105BB4(
+ gUnknown_083ED048[arg0][i].unk00,
+ gUnknown_083ED048[arg0][i].unk01,
+ gUnknown_083ED048[arg0][i].unk02
+ );
+ task->data[4 + i] = spriteId;
+
+#ifdef GERMAN
+ if (arg0 == 5 && i <= 2)
+ {
+ gSprites[spriteId].invisible = TRUE;
+ }
+#endif
+
+ i += 1;
+ }
+}
+
+asm(".section .text_b");
+
+void sub_8106448(void) {
+ u32 offsetRead, offsetWrite;
+ u32 size;
+
+ sub_800D238(gSlotMachine_Gfx, (void *) 0x02010000);
+
+ offsetRead = 0x02010000;
+ offsetWrite = BG_VRAM;
+ size = SLOTMACHINE_GFX_TILES * 32;
+ while (TRUE)
+ {
+ DmaCopy16(3, offsetRead, (void *) (offsetWrite), 0x1000);
+ offsetRead += 0x1000;
+ offsetWrite += 0x1000;
+ size -= 0x1000;
+ if (size <= 0x1000)
+ {
+ DmaCopy16(3, offsetRead, (void *) (offsetWrite), size);
+ break;
+ }
+ }
+
+ LoadPalette(gUnknown_08E95A18, 0, 160);
+ LoadPalette(gPalette_83EDE24, 208, 32);
+}
+
+void sub_81064B8(void) {
+ CpuCopy16(gUnknown_08E95AB8, (void *) BG_SCREEN_ADDR(29), 20 * 32 * 2);
+ LoadSlotMachineWheelOverlay();
+}
+
+static void LoadSlotMachineWheelOverlay(void) {
+ s16 x, y, dx;
+ u16 *screen;
+
+ screen = (u16 *) BG_SCREEN_ADDR(30);
+
+ for (x = 4; x < 18; x += 5)
+ {
+ for (dx = 0; dx < 4; dx++)
+ {
+ screen[5 * 32 + dx + x] = 0x2051;
+ screen[13 * 32 + dx + x] = 0x2851;
+ screen[6 * 32 + dx + x] = 0x2061;
+ screen[12 * 32 + dx + x] = 0x2861;
+ }
+
+ screen[6 * 32 + x] = 0x20BE;
+ screen[12 * 32 + x] = 0x28BE;
+
+ for (y = 7; y <= 11; y++)
+ {
+ screen[y * 32 + x] = 0x20BF;
+ }
+ }
+}
+
+void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) {
+ u16 *vram = (u16 *) BG_SCREEN_ADDR(29);
+
+ vram[15 * 32 + arg0] = arg1;
+ vram[15 * 32 + 1 + arg0] = arg2;
+ vram[16 * 32 + arg0] = arg3;
+ vram[16 * 32 + 1 + arg0] = arg4;
+}
+
+void sub_81065DC(void) {
+ s16 y, x;
+ u16 *screen;
+
+ CpuCopy16(gUnknown_08E95FB8, (void *) BG_SCREEN_ADDR(29), 20 * 32 * 2);
+
+ screen = (u16 *) BG_SCREEN_ADDR(30);
+ for (y = 0; y < 20; y++)
+ {
+ for (x = 0; x < 30; x++)
+ {
+ screen[x + y * 32] = 0;
+ }
+ }
+}
diff --git a/src/start_menu.c b/src/start_menu.c
index 48217219d..37d361c0b 100644
--- a/src/start_menu.c
+++ b/src/start_menu.c
@@ -4,7 +4,7 @@
#include "event_data.h"
#include "field_map_obj_helpers.h"
#include "field_player_avatar.h"
-#include "field_screeneffect.h"
+#include "field_weather.h"
#include "load_save.h"
#include "main.h"
#include "map_obj_lock.h"
@@ -782,7 +782,7 @@ static bool32 sub_80719FC(u8 *step)
case 2:
SetUpWindowConfig(&gWindowConfig_81E6CE4);
InitMenuWindow(&gWindowConfig_81E6CE4);
- REG_DISPCNT = 0x100;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_BG0_ON;
break;
case 3:
{
diff --git a/src/starter_choose.c b/src/starter_choose.c
index 63d153ebd..6ef410d21 100644
--- a/src/starter_choose.c
+++ b/src/starter_choose.c
@@ -325,9 +325,9 @@ void CB2_ChooseStarter(void)
REG_BLDCNT = 0xFE;
REG_BLDALPHA = 0;
REG_BLDY = 0x7;
- REG_BG3CNT = 0x703;
- REG_BG2CNT = 0x602;
- REG_BG0CNT = 0x1F08;
+ REG_BG3CNT = BGCNT_PRIORITY(3) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(7) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_BG2CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(6) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(31) | BGCNT_16COLOR | BGCNT_TXT256x256;
REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG2_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON;
taskId = CreateTask(Task_StarterChoose1, 0);
diff --git a/src/tv.c b/src/tv.c
index dd523594d..c0d4bde4d 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -256,7 +256,7 @@ void EndMassOutbreak(void)
gSaveBlock1.outbreakUnk5 = 0;
}
-void sub_80BE8C4(u16 arg0)
+void UpdateTVShowsPerDay(u16 arg0)
{
sub_80BE8EC(arg0);
UpdateMassOutbreakTimeLeft(arg0);
diff --git a/src/wallclock.c b/src/wallclock.c
index 2f4d694a6..0f3665c65 100644
--- a/src/wallclock.c
+++ b/src/wallclock.c
@@ -256,8 +256,8 @@ static void WallClockInit(void)
REG_BLDCNT = 0;
REG_BLDALPHA = 0;
REG_BLDY = 0;
- REG_BG3CNT = 0x701;
- REG_BG0CNT = 0x1F08;
+ REG_BG3CNT = BGCNT_PRIORITY(1) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(7) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(31) | BGCNT_16COLOR | BGCNT_TXT256x256;
REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON |
DISPCNT_BG3_ON | DISPCNT_OBJ_ON;
}